Drupal Views / Node Reference получить связь с родителями
Хорошо, извините за это название, это трудно описать. Моя проблема заключается в следующем: у меня есть типы контента "Категория продукта" (я не использую таксономию по нескольким причинам) и "Продукт". Продукты ссылаются на свою категорию, используя ссылку на узел.
У меня также есть вид, который отображает на странице категории все принадлежащие продукты с использованием контекстного фильтра => "Node-ID from URL". Моя проблема сейчас, когда я нажимаю на Товар, мне нужно сохранить связь. Контекстный фильтр, конечно же, больше не знает NID категории продукта, потому что текущий NID - тот, который есть в моем продукте.
Работы: / категория /xyz
Не работает: /category/xyz/myproduct (потому что мне нужен nid "xyz", а не "myproduct")
Кто-нибудь знает, как я говорю контекстный фильтр, чтобы получить NID родительской категории?
2 ответа
Из-за отсутствия лучшего решения... для страницы продукта я добавил другой вид представления и немного его изменил:
- Я добавил связь и выбрал поле ссылки на узел для категории
Я изменил свой контекстный фильтр на пользовательский PHP и предоставил следующий код:
$n = node_load(arg(1)); return $n->field_product_product_category['und'][0]['nid'];
Я не отмечаю этот ответ как принятый, потому что я не думаю, что это правильный путь. Я загружаю узел, который загружается в любом случае, так что я думаю, что произвожу ненужный вызов базы данных и все, что связано с правильным получением объекта узла.
Может быть, когда-нибудь кто-нибудь найдет лучший ответ на это.
Не уверен, что я полностью понимаю, но когда вы используете контекстные фильтры, такие как Node ID из URL, вы можете выбрать, какой аргумент использовать.
В случае этого относительного URL /category/xyz/myproduct, аргумент 1 относится к "категории", а аргумент 2 относится к "xyz"
Может быть, есть настройки просмотра для /category/* и /category/xyz/*, а затем установить, какие части URL будут использоваться в контекстных фильтрах по-разному.
Это помогает?
Примечание. Параметр arg должен быть выпадающим из "предоставить аргумент по умолчанию" в контекстных фильтрах.