/[drupal]/contributions/modules/send/includes/send.form.inc
ViewVC logotype

Diff of /contributions/modules/send/includes/send.form.inc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.11, Wed Aug 26 01:18:14 2009 UTC revision 1.12, Wed Aug 26 14:56:17 2009 UTC
# Line 1  Line 1 
1  <?php // $Id: send.form.inc,v 1.10 2009/08/17 21:38:15 vauxia Exp $  <?php // $Id: send.form.inc,v 1.11 2009/08/26 01:18:14 vauxia Exp $
2    
3  /**  /**
4   * The default submission page for user-initiated send activities.   * The default submission page for user-initiated send activities.
# Line 52  function send_submit($form, &$form_state Line 52  function send_submit($form, &$form_state
52    
53    $values = send_form_set_values($form, $form_state, $key);    $values = send_form_set_values($form, $form_state, $key);
54    
55    $send = $form_state['send'];    $send =& $form_state['send'];
56    
57    // Set up the message values.    // Set up the message values.
58    $message = $values['message'];    $send->message = $values['message'];
59    $message['sender'] = $values['from'][0];    $send->message['sender'] = $values['from'][0];
60    
61    if (!isset($form_state['send_deliver']) || $form_state['send_deliver']) {    if (!isset($form_state['send_deliver']) || $form_state['send_deliver']) {
62      // Call the send API with our processed values.      // Call the send API with our processed values.
63      if ($ret = send($send, $values['to'], $send->nids, $message)) {      if ($ret = send($send, $values['to'], $send->nids, $send->message)) {
64        flood_register_event("send $send->name");        flood_register_event("send $send->name");
65      }      }
66    
# Line 87  function send_submit_refresh($form, &$fo Line 87  function send_submit_refresh($form, &$fo
87    
88    $form_state['rebuild'] = TRUE;    $form_state['rebuild'] = TRUE;
89    $form_state['redirect'] = FALSE;    $form_state['redirect'] = FALSE;
   return;  
90  }  }
91    
92  /**  /**
# Line 157  module_load_include('form.inc', 'news', Line 156  module_load_include('form.inc', 'news',
156    $form = drupal_rebuild_form($form_id, $form_state, $args, $form_build_id);    $form = drupal_rebuild_form($form_id, $form_state, $args, $form_build_id);
157    
158    $send_form = $form[$key];    $send_form = $form[$key];
159    if ($element) {    $parents = func_get_args();
160      foreach (element_children($send_form) as $i) {    foreach ($parents as $parent) {
161        if ($i != $element) $send_form[$i]['#access'] = FALSE;      if (isset($send_form[$parent])) $send_form = $send_form[$parent];
     }  
162    }    }
163    
164    unset($send_form['#prefix'], $send_form['#suffix']);    unset($send_form['#prefix'], $send_form['#suffix']);
165    
166    // Clear out the form_errors array.  We're not here for validation.    // Clear out the form_errors array.  We're not here for validation.
167      form_set_error(NULL, '', TRUE);
168    drupal_get_messages('error', TRUE);    drupal_get_messages('error', TRUE);
169    
170    $output = theme('status_messages') . drupal_render($send_form);    $output = theme('status_messages') . drupal_render($send_form);
# Line 290  function send_multiple_element_validate( Line 289  function send_multiple_element_validate(
289   */   */
290  function send_message_compose_element_process($element, $edit, &$form_state, $form) {  function send_message_compose_element_process($element, $edit, &$form_state, $form) {
291    
292      $element['#theme'] = 'send_message_compose_element';
293      $element['#after_build'] = array('send_message_compose_element_set_value');
294    
295    $send =& $form_state['send'];    $send =& $form_state['send'];
296    if ($edit) $send->message = $edit;    if ($edit) $send->message = $edit;
297    
# Line 298  function send_message_compose_element_pr Line 300  function send_message_compose_element_pr
300      $templates[$t->stid] = $t->name;      $templates[$t->stid] = $t->name;
301    }    }
302    
303    if (isset($send->message['template'])) {    if (isset($send->message['admin']['template'])) {
304      $template = $send->message['template'];      $template = $send->message['admin']['template'];
305    }    }
306    elseif (isset($send->template)) {    elseif (isset($send->template)) {
307      $template = $send->template;      $template = $send->template;
# Line 309  function send_message_compose_element_pr Line 311  function send_message_compose_element_pr
311    }    }
312    $template = send_template_load($template);    $template = send_template_load($template);
313    
314    $element['template'] = array(    $element['admin'] = array(
315        '#prefix' => '<div id="message-admin">',
316        '#suffix' => '</div>',
317      );
318    
319      $element['admin']['template'] = array(
320      '#type'          => 'select',      '#type'          => 'select',
321      '#title'         => t('Message template'),      '#title'         => t('Message template'),
322      '#options'       => $templates,      '#options'       => $templates,
323      '#default_value' => $template->stid,      '#default_value' => $template->stid,
324      '#access'        => count($templates) > 1,      '#access'        => count($templates) > 1,
325        '#parents' => array_merge($element['#parents'], array('template')),
326    );    );
327    $element['template_submit'] = array(    $element['admin']['template_submit'] = array(
328      '#type'          => 'submit',      '#type'          => 'submit',
329      '#value'         => t('Change template'),      '#value'         => t('Change template'),
330      '#access'        => $element['template']['#access'],      '#access'        => $element['template']['#access'],
331      '#submit'        => array('send_submit_refresh'),      '#submit'        => array('send_submit_refresh'),
332      '#ahah' => array(      '#ahah' => array(
333        'path' => 'send/js/send_form/'. $element['#parents'][0],        'path' => 'send/js/send_form/'. $element['#parents'][0] .'/content',
334        'wrapper' => $element['#id'] .'-wrapper',        'wrapper' => 'message-content',
335        'method' => 'replace',        'method' => 'replace',
336        'effect' => 'fade',        'effect' => 'fade',
337      ),      ),
338    );    );
339    
340    // Add an auto-submit action to the template selection.    // Add an auto-submit action to the template selection.
341    if ($element['template']['#access']) {    if ($element['admin']['template']['#access']) {
342      $js = 'Drupal.behaviors.sendMessageForm = function(context) {      $js = 'Drupal.behaviors.sendMessageForm = function(context) {
343        $("#'. $element['#id'] .'-template-submit").hide();        $("#'. $element['#id'] .'-admin-template-submit").hide();
344        $("select").change( function() {        $("select").change( function() {
345          $("#'. $element['#id'] .'-template-submit").mousedown();          $("#'. $element['#id'] .'-admin-template-submit").mousedown();
346          $("#'. $element['#id'] .'-template-submit").click();          $("#'. $element['#id'] .'-admin-template-submit").click();
347        });        });
348      }';      }';
349      drupal_add_js($js, 'inline');      drupal_add_js($js, 'inline');
# Line 348  function send_message_compose_element_pr Line 356  function send_message_compose_element_pr
356      $build_mode = $template->build_mode ? $template->build_mode : 'teaser';      $build_mode = $template->build_mode ? $template->build_mode : 'teaser';
357    }    }
358    
359    $element['build_mode'] = array(    $element['admin']['build_mode'] = array(
360      '#type' => 'select',      '#type' => 'select',
361      '#title' => t('Display nodes as'),      '#title' => t('Display nodes as'),
362      '#options' => send_template_build_modes(),      '#options' => send_template_build_modes(),
363      '#default_value' => $build_mode,      '#default_value' => $build_mode,
364      '#access' => ($template->build_mode_editable == 1) && $element['nids']['#value'],      '#access' => ($template->build_mode_editable == 1) && $element['nids']['#value'],
365        '#parents' => array_merge($element['#parents'], array('build_mode')),
366    );    );
367    
368    if ($template->subject_editable) {    if ($template->subject_editable) {
369      if (!$subject = $send->message['subject']) $subject = $template->subject;      if (!$subject = $send->message['subject']) $subject = $template->subject;
370      $element['subject_display'] = array(      $element['content']['subject_display'] = array(
371        '#type' => 'textfield',        '#type' => 'textfield',
372        '#title' => t('Subject'),        '#title' => t('Subject'),
373        '#default_value' => $subject,        '#default_value' => $subject,
374          '#parents' => array_merge($element['#parents'], array('subject_display')),
375      );      );
376      $element['subject'] = array(      $element['content']['subject'] = array(
377        '#type' => 'value',        '#type' => 'value',
378        '#value' => $subject,        '#value' => $subject,
379          '#parents' => array_merge($element['#parents'], array('subject')),
380      );      );
381    }    }
382    else {    else {
383      $element['subject'] = array(      $element['content']['subject'] = array(
384        '#type' => 'markup',        '#type' => 'markup',
385        '#value' => $template->subject,        '#value' => $template->subject,
386        '#prefix' => '<h4>',        '#prefix' => '<h4>',
387        '#suffix' => '</h4>',        '#suffix' => '</h4>',
388      );      );
389    }    }
   
   $element['content'] = array(  
     '#prefix' => '<div id="message-content">',  
     '#suffix' => '</div>',  
   );  
