Сегодня полдня билась над тем, как решить одну ма-а-аленькую задачку.
Аж до слез было обидно: делаю, как написано, а ни хрена...
Разобралась, да Теперь осталось понять: молодец ли я? или просто слегка блондинко?
Утешает меня то, что под описанием модуля Rules, над которым я билась, несколько людей оставили описания из типа "ничего не понимаю!", "сделайте нормальные инструкции" и т.п.
Под катом - подробности решения, чтоб не забыть.
читать дальшеПроблема.
Есть две базы. Например: "Автор". И, например: "Статья".
В каждой базе есть связанные поля. У "Автора" поле "Авторские статьи" - где содержатся ссылки на написанные им статьи в базе "Статья". В базе "Статья" есть поле "Автор статьи" - где ссылка на пункт в базе "Автор".
Все прекрасно. Но есть одна проблема: чтобы поставить перекрестную ссылку, надо сделать два действия - сперва в "Авторе" выбрать его статьи, а потом в "Статье" - его автора.
В принципе, эти перекрестные ссылки не так нужны. Можно прекрасно жить и без них и прекрасно делать списки материалов Авторов другими путями. Но так однозначно проще.
Задача.
Автоматизировать процесс: при создании новой "Статьи" указываем в поле "Автор статьи" ник Автора - и у этого Автора автоматически пополняется поле "Авторские статьи" ссылкой на эту самую статью.
Решение
Модуль Rules.
Триггер - создание нового материала типа "Статья" (потом попробую еще обновление ранее созданного)
Условия 2 - Тип материала: node = "Статья"; содержимое его поля "Автор статьи" (node:поле_Автор_статьи) содержит ссылку на тип материала "Автор"
Действие - Add an item to a list; в поле node:поле_Автор_статьи:поле_Авторские_статьи - значение node (и проставляем галочку для проверки уникальности)
Все.
Условие функционирования
В исходящем материалы ("Статьи") может быть только 1 значение. Как только мы допускаем список значений, увы, все перестает работать.
Теоретически решается PHP-программированием.
Практически, пока, решается созданием отдельных полей "Автор-1", "Автор-2" и т.п. Увы, только так.