xandeadx.ru Блог музицирующего веб-девелопера

Drupal → Человечные заголовки у форм создания материалов

Опубликовано в

По умолчанию формы создания материалов озаглавлены по шаблону "Создание материала [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
Похожие записи

Комментарии RSS

Тогда и для формы редактирования желательно тоже самое сделать. Возможно вместо 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 использовать для этой цели - либо я не понял, как его использовать, либо оно не работает. Метод автора блога помог, спасибо!

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании