Как передавать аргументы между представлениями в Drupal-7 - PullRequest
1 голос
/ 15 апреля 2011

Я постоянно сталкиваюсь со следующим сценарием использования, и мне все еще не хватает подходящего рабочего процесса / решения:

Я хотел бы отобразить два представления.

В первом представлении,каждая строка отображает один узел типа-x.

Во втором представлении отображаются узлы типа-y, которые связаны с узлом типа-x посредством ссылки на узел, следующим образом:

    View-1   View-2
    ------   ------
row1 X-a <---> Y-a
row2 X-b <---> Y-b
row3 X-c <---> Y-c
row4 etc <---> etc

Например, X - это событие, а Y - место проведения.Или X - это страница-портфолио, а Y - это страничная галерея.

Я понимаю, что есть другие способы решения этой проблемы - например, использование представлений узлов, а не полей, но я пытаюсь использовать представления для создания2 различных пользовательских запроса, связанных аргументом, передаваемым из одного представления в другое.

Это вариант вопроса, который я задавал ранее ( Программные представления в Drupal 7 ), и, надеюсь, разъяснение.

Любая помощь, даже (или особенно) только на семантическом уровне, высоко ценится.

Ответы [ 3 ]

1 голос
/ 02 июля 2011

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

1 голос
/ 05 августа 2011

Вы должны использовать модуль EVA. Он делает то, что вам нужно, элегантно.

https://drupal.stackexchange.com/questions/5732/is-there-a-good-tutorial-for-entity-views-attach-module

1 голос
/ 17 апреля 2011

Хм. Я не уверен, правильно ли я понимаю, но я думаю, что вы хотите сделать, это передать аргумент представлению и затем отфильтровать результаты по нему.

Возможность настройки параметров вПользовательский интерфейс называется «Контекстные фильтры».

Затем вы можете вызвать представление из своего кода следующим образом (предположим, что ваш параметр - это идентификатор узла):

<?php
    print views_embed_view('example_view', 'page', $node->nid);
?>
...