Как изменить заголовок на странице добавления какой либо ноды - site.ru/node/add/11111
Сейчас в переводах указано так - Создание материала @name
То есть заголовок формы добавления типа материала «Статьи» звучит так - Создание материала Статьи
Нужно, чтобы заголовки были такие: Создать [название типа материала в Винительном падеже в ед. числе]. Например: Создать статью. Кстати, на данном сайте это реализовано (https://drupal.ru/node/add), но тут походу просто название типов материалов изначально прописываются в дательном падеже, а в переводах - Создать @name
я прав?
Комментарии
Сделайте hook_form_alter и назовите как вам надо
Нашел такой код;
<?php
/**
* Change the title prefix on all the node add and edit forms.
*
*/
function mytheme_form_alter(&$form, &$form_state, $form_id) {
switch ($form_id) {
case (isset($form['type']) && $form['type']['#value'] . '_node_form'):
if ($form['nid']['#value']) {
drupal_set_title("Change " . $form['title']['#default_value']);
}
else {
drupal_set_title("New " . ucfirst($form['type']['#value']));
}
break;
}
}
?>
Источник:
https://api.drupal.org/comment/63228#comment-63228
Но изменений нет, что я не так делаю?
mytheme не забыли на название своей темы/модуля заменить?
нет))) забыл, что у меня админская тема другая, по этому изменений я не видел)). Код работает.
В форм_альтере - $form['#after_build'][] = ...
А там уже логика с заголовком, иначе терять его будете при валидации/ошибках.
Да Вы правы, заголовок слетает при валидации. Можете на примере этого кода показать, как это сделать?
Пример:
<?php
function realty_ads_form_realty_node_form_alter(&$form, &$form_state, $form_id) {
$form['#after_build'][] = 'realty_ads_form_modern';
}
function
realty_ads_form_modern($form, &$form_state) {if (isset($form['#node_edit_form'])) {
if (!isset($form['#node']->nid)) {
$title = t('New ...');
}
else {
$title = t('Change ...');
}
drupal_set_title($title);
}
return $form;
}
?>
P.S. Код чуть подправить, наверно нужно, т.к. у меня еще под крошки и кнопки вывод был.
А такой вопрос, где вообще используется название типа материала? Если только в создании/редактировании и в сообщениях, то может действительно просто в нужном падеже создавать тип материала и в переводах поправить?