drupal установил заголовок, не устанавливая переменную $title
Я пытаюсь использовать drupal_set_title()
в своем node.tpl.php но текст, для которого я устанавливаю заголовок, отображается только в $head_title
(html.tpl.php
) переменная, а не переменная $title. Переменная $title по-прежнему имеет значение заголовка узла.
Это в Drupal 7. Я использовал drupal_set_title()
несколько раз, как это в Drupal 6, и это сработало отлично.
Это сломано в D7?
Вот как он используется в node--news.tpl.php
:
$actual_title = $title; // save for later use
drupal_set_title('News');
2 answers
К тому времени, как вы нажмете node.tpl.php слишком поздно задавать заголовок, так как $head_title
уже задано в template_process_html() и переменная $head_title
уже выведена.
Вам нужно будет использовать template_preprocess_node() или аналогичный, чтобы задать нужный заголовок.
По-видимому, пытается установить заголовок в node.tpl.php слишком поздно в порядке выполнения. То же самое относится и к template_preprocess_node()
. Вместо этого он может быть установлен в template_preprocess_page
:
function mytheme_preprocess_page(&$vars){
if (isset($vars['node']) && $vars['node']->type == 'news'){
drupal_set_title('News');
}
}