Просмотры 3 обработчик отношений

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

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

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

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

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

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

1 ответ

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

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

Удачи.

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