Заполнение полей ноды значениями полей таксономии. Модуль Rules или как то еще [РЕШЕНО]

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

Аватар пользователя AlexFreem AlexFreem 1 ноября 2012 в 12:29

Доброго времени суток!

Возможно кто то с подобным сталкивался, возможно решали что то подобное. Хотелось бы услышать хотя бы даже советы.

Имею словарь таксономии. Назовем его магазин. У каждого термина есть поле - "Адрес" ( field_address ). Обычное текстовое поле без форматирования с максимальной длинной 255 символов.

Помимо этого имею Тип материала - продукт ( обычная нода ). У него есть поля - "В магазине" ( field_in_mag - ссылка на термин таксономии "Магазин". Единственное значение ) и есть поле "Адрес магазина" ( field_in_mag_address. Единственное значение ).

Вопрос заключается в следующем. Как в поле field_in_mag_address заносить значения из field_address соответственно выбранного термина таксономии.

Другими словами - Я создаю новый Продукт. При создании выбираю в каком он магазине находится. После сохранения я получаю ноду которая выглядит следующим образом " Название продукта, Магазин в котором есть этот продукт, Адрес магазина в котором есть продукт. Как такого добиться?

Комментарии

Аватар пользователя AlexFreem AlexFreem 8 ноября 2012 в 14:47

Создаем новое правило.
1) В события ( events ) добавляем - Перед сохранением материала
2) В условия ( conditions ) добавляем - Событие "Тип материала". Параметры - Содержимое:[node] Типы материалов: Продукция по аптекам
3) В действия добавляем - Установить значение. В данные добавляем node:имя-поля-для-заполнения. Селектор данных - ( сначала переключаемся внизу кнопкой в режим выбора данных ) и добавляем node:имя-поля-содержащего-термин:имя-поля-термина-для-копирования-данных

Пример:
Имеется тип материала Новость содержащий поля:

field_mag_term - Тип поля - ссылка на термин. Предположим что есть словарь Магазины.
field_mag_address - Поле куда надо "вытягивать" адрес.

Имеется словарь таксономии Магазины термины которого содержат поле

field_address - Поле содержащее адрес конкретного магазина

Таким образом в пункте 3 надо указывать: В данные - node:field-mag-address. В селектор данных - node:field-mag-term:field-address

Всё!

Аватар пользователя agent-000 agent-000 10 ноября 2012 в 0:56

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

Аватар пользователя vinta vinta 22 июля 2013 в 23:35

agent-000 wrote:
А не проще ли было сделать тип материала Магазин, заполнить его полями и в продукте выбирать из списка магазинов? А на странице продукта показывать вьювсом подтянутые значения из магазина.

А как связать материалы? Модулем References?

Аватар пользователя roman-yrv roman-yrv 12 ноября 2012 в 15:20

Дельные советы пишутся после того, как был прочитан вопрос Smile

Да и решений у задачи может быть несколько, и у каждого решения есть свои достоинства и недостатки.

Аватар пользователя vinta vinta 22 апреля 2014 в 23:48

у меня проблема которою я не могу решить данным способом. Установил Drupal Commerce c модулем Commerce-Marketplace который позволяет сразу многим пользователям торговать с одного сайта. Модуль позволяет создавать в магазине под магазины и присваивать их пользователям. То есть если есть пользователь Олег то сам он торговать не может, а если у него есть Магазин Олега, то да. Так вот при добавлении каждого товара Олег должен в графе "магазин" указать: Магазин Олега. Выбрать из списка или автодополнением. Тип поля Entity Reference машинное имя cmp_store токен commerce-product:cmp-store Хочется этого не делать, то есть если товар добавляет или редактирует Олег, в поле автоматом вставлялось Магазин Олега. Я могу в профиле Олега добавить поле магазин, Олег в этом поле напишет Магазин Олега, но как перекинуть значение из профиля юзера в товар не знаю(или даже сделать имя пользователя такое же как название магазина и вытаскивать одно имя в другое). Я пробовал правилами как здесь описано, нашёл значение commerce-product:cmp-store но среди допустимых значений ничего не нашёл подходящего. здесь был совет

"roman-yrv" wrote:

Опубликовано roman-yrv в Вс, 11/11/2012 - 11:43.
Аватар пользователя roman-yrv

По моему, можно еще через hook_node_presave задать значение данного поля в товаре.


может расскажите по подробней. Или ещё какой способ.