Передача списка нод в ссылке создания ноды

Аватар пользователя Nikolas

Добрый день!

Есть контент, в котором выводится для выбора в виде пунктов названия нод определенного типа, которые можно выбрать для связи.
но надо выводить не весь список всех нод этого типа, а только определенный.
список нужных надо как-то передать в ссылке создания нового контента.

Как это можно реализовать?

Тип материала:
Версия Drupal:
0 Thanks

Комментарии

Аватар пользователя bumble
bumble 1 неделя назад
Nikolas написал:
Как это можно реализовать?

POST'ом, GET'ом.

Nikolas написал:
Есть контент, в котором выводится для выбора в виде пунктов названия нод определенного типа, которые можно выбрать для связи.

Тут как-то невнятно написано.

В форме редактирования ноды, есть поле в котором можно выбрать связь с несколькими другими нодами. Верно?
Чем связь организована? Если Entityreference - там можно делать выборку с помощью представления. Отфильтруйте необходимые значения.

Nikolas написал:
но надо выводить не весь список всех нод этого типа, а только определенный

Каким образом определять список необходимых?

Аватар пользователя DivaDii
DivaDii 1 неделя назад

Может, проще сделать автодополнение?

Аватар пользователя Andruxa
Andruxa 1 неделя назад

Насколько я понял - надо чтобы по ссылке /node/type/add?field_reference[]=nidX&feild_reference[]=nidY&...
в форме редактирования ноды для поля field_reference были доступны ноды nidX, nidY, ... ?

Есть модуль  Entityreference prepopulate, который позволяет передать в get-параметрах дефолтные значения для полей entityreference.
Можно взять его за основу и переписать, чтобы get-параметнр предавал в элемент формы не #default_value, а #options.

Аватар пользователя Nikolas
Nikolas 1 неделя назад

Может надо все описать :)
Используется Entity reference
есть материал A в нем есть список привязанных материалов Y.
Создаем материал X, в нем есть связь с A (связь передается при создании X в ссылке при помощи ранее озвученного prepopulate) и еще связи в виде списка - надо чтобы были чекбоксы материала Y, чтобы можно было выбрать.
Но список материалов Y, которые выдаются должен быть отграничен. он заведомо известен в А и как вариант - передать его в ссылке создания материала X.
материалов Y ооочень много.
Использовался для этого ранее модуль Reference Option Limit
но со временем так как количество материалов Y постоянно растет. запросы на выборку этим модулем занимают очень много времени. И учитывая что список который надо выбрать известен заранее - не логично его заново искать в базе при создании материала X. проще его передать как и данные о материале A - в самой ссылке создания. Но только модуль prepopulate, на сколько помню, задает уже заполненное поле, а тут нужен список выбора. так как не все чекбоксы могут быть активированы.

Аватар пользователя adano
adano 1 неделя назад

ddf + views
В ссылке передавать ничего не нужно, используйте контекстные фильтры.
Чекбоксы реализовать костылем, aka "select to checkbox".

Аватар пользователя Nikolas
Nikolas 1 неделя назад

Это опять получится выборка из базы путем перебора всех Y которые связаны с A чтобы их вывести?
немного не понял принцип DDF. и там не работает чекбокс, как его можно реализовать?

Аватар пользователя adano
adano 1 неделя назад

1. Как хотите, хоть перебором, хоть через связь. У вас вьюха в распоряжении...
2. Принцип тот же, что и у reference option limit, но более функционально.
3. У всех подобных модулей проблема с виджетами автодополнения и чекбоксами. Через костыли решаемо. Запрос поиска в гугл написал вам выше.

P.S. И на будущее: в ссылку пихайте только дефолтное значение (#default_value) и не более.

Аватар пользователя Nikolas
Nikolas 1 неделя назад

У reference option limit нет проблемы с чекбоксами :)
но есть проблема очень долгой загрузки страницы :(
Про дефолтное не понял - почему только его?