]> www.wagner.pp.ru Git - oss/stilllife.git/blobdiff - doc/tz.txt
*** empty log message ***
[oss/stilllife.git] / doc / tz.txt
diff --git a/doc/tz.txt b/doc/tz.txt
new file mode 100644 (file)
index 0000000..e86d91f
--- /dev/null
@@ -0,0 +1,113 @@
+Вебстроительское
+Тут попробовал поставить YaBB2 и мне очень не понравилось. В инструкции
+по инсталляции рекомендуется на много какие файлы и каталоги ставить
+права 777 или 666, данные предлагается хранить в каталоге со скриптами
+etc.
+
+Большая часть прочих форумных движков которые я видел, вообще написаны
+на PHP. Наличие интерпретатора внутри апача меня не устраивает. Апач от
+этого пухнет, а сервер дохнет. В смысле, нагрузку не держит.
+
+Соответственно, ничего подходящего вообще не нашлось. А ведь
+функциональность форума вообще говоря минимальная.
+Древовидного комментирования почти нигде нет, иерархия с ограниченным
+числом уровней etc. Если грамотно сформулировать техзадание, пишется за
+три вечера.
+
+Вот и попробую эту функциональность сформулировать:
+
+архитектура
+
+1. Минимальные требования к серверу. Т.е. от сервера требуется только
+perl 5.8 с модулями, входящими в комплект и работающим flock, и
+web-сервер, умеющий исполнять CGI-скрипты. Все скрипты в taint mode.
+
+2. Все что можно отдавать статикой, отдавать статикой. Если ради этого
+придется пожертвовать возможностью создания форумов с ограниченным
+доступом, хрен с ними. Web-форумы - штука публичная.
+
+3. От клиента требуется графический браузер с включенным javascript.
+Поскольку иначе кастомизацию статической страницы не сделаешь. А у
+клиента процессорных тактов всяко больше, чем у сервера. Седую древность
+вроде IE 4.0, Netscape 2.0 и т.д. не поддерживаем.
+
+4. Отделение данных от кода и публичных данных от непубличных
+(непубличными данными являются только пароли и E-Mail-ы юзеров, а также
+права доступа). Система должна позволять используя один и тот же
+комплект скриптов на нескольких виртуальных сайтах на одном сервере
+поддерживать совершенно разные форумы с непересекающимся множеством
+пользователей.
+
+5. Полный контроль над внешним видом форума со стороны дизайнера
+шаблонов. Шаблоны должны проходить HTML-валидатор (для упрощения ловли
+глюков дизайна). Описание того, чем отличается шаблон от просто
+HTML-странички должно занимать не более страницы текста. Количество
+шаблонов не должно превышать десятка.
+
+6. Резервное копирование пользователь, имеющий доступ к файловой системе
+сервера, может осуществить независимо от того, что думает по этому
+поводу хостер. Просто скачав все файлы из соответствующих каталогов.
+Учитываем что каталог с паролями пользователя и правами доступа по http
+не доступен.
+
+features
+
+1. Есть понятие списка форумов сайта, списка тем в форуме и темы
+(дискуссии, последовательности сообщений)
+У форума может что-то, функционально эквивалентное сообщению, которое
+показывается в списке форумов. У темы - показывается первое сообщение.
+
+2. Сообщения можно добавлять в тему, отвечая на любое сообщение в теме,
+перемещать из темы в тему, удалять, редактировать. Поддерживается
+BBCode, поддерживается аплоад изображений для размещения в сообщениях.
+Аттачмент произвольных файлов не поддерживается. В форме ответа
+поддерживается операция цитирования. Слишком длинные темы режутся на
+страницы. Число сообщений на страницу задается в настройках сайта.
+
+3. Отправка сообщений разрешена только зарегистрированным пользователям.
+Перемещение сообщений из темы в тему и удаление - модераторам.
+Администратор - это тот, кто может назначать модераторов. Модераторы
+могут быть назначены на конкретный форум или даже тему. Форма ответа
+может появляться на той же странице (как в ЖЖ), а может на отдельной. В
+комплект поставки набор шаблонов с формой на той же странице следует
+включить.
+
+4. При регистрации пользователь указывает имя, пароль, E-Mail
+(обязательно) прочие виды контактов (необязательно), возможно пару полей
+форум-специфичной информации о себе (например на форуме ролевой игры -
+расу и профессию) и картинку. Есть понятие статуса пользователя, который
+выставляется модератором/администратором. (возможно, в дальнейшем туда
+стоит OpenID прикрутить).
+
+5. Веб-интерфейса для редактирования шаблонов и CSS нет. Это - через
+файловую систему сервера (ftp, ssh, локально, как хотите).
+
+6. Банить пользователя можно либо в пределах темы, либо в пределах
+форума, либо в пределах сайта.
+
+7. В зависимости от прав пользователя и факта его зарегистрированности
+должны показываться или не показываться кнопочки и ссылочки на всякие
+скрипты. Это делать client-side, возможно выполнив дополнительный запрос
+к серверу (можно через XmlHttpRequest, можно через <script src="...">
+для уточнения прав на текущую страницу.
+
+8. rss и почтовые уведомления о новых сообщениях - во вторую очередь.
+
+Вроде все.
+
+Технически это реализуется следующим образом: Есть каталог верхнего
+уровня, в нем лежит index.html со списком форумов, и подкаталоги для
+каждого форума. Плюс каталоги templates и users. Там же лежит файлик
+.forum описывающий конфигурацию форума. В первую очередь - положение
+файла паролей и файла прав доступа в файловой системе сервера (за
+пределами DOCUMENTROOT). URL на скрипты формируются как
+/cgi-bin/forum/скрипт/вызвавшая страница. Имя html-файла, который
+следует редактировать, радостно берем из PATH_TRANSLATED.
+
+Шаблоны содержат либо спец-комментарии указывающие места вставки текста,
+либо HTML-элементы с определенным id.
+
+Серверную часть действительно писать недолго, тем более если взять
+какой-нибудь уже написанный (их есть у меня) процессор шаблонов. Вот
+клиент-сайд скрипты для меня - нетривиально. Не умею я этого и не люблю.
+Может кто-нибудь поможет.