390    
391    // Respect the order that was sent through by table-dragging code.    // Respect the order that was sent through by table-dragging code.
392    if (isset($send->message['content'])) {    if (isset($send->message['content'])) {
393      foreach ($send->message['content'] as $key => $val) {      foreach ($send->message['content'] as $key => $val) {
394        $element['content'][$key] = array();        if (!in_array($key, array('subject', 'subject_display'))) {
395            $element['content'][$key] = array();
396          }
397      }      }
398    }    }
399    
# Line 416  function send_message_compose_element_pr Line 424  function send_message_compose_element_pr
424      $element['content']['node-'. $nid]['weight'] = array('#type' => 'hidden');      $element['content']['node-'. $nid]['weight'] = array('#type' => 'hidden');
425    }    }
426    
   // TODO make this conditional.  
427    $element['content']['#theme'] = 'send_draggable';    $element['content']['#theme'] = 'send_draggable';
428    
429    return $element;    return $element;
# Line 431  function send_message_edit_element_proce Line 438  function send_message_edit_element_proce
438    
439    if (!$send->message['body']) {    if (!$send->message['body']) {
440      $value = send_message_compose_element_set_value($element, $form_state);      $value = send_message_compose_element_set_value($element, $form_state);
441      $send->message['body'] = $value['#value'];      $send->message['body'] = $value['#value']['body'];
442    }    }
443    $element['subject'] = array(    $element['subject'] = array(
444      '#type' => 'textfield',      '#type' => 'textfield',
445      '#default_value' => $send->message['body']['subject'],      '#default_value' => $send->message['subject'],
446    );    );
447    $element['body'] = array(    $element['body'] = array(
448      '#type' => 'textarea',      '#type' => 'textarea',
449      '#default_value' => $send->message['body']['body'],      '#default_value' => $send->message['body'],
450      '#rows' => 50,      '#rows' => 30,
451    );    );
452    $element['format'] = filter_form(FILTER_FORMAT_DEFAULT);    $element['format'] = filter_form(FILTER_FORMAT_DEFAULT);
453      $element['content']['message']['content'] = array(
454        '#type' => 'hidden',
455        '#value' => $send->message['content']['message']['content'],
456      );
457    return $element;    return $element;
458  }  }
459    
# Line 452  function send_message_edit_element_proce Line 463  function send_message_edit_element_proce
463   */   */
464  function send_message_compose_element_set_value($element, &$form_state) {  function send_message_compose_element_set_value($element, &$form_state) {
465    $send    = $form_state['send'];    $send    = $form_state['send'];
466      if (!$send->message) return $element;
467    $message = $send->message['content']['message']['content'];    $message = $send->message['content']['message']['content'];
468    $subject = $send->message['subject'];    $subject = $send->message['subject'];
   $template = send_template_load($send->message['template']);  
469    $params  = $send->message;    $params  = $send->message;
470      $template = send_template_load($send->message['template']);
471    
472    $element['#value'] = array(    $element['#value'] = array_merge($send->message, array(
473      'subject' => theme('send_subject', $subject, $profile, $template, $params),      'subject' => theme('send_subject', $subject, $profile, $template, $params),
474      'body'    => theme('send_body', $message, $profile, $template, $params),      'body'    => theme('send_body', $message, $profile, $template, $params),
475    );      'content' => $send->message['content'],
476        'message' => $message,
477      ));
478    return $element;    return $element;
479  }  }

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.12

  ViewVC Help
Powered by ViewVC 1.1.2