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 должен быть выпадающим из "предоставить аргумент по умолчанию" в контекстных фильтрах.

Другие вопросы по тегам