Как при создании ноды автоматом создать прикрепленные к ней другие ноды?

Главные вкладки

Аватар пользователя VasyOK VasyOK 25 января 2019 в 15:04

Допустим создаем ноду (или термин) Мерседес.
Как автоматом создать прикрепленные к этой ноде материалы:
Ремонт Мерседес
Чистка Мерседес
Покраска Мерседес
?

Комментарии

Аватар пользователя Andruxa Andruxa 25 января 2019 в 15:48

hook_entity_insert($entity, $type)
- проверяем, что $type == 'taxonomy_term' ('node'),
- проверяем, что термин из заданного словаря, (или нода требуемого типа)
- $titles = array('Ремонт', 'Чистка', 'Покраска');
- перебираем в цикле $titles as $title
- для каждой итерации создаем ноду, в $node->title пишем $title . ' ' . $entity->name (или $entity->title)
- в поле-entityreference записываем значение $entity->tid (или nid)
- сохраняем
- ???
- PROFIT!

Аватар пользователя VasyOK VasyOK 25 января 2019 в 19:19

Пока через entityreference_autocreate создал поле, которое может создавать ноду определнного типа. Проблема: у ноды нельзя автоматом назначить хотя бы заголовок.

Аватар пользователя alexo alexo 26 января 2019 в 23:06

Можно добавить поле типа ссылки на сущность и туда заливать чистку, ремонт и т.д., а чтобы не создавать вручную эти подноды, можно саму ноду и подноды импортировать, а содержимое для ипморта поднод создавать в полуавтоматическом режиме
а)например в электронной таблице сделать столбец "чистка" - все ячейки в нем можно заполнить, вписав только в первую и потом потянув за край заполненной ячейки вниз, еще что-то что Вам нужно в другие столбцы вбить, что-то брать из столбцов самой основной ноды, чтобы сочетать в нужном сочетании все эти ячейки в разных столбцах одной строки с помощью формул все сложить, например с помощью & амперсанда "сложить" текстовое содержимое нескольких ячеек, если в ячейке C хотите получить то что в А и B через пробел, то формула будет =A&" "&B)
б)просто брать нужные ячейки и при импорте c feeds_tamper подставлять/заменять что-то