Как ограничить Drupal Просмотр результатов по отношениям - PullRequest
2 голосов
/ 17 января 2011

У меня есть набор типов содержимого, связанных с журналом Drupal, предопределенных в следующих отношениях:

  • Story : имеет заголовок, тело, автора, ссылку на обязательный узел дляПроблема, необязательная ссылка на узел для Иллюстрации.
  • Статья : содержит заголовок, текст и необходимую ссылку на узел для Проблемы.
  • Иллюстрация : Имеет изображение и профиль участника.
  • выпуск : содержит название и дату.
  • профиль участника : имеет имя и фамилиюname.

Я пытаюсь получить список проблем с иллюстрацией из одной из ее историй, показывающей, если она есть.Если нет историй (могут быть только статьи) или нет историй с иллюстрациями, я просто перечислю название проблемы.

Поэтому я ищу вывод, подобный следующему:

[StoryImage] декабрь 2010
ноябрь 2010
[StoryImage] октябрь 2010
[StoryImage] сентябрь 2010
и т. Д.

Меня не интересует стиль илиРазметка на этом этапе - я могу определить это.

Вот настройки View, которые у меня пока не работают:

  • Фильтр: Node Type = Story, Article
  • Отношение:
    1. Содержание: выпуск
    2. Содержание: иллюстрация
    3. Содержание: Автор, использующий отношение Иллюстрация
  • Поля:
    1. Содержимое: изображение с использованием отношения "Иллюстрация"
    2. Узел: Заголовок с использованием отношения "Проблема"
  • Критерии сортировки:
    1. Дата выпуска, по убыванию.
    2. Фамилия автора, по убыванию.

То, что я получаю (как я и ожидал), - это список каждой проблемы столько раз, сколько статей / историй в этой проблеме.Поэтому, если в выпуске за декабрь 2010 года есть 3 предмета, а в выпуске за ноябрь - 2, вот что я получу:

[StoryImage] декабрь 2010
декабрь 2010
декабрь 2010
ноябрь 2010
ноябрь 2010

Что я действительно хочу, так это первый результат только по каждой проблеме.Возможно ли это, и если да, то чего мне не хватает?

Ответы [ 3 ]

3 голосов
/ 14 августа 2012

В расширенных настройках представления включите агрегирование. Затем убедитесь, что первое поле, которое у вас есть, это NID типа контента, для которого вы пытаетесь получить отчетливые результаты (в вашем случае это будет проблема, я думаю), чтобы оно сначала сгруппировалось по этому. Вам также может потребоваться установить агрегат = MIN в поле «Название узла».

Я нашел эту информацию здесь: http://drupal.org/node/1200536#comment-4957410

Примечание: я только что заметил, что ваш вопрос помечен как Drupal 6, и это решение вполне может относиться к Drupal 7, но этот ответ вполне может помочь другим.

0 голосов
/ 20 января 2011

просто используйте drupal db api и напишите запрос на пейджер. По моему опыту, представления эффективны в большинстве случаев, но не во всех случаях.

0 голосов
/ 17 января 2011

Вы пробовали использовать фильтр "Distinct"? Я не уверен, доступно ли это для вашего поля даты, но именно этим я пользуюсь всякий раз, когда получаю декартово произведение с представлениями.

...