]> gitweb.fluxo.info Git - drupal/reminder.git/commitdiff
Refactoring reminder_node_submit()
authorSilvio Rhatto <rhatto@riseup.net>
Mon, 24 Sep 2012 21:31:41 +0000 (18:31 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Mon, 24 Sep 2012 21:31:41 +0000 (18:31 -0300)
reminder.module

index 60a24bad51a93f807578d7014b404145d70c6e7c..b3705304ac4ba30eeb801904a89d8a7265f0f712 100644 (file)
@@ -242,6 +242,10 @@ function reminder_form(&$node) {
  * @todo
  *   Throttling settings to avoid SPAM: max posts per
  *   hour and max recipients per post.
+ *
+ *   Validate name and email if not registered user.
+ *   Date and interval validation.
+ *   Test all fields.
  */
 function reminder_validate($node, $form, &$form_state) {
   if ($form['type']['#value'] == 'reminder') {
@@ -253,8 +257,8 @@ function reminder_validate($node, $form, &$form_state) {
  * Implementation of hook_node_submit()
  *
  * @todo
- *   Refactor.
  *   Date, remind and subscribe widgets.
+ *   Update subscribers, removing old ones.
  */
 function reminder_node_submit($node, $form, &$form_state) {
   // No preview available.
@@ -275,6 +279,7 @@ function reminder_node_submit($node, $form, &$form_state) {
 
   if ($node->nid == NULL) {
     global $user;
+    $action = 'create';
 
     // Save basic data.
     node_save($node);
@@ -311,41 +316,13 @@ function reminder_node_submit($node, $form, &$form_state) {
     }
 
     $query = db_insert('reminder_subscriptions')->fields($values);
-
-    // Send an email message.
-    //if ($form_state['values']['email_notification']) {
-    if (TRUE) {
-      $mail = "";
-      if ($user->uid > 0) {
-        $mail = $user->mail;
-      }
-      elseif (valid_email_address($form_state['values']['anonym']['user_email'])) {
-        $mail = $form_state['values']['anonym']['user_email'];
-      }
-
-      if ($mail != "") {
-        if ($user->uid > 0) {
-          $name = $user->name;
-        }
-        elseif (isset($form_state['values']['anonym']['user_name'])) {
-          $name = $form_state['values']['anonym']['user_name'];
-        }
-
-        $params = array(
-          "name"         => $name,
-          "reminder_url" => $reminder_url,
-          "admin_url"    => $admin_url,
-        );
-        drupal_mail('reminder', 'create_new_reminder', $mail, language_default(), $params);
-      }
-
-    }
   }
   else {
     // Fetch existing options.
     $reminder     = reminder_get_reminder($node->nid);
     $reminder_url = $reminder['url'];
     $admin_url    = $reminder['admin_url'];
+    $action       = 'update';
 
     // Update basic data.
     node_save($node);
@@ -362,6 +339,17 @@ function reminder_node_submit($node, $form, &$form_state) {
     // TODO: Update subscribers, removing old ones.
   }
 
+  $mail = ($user->uid > 0) ? $mail = $user->mail : $form_state['values']['anonym']['user_email'];
+  $name = ($user->uid > 0) ? $user->name : $form_state['values']['anonym']['user_name'];
+
+  // Send message to reminder owner
+  drupal_mail('reminder', $action .'_reminder', $mail, language_default(), array(
+    "name"         => $name,
+    "reminder_url" => $reminder_url,
+    "admin_url"    => $admin_url,
+    )
+  );
+
   // Send reminder now.
   if (isset($form_state['reminder_options']['now']) && $form_state['reminder_options']['now'] != 0) {
     reminder_send($node->nid);
@@ -402,7 +390,9 @@ function reminder_mail($key, &$message, $params) {
    $message['subject'] .= str_replace(array("\r", "\n"), '', $subject);
    $message['body'][]   = drupal_html_to_text($body);
 
-   if ($key == 'create_new_reminder') {
+   if ($key == 'create_reminder') {
+   }
+   else if ($key == 'update_reminder') {
    }
 }