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

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

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

revision 1.6, Fri May 22 15:23:16 2009 UTC revision 1.7, Wed Aug 26 17:48:04 2009 UTC
# Line 1  Line 1 
1  <?php // $Id: news.form.inc,v 1.5 2009/05/20 21:06:53 vauxia Exp $  <?php // $Id: news.form.inc,v 1.6 2009/05/22 15:23:16 vauxia Exp $
2    
3  /**  /**
4   * @file   * @file
# Line 10  Line 10 
10   * The form page for user-initiated Newsletter activities.   * The form page for user-initiated Newsletter activities.
11   */   */
12  function news_form($form_state, $nids = array()) {  function news_form($form_state, $nids = array()) {
13      if (!$send = $form_state['send']) {
14        $send = (object) send_profile_load('news');
15        $send->nids = ($nids && !is_array($nids)) ? explode(' ', $nids) : $nids;
16        $send->from_element = 'news_contact';
17        $send->to_element = 'news_mlm';
18        $send->message_element = $nids ? 'send_message_compose': 'send_message_edit';
19        $send->action = request_uri();
20      }
21    
22      if (isset($form_state['clicked_button'])) {
23        if ($form_state['clicked_button']['#value'] == t('Edit')) {
24          $send->message_element = 'send_message_edit';
25        }
26        elseif ($form_state['clicked_button']['#value'] == t('Compose')) {
27          $send->message_element = 'send_message_compose';
28        }
29      }
30    
31    $form = array(    $form = array(
32      '#send_element' => 'send',      '#send_element' => 'send',
33    );    );
34    
35      // Ensure that the *original* form action is used, not an AHAH-rewritten one.
36      $form['#action'] = $send->action;
37    
38    $form['send'] = array(    $form['send'] = array(
39      '#type' => 'send',      '#type' => 'send',
40      '#send_profile' => 'news',      '#send' => $send,
41      '#send_nids' => ($nids && !is_array($nids)) ? explode(' ', $nids) : $nids,    );
42      '#send_options' => array(  
43        'from_element' => 'news_contact',    $form['extra']['compose'] = array(
44        'to_element' => 'mlm_send',      '#type' => 'submit',
45      ),      '#value' => t('Compose'),
46        '#submit' => array('send_submit_refresh'),
47      );
48    
49      $form['extra']['edit'] = array(
50        '#type' => 'submit',
51        '#value' => t('Edit'),
52        '#submit' => array('send_submit_refresh'),
53    );    );
54    
55    $form['buttons']['test'] = array(    $form['buttons']['test'] = array(
# Line 37  function news_form($form_state, $nids = Line 65  function news_form($form_state, $nids =
65  }  }
66    
67  /**  /**
68     * A #process handler for the news_mlm form element.
69     */
70    function news_mlm_element_process($element, $edit, &$form_state, $form) {
71      foreach (mlm_lists('Announcement') as $list => $mlm) {
72        $options[$list] = $mlm->title;
73      }
74      $name = $element['#name'];
75      if (isset($form_state['send']->{$name}['lists'])) {
76        $selected = $form_state['send']->{$name}['lists'];
77      }
78      elseif (isset($element['#value']['lists'])) {
79        $selected = $element['#value']['lists'];
80      }
81      else {
82        $selected = array();
83      }
84      $element['lists'] = array(
85        '#type'          => 'checkboxes',
86        '#title'         => t('Mailing lists'),
87        '#options'       => $options,
88        '#default_value' => $selected,
89        '#required'      => $element['#required'],
90      );
91      return $element;
92    }
93    
94    /**
95     * An #after_build handler for a the news_mlm element.
96     * Set the element value in a format that will be recognized by send_contact.
97     */
98    function news_mlm_element_set_value($element, &$form_state) {
99      $lists = array();
100      if ($element['#value']) {
101        foreach ($element['#value']['lists'] as $lid => $status) {
102          if ($status) $lists[] = array('lid' => $lid);
103        }
104      }
105      $element['#value'] = $lists;
106      return $element;
107    }
108    
109    /**
110   * A #process handler for the news_contact form element.   * A #process handler for the news_contact form element.
111   */   */
112  function news_contact_element_process($element, $edit, &$form_state, $form) {  function news_contact_element_process($element, $edit, &$form_state, $form) {
# Line 58  function news_contact_element_process($e Line 128  function news_contact_element_process($e
128   */   */
129  function news_form_test_delivery($form, &$form_state) {  function news_form_test_delivery($form, &$form_state) {
130    global $user;    global $user;
131    $message = $form['send']['message']['#value'];    send_submit_refresh($form, $form_state);
132    mimemail($form['send']['from']['#value'][0], $user, $message['subject'], $message['body']);  
133      $send = $form_state['send'];
134      mimemail($send->from, $user, $send->message['subject'], $send->message['body']);
135    drupal_set_message(t('Test message sent to !mail', array('!mail' => $user->mail)));    drupal_set_message(t('Test message sent to !mail', array('!mail' => $user->mail)));
136  }  }

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

  ViewVC Help
Powered by ViewVC 1.1.2