Index: nodereference.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/cck/Attic/nodereference.module,v retrieving revision 1.39.2.43 diff -u -p -r1.39.2.43 nodereference.module --- nodereference.module 5 Nov 2008 19:38:03 -0000 1.39.2.43 +++ nodereference.module 14 Nov 2008 01:53:11 -0000 @@ -76,6 +76,29 @@ function nodereference_field_settings($o '#required' => FALSE, '#description' => t('Provide a comma separated list of arguments to pass to the view.'), ); + $form['advanced']['code'] = array( + '#type' => 'fieldset', + '#title' => t('PHP code'), + '#collapsible' => TRUE, + '#collapsed' => empty($field['advanced_view_args_php']), + ); + if (user_access('Use PHP input for field settings (dangerous - grant with care)')) { + $form['advanced']['code']['advanced_view_args_php'] = array( + '#type' => 'textarea', + '#title' => t('Code'), + '#default_value' => !empty($field['advanced_view_args_php']) ? $field['advanced_view_args_php'] : '', + '#rows' => 6, + '#description' => t('Advanced Usage Only: PHP code that returns a keyed array of view arguments. Should not include <?php ?> delimiters. If this field is filled out, the array returned by this code will override the view arguments above.'), + ); + } + else { + $form['advanced']['code']['markup_advanced_view_args_php'] = array( + '#type' => 'item', + '#title' => t('Code'), + '#value' => !empty($field['advanced_view_args_php']) ? ''. check_plain($field['advanced_view_args_php']) .'' : t('<none>'), + '#description' => empty($field['advanced_view_args_php']) ? t("You're not allowed to input PHP code.") : t('This PHP code was set by an administrator and will override the allowed values list above.'), + ); + } } } return $form; @@ -85,6 +108,7 @@ function nodereference_field_settings($o if (module_exists('views')) { $settings[] = 'advanced_view'; $settings[] = 'advanced_view_args'; + $settings[] = 'advanced_view_args_php'; } return $settings; @@ -407,7 +431,12 @@ function _nodereference_potential_refere // arguments for the view $view_args = array(); - if (isset($field['advanced_view_args'])) { + if (isset($field['advanced_view_args_php'])) { + ob_start(); + $view_args = eval($field['advanced_view_args_php']); + ob_end_clean(); + } + elseif (isset($field['advanced_view_args'])) { // TODO: Support Tokens using token.module ? $view_args = array_map(trim, explode(',', $field['advanced_view_args'])); } @@ -595,4 +624,4 @@ function nodereference_node_from_noderef ); return $form; -} \ No newline at end of file +}