]> www.wagner.pp.ru Git - oss/stilllife.git/commitdiff
*** empty log message ***
authorVictor Wagner <vitus@wagner.pp.ru>
Mon, 24 Mar 2008 11:44:54 +0000 (11:44 +0000)
committerVictor Wagner <vitus@wagner.pp.ru>
Mon, 24 Mar 2008 11:44:54 +0000 (11:44 +0000)
doc/templates.txt
doc/tz.txt [new file with mode: 0644]

index 37cf3726dd08bc58defa0917336613fcaeb0de11..d9ba674334e1fa6fd0b268ce5ac55d9f03411cc7 100644 (file)
@@ -224,6 +224,26 @@ message в шаблоне темы.
 вызывается без соответствующего значения в url или postdata, это поле
 заполняется значением заголовка referer http-запроса.
 
+Обработка форматированного (размеченного) текста:
+
+В некоторые поля форм (текст реплики, подпись пользователя) должен
+вводиться форматированный текст.
+
+Такому полю должно соответствовать поле с именим имя_format (например, 
+полю text соотвествует поле text_format, полю signature -
+signature_format). Поле format может принимать одно из трех значений
+- html, bbcode и text. Если поле format имеет значение html, то
+содержимое соответствующего текстового поля рассматривается как html,
+подвергается чистке от небезопасных тэгов и сохраняется в таком виде.
+Если поле format имеет значение text, то спецсимволя эскейпятся, а
+переводы строки заменяются на теги <br>.
+
+Если поле имеет значение bbcode, то обрабатываются управляющие
+последовательности bbcode.
+
+Наличие URL в тексте проверяется независимо от формата.
+
+
  Скрипт регистрации (операция login)
  Форма с именем login содержит поля name и password
  Может также содержать  checkbox с именем ipbind (привязка
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.
+
+Серверную часть действительно писать недолго, тем более если взять
+какой-нибудь уже написанный (их есть у меня) процессор шаблонов. Вот
+клиент-сайд скрипты для меня - нетривиально. Не умею я этого и не люблю.
+Может кто-нибудь поможет.