Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

Авто генерация поля CCK как значение артикул, так же проверка на уникальность данного поля

Авто генерация поля CCK как значение артикул, так же проверка на уникальность данного поля
, by

Добрый день! столкнулся с такой проблемой, создал тип материала, ему присвоил числовое поле под меткой артикул,  теперь нужно сделать автогенерацию этого поля при добавлении новой ноды данного типа материала, а так же надо проверку на уникальность данного поля, помогите решить данный вопрос ?

1 answer
votes: 612
Answer

Здравствуйте, вы можете использовать хук hook_node_insert($node), когда будете писать код в объекте ноды будет ваше поле, в которое вы можете вставить любое число. Например можно  взять нужный нам nid с помощью такого вот запроса:

http://php.net/manual/ru/function.mysql-insert-id.php

А в целом у каждого поля есть значение по умолчанию, куда можно токенами забить значение.

 

 


Проверку на уникальность тоже можно в этом хуке сделать. Написать запрос к бд с вашим значением поля, если в результате будет не пустой запрос, выводите ошибку, через drupal_set_error().


хорошая реализация в ubercart модулем Product Power Tools очень мне понравилась реализация автогенерации sku [term-id][nid], как-то можно подобное реализовать без применения уберкарта ?


http://drupal.org/project/token_field

Этот модуль посмотрите.


установил и что-то если честно не понял где и как настраивать, может вы знаете как игде настраивается ?


спасибо вышло:) разобрался! всё просто и легко оказалось!


так вот установил модуль всё понравилось но вот данный модуль внёс коррективы в отображение полей, суть такова во вьюс не выводит поля созданные token_field - это первый облом, второй при создании ноды созданное поле артикула генерируется автоматом по номеру ноды, дальше хотелось бы чтоб заголовок страницы брался таким представлением "очки № ..." и как раз после номера подтягивало наш артикул, для это решил использовать Automatic Nodetitles но вот он тоже не видит поля созданные с помощью  token_field :( кто знает и может помочь с решением данной задачи?....... и выходит вроде артикул создаёт автоматом но чтоб заголовок нормально отображал надо повторно зайти на ноду и пере-сохранить её чтоб в заголовке отобразился номер ноды и вид приняло "очки №151"


Такое проще всего написать через hook_node_insert, hook_node_update(). Там все просто, создаешь свой модуль и переопределяшь поля объекта $node.