Кнопка добавления материалов для конкретного представления

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

Аватар пользователя roomit roomit 17 января 2018 в 16:21

У меня есть поле field_page_menu_category (taxonomy reference) для типа материала Страница. Я использую это поля для классификации материалов в соответствии с разделами сайта.

Чтобы упростить добавление материалов редакторам сайта я хочу добавить кнопку "добавить материал" над каждым представлением, при нажатии на которую откроется стандартная форма добавления материала с заполненным полем раздел сайта. Для этого установил модуль Prepopulate, чтобы по ссылке передавать значение поля для каждого представления. Такая потребность возникла, т.к. структура сайта сложная и пользователю тяжело искать нужный раздел в выпадающем списке или писать его в поле типа autocomplete.

Каждое представление имеет фильтр по полю field_page_menu_category.

Например для пункта меню Аналитика показываем все страницы, в которых field_page_menu_category='Аналитика'.

Теперь добавляю кнопку как header attachment для view:

И все вроде работает, но яимеются 2 проблемы:

1) Я не могу использовать replacement tokens, когда представление возвращает 0 результатов, т.к. параметр, используемый в ссылке берется из поля field_page_menu_category первого элемента результатов представления (см. скрин) .

1

Соответственно, не получается заставить кнопку передать параметр в "пустых" разделах сайтах. Как только добавляю хоть одну страницу в этот раздел - все работает.

2) Я не могу ограничить доступ к кнопке добавления материала. Ее нужно показывать только авторизованным пользователям с определенной ролью.

Какие есть варианты решения данной задачи? Может, на уровне theme hooks или twig?

И вообще интересно, как Вы организоваваете размещение редакторами материалов по разделам сайта, чтобы это не было сложно для них?

Комментарии

Аватар пользователя ХулиGUN ХулиGUN 17 января 2018 в 17:02

У любой вьюхи можно переопределить необходимые шаблоны на уровне темы. Реализуйте свою логику в этих шаблонах

Аватар пользователя roomit roomit 17 января 2018 в 18:22

Не смог применить полученную информацию ) Мне кажется, все же к фильтрам представления нельзя обращаться как к get парамтрам.

Аватар пользователя roomit roomit 17 января 2018 в 18:37

На внешнем уровне url не меняется. Это если я применяю exposed filters к данному полю, то в адресной строке появляются get параметры со значениями. Но такой вариант мне не подходит