Как отфильтровать контент из Drupal View по умолчанию, основываясь на том, что контент добавлен в присоединенное представление? - PullRequest
2 голосов
/ 05 октября 2010

в настоящее время:

У меня есть просмотр страницы, на которой отображается все содержимое, помеченное как «не указано» с простым раскрывающимся списком CCK.

приложение к представлению отображает весь контент, который «представлен» и имеет немного более впечатляющий стиль.

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

Каков был бы самый простой способ добиться этого с помощью пользовательского интерфейса Views и, возможно, пользовательского модуля или двух, если это необходимо?

Я использую Drupal 6 и Views 2

1 Ответ

2 голосов
/ 05 октября 2010

Есть несколько способов сделать это. Вот несколько альтернатив

  1. (используя ваш подход) Насколько я понимаю, вы используете поле списка CCK Select (пусть оно называется FState), которое имеет состояние «Featured». По сути, вам нужно показать элементы, которые отображаются на экране вложения, и показать элементы, которые не отображаются на странице.
    • В представлении вложения вы должны добавить фильтр, который будет Content: FState = Featured. Это можно сделать, выбрав группу «Содержимое» в раскрывающемся списке «Представления». Выберите Content: FState (field_fstate) - Allowed values. Выберите Featured. Убедитесь, что оператор is one of
    • В режиме просмотра страницы сделайте то же самое, за исключением того, что убедитесь, что оператор is none of
  2. Если бы я делал это сам, я бы использовал модуль nodequeue (http://drupal.org/project/nodequeue) для рекомендуемого контента. Для моего представления вложения я бы гарантировал, что элементы были в очереди узлов, а для просмотра страницы я бы удостоверился, что элементы НЕ были в очереди узлов (используя правильный фильтр). В Интернете доступно множество материалов по использованию nodequeue и интеграции их с представлениями.
  3. Другой альтернативой является использование модуля флага (http://drupal.org/project/flag), хотя я подозреваю, что nodequeue подойдет вам лучше.

Edit: Исходя из ваших комментариев, я лучше понимаю ваши требования. Возможно, вы смешиваете какой-то язык, который может сбить с толку постороннего. Когда вы говорите «рекомендуемый» контент, это означает, что контент показывается специально. Так что, может быть, это сбивает с толку, когда вы говорите, что «показное» содержимое также отображается в представлении страницы вместе с непроверенным содержимым.

В любом случае, вкратце, вот что я понимаю, каково ваше требование сейчас (продолжая использовать «признакам» так, как вы это имеете в виду)

  1. У вас есть два представления: вложение просмотр и просмотр страницы. Вложение вид немного больше привлекательный.
  2. Новостная статья, которая появляется в представлении вложения, НЕ появляется на странице просмотра
  3. Допустим, в представлении вложений есть место для 4 статей
  4. Иногда вы отмечаете статьи как "избранные". 4 последние статьи которые «представлены» появляются в вид вложения. На странице просмотра, все новостные статьи также отображаются в хронологический порядок независимо от были ли они помечены как "признакам" или нет в прошлом. Единственное условие что не должно быть повторение между вложениями просмотр и просмотр страницы.

Существует небольшое сомнение в вашей спецификации .... забудьте на секунду о вашем поле выбора CCK. Мой вопрос: хотите ли вы (а) просто показать 4 последние «избранные» статьи в хронологическом порядке в представлении вложения или (б) хотите ли вы явно определить элементы и их порядок в вид вложения?

В случае (b) вы можете позволить себе роскошь выбрать статью, которой, возможно, исполнился 1 месяц, потому что это была впечатляющая статья, и вы все еще хотите ее показывать. В (а) у вас нет такой гибкости. По мере создания новых «рекомендуемых» статей старые удаляются из представления вложения.

Конечно, для случаев (a) и (b) статьи, отображаемые в представлении вложения, не будут отображаться в представлении страницы (это всегда должно выполняться).

Для случая (a) вы должны использовать модуль nodequeue для представления вложения, а для случая (b) вы можете продолжить использовать метод списка CCK Select для извлечения избранных статей, как вы делаете в настоящее время для представления вложения. Для предотвращения появления дубликатов при просмотре страницы используйте модули http://drupal.org/project/views_unique или http://drupal.org/project/views_exclude_previous

...