DARTHARTH

Добавление поля артикула на Drupal 7 с начальным значением

Сегодня решаем следующую задачу — имеется сайт на Drupal 7, где необходимо для нод добавить поле арикула, который будет начинаться с определенной нумерации. В последующем, имея такой номер, можно сделать и поиск по данному полю, но в этой статье рассмотрим только создание такого поля.

Итак, нам нужно для нод типа Товар добавить числовое поле которое будет выводить артикул, начиная с 1000. Т.е. самая первая созданная нода товара будет 1000, вторая 10001 и т.д. Плюс ко всему нам нужно, что бы начало нумерации шло от более старых нод и как вариант решения пришла идея к нашему начальному номеру добавлять айди ноды. Таким образом у нас будет добавляться планомерно артикул и он будет уникален.

Решение

Для реализации подобной задачи на восьмом друпале использовался модуль Serial Field, но его релизи для седьмого друпала ни в какую не хотели нормально работать — не было нужных настроек поля для задания начального значения. Было множество подобных ошибок на странице модуля на drupal.org, но решений никаких не было найдено.

После этого был найден модуль Computed Field, который решил проблему.

После установки идем в наш тип материала и добавляем новое поле с типом «Вычисляемое» и на странице настройки поля в разделе Computed Code (PHP) делаем такую запись

$id = $entity->vid;
$def = '1000';
$entity_field[0]['value'] = $id + $def;

В первой строке мы получаем айди нашей ноды, во второй — задаем начальный наш номер и в третьей указываем, что само значение нашего поля это сумма айди и начального числа.

Таким образом у нас все новые ноды будут с уже созданным числом. Старые же можно либо вручную открыть и сохранить страницу, для генерации нашего артикула, либо пройтись через views bulk (скажем снять с публикации или опубликовать по-новой).

Поделиться страницей в

6 мнений к “Добавление поля артикула на Drupal 7 с начальным значением

  1. Реально модуль классный и если немного разобраться в API Drupal то практически получится тот же известный Aparser ток без многопотока. Пишу может кому то пригодиться такая инфа сам просто мучался долго итак есть поле стартовая страница в нее можно указать не более 65 535 символов но когда урлов много и маску невозможно указать че делать? Заходим в phpmyadmin находим таблицу: parser_jobs — структура — start_url меняем значение text на longtext ! Все добавляем но не более 4 294 967 295 символов.

  2. Я видал несколько сродных веб- сайтов. Но в данный момент сообразил одну существенную вещь — представленный идеальный!

  3. Не знаю глупый вопрос или нет, но задать хочется: Когда ждать сиё чудо для Drupal 8!? А то и темы коммерческие уже появляются. Это очень сложно? А то у меня есть простенькие сайтики ещё на 5-ке 🙂 Вот и наконец то решился их перенести так уж на 8-ку! 🙂

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Scroll Up