ArtReal logo
На грани иронии
 

<! doctype content //public >
<! xref location=/Toweek/2002 >

 
24.09.2002

Вадим Артамонов

Одневникление

Как прикрутить дневники к форуму

Вначале была лента новостей. Потом к ней прикрутили комментарии. Потом пришли рэперы и сделали блог. А классические тусовщики обиделись и сделали LiveJournal.
(краткая история дневников в Интернете)

    Действительно, история дневников начинается с того, что Дейв Вайнер решил отделить новостную ленту от сайта в самостоятельную единицу - блог. Потом была быстро реализована модель с несколькими авторами на одну ленту. В свою очередь, команда LiveJournal реализовала другую модель - "many-to-many", при которой лента была у каждого.
    Что же делать, если вы решили организовать комьюнити на несколько человек (с возможностью расширения до нескольких сотен или тысяч)? Можно воспользоваться движком LiveJournal... но! Он требует перенастройки сервера (что не всегда возможно). С другой стороны, неплохо бы прикрутить дневники с существующему форуму, с единой системой профилей пользователей. Именно этот вариант мы и рассмотрим.

    Что требуется от дневника?
- каждому пользователю предоставляется отдельная лента
- администратор должен иметь возможность управлять дневниками (открыть/закрыть, удалить пост или кусок поста и т.д.)
- другие пользователи могут комментировать посты в дневниках других пользователей
- "хозяин" ленты может ограничивать доступ к своей ленте на запись
- возможность использования html или bb-кодов для форматирования текста
- и чего-то еще.

    Так вот, идея состоит в том, что нам совсем не нужно писать движок для дневника. Достаточно модифицировать движок форума так, чтобы он обслуживал еще и дневники.
    Дальнейшие рассуждения я буду привязывать к vBulletin (но они подойдут и к другим форумам, построенным на аналогичных принципах).
    Структурная схема дневников получается такой:
Структурная схема дневников
Слева направо: таблицы thread, post, comments.

    Чтобы не путаться в скриптах, ставим второй форум, но на ту же базу данных, а в списке форумов открываем новый форум "Дневники". Треды в этом форуме будут списками дневников, содержимое тредов - самим дневников (лентой дневника). А для комментариев создаем еще одну таблицу comments. Структуру таблицы comments берем с таблицы post (БД постов). Организация дневника закончена.
    Приступаем к кромсанию скриптов. Основная головная боль - проверка и ограничение прав доступа к дневнику: кто и куда может писать. Кроме того, необходимо перекрыть доступ к дневникам из основного форума - база ведь одна на всех. "Визуализатор дневника" получаем модификацией скрипта showthread, а для "визуализатора комментариев" копируем showthread в showcomment, и несколько корректируем запросы, заставляя скрипт обращаться к таблице comments. Добавление комментариев, newcomment, придется написать вручную.
    "Владелец дневника" может управлять доступом к комментариям через списки buddy list и ignore list.

    Идея, надеюсь, понятна. Дело за реализацией.

    P.S. Готовых скриптов дневников у меня нет. Писать их тоже не собираюсь - лень и нехватка времени.

На печать  

<! xref location=/Toweek/2002 >
<! doctype links //site-relative >