Надо вывести в тайтл следующую конструкцию: Название документа | Тип документа | Имя сайта
По описанию, да и по содержимому страницы настроек модуль Page Title вписался идеально, но возникла проблема: тайтл меняется только на странице редактирования ноды, а при просмотре документа остаётся прежним. При этом настройки модуля для дефолтного заголовка на него влияют (например, если убрать оттуда название сайта и оставить только тайтл самой страницы, то на странице ноды в тайтле останется лишь её название).
В чём может быть проблема?
UPDATE: модуль так и не заработал, так что отказался от него. Ниже, в комментариях код решения - сниппет для вставки в template.php вашей темы
Комментарии
Можно ли эту проблему решить как-то иначе? Подскажите пример. Знаю, что есть решившие, искал по сайту. Вот только результатом никто не поделился
Решение проблемы:
<?php
/* меняем название темы на своё */
function НазваниеТемыСайта_preprocess_page(&$variables) {
if (drupal_get_title()) {
$head_title = array(strip_tags(drupal_get_title()));
/* Определяем, находимся ли мы на странице документа */
if (arg(0) == 'node' && is_numeric(arg(1))) {
$nid = arg(1);
$node = node_load(array('nid' => $nid));
$type = $node->type;
/*Машинное название типа документа(меняем на своё)*/
if ($node->type == 'news') {
/*"Человекочитабельное" название типа документа
(также меняем на своё)*/
$type = t('Новости');
$head_title[] = $type;
}
}
$head_title[] = variable_get('site_name', 'Drupal');
} /* Далее стандартная часть: то, что выводится
если мы не на странице документа */
else {
$head_title = array(variable_get('site_name', 'Drupal'));
if (variable_get('site_slogan', '')) {
$head_title[] = variable_get('site_slogan', '');
}
}
/* Здесь определяется разделитель для составляющих тайтла.
Палку можно заменить на что-то иное */
$variables['head_title'] = implode(' | ', $head_title);
}
?>
Данный код нужно поместить в template.php
Поменять название темы и типов документа на свои. Участок кода, отвечающий за определение типа материала и вывод соответствующего текста можно копировать, подставляя значения других типов (если вам требуется переопределить вывод для нескольких типов документов).
Приветствуются доработка, особенно в плане вывода человеческого названия типа материала непосредственно через переменные, а не вручную.