Авто генерация поля CCK как значение артикул, так же проверка на уникальность данного поля
Добрый день! столкнулся с такой проблемой, создал тип материала, ему присвоил числовое поле под меткой артикул, теперь нужно сделать автогенерацию этого поля при добавлении новой ноды данного типа материала, а так же надо проверку на уникальность данного поля, помогите решить данный вопрос ?
Здравствуйте, вы можете использовать хук 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.