Добавить свое действие в список VBO

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

Аватар пользователя Drupper Drupper 14 октября 2015 в 0:55

Всем привет!

Исходные данные: Views + VBO + Rules.

Задача: Отобрать материалы, отвечающие отмеченным фильтрам (views) и выполнить с ними действие (VBO), которого нет изначально в списке модуля Rules? Действие такое - создать новую страницу в пользовательской части сайта, на которой вывести тизеры отобранных материалов. Как такое можно провернуть?

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

Комментарии

Аватар пользователя bumble bumble 14 октября 2015 в 1:53

Создайте тип материала "Предложение", в нем поле Entity reference на товар, с неограниченным количеством.
Добавьте компонент и в нем создавайте новый материал типа "Предложение", и циклом добавляйте товары к материалу из VBO-представления.
Правда фильтровать представление каждый раз нужно будет отдельно.
Если добавлять отдельным действием (в списке VBO) могут возникнуть неудобные моменты с выбором ID ноды, которой нужно присвоить товары.

Аватар пользователя Drupper Drupper 14 октября 2015 в 17:53

bumble wrote:
Создайте тип материала "Предложение", в нем поле Entity reference на товар, с неограниченным количеством.
- тут не понял... "Entity reference" - это вы просто так поле назвали или это тип поля такой должен быть? У меня такого нет в списке возможных.. есть ссылка на термин.

Аватар пользователя Drupper Drupper 10 ноября 2015 в 11:50

Создал тип материала, с полем entity reference - неограниченное количество (прикрепил 2 слайда, посмотрите, если не сложно).

Далее "Добавьте компонент и в нем создавайте новый материал типа "Предложение"" - можно подробнее, что за компонент?

Аватар пользователя Drupper Drupper 10 ноября 2015 в 11:50

Создал компонент правил, в нем цикл и действие, в представлении VBO добавил массовую операцию "предложение". На странице admin/content выполняю это действие с нодами, получаю ответ, что все прошло успешно.. но что дальше - не понятно.

Посмотрите, пожалуйста, слайды. Что-то не так сделал?

Мне нужно добавить отобранные ноды на странице admin/content в список, который потом вывести в пользовательской части сайта в виде списка тизеров (должны быть кликабельны, т.е. можно перейти на страницу ноды), чтобы можно было кинуть ссылку клиенту. Этот список должен храниться в системе под каким-то названием, чтобы позднее можно было его подправить (добавить элементы, удалить некоторые) и снова вывести на страницу в пользовательской части.

Что Вы имеет в виду под "фильтровать представление каждый раз нужно будет отдельно"?

Аватар пользователя bumble bumble 21 октября 2015 в 15:18

Как я и писал выше, у Вас 2 варианта:

1. Создать компонент правил, в котором создавать новый материал со списком нод, и этот список, loop'ом, наполняете нодами из предварительно отфильтрованного Вами представления VBO.

2. Вручную создавать материал со списком нод, запоминать его ID, создать компонент правил с параметром "node", в котором извлекать ноду по ID (созданной ноды, устанавливать вручную перед использованием правила), добавить действие в котором добавлять ноду в список. Далее, создать представление VBO и в нем выполнять действие (созданный компонент).

Можно попробовать наколхозить еще больше - добавив компоненту дополнительные параметры и использовать их в качестве аргументов для представления, и таким образом автоматизировать процесс создания и наполнения материала.

Аватар пользователя Drupper Drupper 21 октября 2015 в 19:00

Конечный пользователь функционала - менеджер, который не осилит все эти процедуры подготовки. Буду копать в сторону кастомного действия для VBO или, возможно, свой модуль. В любом случае, спасибо за помощь!