Добрый день!
Есть контент, в котором выводится для выбора в виде пунктов названия нод определенного типа, которые можно выбрать для связи.
но надо выводить не весь список всех нод этого типа, а только определенный.
список нужных надо как-то передать в ссылке создания нового контента.
Как это можно реализовать?
Комментарии
POST'ом, GET'ом.
Тут как-то невнятно написано.
В форме редактирования ноды, есть поле в котором можно выбрать связь с несколькими другими нодами. Верно?
Чем связь организована? Если Entityreference - там можно делать выборку с помощью представления. Отфильтруйте необходимые значения.
Каким образом определять список необходимых?
Может, проще сделать автодополнение?
Насколько я понял - надо чтобы по ссылке /node/type/add?field_reference[]=nidX&feild_reference[]=nidY&...
в форме редактирования ноды для поля field_reference были доступны ноды nidX, nidY, ... ?
Есть модуль Entityreference prepopulate, который позволяет передать в get-параметрах дефолтные значения для полей entityreference.
Можно взять его за основу и переписать, чтобы get-параметнр предавал в элемент формы не #default_value, а #options.
Может надо все описать
Используется Entity reference
есть материал A в нем есть список привязанных материалов Y.
Создаем материал X, в нем есть связь с A (связь передается при создании X в ссылке при помощи ранее озвученного prepopulate) и еще связи в виде списка - надо чтобы были чекбоксы материала Y, чтобы можно было выбрать.
Но список материалов Y, которые выдаются должен быть отграничен. он заведомо известен в А и как вариант - передать его в ссылке создания материала X.
материалов Y ооочень много.
Использовался для этого ранее модуль Reference Option Limit
но со временем так как количество материалов Y постоянно растет. запросы на выборку этим модулем занимают очень много времени. И учитывая что список который надо выбрать известен заранее - не логично его заново искать в базе при создании материала X. проще его передать как и данные о материале A - в самой ссылке создания. Но только модуль prepopulate, на сколько помню, задает уже заполненное поле, а тут нужен список выбора. так как не все чекбоксы могут быть активированы.
ddf + views
В ссылке передавать ничего не нужно, используйте контекстные фильтры.
Чекбоксы реализовать костылем, aka "select to checkbox".
Это опять получится выборка из базы путем перебора всех Y которые связаны с A чтобы их вывести?
немного не понял принцип DDF. и там не работает чекбокс, как его можно реализовать?
1. Как хотите, хоть перебором, хоть через связь. У вас вьюха в распоряжении...
2. Принцип тот же, что и у reference option limit, но более функционально.
3. У всех подобных модулей проблема с виджетами автодополнения и чекбоксами. Через костыли решаемо. Запрос поиска в гугл написал вам выше.
P.S. И на будущее: в ссылку пихайте только дефолтное значение (#default_value) и не более.
У reference option limit нет проблемы с чекбоксами
но есть проблема очень долгой загрузки страницы
Про дефолтное не понял - почему только его?
Решено!
Bumble навел на верный путь
статьи в помощь - https://shra.ru/2017/03/svyazyvaem-views-i-entity-reference-dlya-formiro...
https://drupal.ru/node/100694
id брал из get в url кодом php