/[drupal]/contributions/modules/nodereferrer_create/create_referrer.php
ViewVC logotype

Diff of /contributions/modules/nodereferrer_create/create_referrer.php

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

revision 1.1.2.1, Fri Jun 27 12:38:14 2008 UTC revision 1.1.2.2, Tue Sep 9 11:11:13 2008 UTC
# Line 26  function _nodereferrer_create_create($no Line 26  function _nodereferrer_create_create($no
26    global $user;    global $user;
27    
28    drupal_set_title(check_plain($node->title));    drupal_set_title(check_plain($node->title));
29    _nodereferrer_create_alter_signal(array(    _nodereferrer_create_referrer_signal(array(
30      'type' => $referrer_type,      'type'  => $referrer_type,
31      'field' => $node->referrers[$referrer_field_idx]['referrence'][$referrer_type][$referrence_field_idx]['field_name'],      'field' => $node->referrers[$referrer_field_idx]['referrence'][$referrer_type][$referrence_field_idx]['field_name'],
32      'nid' => $node->nid,      'nid'   => $node->nid,
33      'add' => false,      'title' => $node->title,
34        'add'   => false,
35    ));    ));
36    
37    // Make sure we have the pages we want    // Make sure we have the pages we want
# Line 55  function _nodereferrer_create_create_acc Line 56  function _nodereferrer_create_create_acc
56   * @return   * @return
57   *   if no param is passed, return the stored array   *   if no param is passed, return the stored array
58   */   */
59  function _nodereferrer_create_alter_signal($set=NULL) {  function _nodereferrer_create_referrer_signal($set=NULL) {
60    static $return;    static $return;
61    if ($set) {    if ($set) {
62      $return = $set;      $return = $set;
# Line 66  function _nodereferrer_create_alter_sign Line 67  function _nodereferrer_create_alter_sign
67  /**  /**
68   * Alter the node_add form to add our default values   * Alter the node_add form to add our default values
69   */   */
70  function nodereferrer_create_form_alter(&$form, $form_state, $form_id) {  function _nodereferrer_create_referrer_alter(&$form, $form_state, $form_id) {
71    if ($signal = _nodereferrer_create_alter_signal() AND $form_id == $signal['type'].'_node_form') {    if ($signal = _nodereferrer_create_referrer_signal() AND $form_id == $signal['type'].'_node_form') {
72        // Add default title if required
73        if (variable_get('nodereferrer_create_sync_title', 0) && isset($form['title'])) {
74          $form['title']['#default_value'] = $signal['title'];
75        }
76    
77        // Add reference
78      if (!$signal['add'] && isset($form[$signal['field']]['#default_value'])) {      if (!$signal['add'] && isset($form[$signal['field']]['#default_value'])) {
79        $form[$signal['field']]['#default_value'] = array('nid' => $signal['nid']);        $form[$signal['field']]['#default_value'] = array('nid' => $signal['nid']);
80      } else {      } else {
# Line 82  function nodereferrer_create_form_alter( Line 89  function nodereferrer_create_form_alter(
89          $form[$signal['field']][$idx]['#default_value'] = array('nid' => $signal['nid']);          $form[$signal['field']][$idx]['#default_value'] = array('nid' => $signal['nid']);
90        }        }
91      }      }
92    
93        // Syncronise other fields if required
94        $list = trim(variable_get('nodereferrer_create_sync_fields', ''));
95        if ($list) {
96          $list = explode("\n", $list);
97          $node = node_load($signal['nid']);
98          foreach ($list as $rule) {
99            if (!preg_match('/^\s*(.+)\s+:\s+(.+)$/', $rule, $matches)) {
100              continue;
101            }
102            $source = trim($matches[1]);
103            $dest   = trim($matches[2]);
104            if (!array_key_exists($source, $node)) {
105              continue;
106            }
107            if (!array_key_exists($dest, $form)) {
108              continue;
109            }
110            $form[$dest]['#default_value'] = $node->$source;
111          }
112        }
113    }    }
114  }  }
115    

Legend:
Removed from v.1.1.2.1  
changed lines
  Added in v.1.1.2.2

  ViewVC Help
Powered by ViewVC 1.1.2