Задача в состоит в том, чтобы дать редактору возможность «ручного» управления порядком элементов в списке, создаваемом с помощью views. К примеру, есть список статей (объектов node), они упорядочены по node.title, но часть элементов списка требуется закрепить в начале, используя указанный вручную порядок.
Списки нод хорошо управляются с помощью очередей, создаваемых модулем Nodequeue. Редактор может добавить в список (queue) публикации и установить необходимый порядок.
Давайте посмотрим как настроить объект views, чтобы упорядочить список, используя порядок элементов в nodequeue.
Нам понадобятся следующие модули:
- Nodequeue (nodequeue),
- Views (views) и требуемый им Chaos tools (ctools),
- и конечно же Views UI (views_ui) для настройки представлений.
т.е. ничего лишнего :).
Создадим и настроим nodequeue
Полагаю, что views у вас уже есть. Установите модуль nodequeue и создайте (/admin/structure/nodequeue/add/nodequeue) очередь, позволяющую добавлять в список нужные типы публикаций. К примеру, если представление (views) выводит список новостей, то это должна быть очередь (queue), в которую можно добавлять новости.
Сюда мы как раз и будем добавлять новости, которые требуется закрепить вверху списка. Количество и порядок закрепленных новостей будет определяться порядком и кол-вом новостей в созданной очереди.
Настроим представление (views)
Для начала выберем связь с созданной очередью (добавим RELATIONSHIPS).
В настройках связи выберите созданную вами очередь (у меня она называется Pinned stories).
Созданная связь позволит добавить сортировку элементов на основе порядка элементов в nodequeue. Первым критерием идет наличие элемента в очереди, вторым — порядок элементов в очереди. Для оставшихся элементов views останется прежний порядок — по title.