Как сгруппировать элементы в представлении?

33

У меня есть 8 статей: статья 1 (игры), статья 2 (местные новости), статья 3 (мировые новости), статья 4 (мировые новости), статья 5 (игры), статья 6, статья 7, статья 8.

В связи с этим я хотел бы сгруппировать статьи по: «Новости», «Игры» и «Другое». Объединение мировых и местных новостей в одну категорию и перемещение всего, что не имеет категории, в «Другое». Я не хотел создавать новый словарь только для этого представления. Я пытался сделать это, используя группу по полю, но я не могу понять, как я мог бы сделать это, используя этот метод.

mstef
источник

Ответы:

15

В вашем типе контента вы можете создать поле со списком, скажем, Category, с категориями News, Gaming и Other. Затем вы можете классифицировать контент, который должен отображаться в вашем представлении, используя это поле.

В представлении в разделе «Формат» выберите «Настройки». Должна быть возможность выбрать поле группировки. Выберите поле «Содержимое: Категория». Теперь ваше мнение должно отображаться сгруппировано в соответствии с новостями, играми и прочим.

Это было то, что вы имели в виду?

ОБНОВЛЕНИЕ Выше не совсем то, что вы искали. Нет проблем.

Вы говорите, что у вас есть такие статьи, как Статья 1 (Игры), Статья 2 (Местные новости), Статья 3 (Мировые новости), Статья 4 (Мировые новости) и т. Д. Верно ли, что слово в скобках является термином таксономии? Если нет, то нижеприведенное не будет иметь значения, но я предполагаю, что пока это так.

Если это так, и вы хотите разделить эти термины на три категории, вы можете изменить запрос на представление или написать свой.

В качестве альтернативы (что, вероятно, проще) вы можете изменить свой существующий словарь в иерархическую таксономию с News в качестве суперкатегории и Local News и World News в качестве подкатегории.

Итак, теперь ваш словарный запас выглядит так:

Новости

  • Местные новости
  • Мировые новости

азартные игры

Другие

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

Затем вы можете создать вид, отображающий нужные вам поля. Добавьте фильтр «Имя термина» и введите «Новости». Затем добавьте отображение вложений и прикрепите его к текущему представлению, переопределив фильтр и установив для него значение «Игры». Наконец, добавьте второе вложение и переопределите фильтр, изменив его на «Другой». Это должно дать вам результат, который вы хотите.

g_thom
источник
Я согласен, что ваш метод будет работать. Но для моих нужд это становится небрежным. Это одноразовое представление, что-то, что мне нужно сделать, но создание нового поля списка, чтобы пометить статьи только для использования его для одного представления, не кажется очень чистым. Спасибо большое за ответ, хотя, все еще полезно. Но если у кого-то есть идея, как перехватить вызов mysql или сделать это более того в коде, чтобы выполнить это без создания нового произвольного поля, это было бы полезно! Благодарность!
MSTEF
Благодарность! Я не думал об этом, используя иерархическую таксономию, это определенно намного чище, спасибо. Единственное, что меня беспокоит, так это то, что мы используем solr для индексации сайта, я не хочу, чтобы новости, игры и прочее отображались в этом индексе, чтобы это могло создать новую проблему. Если у кого-нибудь есть ссылки для этого в коде, это все равно будет оценено. Но спасибо огромное тонна
mstef
@mstef, рад, что это было полезно. Я не разбираюсь в solr, никогда раньше не внедрял его. Тематика - это скорее моя сумка, но удачи в поисковой части.
g_thom
3

Вы также можете использовать, Views Distinct . Этот модуль позволяет добавлять связи или другие объединения в представлениях, часто создавая «дублирующие» результаты. Например, узел с полем, имеющим несколько значений, может отображаться в представлении один раз для каждого значения в поле с несколькими значениями.

heilop
источник
2

Я столкнулся с этой темой во время поиска решения для групп, используя Views или Display Suite (D7). Почему-то я не могу получить группу с помощью функции g_thom, упомянутой в разделе «Формат». Должно ли это быть в D7? есть ли подмодуль, зависящий от Views, который я пропускаю? Кроме того, в Display Suite есть функция группирования, но там отображается только один из моих пользовательских полей (я не знаю, почему именно это, а не другое). Не подходит в таком случае.

Моя цель - сделать так, чтобы представления формировали блок ссылок (ссылок на узлы нестандартного типа), сгруппированных по термину таксономии (этот термин должен быть выведен, но ни с чем не связан).

PS. уважение к g_thom за его помощь!

Артур
источник
Извините, я должен был разместить это как комментарий, а не как ответ. Виноват.
Артур
ты когда-нибудь это понимал? кажется, до сих пор нет способа сделать это. (D7)
user379468
2
Я предполагаю, что вы уже поняли это, но Group By не просто появится под заголовком Format; Вы должны щелкнуть ссылку Настройки рядом с пунктом Формат под заголовком Формат.
EmmyS