Я добавил поля формы к типу контента, используя функцию изменения формы в drupal. Есть ли способ увидеть эти поля в предварительном просмотре узла? Я могу видеть только поля, добавленные с помощью cck в предварительном просмотре узла.
Поля Drupal добавлены с помощью form_alter для отображения в предварительном просмотре узла
comment
API значительно меняется между основными версиями. Какой вы используете?
- person Oswald   schedule 27.05.2011
Ответы (2)
Вплоть до Drupal 6 реализуйте hook_nodeapi, передавая 'view'
в качестве аргумента для $op
. В Drupal 7 реализуйте hook_node_view < / а>.
person
Oswald
schedule
27.05.2011
Это сработало .. Спасибо .. Могу я узнать, как эти значения могут быть присвоены полям в предварительном просмотре.
- person Ram; 27.05.2011
О хуках, вызываемых при просмотре узла, сообщает Освальд.
Единственная функция, которая знает, когда выполняется предварительный просмотр узла, - это node_preview () или theme_node_preview (), которая вызывается 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
.
person
apaderno
schedule
27.05.2011