]> gitweb.fluxo.info Git - drupal/reminder.git/commitdiff
Misc changes
authorSilvio Rhatto <rhatto@riseup.net>
Fri, 10 Aug 2012 00:16:09 +0000 (21:16 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Fri, 10 Aug 2012 00:16:09 +0000 (21:16 -0300)
reminder.module

index 7d5b82f95316333dc06e53eda34ebad4050385d8..fa7f80bf4d5df36ee10b17957f0ec3397f3ae033 100644 (file)
@@ -128,13 +128,16 @@ function reminder_node_access($node, $op, $account) {
 
 /**
  * Implementation of hook_node_form()
+ *
+ * @todo
+ *   Default value for subscription field.
  */
 function reminder_form(&$node) {
   global $user;
 
   $type         = node_type_get_type($node);
   $format_until = 'Y-m-d H:i';
-  $reminder     = isset($node->nid) ? reminder_get_reminder($node->nid) : array();
+  $reminder     = isset($node->nid) ? reminder_get_reminder($node->nid, TRUE) : array();
 
   if ($type->has_title) {
     $form['title'] = array(
@@ -167,7 +170,7 @@ function reminder_form(&$node) {
       '#title' => t('Your name'),
       '#maxlength' => 100,
       '#description' => t('This is optional.'),
-      '#default_value' => isset($reminder['anonym_name']) ? $reminder['anonym_name'] : 0,
+      '#default_value' => isset($reminder['anonym_name']) ? $reminder['anonym_name'] : '',
     );
 
     $form['anonym']['user_email'] = array(
@@ -175,7 +178,7 @@ function reminder_form(&$node) {
       '#title' => t('Your e-mail'),
       '#description' => t(''),
       '#maxlength' => 100,
-      '#default_value' => isset($reminder['anonym_email']) ? $reminder['anonym_email'] : 0,
+      '#default_value' => isset($reminder['anonym_email']) ? $reminder['anonym_email'] : '',
     );
   }
 
@@ -226,13 +229,12 @@ function reminder_form(&$node) {
     '#default_value' => 0,
   );
 
-  // TODO
   $form['reminder_subscriptions'] = array(
     '#type' => 'textarea',
     '#title' => t('Subscribers'),
     '#description' => t('One valid email address per line.'),
     '#maxlength' => 100,
-    '#default_value' => isset($node->reminder_subscriptions) ? $node->reminder_subscriptions: NULL,
+    '#default_value' => isset($reminder['subscriptions']) ? implode($reminder['subscriptions'], '\n'): NULL,
   );
 
   return $form;
@@ -470,13 +472,13 @@ function _reminder_access_userreminders($account) {
  * @param $nid
  *   Reminder nid.
  *
+ * @param $subscriptions
+ *   Whether to fetch subscription information.
+ *
  * @return
  *   Reminder result set.
- *
- * @todo
- *   Fetch subscriptions.
  */
-function reminder_get_reminder($nid) {
+function reminder_get_reminder($nid, $subscriptions = FALSE) {
   // Schema
   include_once 'reminder.install';
   $schema = reminder_schema();
@@ -485,7 +487,7 @@ function reminder_get_reminder($nid) {
   // Fetch existing options.
   $query = db_select('reminder', 'r');
   $query
-    ->condition('r.nid', $nid) 
+    ->condition('r.nid', $nid)
     ->fields('r', $fields);
 
   $results = $query->execute()->fetchAll();
@@ -493,6 +495,45 @@ function reminder_get_reminder($nid) {
   // Sanitize the data before handing it off to the theme layer.
   foreach ($results as $entry) {
     // Return the first result as we just have one entry.
-    return array_map('check_plain', (array) $entry);
+    $result = array_map('check_plain', (array) $entry);
+    break;
+  }
+
+  if (!$subscriptions) {
+    return $result;
   }
+
+  $result['subscriptions'] = reminder_get_subscriptions($nid);
+  return $result;
+}
+
+/**
+ * Get subscription data.
+ *
+ * @param $nid
+ *   Reminder nid.
+ *
+ * @return
+ *   Subscriptions result set.
+ */
+function reminder_get_subscriptions($nid) {
+  // Schema
+  include_once 'reminder.install';
+  $schema = reminder_schema();
+  $fields = array_keys($schema['reminder_subscriptions']['fields']);
+
+  // Fetch existing options.
+  $query = db_select('reminder_subscriptions', 'r');
+  $query
+    ->condition('r.reminder_id', $nid) 
+    ->fields('r', $fields);
+
+  $results = $query->execute()->fetchAll();
+
+  // Sanitize the data before handing it off to the theme layer.
+  foreach ($results as $entry) {
+    $results[] = array_map('check_plain', (array) $entry);
+  }
+
+  return $results;
 }