Index: nodereference.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/cck/modules/nodereference/nodereference.module,v retrieving revision 1.138.2.20 diff -u -p -r1.138.2.20 nodereference.module --- nodereference.module 15 Aug 2008 14:09:44 -0000 1.138.2.20 +++ nodereference.module 28 Aug 2008 18:22:39 -0000 @@ -125,6 +125,19 @@ function nodereference_field_settings($o '#required' => FALSE, '#description' => t('Provide a comma separated list of arguments to pass to the view.'), ); + // Add token list for view argument in advance setting. + if (module_exists('token')) { + $form['advanced']['token_help'] = array( + '#title' => t('View argument token replacement patterns'), + '#type' => 'fieldset', + '#collapsible' => TRUE, + '#collapsed' => TRUE, + '#description' => t('Prefer raw-text replacements for text to avoid problems with HTML entities!'), + ); + $form['advanced']['token_help']['help'] = array( + '#value' => theme('token_help', 'node'), + ); + } } } return $form; @@ -684,10 +697,22 @@ function _nodereference_potential_refere // Get arguments for the view. if (!empty($field['advanced_view_args'])) { - // TODO: Support Tokens using token.module ? + // Support for Tokens using token.module. + if(module_exists('token')) { + + // Get node ID from node being edited. + $matches = array(); + preg_match('`node/(.*)/edit`', $_SERVER['HTTP_REFERER'], $matches); + $nid = $matches[1]; + + // Load node and replace tokens using node information. + if(is_numeric($nid)) { + $node = node_load($nid); + $field['advanced_view_args'] = token_replace($field['advanced_view_args'], 'node', $node); + } + } $view_args = array_map('trim', explode(',', $field['advanced_view_args'])); - } - else { + } else { $view_args = array(); }