По умолчанию формы создания материалов озаглавлены по шаблону "Создание материала [nodetype]". Код ниже, позволяет назначить каждому типу свой человекопонятный заголовок:
/**
* Preprocess function for page.tpl.php.
*/
function MODULENAME_preprocess_page() {
if (arg(0) == 'node' && arg(1) == 'add' && arg(2)) {
$titles = array(
'page' => 'Добавление страницы',
'article' => 'Добавление статьи',
'feedback' => 'Добавление отзыва',
);
if (isset($titles[arg(2)])) {
drupal_set_title($titles[arg(2)]);
}
}
}
Добавлено 20/07/2013: появился соответствующий модуль — Node Add Title.
Написанное актуально для
Drupal 7
Похожие записи
- Восстанавливаем позицию текстового курсора при ajax обновлении формы
- Отсылка на сервер дополнительных данных в системном автокомплите
- Разрешить сабмит формы с открытым автокомплитом (autocomplete)
- Модуль Auto-Dialog — показываем контент и формы в jQuery диалоге
- Как изменить сообщение, выводимое после создания материала
Комментарии
Тогда и для формы редактирования желательно тоже самое сделать. Возможно вместо hook_preprocess_page стоит использовать hook_form_BASE_FORM_ID_alter. Но способ все равно не гибкий. Все типы ноды жёстко в коде прописаны.
И кстати, есть еще String Overrides. Сам не пробовал, но судя по описанию должен решать такую задачу.
Не подскажете как такое сделать для Drupal 6
скорей всего так же
Если необходимо чтобы менялся заголовок формы создания и редактирования, необходимо делать так.
function mymodule_form_alter(&$form, $form_state, $form_id) {
if($form_id == 'mynodetype_node_form'){
$title = empty($form['nid']['#value']) ? 'Add a node' : 'Edit a node';
drupal_set_title($title);
}
}
Модератор, удалите предыдущий комментарий 5388. В том коде есть косяк. Этот тайтл будет и при редактировании ноды.
Я пробовал String Overrides использовать для этой цели - либо я не понял, как его использовать, либо оно не работает. Метод автора блога помог, спасибо!
Добавить комментарий