Представления 3 Обработчик отношений

Я пытаюсь написать обработчик отношений для Views 3 в Drupal 7, но не могу даже начать.

По сути, у меня есть куча узлов разных типов с одним и тем же полем, прикрепленным к ним. Это поле является справочным полем, связанным с контактом Civicrm, но это не важно, так как в основном эти поля содержат только целые числа.

Теперь предположим, что у меня есть узел с типом контента «история», и его поле ссылки содержит целое число, ну, скажем, 55. Кроме того, есть узлы с типом контента «новости», которые также содержат идентификатор ссылки 55.

Я хочу создать блочное представление, которое находится на странице истории, которое считывает nid узла в качестве своего аргумента, а затем через отношение обнаруживает все другие узлы, которые содержат то же ссылочное целое число, что и он сам.

(В моей голове sql выглядит примерно так: SELECT n.nid FROM node n INNER JOIN node n2 ON n.reference = n2.reference [Предположим, для простоты, что данные поля хранятся в таблице узлов]).

Как мне создать обработчик Views, который обслуживает эту связь? Единственная документация, которую я могу найти, это API представлений, который предназначен для версии 2, а не 3, и, кроме того, совершенно бесполезен. Чтение обработчиков представлений различных модулей также не помогает, а учебных пособий по представлениям в Интернете почти не существует.


person Torrance    schedule 13.04.2011    source источник


Ответы (1)


Что вы делаете и в чем проблема? Похоже, у вас есть все, что вам нужно прямо здесь... nid в качестве аргумента и поле ссылки в качестве отношения. На что настроены ваши фильтры? и какой тип дисплея вы используете? Вы можете просто заставить блок отображать некоторую информацию без сортировки, аргументов или отношений, а затем с помощью модуля devel вы можете изменить файл tpl для блока на dpm($views) и посмотреть, к какой информации у вас есть доступ.

Дайте нам знать, что вы уже настроили и каковы ваши результаты, если таковые имеются. Помните, что вы можете использовать nid в качестве аргумента в предварительном просмотре, поэтому, если nid равен 213, вы можете ввести 213 в поле предварительного просмотра (убедитесь, что отображение настроено на блок, о котором вы говорите) и посмотреть, что появится.

Удачи.

person Vatche C    schedule 16.09.2011