X-Git-Url: http://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=doc%2Ftemplates.txt;h=bc3b56f8bc85ecfdfc0c1821154d95e849dcd82d;hb=72f28e20daf17094faf0ff40a35c0a458a94902e;hp=6a0302c592fdfcef83f29d474a77933f2eba716c;hpb=b8f8fa46b1cd7be84af361f8df7d7de9bccea09e;p=oss%2Fstilllife.git diff --git a/doc/templates.txt b/doc/templates.txt index 6a0302c..bc3b56f 100644 --- a/doc/templates.txt +++ b/doc/templates.txt @@ -5,6 +5,16 @@ форм с определенными именами. Скрипты форума вставляют в эти файлы информацию руководствуясь классами элементов и именами полей форм. +Во всех шаблонах производится правка относительных URL в элементах +img src, a href, link href, form action. +В URL начинающихся со слова templates заменяются на значение templateurl +из конфигурации форума, URL, начинающиеся со слова users - на userurl, +со слова forum - на путь к скрипту форума. Остальные относительные (т.е. +не начинающиеся c http: или / url дополняются путем к корневому каталогу +форума. Cсылки вида forum?параметры будут заменены на +url-скрипта/url-страницы?параметры + + Шаблоны страниц: 1. Страница темы @@ -29,7 +39,7 @@ message manchor - якорь на который будут формироваться ссылки на это сообщение. Атрибут name заменяется на идентификтаор этого сообщения mlink - ссылка на это сообщение. Атрибут href заменяется на -mauthor - ник автора сообщения. innerHtml заменяется на ник автора +author - ник автора сообщения. innerHtml заменяется на ник автора Следует учитывать что в случае openId авторизации в этот элемент будет помещен элемент a со ссылкой на домашнюю страницу mdate - дата публикации сообщения innerHtml заменяется на дату @@ -84,24 +94,42 @@ mreply - ссылка на скрипт ответа. Атрибут href буд Клиент-сайд скрипт должен уметь скрывать кнопку move, если пользователь не является модератором, а также кнопки edit и delete, если пользователь не является автором сообщения, т.е. значение куки - forum_author не совпадает с содержимым скрытого поля author + sluser не совпадает с содержимым скрытого поля author + + Определять какие кнопки и ссылки являются ссылками на форумный скрипт + и должны скрываться и показываться в зависимости от прав доступа, + следует по атрибуту href ссылки и атрибуту action формы в сочетании с + атрибутом name у соответствующей кнопки. (кнопкой считаются input + type=submit и input type=image). + + В разделе head у шаблона должен присутствовать тэг link вида + + По общим правилам подстановки серверный скрипт при обработке шаблона + заменит href этого элемента на собственную url. + Соответственно формы с action равной этой URL следует рассматривать + как подлежащие обработке и искать в них кнопки с именами, + соответствующими именам операций. И ссылки с href=эта url?параметры + В ссылке следует искать параметр вида имя-операции. + + Для того чтобы узнать является ли текущий пользователь модератором + данного форума, нужно запросить с сервера (через XmlHttpRequest) + файл .moderators лежащий рядом с текущим файлом и далее вверх по + иерархии. Эти файлы представляют собой простые текстовые файлы с именем + пользователя в каждой строке. - Для того чтобы определить, является ли пользователь модератором данной - страницы, нужно включить в html следующий элемент - - Полученый по этой url скрипт выставляет две глобальные переменные - moderator - и administrator в значение true, если пользователь имеет соответствущие - права на данную тему и false, если не имеет. - Кроме того этот скрипт выставляет глобальную переменную author, которая - имеет значение идентификатора автора, что избавляет client-side cкрипт - от самостоятельного анализа cookies. + В корне форума имеется аналогичный файл .admins. - Манипулирование формами должно производиться из обработчика body onLoad - чтобы скрипт getrights успел загрузиться. + Можно также запросить файл .banned. - Если кука FORUM_AUTHOR или глобальная переменная author не определены, + Все эти действия являются необязательными. Если на клиентской стороне + они не будут выполнены и у пользователя появится возможность нажать на + кнопку выполнения операции, на которую у него нет прав, операция будет + заблокирована на сервере. + + + + Если кука sluser не определена, то желательно также скрыть кнопку reply и ссылку с классом mreply. Кроме того на странице могут присутствовать элементы a с классами @@ -161,7 +189,11 @@ POST-запроса уже содержащего требуемые данны элементов ввода заменяются на эти данные. В случае если во введенных данных произошла ошибка, сообщение об ошибке -скрипт вписывает в элемент с классом errmsg вместо его innerHtml +скрипт вписывает в элемент с классом error вместо его innerHtml + +Во всем шаблоне формы производится подстановка информации о текущем +пользователе, аналогично тому, как она производится в элементе с классом +message в шаблоне темы. Как правило, все скрипты получают следующую информацию 1. Поле с именем операции и произвольным непустым значением @@ -201,12 +233,18 @@ POST-запроса уже содержащего требуемые данны Форма регистрации нового пользователя (операция register, форма с именем register) - Содержит поля name - password password2 comment avatar (file upload field) - email + Содержит поля user + pass1 pass2 comment + avatar (поле ввода URL) или avatarfile(file upload field) + email Может также содержать любые дополнительные поля информации о пользователе (кроме поля status). Они будут сохранены в списке пользователей и могут потом выводиться в шаблонах рядом с информацией об авторе. + Скрытое поле required содержит список полей, которые обязательно + требуются при регистрации. Поля user, pass1 и pass2 туда включать не + следует. + Скрытое поле ignore содержит список полей, которые НЕ НУЖНО + сохранять в качестве информации о пользователе. Скрипт отправки комментария @@ -253,8 +291,15 @@ Cкрипт просмотра списка пользователей (опци Встраивание служебных форм непосредственно в страницы форума Форма, содержащая вышеперечиленные поля, имеющая метод POST и имеющая в поле - action="/cgi-bin/forum/