Вы здесь

Как создать поле-автосчетчик материалов?

0

Здравствуйте.
Имеется тип материала "Заказ" заголовок которого заполняется автоматически при помощи модуля "Automatic Entity Labels" по следующему образцу:

Заказ N-[node:nid] [site:current-date:short]

[node:nid] использую как счетчик заказов.

Создаю "Заказ". После сохранения материала "Заказ" должен произойти редирект на страницу этого материала, но модуль Pathauto генерирует такой вот url:
.../zakaz/zakaz-n-15-02-2016

На этот Url и происходит редирект. В итоге Друпал выдаёт системное сообщение

"Материал Заказ N- 15-02-2016 типа Заказ клиента был создан."

но целевую страницу найти не может:

"Страница не найдена
Страница "/zakaz/zakaz-n-15-02-2016" не найдена."

Захожу в содержимое и вижу что материал "Заказ" действительно создан но Титл у него "Заказ N-156 15-02-2016", а url ".../zakaz/zakaz-n-152-15-02-2016"

Понимаю, что на момент создания ссылки для Заказа у Друпала нет nid.

В гугле ничего найти не удалось. Пробовал Правилами делать редирект на другую страницу (например, представление всех заказов) - тоже чет какие-то ошибки возникли...
Пробовал модуль Serial Field - аналогично не работает.

Вопрос как решить проблему отсутствия nid? Может подскажете как иначе организовать счетчик?

Версия Drupal: 
7.x
Вопрос задан 15.02.2016 - 03:18

Огромное спасибо всем за советы. Решил так часть проблемы: в настройках Pathauto установил Шаблон для всех адресов материалов типа Заказ клиента

zakaz/[current-date:custom:dmy-His]

тем самым ушел от наличия nid в адресе материала, а какая там ссылка на ноду Заказа мне всё равно, по большому счету.

Счетчик Заказов сделал так в АвтоТитле:

Заказ N-<?php echo db_query("select count(*) from node where type = 'тип_моего_материала'")->fetchField(); ?>   [site:current-date:short]
Комментарий оставлен 16.02.2016 - 01:54

Ответы

0

nid - Это Node ID (ID Материала). Он отсутствует, потому что так и должно быть. В момент создания ноды nid получает целочисленное значение, на 1 больше чем у предыдущей ноды. ЭТО НИКАК НЕ ИЗМЕНИТЬ!

Токен в лейбле ставьте не [site:current-date:short], а время создания ноды.
Покажите токены в пачавто на тип ноды "Заказ".
Объясните, что за "счетчик заказов".

Ответ дан 15.02.2016 - 04:37
Аватар пользователя SAM
SAM
212
0

Счётчик заказов можно организовать с помощью rules и модуля https://www.drupal.org/project/rules_set_site_variables(или вручную переменные задавать с помощью php-кода).

В этой переменной можете хранить номер заказа и при создании ноды прибавлять к этой переменной 1.

Ответ дан 15.02.2016 - 08:58
Аватар пользователя shu
shu
155
0

rules, событие: После сохранения нового материала, действие: Установить значение

Ответ дан 15.02.2016 - 15:31