Добрый день,
Может кому-то пригодится
Для автоматической генерации заголовка нужно взять модуль Automatic Nodetitles http://drupal.org/project/auto_nodetitle
он делает несколько вещей во-первых отключает обязательное заполнение заголовка, во-вторых можно сделать так чтоб поле заголовока вообще не выводился и заполнялось само и третье если поле осталось пустое заполнилось само.
Если нужно сделать так чтоб заголовок создавался автоматически и при этом был уникальный например имел какой-то буквенный индекс и номер вида АК-123 за нумерацию возьмем номер ноды. Вся загвоздка в том что на момент генерации заголовка нет еще номера у текущей ноды на drupal.org предложили брать индекс из базы и прибавлять один.
<?php
$name = db_prefix_tables('{node}_nid');
$id = db_result(db_query("SELECT id FROM {sequences} WHERE name = '%s'", $name)) + 1;
return $id;
?>
а если нужно перед цифрами добавить буквенный индекс
то нужно его изменить вот так
<?php
$name = db_prefix_tables('{node}_nid');
$id = db_result(db_query("SELECT id FROM {sequences} WHERE name = '%s'", $name)) + 1;
return "AК-".$id;
?>
хотелось сделать еще такую штуку чтоб заголовок создавался в зависимости от значения какого-то поля из формы
попробовал такой код
но он не работает может кто подскажет где ошибка
<?php
echo "#".$node->field_lev[0]['view']."#";
if ($node->field_lev[0]['view'])
{
$name = db_prefix_tables('{node}_nid');
$id = db_result(db_query("SELECT id FROM {sequences} WHERE name = '%s'", $name)) + 1;
return "EAK-".$id;
}
else { $name = db_prefix_tables('{node}_nid');
$id = db_result(db_query("SELECT id FROM {sequences} WHERE name = '%s'", $name)) + 1;
return "AK-".$id;
}?>
в 2 сторке отладочный код в результате получается название таким ##AK-125 т.е на момент создание заголовка переменная не имеет значений и все происходит по ветке else
может это можно как-то из браузера вытащить ее значение
Буду благодарен за любую подсказку хоть в каком направление копать
Комментарии
а по умолчанию оно заполняется само - первыми словами из текста, или нет?
Решение было сохранено на сайте DrupalCookBook.ru:
Автогенерация заголовка документа.
Авторы, предложившие решения, также указаны в сохранённой статье.
Мне тоже нужно вывести взаголовок значения полей, а именно заданные при создании ноды термины.
Похоже, что средствами Automatic Nodetitles и Token это реализовать невозможно.
А нельзя ли сделать это в шаблонах?
есть такая идея но я ее представляю теоретически так как в php не силен можно запускать скрипт время от времени который будет делать выборку по базе и переименовать ноды
то alisa
если оставить поле пустым он вставляет не слова из текста а тип материала page story
Пишет в заголовок номер 1.
В чем проблема не пойму.
может дело в том, что у меня 6.10?
а как тут вижу для 5.х
Возможно я не в свой огород лезу, я так понимаю нужно место где можно собрать все данные связанные с узлом, обработать их и выдать как заголовок страницы. Я думаю, что можно было бы использовать стандартные возможности функции _phptemplate_variables($hook, $vars) в template.php:
В первой части используя данные из массива $vars можно создать новый заголовок и сохранить его где нибудь, а во второй части подменить стандартный заголовок на сохраненный.
Например, в заголовке узла можно сохранить собственно какой нить шаблон для генерации заголовка и использовать его в первой части, взяв его из $vars['title'].