Index: cck_blocks.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/cck_blocks/cck_blocks.module,v retrieving revision 1.2.2.8 diff -u -r1.2.2.8 cck_blocks.module --- cck_blocks.module 4 Nov 2009 21:32:51 -0000 1.2.2.8 +++ cck_blocks.module 4 Dec 2009 13:26:22 -0000 @@ -86,20 +86,35 @@ $built_nodes[$nid] = $node; } - if (isset($built_nodes[$nid]->content[$delta])) { + if (!isset($fields[$delta]['display_settings']['parent']) && isset($built_nodes[$nid]->content[$delta])) { // evaluate tokens, if token module is installed if (module_exists('token')) { - $result = db_query("SELECT title FROM {blocks} WHERE delta = '".$delta."' "); - $object = db_fetch_object($result); - if($object->title){ - $block['title'] = token_replace($object->title,'node',$node); - } + $block['title'] = _cck_blocks_evaluate_token($delta, $node); } $block['subject'] = t($fields[$delta]['widget']['label'] ? $fields[$delta]['widget']['label'] : $delta); $block['content'] = drupal_render($built_nodes[$nid]->content[$delta]); } + elseif (isset($fields[$delta]['display_settings']['parent']) && isset($built_nodes[$nid]->content[$fields[$delta]['display_settings']['parent']]['group'][$delta])) { + // evaluate tokens, if token module is installed + if (module_exists('token')) { + $block['title'] = _cck_blocks_evaluate_token($delta, $node); + } + $block['subject'] = t($fields[$delta]['widget']['label'] ? $fields[$delta]['widget']['label'] : $delta); + $block['content'] = drupal_render($built_nodes[$nid]->content[$fields[$delta]['display_settings']['parent']]['group'][$delta]); + } } } return $block; -} \ No newline at end of file +} + +/* + * reusable function to replace tokens + */ +function _cck_blocks_evaluate_token($delta, $node) { + $result = db_query("SELECT title FROM {blocks} WHERE delta = '".$delta."' "); + $object = db_fetch_object($result); + if($object->title){ + return token_replace($object->title,'node',$node); + } +}