Необходимо вывести блоком, под основным содержанием, избранные редактором комментарии из 5 штук. Например, статья про лютики комментируется с дюжиной троллей, а редактор условно выбрал из них адекватов, и определил комментарий каждого из них как ценный, экспертный; этот ценный комментарий должен быть выведен в блок, над всеми комментариями. Этакая социальная примочка. Есть условие использовать как можно меньше модулей, и упростить реализацию по возможности. Прежде всего, нам понадобится набор удобных модулей flags и views. Модуль flags поможет маркировать комментарий, а представление поможет создать блок с заданными фильтрами и дальше строить... Какие мысли? Что можно придумать? Как выводить избранные комментарии? По традиции, схематически, опишу действия, которые помогут вам сделать подобный функционал. 0. Самый важный, самый ответственный - активирование нужных модулей! ;) 1. Перейти в раздел администрирования флагов - /admin/structure/flags
- создать условие - /admin/structure/flags/add;
- обозвать как-то; например, bestcomments;
- выбрать тип флага комментарии;
- ввести заголовок; например, избранные комментарии;
- установить галочку на глобальный флаг.
2. Ввести изменения в настройках как душе угодно, а именно: тексты, какие комментарии, роли пользователей. 3. В последнем разделе Настройки отображения поставить галочку на Отображать ссылку под комментарием и JavaScript-переключатель. 4. Грац-грац. Вы добавили возможность пометки комментариев, т.е. возможность определения избранности. 5. Далее переходим в каталог views - /admin/structure/views
- создаём новое представление
- представление должно быть с привязкой на комментарии и в формате блок
6. Настройка представления - добавление нужных полей, фильтров и аргументов.
- Формат: Неформатированный список;
- Поля: Комментарий: Автор, Комментарий: Содержимое, Комментарий: Дата публикации;
- Критерии фильтрации: Комментарий: Одобрено (Да), (relationship) Содержимое: Опубликовано (Да), (relationship) Флаги: Помечено (Истина);
- Контекстные фильтры: Комментарий: Nid (Задать значение по умолчанию -> ID материала из URL);
- Отношения (relationship): Комментарий: Содержимое, Комментарий: Автор, Флаги: bestcomments (любым пользователем);
- Поведение при отсутствии результатов: Глобальный: Текстовое поле (Добавить что-то в духе: "В данный момент ни один комментарий не был выбран в качестве экспертного мнения") - чисто из этических соображений.
7. СОХРАНИТЬ ИЗМЕНЕНИЯ. Это серьёзно. Встречал на практике челавеков, которые умудрялись забывать этот галактический шаг. Жесть, но практика. ;) 8. Теперь у нас есть всё: функционал избранности и отображение этих самих избранных комментариев. Дело за малым - вывести этот самый блок views в нужной области; в регион, если он есть, а если нет - создать регион в Drupal 7; программно вывести блок в Drupal 7 в шаблоне материала node.tpl.php или в node--type.tpl.php:
Комментарии к записи
Дабы внести ясность, покажу на примере, мини-коллаж, как это вышло.
Итак, смотрим рисунки и задаём вопросы, если они ещё имели место остаться. ;)
1. Кто-то комментирует по делу или как обычно - просто чтобы отметиться:
2. Приходит адекватный тип и выбирает комментарий того, кто ему больше симпатизирует:
3. В результате видим работающий блок со спсиком уже темизированных комментариев: