Всем привет!
Исходные данные: Views + VBO + Rules.
Задача: Отобрать материалы, отвечающие отмеченным фильтрам (views) и выполнить с ними действие (VBO), которого нет изначально в списке модуля Rules? Действие такое - создать новую страницу в пользовательской части сайта, на которой вывести тизеры отобранных материалов. Как такое можно провернуть?
Пояснение: Это нужно, чтобы можно было дать ссылку потенциальному клиенту на страницу выборки товаров, которые могут ему подойти.
Комментарии
Создайте тип материала "Предложение", в нем поле Entity reference на товар, с неограниченным количеством.
Добавьте компонент и в нем создавайте новый материал типа "Предложение", и циклом добавляйте товары к материалу из VBO-представления.
Правда фильтровать представление каждый раз нужно будет отдельно.
Если добавлять отдельным действием (в списке VBO) могут возникнуть неудобные моменты с выбором ID ноды, которой нужно присвоить товары.
Тип поля, предоставляется модулем Entity reference.
Создал тип материала, с полем entity reference - неограниченное количество (прикрепил 2 слайда, посмотрите, если не сложно).
Далее "Добавьте компонент и в нем создавайте новый материал типа "Предложение"" - можно подробнее, что за компонент?
Компонент правил, добавляется на странице "admin/config/workflow/rules/components/add".
Создал компонент правил, в нем цикл и действие, в представлении VBO добавил массовую операцию "предложение". На странице admin/content выполняю это действие с нодами, получаю ответ, что все прошло успешно.. но что дальше - не понятно.
Посмотрите, пожалуйста, слайды. Что-то не так сделал?
Мне нужно добавить отобранные ноды на странице admin/content в список, который потом вывести в пользовательской части сайта в виде списка тизеров (должны быть кликабельны, т.е. можно перейти на страницу ноды), чтобы можно было кинуть ссылку клиенту. Этот список должен храниться в системе под каким-то названием, чтобы позднее можно было его подправить (добавить элементы, удалить некоторые) и снова вывести на страницу в пользовательской части.
Что Вы имеет в виду под "фильтровать представление каждый раз нужно будет отдельно"?
Как я и писал выше, у Вас 2 варианта:
1. Создать компонент правил, в котором создавать новый материал со списком нод, и этот список, loop'ом, наполняете нодами из предварительно отфильтрованного Вами представления VBO.
2. Вручную создавать материал со списком нод, запоминать его ID, создать компонент правил с параметром "node", в котором извлекать ноду по ID (созданной ноды, устанавливать вручную перед использованием правила), добавить действие в котором добавлять ноду в список. Далее, создать представление VBO и в нем выполнять действие (созданный компонент).
Можно попробовать наколхозить еще больше - добавив компоненту дополнительные параметры и использовать их в качестве аргументов для представления, и таким образом автоматизировать процесс создания и наполнения материала.
Конечный пользователь функционала - менеджер, который не осилит все эти процедуры подготовки. Буду копать в сторону кастомного действия для VBO или, возможно, свой модуль. В любом случае, спасибо за помощь!