我已使用drupal中的表单将表单字段添加到内容类型。有没有办法在节点预览中看到这些字段?我只能在节点预览中看到使用cck添加的字段。
答案 0 :(得分:1)
直到Drupal 6,实现hook_nodeapi,传递'view'
作为$op
的参数。在Drupal 7中,实现hook_node_view。
答案 1 :(得分:0)
查看节点时调用的挂钩是Oswald报告的挂钩。
知道预览节点的唯一函数是node_preview(),或node_preview()
使用以下代码调用的theme_node_preview():
// Drupal 6.
if (!form_get_errors()) {
$cloned_node = drupal_clone($node);
$cloned_node->build_mode = NODE_BUILD_PREVIEW;
$output = theme('node_preview', $cloned_node);
}
// Drupal 7.
if (!form_get_errors()) {
$node->in_preview = TRUE;
$output = theme('node_preview', array('node' => $node));
unset($node->in_preview);
}
theme_node_preview(),然后使用以下代码调用node_view():
// Drupal 6.
$output .= '<h3>' . t('Preview trimmed version') . '</h3>';
$output .= node_view(drupal_clone($node), 1, FALSE, 0);
$output .= '<h3>' . t('Preview full version') . '</h3>';
$output .= node_view($node, 0, FALSE, 0);
// Drupal 7.
$elements = node_view(clone $node, 'teaser');
$trimmed = drupal_render($elements);
$elements = node_view($node, 'full');
$full = drupal_render($elements);
当node_view()
调用hook_nodeapi()
(或hook_node_view()
)时,这些钩子实现能够知道节点是否正在预览,检查$node->build_mode
(或$node->in_preview
})。在Drupal 6中,模块应检查$node->build_mode
是否等于NODE_BUILD_PREVIEW
。