Начал я делать форум на Друпале. Если точнее, контент на Друпале у меня уже имелся, но основывался на типе "заметка" - это были вопросы пользователей, на которые я отвечал. Соответственно, вся информация была неструктурирована. Захотелось из этого сделать форум.
В процессе запуска форума возникла такая проблема - очень хочется сделать кнопку "новые сообщения" или там "обновленные темы" - ну как на не-Drupal форумах. Так крутился, этак, никак не получается. Вроде и view создал с фильтром has new content, а все равно никак.
Короче, как выяснилось, в текущей версии advanced_forum есть баг. Сабмиттить я его не буду - он уже исправлен в alpha-релизе (правда, тот у меня не пошел, превратив главную в кучу ошибок).
Поэтому предлагаю решение, работающее с текущей версией advanced_forum. Результат можно посмотреть по адресу http://help.sander.su/
- Начинаем с исправления бага в версии advanced_forum 6.x-1.1. При отметке всех сообщений прочитанными он правит дату посещения пользователя у тех нод, у которых либо дата последнего комментария больше, либо дата создания. Но дело в том, что это не совсем верный подход — нода могла быть изменена, дата создания может быть меньше, а дата изменения — больше. Поэтому берем файл modules/advanced_forum/advanced_forum.module и правим в двух местах WHERE (n.created > %d на WHERE (n.changed > %d
- Далее создаем view, показывающее непрочитанные сообщения. Для этого скачиваем и включаем drupal.org/project/views (если вы еще жто не сделали), новый view типа материал/node, фильтр на тип материала=forum и has new content. Поля: материал — заголовок, материал — последний комментатор, материал — дата последнего коментария. Первые два поля сделать ссылками. В заголовке делаем ссылку на /forum/markasread — пометить все прочитанными
- Продолжение шаманства — встраиваем ссылку на непрочитанные сообщения (допустим, этот view мы разместили по адресу new_posts) в ссылки форума. Для этого в modules/advanced_forum/styles/naked/advf-forums.tpl в самом конце перед div class=«forum-top-links» пишем
<? php $links[«new_posts»]=array(«title»=>«Список обновленных тем»,«href»=>«адрес сайта/new_posts»);?>
Возможно, это не лучшее решение, но оно работает. Кстати, я про создание форума на Drupal сделал тему на Хабрахабре (http://habrahabr.ru/blogs/drupal/100720/), поддержите, если есть аккаунт и желание.
Комментарии
Еще advanced_forum не отображает количество просмотров, хотя раздел такой есть. Не подскажите, как это исправить?
Хмм, не изучал вопрос так как не интересовался. Попробую завтра с утра разобраться.
А точно должен? Я вообще этот раздел найти не могу...
спасибо, воспользуюсь.
все вроде работает, только глюк лезет - у админов все нормально отображается, у обычных пользователей результат views двоиться, не пойму, с чего так...
странно, у меня такого не проявилось. может, версия views старая?
а по типу материала точно ограничение сделано?
в любом случае, мне кажется, можно у view сделать distinct чтобы решить проблему
ой, все в порядке уже, это я счетчик не включила..)) А вообще колонка есть такая, работает.
тогда скажите мне, что за колонка и где эта настройка находится
При просмотре списка тем, отображается колонка с количеством просмотров этих тем. По крайней мере при установке стиля blue_lagoon она есть автоматом.
Ну, значит, от темы зависит.
Спасибо!