Новый модуль: Smartqueues for content types
Прислано: tema
вс, 31/01/2010 - 15:07
Страница проекта: http://drupal.org/project/smartqueue_nodetypes.
Модуль является дополнением к проекту Nodequeue, позволяет добавлять smartqueue для выбранного типа материала.
Зависимость: Nodequeue 2.x.
Модуль не создает никаких таблиц и (пока что) не сохраняет переменных (см. комментарий), устанавливается и удаляется как обычно.
После установки на странице администрирования Nodequeue (admin/content/nodequeue) появляется новая ссылка «Add content type queue»(admin/content/nodequeue/add/smartqueue_nodetypes). Процесс создания smartqueues аналогичен для всех модулей, использующих Smartqueue API.
Nodequeues, Smartqueues
Пакет модулей Nodequeue нужен для создания упорядоченных последовательностей нод, сгрупированных по определенному признаку, например Top10 для записей в блогах. Основной модуль создает простые последовательности, остальные модули пакета позволяют связывать свои последовательности с различными сущностями Drupal: taxonomy, user, OG. Подробнее: Nodequeue: Creating Arbitrarily Ordered Lists of Content. Мой модуль устраняет странную незавершенность картины: создает последовательности, связанные с нодами - главной сущностью сайта.
Другие модули, использующие Smartqueue API
- Smartqueue taxonomy (входит в стандартную поставку Nodequeue)
- Добавляет последовательности для термов таксономии. В каждую последовательность добавляются только ноды, уже собранные в этот терм средствами taxonomy.module.
Не работает с иерархиями. Если бы работал, я бы не написал этот модуль.Теперь работает. Зря старался. Хе-хе. - Smartqueue per-user
- Добавляет последовательности для пользователей.
- Smartqueues for Organic Groups
- Ясно из названия. Многочисленные полномочия и уровни доступа.
- Smartqueues for Path (нет релизов)
- Видимо добавляет последовательности для путей внутри заданного.
Модуль Nodequeue Node не использует Smartqueue API, добавляет «титульную» ноду ко всем вышеперечисленным последовательностям, Nodequeue Randomizer меняет очередность случайным образом.
Еще есть черновик модуля Nodereference Queue, который добавляет последовательности для каждого уникального значения поля Nodereference. Может где-то это может пригодиться, я не придумал.
Преимущества
- Понятный интерфейс - добавление/удаление AJAX'ом в один клик на странице ноды, autocomplete на странице subqueue, управление очередностью drag-n-drop;
- Отдельные полномочия для создания нод и для их добавления в очередь/сортировки;
- Интеграция:
Использование модуля
Цель всё та же - создать простой и гибкий инструмент для реализации информационной архитектуры сайта, задачи, которая постоянно стоит перед читателями этого сайта и обычно решается с помощью Nodereference, Taxonomy, Category и других подобных модулей.
Nodequeue с помощью этого модуля может реализовать вот такие связи:
nodetype A ----------> queue [use nodetypes B and C] | | +--> node[type A] <=> +--> subqueue | | +--> node[type B] | | +--> node[type B] | | +--> node[type C] +--> node[type A] <=> +--> subqueue | | +--> node[type C] | | +--> node[type B] | | +--> node[type C] ... ... ...
А может и вот такие:
nodetype A -----> queue [use nodetypes B and C] | | +--> node[A] <=> +--> subqueue nodetype B --> queue [use nodetypes D] | | +--> node[B] ---^ <==========> +-->subqueue | | | | +--> node[D] | | | | +--> node[D] | | | | +--> node[D] | | +--> node[C] +-->subqueue | | | | +--> node[D] ... ... ... ... ...
Можно сочетать использование нескольких smartqueues:
taxonomy vocabulary 1 --> queue [use nodetypes A and C] (Smartqueue for Taxonomy) | | +--> term 1 <==========> +--> subqueue nodetype A --> queue [use nodetypes B] | | +--> node[A] ---^ <==========> +-->subqueue | | | | +--> node[B] | | | | +--> node[B] | | | | +--> node[B] | | +--> node[C] +-->subqueue | | | | +--> node[B] ... ... ... ... ...
Модуль пока что интенсивно не использовался, поэтому баги сами собой разумеются. Я лишь убедился в его работоспособности. Если будете тестировать - багрепорты сюда.
В планах добавить кое-какие настройки, заменить прямой запрос к базе на настраиваемый и кэшируемый view.
- tema's blog
- Для комментирования войдите или зарегистрируйтесь
Модуль обновился.
Можно добавить логики для каждой связи с помощью PHP-кода.
- Доступные переменные:
- $queue — nodequeue object;
- $sq_node — subqueue node object (загружен не полностью, только nid, type и title);
- $node — кандидат на включение в последовательность.
Если код возвращает TRUE, $node нельзя включить в данную последовательность, соответствующие ссылки не появятся, в автокомплите этой ноды не будет.
- Для комментирования войдите или зарегистрируйтесь

Комментарии