/[drupal]/contributions/modules/override_node_options/override_node_options.module
ViewVC logotype

Diff of /contributions/modules/override_node_options/override_node_options.module

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

revision 1.5, Mon Dec 8 22:01:40 2008 UTC revision 1.5.2.4, Tue Apr 7 10:06:41 2009 UTC
# Line 1  Line 1 
1  <?php  <?php
2  // $Id: override_node_options.module,v 1.4 2008/12/06 22:29:28 timmillwood Exp $  // $Id:
3    
4  /**  /**
5   * @file   * @file
# Line 132  function override_node_options_admin_set Line 132  function override_node_options_admin_set
132  function override_node_options_form_alter(&$form, $form_state, $form_id) {  function override_node_options_form_alter(&$form, $form_state, $form_id) {
133    if (isset($form['type']) && $form['type']['#value'] .'_node_form' == $form_id && !user_access('administer nodes')) {    if (isset($form['type']) && $form['type']['#value'] .'_node_form' == $form_id && !user_access('administer nodes')) {
134      $node = $form['#node'];      $node = $form['#node'];
135    
136        /* make sure the preview shows the correct values */
137        if($node->op == 'Preview') {
138          _override_node_options_apply_keys($node);
139        }
140    
141      if(user_access('override ' . $form['type']['#value'] . ' published option') || user_access('override ' . $form['type']['#value'] . ' promote to front page option') || user_access('override ' . $form['type']['#value'] . ' sticky option') || user_access('override ' . $form['type']['#value'] . ' revision option')){      if(user_access('override ' . $form['type']['#value'] . ' published option') || user_access('override ' . $form['type']['#value'] . ' promote to front page option') || user_access('override ' . $form['type']['#value'] . ' sticky option') || user_access('override ' . $form['type']['#value'] . ' revision option')){
142    
143      $form['options'] = array(      $form['options'] = array(
144            '#type' => 'fieldset',            '#type' => 'fieldset',
145            '#title' => t('Publishing options'),            '#title' => t('Publishing options'),
146            '#collapsible' => variable_get('override_node_options_collapsible', 1),            '#collapsible' => variable_get('override_node_options_pocollapsible', 1),
147            '#collapsed' => variable_get('override_node_options_collapsed', 1), '#weight' => 25);            '#collapsed' => variable_get('override_node_options_pocollapsed', 1), '#weight' => 25);
148      }      }
149      if(user_access('override ' . $form['type']['#value'] . ' published option')){      if(user_access('override ' . $form['type']['#value'] . ' published option')){
150            $form['options']['override_publishing_status']   = array(            $form['options']['override_publishing_status']   = array(
# Line 171  function override_node_options_form_alte Line 176  function override_node_options_form_alte
176      $form['author'] = array(      $form['author'] = array(
177            '#type' => 'fieldset',            '#type' => 'fieldset',
178            '#title' => t('Authoring information'),            '#title' => t('Authoring information'),
179            '#collapsible' => variable_get('override_node_options_collapsible', 1),            '#collapsible' => variable_get('override_node_options_aicollapsible', 1),
180            '#collapsed' => variable_get('override_node_options_collapsed', 1), '#weight' => 20);            '#collapsed' => variable_get('override_node_options_aicollapsed', 1), '#weight' => 20);
181      }      }
182      if(user_access('override ' . $form['type']['#value'] . ' authored by option')){      if(user_access('override ' . $form['type']['#value'] . ' authored by option')){
183            $form['author']['override_authored_by'] = array(            $form['author']['override_authored_by'] = array(
184            '#type' => 'textfield',            '#type' => 'textfield',
185            '#title' => t('Authored by'),            '#title' => t('Authored by'),
186            '#maxlength' => 60,            '#maxlength' => 60,
187            '#default_value' => $node->name ? $node->name : '',            '#default_value' => $node->name,
188            '#weight' => -1,            '#weight' => -1,
189            '#description' => t('Leave blank for %anonymous.', array('%anonymous' => variable_get('anonymous', t('Anonymous')))),            '#description' => t('Leave blank for %anonymous.', array('%anonymous' => variable_get('anonymous', t('Anonymous')))),
190            );            );
# Line 224  function override_node_options_form_alte Line 229  function override_node_options_form_alte
229  }  }
230    
231    
232  /**  function _override_node_options_apply_keys(&$node){
233   * Implementation of hook_nodeapi().      $keys = array(
  */  
 function override_node_options_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {  
   switch ($op) {  
     case 'presave':  
       // Allow users with 'override node publishing options' to change node  
       // options.  
       // TODO: Once in core, remove adminster nodes check.  
       if (!user_access('administer nodes')) {  
         $keys = array(  
234            'override_publishing_status' => 'status',            'override_publishing_status' => 'status',
235            'override_publishing_promote' => 'promote',            'override_publishing_promote' => 'promote',
236            'override_publishing_sticky' => 'sticky',            'override_publishing_sticky' => 'sticky',
237            'override_publishing_revision' => 'revision'            'override_publishing_revision' => 'revision'
238          );          );
239    
240            $options = variable_get('node_options_' . $node->type, NULL);
241            if($options){
242            foreach ($options as $option){
243                $default->$option = $option;
244            }
245            }
246    
247          foreach ($keys as $override_key => $real_key) {          foreach ($keys as $override_key => $real_key) {
248            if (isset($node->$override_key)) {            if (isset($node->$override_key)) {
249              $node->$real_key = $node->$override_key;              $node->$real_key = $node->$override_key;
250            }            }
251          }             elseif (isset($default->$real_key)) {
252          if(user_access('override authored on option')){                    $node->$real_key = TRUE;
253                      }
254                  }
255    
256          // Node creation date override          // Node creation date override
257          if ($node->date !== $node->override_authored_on || !empty($node->override_authored_on)) {          if ($node->date !== $node->override_authored_on || !empty($node->override_authored_on)) {
258             $node->date = $node->override_authored_on;
259           $node->created = !empty($node->override_authored_on) ? strtotime($node->override_authored_on) : time();           $node->created = !empty($node->override_authored_on) ? strtotime($node->override_authored_on) : time();
260          }          }
261          }  
262          if ($node->name !== $node->override_authored_by) {  
263            if (!empty($node->override_authored_by)) {            if (!empty($node->override_authored_by)) {
264              $account = user_load(array('name' => $node->override_authored_by));              $account = user_load(array('name' => $node->override_authored_by));
265                $node->name = $account->name;
266              $node->uid = $account->uid;              $node->uid = $account->uid;
267            }            }
268            else {            else {
269                $node->name = "";
270              $node->uid = 0;              $node->uid = 0;
271            }            }
         }  
   
   
272    
273    
274    }
275    
276    /**
277     * Implementation of hook_nodeapi().
278     */
279    function override_node_options_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
280      switch ($op) {
281        case 'presave':
282          // Allow users with 'override node publishing options' to change node
283          // options.
284          // TODO: Once in core, remove adminster nodes check.
285          if (!user_access('administer nodes')) {
286    
287            _override_node_options_apply_keys($node);
288    
289        }        }
290        break;        break;
291    }    }

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.5.2.4

  ViewVC Help
Powered by ViewVC 1.1.2