Node displays: racing condition in preprocess_hooks
Node displays implements nd_preprocess_node so all data for a node can be rendered into a node region. However, as identified and discussed on http://drupal.org/node/570592, a themer/developer can implement other preprocess functions (see http://drupal.org/node/223430) which will be called later in the theming process. This can cause situations where your data isn't up to date. To overcome this, you need to do 2 things:
1) Paste following snippet at the bottom of the preprocess_hook function.
/**
* Node displays preprocess function.
*/
if (function_exists('_nd_preprocess_node') && variable_get('nd_preprocess_override', FALSE)) {
_nd_preprocess_node($vars, $hook);
}
In case the preprocess function lives in a contrib module and it does not exists in template.php of your default theme, add following snippet into that file:
function phptemplate_preprocess_node(&$vars, $hook) {
/**
* Node displays preprocess function.
*/
if (function_exists('_nd_preprocess_node') && variable_get('nd_preprocess_override', FALSE)) {
_nd_preprocess_node($vars, $hook);
}
}
2) Open settings.php and add following variable:
$conf['nd_preprocess_override'] = TRUE;
This will make sure nd_preprocess_node in the module will not fire the preprocess helper function, but will be called later on.
Help improve this page
You can:
- Log in, click Edit, and edit this page
- Log in, click Discuss, update the Page status value, and suggest an improvement
- Log in and create a Documentation issue with your suggestion