--- /dev/null
+ Roadmap для client-side скриптов и дизайна
++ 1. Нормальный полноценный CSS и более приличные шаблоны темы и форума.
++ 2. Скрипт который по нажатию ссылки reply открывает форму прямо на
+ странице (находящуюся в <div id="reply">).
+ Форма должна открываться непосредственно под текущей ссылкой. vitus
+
+- 3. Аналогичный скрипт для ссылки login. (нафиг не надо)
++ 4. client-side проверка прав доступа done, safir
++ 5 скрытие элементов управления,
+ недоступных текущему пользователю. done, vitus
+ 6. Шаблоны остальных операций - по мере реализации оных.
+ 7. Операция цитирования реплики, на которую отвечаешь (вероятно, с
+ server-side поддержкой)
++ 8. Скрипт который при заполнении очередного поля аплоада картинки в
+ форме реплики, добавляет следующее пустое поле. vitus
+ 9 Скрипт подтверждения при нажатии на кнопку delete
+ (всплывающий div с кнопками да/нет как в ЖЖ)
--- /dev/null
+/* Базовые элементы сообщений, ссылок на темы etc */
+body {background-color: #ccffcc;}
+div.topic {background-color: #ffffcc; padding: 10px;
+margin: 5px; border: 1px solid #777777;}
+div.forum {background-color: #ffddcc; padding: 10px; margin: 10px; border: 1px solid #777777;}
+div.message {background-color: #ffffcc; padding: 10px; margin: 10px; border: 1px solid #777777;}
+div#replyform {background-color: #ccffcc; padding: 10px; border: 1px solid #777777;margin-top: 10px;}
+/* Ссылки на пользователей разных классов */
+a.admin {color: #ff7777;}
+a.moderator {color: #22aa22;}
+a.user {color: #2222aa;}
+.title {text-align: center;}
+.fineprint {font-size: 8pt;}
+q {font-style: italic;}
+a.title {font-size: 150%; font-weight: bold; }
+
--- /dev/null
+P {FONT-FAMILY: Verdana, Geneva, Arial, Helvetica, sans-serif;
+ FONT-SIZE: 12px; color : black; text-align: justify;
+}
+
+li {FONT-FAMILY: Verdana, Geneva, Arial, Helvetica, sans-serif;
+ FONT-SIZE: 12px; color : black; text-align: justify;
+}
+
+.violettext {color: #9c30ce; FONT-WEIGHT: bold;
+}
+
+.redtext {color: red; FONT-WEIGHT: bold;
+}
+
+.greentext {color: green; FONT-WEIGHT: bold;
+}
+
+.bluetext {color: blue; FONT-WEIGHT: bold;
+}
+
+.email:before {content: "@ "; color: red;
+font-size: 18px;
+}
+
+.email {font-weight: normal;
+}
+
+.icq:before {content: url("images/icq.gif") " ";}
+
+.icq {font-weight: normal;
+}
+
+.skype:before {content: url("images/skype.gif") " ";}
+
+.skype {font-weight: normal;
+}
+
+.mailagent:before {content: url("images/mailagent.gif") " ";}
+
+.mailagent {font-weight: normal;
+}
+
+P.just {TEXT-ALIGN: justify;}
+
+.parchtable {border-collapse: collapse; border: 0px;
+border-color: black; border-style: solid;}
+
+.parchtable tr td {padding: 10pt; background: url("http://www.belorya-rpg.ru/template/parchment.png")}
+
+.parchtable tr th {padding: 0pt; }
+
+
+.chartable {border-collapse: collapse; border: 0px;
+border-color: #522816; border-style: solid;}
+
+.chartable tr td {padding-right: 12px; padding-top: 3px; padding-bottom: 3px; padding-left: 12px; border-collapse: collapse; border: 0px; border-style: solid; FONT-FAMILY: Monotype Corsiva, serif;
+ FONT-SIZE: 17px;
+COLOR: #324237; font-weight: normal; }
+
+.chartable tr th {padding: 0pt; border-collapse: collapse; border: 0px; border-style: solid;}
+
+.bigtable{border-collapse: collapse; border: 1px;
+border-color: black; border-style: solid;}
+
+.bigtable tr td {padding: 0px; border-collapse: collapse; border: 1px;
+border-color: black; border-style: solid;}
+
+.bigtable tr th {padding: 0px;}
+
+.zagtable {border-collapse: collapse; }
+
+.zagtable tr td {height: 110px; width: auto; TEXT-ALIGN: justify; font-family: Arial, Helvetica,
+sans-serif; font-size: 12px; padding: 0pt; background: url("template/zagcenter1.png")}
+
+.zagtable tr th {width: 25px; height: 110px; TEXT-ALIGN: justify; font-family: Arial, Helvetica,
+sans-serif; font-size: 12px; padding: 0pt; font-weight: bold;}
+
+A:link {TEXT-DECORATION: none; FONT-WEIGHT: bold; COLOR: #1d6f36; }
+
+A:visited {TEXT-DECORATION: none; FONT-WEIGHT: bold; COLOR: #522816; }
+
+A:active {TEXT-DECORATION: none; FONT-WEIGHT: bold;
+}
+
+A:hover {
+ TEXT-DECORATION: underline; FONT-WEIGHT: bold;
+}
+
+.Text {
+ font-family: Arial, Helvetica, sans-serif;
+ FONT-SIZE: 12px;
+ COLOR: #FFFFFF;
+ TEXT-ALIGN: justify;
+ margin-top : 5px;
+ margin-bottom : 5px;
+}
+
+.Text:link {
+ FONT-FAMILY: Arial;
+ FONT-SIZE: 12px;
+ COLOR: #CA7A53;
+ TEXT-ALIGN: justify;
+}
+
+.Text:hover {
+ FONT-FAMILY: Arial;
+ FONT-SIZE: 12px;
+ COLOR: #CA7A53;
+ TEXT-ALIGN: justify;
+}
+
+.Text:visited {
+ FONT-FAMILY: Arial;
+ FONT-SIZE: 12px;
+ COLOR: #CA7A53;
+ TEXT-ALIGN: justify;
+}
+
+.Text:active {
+ FONT-FAMILY: Arial;
+ FONT-SIZE: 12px;
+ COLOR: #D04B4B;
+ TEXT-ALIGN: justify;
+}
+
+.shadowbox {position: relative; font-size: 28px; text-align: center;}
+.headertext {font-size: 14px; font-family: Arial, Helvetica, sans-serif;
+font-weight: bold; position: relative; top: 0; left: 0; color:
+#ff7902;z-index: 2; TEXT-ALIGN: left;}
+.headershadow {font-size: 14px; font-family: Arial, Helvetica,
+sans-serif; font-weight: bold; position: absolute; top: 1px; left: 1px;
+color: #666666; z-index: 1; TEXT-ALIGN: left;}
+
+.beltable {TEXT-ALIGN: justify; font-family: Arial, Helvetica,
+sans-serif; font-size: 12px; border-collapse: collapse; border: 1px;
+border-color: black; border-style: solid; }
+
+.beltable tr td {TEXT-ALIGN: justify; font-family: Arial, Helvetica,
+sans-serif; font-size: 12px; padding: 5pt; border-collapse: collapse; border: 1px;
+border-color: black; border-style: solid;}
+
+.beltable tr th {TEXT-ALIGN: justify; font-family: Arial, Helvetica,
+sans-serif; font-size: 12px; padding: 5pt; border-collapse: collapse; border: 1px;
+border-color: black; border-style: solid; font-weight: bold;}
+
+.topmenu {width: 160px; height: 30px; background: url("template/button2.png") no-repeat;}
+
+.topmenu a:link {display: block; padding-left: 7px; padding-right: 7px;
+padding-top: 6px; padding-bottom: 7px;
+ FONT-SIZE: 17px; FONT-FAMILY: Monotype Corsiva, serif ;
+ COLOR: #324237;
+ font-weight: bold;
+ TEXT-DECORATION: none;
+
+}
+
+.topmenu a:visited {display: block; padding-left: 7px; padding-right: 7px; padding-top: 6px; padding-bottom: 7px;
+ FONT-SIZE: 17px; FONT-FAMILY: Monotype Corsiva, serif ;
+ COLOR: #324237;
+ font-weight: bold;
+ TEXT-DECORATION: none;
+}
+
+.topmenu a:hover {display: block; padding-left: 7px; padding-right: 7px;
+padding-top: 6px; padding-bottom: 7px;
+ FONT-SIZE: 17px; FONT-FAMILY: Monotype Corsiva, serif ;
+ COLOR: #324237;
+ font-weight: bold;
+ TEXT-DECORATION: underline;
+}
+
+.topmenu a:active {display: block; padding-left: 7px; padding-right: 7px;
+padding-top: 6px; padding-bottom: 7px;
+ FONT-SIZE: 17px; FONT-FAMILY: Monotype Corsiva, serif ;
+ COLOR: #324237;
+ font-weight: bold;
+ TEXT-DECORATION: none;
+}
+
+
+
+
+.submenu {margin-left: 160px; background-color: #cccccc; padding-top: 7px; padding-bottom: 7px; border: solid 2px; border-color: #dd9f64; float: right; position: absolute; background: url("template/green.png"); width: 215px;}
+.submenu a:link {FONT-FAMILY: Arial, Helvetica, sans-serif ; FONT-SIZE: 12px;
+color: #e1d3b9; padding-left: 20px; padding-right: 20px; TEXT-DECORATION: none; }
+
+.submenu a:visited {FONT-FAMILY: Arial, Helvetica, sans-serif ; FONT-SIZE: 12px;
+color: #e1d3b9; padding-left: 20px; padding-right: 20px; TEXT-DECORATION: none; }
+
+.submenu a:hover {FONT-FAMILY: Arial, Helvetica, sans-serif ; FONT-SIZE: 12px;
+color: #e1d3b9; padding-left: 20px; padding-right: 20px; TEXT-DECORATION: underline; }
+
+.submenu a:active {FONT-FAMILY: Arial, Helvetica, sans-serif ; FONT-SIZE: 12px;
+color: #e1d3b9; padding-left: 20px; padding-right: 20px; TEXT-DECORATION: none; }
+
+
+
+P.head1 {color: #522816; FONT-FAMILY: Monotype Corsiva, serif ; FONT-SIZE: 22px; padding: 0 0 0 0; TEXT-ALIGN: center; FONT-WEIGHT: normal;}
+
+P.pagetitle{color: #522816; FONT-FAMILY: Monotype Corsiva, serif ; FONT-SIZE: 40px; TEXT-ALIGN: center; margin: 0px 0px 0px 0px ; FONT-WEIGHT: normal;}
+
+body {background: url("http://www.belorya-rpg.ru/template/green.png");}
+
+p.copyright {FONT-FAMILY: Arial, Helvetica, sans-serif ; FONT-SIZE: 10px; FONT-STYLE: italic; COLOR: #dd9f64; text-align: right;
+}
+
+p.center {TEXT-ALIGN: center;}
+
+h1 {color: #522816; FONT-FAMILY: Monotype Corsiva, serif ; FONT-SIZE: 28pt; TEXT-ALIGN: center; font-weight: normal; margin: 0px 0px 0px 0px ;}
+
+p.line {text-align: center;}
+
+.hand { FONT-FAMILY: Monotype Corsiva, serif ; FONT-SIZE: 12pt; COLOR: #324237; FONT-WEIGHT: normal;}
+
+.up {FONT-FAMILY: Monotype Corsiva, serif ; FONT-SIZE: 12pt; COLOR: #324237; FONT-WEIGHT: normal; TEXT-ALIGN: right; TEXT-DECORATION: underline;}
+
+.up a {FONT-FAMILY: Monotype Corsiva, serif ; FONT-SIZE: 12pt; COLOR: #324237; FONT-WEIGHT: normal; TEXT-ALIGN: right; TEXT-DECORATION: underline;}
+
+.up a:visited {FONT-FAMILY: Monotype Corsiva, serif ; FONT-SIZE: 12pt; COLOR: #324237; FONT-WEIGHT: normal; TEXT-ALIGN: right; TEXT-DECORATION: underline;}
+
+.up a:hover {FONT-FAMILY: Monotype Corsiva, serif ; FONT-SIZE: 12pt; COLOR: #324237; FONT-WEIGHT: normal; TEXT-ALIGN: right; TEXT-DECORATION: underline;}
+
+.up a:active {FONT-FAMILY: Monotype Corsiva, serif ; FONT-SIZE: 12pt; COLOR: #324237; FONT-WEIGHT: normal; TEXT-ALIGN: right; TEXT-DECORATION: underline;}
+
+.left {ALIGN: left;}
+
+/* ??, ??? ????????? ? ?????? ?????? */
+
+
+.topic {background-color: #ffffcc; padding: 10px;
+margin: 5px; border: 1px solid #777777; background: url("http://www.belorya-rpg.ru/template/parchment.png")}
+div.forum {background-color: #ffddcc; padding: 10px; margin: 10px; border: 1px solid #777777;}
+div.message {padding: 0px; margin: 0px; }
+div#replyform {background-color: #ccffcc; padding: 10px; border: 1px solid #777777;margin-top: 10px;}
+/* ?????? ?? ????????????? ?????? ??????? */
+a.admin {color: #ff7777;}
+a.moderator {color: #22aa22;}
+a.user {color: #2222aa;}
+.title {color: #522816; FONT-FAMILY: Monotype Corsiva, serif ; FONT-SIZE: 40px;margin: 0px 0px 0px 0px ; FONT-WEIGHT: normal;}
+.fineprint {font-size: 8pt;}
+q {font-style: italic;}
+a.title {font-size: 150%; font-weight: bold; }
+.messagelist {padding: 0px 0px 0px 0px;}
+.abstract{text-align: center;}
+.userurl{width: 160px; height: 30px; background: url("http://www.belorya-rpg.ru/template/button2.png") no-repeat; border:1}
+.author {FONT-FAMILY: Monotype Corsiva, serif ; FONT-SIZE: 18px; FONT-WEIGHT: bold;}
+.user {FONT-FAMILY: Monotype Corsiva, serif ; FONT-SIZE: 21px; FONT-WEIGHT: normal; color: #2222aa; margin: 0px 0px 10px 0px;}
+
+
+.forumtable {border-collapse: collapse; border: 3px;
+border-color: #522816; border-style: solid; margin-bottom: 4pt;}
+
+.forumtable tr td {padding: 10pt; background: url("http://www.belorya-rpg.ru/template/parchment.png");}
+
+.forumtable tr th {TEXT-ALIGN: justify; font-weight: bold;
+border-collapse: collapse; border: 2px; border-style: solid; border-top:
+none; border-bottom: none; padding: 10pt; background: url("http://www.belorya-rpg.ru/template/parchment.png"); border-color: #522816; }
+
+
+/* ????? ????????? ??, ??? ????????? ? ?????? ?????? */
--- /dev/null
+// Библиотека стандартных функций, используемых как в формах в форумного
+// скрипта так и на страницах форума.
+
+
+// Запрещает поле password в текущей форме если значение value текущего
+// элемента не пусто. Используется в качестве обработчика onChange
+// для поля openidsite. Пример использования
+// <select name="openidsite" onChange="selectSite(this)">
+
+function selectSite( element) {
+ var form = element.form;
+ var password_field = form["password"];
+ if (element.value != "") {
+ password_field.disabled=1;
+ } else {
+ password_field.disabled=0;
+ }
+}
+//
+// Вызывается при заполнении очередного поля аплоада картинки и
+// добавляет еще одно такое же.
+//
+function addPictureInput(tag) {
+ // Ищем вверх по дереву элемент с классом pictureinput
+ while (tag.className != "pictureinput") {
+ if (!tag.parentNode) {
+ // Не нашли
+ break;
+ }
+ tag=tag.parentNode;
+ }
+ // Теперь пошли вниз по сиблингам искать, есть ли пустое поле
+ var prev=tag;
+ while (tag && tag.className == "pictureinput") {
+ prev = tag;
+ tag=tag.nextSibling;
+ }
+ var inputs = prev.getElementsByTagName("input");
+ if (!inputs[0].value) {
+ // Последний элемент еще не заполнен. Новый не нужен.
+ return;
+ }
+ var copy = prev.cloneNode(true);
+ inputs = copy.getElementsByTagName("input");
+ inputs[0].value = "";
+ inputs[0].name="image"+(parseInt(inputs[0].name.substring(5,
+ inputs[0].name.length))+1);
+ inputs[0].title = inputs[0].name;
+ prev.parentNode.insertBefore(copy,tag);
+ return;
+}
+//
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>Still Life - Создать форум</TITLE>
+<script type="text/javascript" language="JavaScript" src="templates/form.js"></script>
+<script type="text/javascript" language="JavaScript" src="templates/common.js"></script>
+<link rel="forum-script" href="forum">
+<link rel="forum-user-list" href="forum">
+<link rel="stylesheet" type="text/css" href="templates/basic.css">
+</HEAD><BODY>
+<H3>Тестовый форум Still Life</h3>
+<h2>Редактирование подфорума</h2>
+<form method="POST" enctype="multipart/form-data" action="forum"
+name="edit_forum">
+<table border=0>
+<tr><td>Название</td><td><input type=text name="title" size=30>
+</td></tr>
+<tr><td>Имя в URL</td><td><span class="urlname"></span></td></tr>
+<tr><td>Аннотация</td><td><textarea name="abstract" rows=5 cols=50></textarea></td></tr>
+<tr><td>Формат</td><td><select name="abstract_format"><option
+value="text">Текст без разметки</option>
+<option value="bbcode">BBCode</option>
+<option value="html">Html</option>
+</select></td></tr>
+<tr><td>Картинка</td><td><input type="file" name="logo"><br>
+<div class="picture">
+<img src="#" width=1 height=1 class="logo"><br clear=all">
+Удалить <input type="checkbox" name="delpicture" value=""></div>
+</td></tr>
+<tr><td colspan=2 class="error"></td></tr>
+<tr><td colspan=2 align="right"><input type=submit name="edit"
+value="Сохранить">
+</table>
+
+</form>
+
+</BODY>
+</HTML>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>Still Life - Высказаться</TITLE>
+<script type="text/javascript" src="templates/form.js"></script>
+<script type="text/javascript" src="templates/common.js"></script>
+<link rel="forum-script" href="forum">
+<link rel="forum-user-list" href="forum">
+<link rel="stylesheet" type="text/css" href="templates/basic.css">
+</HEAD><BODY>
+<H3>Тестовый форум Still Life</h3>
+<H1>Редактирование сообщения</H1>
+<form method="POST" enctype="multipart/form-data" name="edit_message" action="forum">
+<input type="hidden" name="id" value="">
+<table border=0>
+<tr><td colspan=2 class="error"></td></tr>
+<tr><td>Тема: </td><td><input name="subject" size="40"></td></tr>
+<tr><td>Текст:</td><td><textarea name="text" rows=10
+cols=72></textarea></td></tr>
+<tr><td>Формат:</td><td><select name="text_format"><option value="text"
+selected>Без разметки</option>
+<option value="bbcode">BBCode</option>
+<option value="html">Html</option></select></td></tr>
+<tr class="pictureinput"><td>Картинка</td> <td><input onchange="addPictureInput(this);" type=file name="image1"></td></tr>
+<tr><td colspan=2">
+<div class="picturelist" style="display: none;">
+<h3>Существующие картинки</h3>
+(пометтье чекбокс под картинкой для удаления)
+<div class="picture">
+<img src="#" width=1 height=1 class="msgpicture"><br clear=all>
+<span class="filename"></span> <input type="checkbox" name="delpicture"
+value=""></div>
+</td></tr>
+<tr><td colspan=2 align=right><input type=submit name="edit"
+value="Сохранить">
+</table>
+
+</form>
+
+</BODY>
+</HTML>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>Still Life - Создать тему</TITLE>
+<script type="text/javascript" language="JavaScript" src="templates/form.js"></script>
+<script type="text/javascript" language="JavaScript" src="templates/common.js"></script>
+<link rel="forum-script" href="forum">
+<link rel="forum-user-list" href="forum">
+<link rel="stylesheet" type="text/css" href="templates/basic.css">
+</HEAD><BODY>
+<H3>Тестовый форум Still Life</h3>
+<form method="POST" enctype="multipart/form-data" action="forum"
+name="edit_topic">
+<table border=0>
+<tr><td>Название</td><td><input type=text name="title" size=30>
+</td></tr>
+<tr><td>Имя в URL</td><td><span class="urlname" ></span></td></tr>
+<tr><td>Аннотация</td><td><textarea name="abstract" rows=5 cols=50></textarea></td></tr>
+<tr><td>Формат</td><td><select name="abstract_format"><option
+value="text">Текст без разметки</option>
+<option value="bbcode">BBCode</option>
+<option value="html">Html</option>
+</select>
+<tr><td colspan=2 class="error"></td></tr>
+<tr><td align=left><input type=submit name="closetopic" value="Закрыть
+тему"><td align="right"><input type=submit name="edit"
+value="Сохранить">
+</table>
+
+</form>
+
+</BODY>
+</HTML>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>Ошибка</TITLE>
+<link rel="forum-script" href="forum">
+<link rel="forum-user-list" href="forum">
+<link rel="stylesheet" type="text/css" href="templates/basic.css">
+</HEAD><BODY>
+<H3>Тестовый форум Still Life</h3>
+<h1>Произошла неустранимая ошибка</h1>
+<div class="error"></div>
+</BODY>
+</HTML>
--- /dev/null
+// Библиотека стандартных функций, используемых в формах форумного
+// скрипта
+//
+
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<META NAME="description" CONTENT="">
+<TITLE>Still Life - Форум</TITLE>
+<script type="text/javascript" language="JavaScript" src="templates/page.js"></script>
+<script type="text/javascript" language="JavaScript" src="templates/common.js"> </script>
+<link rel="forum-script" href="forum">
+<link rel="forum-user-list" href="forum">
+<link rel="stylesheet" type="text/css" href="templates/basic.css">
+</HEAD><BODY onload="customizePage()">
+<a class="userurl" href="forum?register=1">Зарегистрироваться</a> <a
+class="login" href="forum?login=1">Войти</a>
+<a href="forum?newtopic=1">Создать тему</a>
+<a href="forum?newforum=1">Создать форум</a>
+<a href="forum?edit=1">Редактировать</a>
+<a href="forum?setrights=1">Права доступа</a>
+<a href="..">Уровень выше</a>
+<a href="//">В начало</a>
+<a href="//recent.html">Свежие сообщения</a>
+<a href="forum?profile=1">Профиль</a>
+<a href="users">Пользователи</a>
+<H3>Тестовый форум Still Life</h3>
+<div class="annotation">
+<h2 class="title">Корень форума</h2>
+<table border=0><tr><td width="30%"><img src="logo.png" width=1 height=1 alt=""
+class="logo"></td><td>Создан <span class="date"></span><br>
+<div class="abstract"></div></td></tr></table></div>
+<br>
+<div class="forumlist">
+<h2>Подфорумы</h2>
+<div class="forum">
+<p>
+<table border="0">
+<tr><td colspan="2">
+<a href="#" class=title>Название форума</a> Создан: <span
+class="date"></span><br></td></tr>
+<tr><td width="30%"><img class="logo" src="#" width="1" height="1"
+alt=""></td><td>
+<div class="abstract">аннотация форума</div>
+<form class="foruminfo" action="forum" method="GET">
+<input type="submit" name="edit" value="Редакт">
+<input type="submit" name="move" value="Переместить">
+<input type="submit" name="delete" value="Удалить">
+<input type="submit" name="setrights" value="Доступ">
+</form>
+</td></tr></table>
+</div>
+</div>
+<div class="topiclist">
+<h2>Темы</h2>
+<div class="topic" >
+<a href="#" class=title>Название темы</a> Создана: <span class="date"></span><br>
+<a class="author" href="#">#</a>
+<a class="tlink" name=""></a>
+<br>
+<div class="abstract">аннотация темы</div>
+Количество сообщений <span class="msgcount"></span> (<span
+class="last-updated"></span>)
+<form class="topicinfo" action="forum" method="GET">
+<input name=author type="hidden">
+<input type="submit" name="edit" value="Редакт">
+<input type="submit" name="move" value="Переместить">
+<input type="submit" name="delete" value="Удалить">
+<input type="submit" name="reply" value="Высказаться">
+</form>
+</div>
+</div>
+</BODY>
+</HTML>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>Still Life - Вход</TITLE>
+<script type="text/javascript" language="JavaScript" src="templates/form.js"></script>
+<script type="text/javascript" language="JavaScript" src="templates/common.js"></script>
+<link rel="forum-script" href="forum">
+<link rel="forum-user-list" href="forum">
+<link rel="stylesheet" type="text/css" href="templates/basic.css">
+</HEAD><BODY bgcolor="#ccffcc">
+<H3>Тестовый форум Still Life</h3>
+<form method="POST" action="forum" name="login">
+<a class="author" href="forum?register=1">Зарегистрироватьcя</a>
+<table border=0>
+<tr><td>Имя пользователя:</td><td><input type=text name="user" size=30>
+</td></tr>
+<tr><td>Сайт на котором вы зарегистрированы</td><td> <select
+name="openidsite" onChange="selectSite(this)">
+<option selected value="">Этот сайт</option>
+<option value="http://livejournal.com/users/%s">LiveJournal.com</option>
+<option value="http://diary.ru/~%s">Diary.ru</option>
+<option value="http://lj.rossia.org/users/%s">LJ.Rossija.org</option>
+<option value="http://%s">Другой Open-ID сайт</option>
+</select></td></tr>
+<tr><td>Пароль:</td><td><input type="password" name="password"
+size=20></td></tr>
+<tr><td></td><td><input type="checkbox" name="bindip" value="1"> Только с этого IP-адреса
+</td></tr>
+<tr><td colspan=2 class="error"></td></tr>
+<tr><td colspan=2 align=right><input type=submit name="login"
+value="Вoйти"></td></tr>
+</table>
+
+</form>
+
+</BODY>
+</HTML>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>Still Life - Создать форум</TITLE>
+<script type="text/javascript" language="JavaScript" src="templates/form.js"></script>
+<script type="text/javascript" language="JavaScript" src="templates/common.js"></script>
+<link rel="forum-script" href="forum">
+<link rel="forum-user-list" href="forum">
+<link rel="stylesheet" type="text/css" href="templates/basic.css">
+</HEAD><BODY>
+<H3>Тестовый форум Still Life</h3>
+<h2>Создание подфорума</h2>
+<form method="POST" enctype="multipart/form-data" action="forum" name="newforum">
+<table border=0>
+<tr><td>Название</td><td><input type=text name="title" size=30>
+</td></tr>
+<tr><td>Имя в URL</td><td><input type=text name="urlname" size=30></td></tr>
+<tr><td>Аннотация</td><td><textarea name="abstract" rows=5 cols=50></textarea></td></tr>
+<tr><td>Формат</td><td><select name="abstract_format"><option
+value="text">Текст без разметки</option>
+<option value="bbcode">BBCode</option>
+<option value="html">Html</option>
+</select></td></tr>
+<tr><td>Картинка</td><td><input type="file" name="logo"></td></tr>
+<tr><td colspan=2 class="error"></td></tr>
+<tr><td colspan=2 align="right"><input type=submit name="newforum"
+value="Создать">
+</table>
+
+</form>
+
+</BODY>
+</HTML>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>Still Life - Создать тему</TITLE>
+<script type="text/javascript" language="JavaScript" src="templates/form.js"></script>
+<script type="text/javascript" language="JavaScript" src="templates/common.js"></script>
+<link rel="forum-script" href="forum">
+<link rel="forum-user-list" href="forum">
+<link rel="stylesheet" type="text/css" href="templates/basic.css">
+</HEAD><BODY>
+<H3>Тестовый форум Still Life</h3>
+<form method="POST" enctype="multipart/form-data" action="forum" name="newtopic">
+<table border=0>
+<tr><td>Название</td><td><input type=text name="title" size=30>
+</td></tr>
+<tr><td>Имя в URL</td><td><input type=text name="urlname" size=30></td></tr>
+<tr><td>Аннотация</td><td><textarea name="abstract" rows=5 cols=50></textarea></td></tr>
+<tr><td>Формат</td><td><select name="abstract_format"><option
+value="text">Текст без разметки</option>
+<option value="bbcode">BBCode</option>
+<option value="html">Html</option>
+</select>
+<tr><td colspan=2 class="error"></td></tr>
+<tr><td colspan=2 align="right"><input type=submit name="newtopic"
+value="Создать">
+</table>
+
+</form>
+
+</BODY>
+</HTML>
--- /dev/null
+// Библиотека стандартных функций, используемых на страницах форума
+//
+// Извлекает из кук имя текущего пользователя и возвращает его, а также
+// сохраняет в глобальной переменной forumUser;
+var forumUser;
+var userStatus;
+function getUserName() {
+ var cookietext =document.cookie;
+ var pos = cookietext.indexOf("sluser=");
+ if (pos == -1) {
+ return undefined;
+ }
+ var start = pos+7;
+ var end = cookietext.indexOf(";",start);
+ if (end == -1) end=cookietext.length;
+ var value= cookietext.substring(start,end);
+ forumUser = decodeURIComponent(value);
+ return forumUser;
+}
+//
+// Шаблон страницы содержит два специальных тэга link с rel=forum-script
+// и rel=forum-user-list
+// Эта функция извлекает их в глобальные переменные forumScriptUrl
+// и userListUrl;
+var forumScriptUrl;
+var userListUrl;
+function getBaseURLs() {
+ var links=document.getElementsByTagName("link");
+ for (i=0;i<links.length;i++) {
+ if (links[i].rel == "forum-script") {
+ forumScriptUrl = links[i].href;
+ } else if (links[i].rel == "forum-user-list") {
+ userListUrl = links[i].href;
+ }
+ }
+}
+function showUser(username) {
+ if (!username) {
+ // Прячем ссылку на профиль
+ var links=document.getElementsByTagName("a");
+ for (i=0;i<links.length;i++) {
+ if (links[i].href.substring(0,forumScriptUrl.length)==
+ forumScriptUrl && links[i].href.indexOf("profile=")!=-1) {
+ while (links[i].childNodes.length>0) {
+ links[i].removeChild(links[i].childNodes[0]);
+ }
+ }
+ }
+ return ;
+ }
+ userStatus = getUserRights(username);
+ var links=document.getElementsByTagName("a");
+ for (i=0;i<links.length;i++) {
+ if (links[i].className == "userurl") {
+ while (links[i].childNodes.length>0) {
+ links[i].removeChild(links[i].childNodes[0]);
+ }
+ if (username.substring(0,7) == "http://") {
+ links[i].href=username;
+ username=username.substring(7,username.length);
+ } else {
+ links[i].href=userListUrl+"/" + username;
+ }
+ links[i].appendChild(document.createTextNode(username));
+ links[i].className = userStatus;
+ } else if (links[i].href.substring(0,forumScriptUrl.length)==
+ forumScriptUrl && links[i].href.indexOf("login=")!=-1) {
+ while (links[i].childNodes.length>0) {
+ links[i].removeChild(links[i].childNodes[0]);
+ }
+ links[i].appendChild(document.createTextNode("Выйти"));
+ links[i].href=forumScriptUrl+"?logout=1";
+ }
+ }
+}
+
+//
+// Добывает с сервера информацию о модераторах данного форума и
+// возвращает user, moderator или admin в зависисмости от статуса
+// указанного пользователя.
+//
+function getUserRights(user) {
+ var status="user";
+ var xhr=getXMLHttpRequest();
+ if(!xhr) return status;
+ // Strip http:// prefix from OpenID url
+ if (user.substring(0,7) == "http://") {
+ user=user.substring(7,user.length);
+ }
+ var hr=location.href.match(/^\w+:\/\/[^/]*\/([^?#]+)/);
+ if(hr==null) return status;
+ var depth=hr[1].split(/\//).length;
+ var re=new RegExp("\n\\\[\s*(admins|moderators|banned)\s*\\\]\s*[^[]*\n"+user+"\n","m");
+ for(var path="",i=0;i<depth;path+="../",i++) {
+ xhr.open("GET", path+"perms.txt",false);
+ xhr.send("");
+ if(xhr.status!=200) continue;
+
+ var perms=("\n"+xhr.responseText+"\n").match(re);
+ if(perms!=null) {
+ if(perms[1]=="banned") return "banned";
+ if(perms[1]=="admins") return "admin";
+ status="moderator";
+
+ }
+
+ xhr.open("GET", path+".forum",false);
+ xhr.send("");
+ if(xhr.status==403 || xhr.status==200) break;
+ }
+ return status;
+}
+
+// Обработчик body onLoad
+// Пробегается по странице и прячет все элементы
+// управления, которые не разрешены данному пользователю
+//
+function customizePage() {
+ getBaseURLs();
+ showUser(getUserName());
+ hideDeniedOperations();
+}
+// Заготовка на будущее
+function hideDeniedOperations() {
+
+ var user = forumUser;
+ var rights = userStatus;
+ if (user && user.indexOf("http://")==0) {
+ user=user.substring(7,user.length);
+ }
+ if (rights == "admin") {
+ // Админу можно все
+ return;
+ }
+ var links=document.getElementsByTagName("a");
+ var forms=document.getElementsByTagName("form");
+ // Убираем только администраторскую функцию setrights
+ for (i=0;i<links.length;i++) {
+ if (links[i].href.indexOf("setrights=") != -1) {
+ links[i].style.display="none";
+ }
+ }
+ for (i=0;i<forms.length;i++) {
+ if (forms[i].className == "foruminfo") {
+ var inputs = forms[i].getElementsByTagName("input");
+ for (j=0;j<inputs.length;j++) {
+ if (inputs[j].name == "setrights") {
+ inputs[j].style.display="none";
+ }
+ }
+ }
+ }
+ if (rights == "moderator") {
+ return;
+ }
+ for (i=0;i<forms.length;i++) {
+ if (forms[i].className == "foruminfo") {
+ forms[i].style.display="none";
+ } else if (forms[i].className == "msginfo"||
+ forms[i].className=="topicinfo") {
+ if (rights=="banned") {
+ forms[i].style.display="none";
+ } else {
+ var inputs = forms[i].getElementsByTagName("input");
+ var my_item = false;
+ for (j=0;j<inputs.length;j++) {
+ if (inputs[j].name == "move") {
+ inputs[j].style.display="none";
+ }
+ }
+ if (user) {
+ for (j=0;j<inputs.length;j++) {
+ if (inputs[j].name == "author") {
+ my_item = inputs[j].value == user;
+ break;
+ }
+ }
+ }
+ if (!my_item) {
+ for (j=0;j<inputs.length;j++) {
+ if (inputs[j].name == "edit" ||
+ inputs[j].name == "delete") {
+ inputs[j].style.display="none";
+ }
+ }
+ }
+ }
+ }
+ }
+ // Убираем все модераторские операции из ссылок
+ for (i=0;i<links.length;i++) {
+ if (links[i].href.indexOf("newforum=")!=-1 ||
+ links[i].href.indexOf("move=")!=-1) {
+ links[i].style.display="none";
+ }
+
+ }
+ if (!forumUser || rights == "banned") {
+ for (i=0;i<links.length;i++) {
+ if (links[i].href.indexOf("newtopic=")!=-1 ||
+ links[i].href.indexOf("edit=")!=-1 ||
+ links[i].href.indexOf("delete=")!=-1||
+ (rights == "banned" && links[i].href.indexOf("reply=")!=-1)) {
+ links[i].style.display="none";
+ }
+ }
+ return;
+ }
+ // Убираем операции edit и delete для тех объектов, где юзер не
+ // автор
+
+
+}
+
+//
+// Показывает встроенную в страницу форму под текущей ссылкой
+// Использование <a href="forum?operation=1&id=id" // onClick="showform(this,operation)">
+function showForm(link, formName) {
+ var id;
+ var action;
+ if (link.form) {
+ link = link.form;
+ id = link.elements["id"].value;
+ action = link.action;
+ } else {
+ var linktext=link.href;
+ // Разобрать параметры, получить значение id
+ var start =linktext.indexOf("id=");
+ if (start!=-1) {
+ start+=3;
+ var end = linktext.indexOf("&",start);
+ if (end==-1) end=linktext.length;
+ id = linktext.substring(start,end);
+ }
+ start=linktext.indexOf("?");
+ action=linktext.substring(0,start);
+ }
+ var block = document.getElementById(formName);
+ var f = block.getElementsByTagName("form")[0];
+ f.action=action;
+ if (id) {
+ f.elements["id"].value=id;
+ }
+ window.setTimeout(function() {f.elements["text"].focus();},250);
+ linktext = document.location.href;
+ var anchor = linktext.indexOf("#");
+ if (anchor!=-1) {
+ linktext=linktext.substring(0,anchor);
+ }
+ document.location.href=linktext+"#replyform";
+ return false;
+}
+function hideForm(formId) {
+ var block = document.getElementById(formId);
+ block.style.display = "none";
+}
+/**
+* Создаёт объект XMLHttpRequest, предварительно уничтожая существующий,
+* если такой существует.
+*/
+function getXMLHttpRequest()
+{
+ try {
+ return xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
+ } catch (e) {
+ try {
+ return new ActiveXObject("Microsoft.XMLHTTP");
+ } catch (E) {
+ if (typeof XMLHttpRequest!='undefined')
+ return new XMLHttpRequest();
+ }
+ }
+
+ return false;
+}
+
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>Still Life - регистрация пользователя</TITLE>
+<script type="text/javascript" src="templates/form.js"></script>
+<script type="text/javascript" src="templates/common.js"></script>
+<link rel="forum-script" href="forum">
+<link rel="forum-user-list" href="forum">
+<link rel="stylesheet" type="text/css" href="templates/basic.css">
+</HEAD><BODY>
+<H3>Тестовый форум Still Life</h3>
+<div style="border: 1px solid; border-color: #777777; padding: 5px;">
+<form method="POST" name="login" action="forum">
+Имя: <input type=text name="user" size=30>
+<select name="openidsite" onchange="selectSite(this)">
+<option selected value="">Этот сайт</option>
+<option value="http://livejournal.com/users/%s">LiveJournal.com</option>
+<option value="http://diary.ru/~%s">Diary.ru</option>
+<option value="http://lj.rossia.org/users/%s">LJ.Rossia.org</option>
+<option value="http://%s">Другой Open-ID сайт</option>
+</select>
+<input type=submit name=login value="Войти"><br>
+Пароль: <input type="password" name="password">
+<input type="checkbox" name="bindip" value="1"> Только с этого IP-адреса
+</form>
+</div>
+
+<h1>Регистрация нового пользователя</h1>
+<div class="error"></div>
+<form name="register" method="POST" action="forum" enctype="multipart/form-data">
+<table border=0>
+<tr><td>Имя</td><td><input name="user" size="32"></td></tr>
+<tr><td rowspan=2>Пароль</td><td><input name="pass1" type="password"></td></tr>
+<tr><td><input name="pass2" type="password"></td></tr>
+<tr><td>Адрес E-Mail</td><td><input name="email" size="40"></td></tr>
+<tr><td>Адрес ICQ</td><td><input name="icq" size="12"></td></tr>
+<tr><td>Адрес Jabber</td><td><input name="jabber" size="40"></td></tr>
+<tr><td>Пол</td><td><select name="gender"><option>Мужской</option><option >Женский</option><option selected>Не
+афишируется</option></select></td></tr>
+<tr><td>Потолок<br><span class="fineprint">(в метрах)</span></td><td><input name="ceiling" size="8"></td></tr>
+<tr><td>Комментарий<br><span class="fineprint">(виден только<br>на странице<br>
+пользователя)</span></td><td><textarea name="comment" rows=5
+cols=60></textarea><br><select name="comment_format"><option
+value="text">Без разметки</option><option
+value="bbcode">BBCode</option><option
+value="html">Html</option></select></td></tr>
+<tr><td rowspan=2>Аватар</td><td>URL: <input name="avatar"
+size=50></td></tr>
+<tr><td>Или загрузить: <input type=file name="avatarfile"></td></tr>
+<tr><td>Подпись<br><span class="fineprint">(добавляется<br>ко всем<br>
+сообщениям)</span></td><td><textarea name="signature" rows=5
+cols=60></textarea><br><select name="signature_format"><option
+value="text">Без разметки</option><option
+value="bbcode">BBCode</option><option
+value="html">Html</option></select></td></tr>
+<tr><td colspan=2 align=center><input type=submit name="register"
+value="Зарегистрироваться"></td></tr>
+</table>
+
+</form>
+
+</BODY>
+</HTML>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>Still Life - Высказаться</TITLE>
+<script type="text/javascript" src="templates/form.js"></script>
+<script type="text/javascript" src="templates/common.js"></script>
+<link rel="forum-script" href="forum">
+<link rel="forum-user-list" href="forum">
+<link rel="stylesheet" type="text/css" href="templates/basic.css">
+</HEAD><BODY>
+<H3>Тестовый форум Still Life</h3>
+<form method="POST" enctype="multipart/form-data" name="reply" action="forum">
+<input type="hidden" name="id" value="">
+<table border=0>
+<tr><td rowspan=2>Пользователь:</td><td> <a class="author" href="forum?register=1">Зарегистрироваться</a><br></td></tr>
+<tr><td><input type=text name="user" size=30>
+<select name="openidsite" onchange="selectSite(this)">
+<option selected value="">Этот сайт</option>
+<option value="http://livejournal.com/users/%s">LiveJournal.com</option>
+<option value="http://diary.ru/~%s">Diary.ru</option>
+<option value="http://lj.rossia.org/users/%s">LJ.Rossija.org</option>
+<option value="http://%s">Другой Open-ID сайт</option>
+</select></td></tr>
+<tr> <td rowspan=2>Пароль:</td><td><input type="password" name
+="password"></td></tr>
+<tr><td><input type="checkbox" name="bindip" value="1"> Только с этого IP-адреса
+</td></tr>
+<tr><td colspan=2 class="error"></td></tr>
+<tr><td>Тема: </td><td><input name="subject" size="40"></td></tr>
+<tr><td>Текст:</td><td><textarea name="text" rows=10
+cols=72></textarea></td></tr>
+<tr><td>Формат:</td><td><select name="text_format"><option value="text"
+selected>Без разметки</option>
+<option value="bbcode">BBCode</option>
+<option value="html">Html</option></select></td></tr>
+<tr class="pictureinput"><td>Картинка</td> <td><input onchange="addPictureInput(this);" type=file name="image1"></td></tr>
+<tr><td colspan=2 align=right><input type=submit name="reply"
+value="Высказаться">
+</table>
+
+</form>
+
+</BODY>
+</HTML>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>Установка прав доступа</TITLE>
+<link rel="forum-script" href="forum">
+<link rel="forum-user-list" href="forum">
+<link rel="stylesheet" type="text/css" href="templates/basic.css">
+</HEAD><BODY>
+<h1>Права доступа</h1>
+<div class="dirlist">
+<h3>Права на вышележащие разделы:</h3>
+<table width="100%" class="dir" border=1 cellspacing=0>
+<tr><td colspan="2" align=left><a class="dirlink" href=#></a></td>
+<td align=right><a class="rights" href="#">Права</a></td>
+</tr>
+<tr align=center><th>Администраторы</th><th>Модераторы</th><th>Запрещен доступ</th></tr>
+<tr align=center valign=top><td class="admins"></td><td class="moderators"></td><td
+class="banned"></td></tr>
+</table>
+</div>
+<form name="setrights" method=POST>
+<H3>Права на данный раздел:<a class="dirlink"></a></h3>
+<span class="error"></span>
+<table width="100%" >
+<tr><th>Администраторы</th><th>Модераторы</th><th>Запрещен доступ</th></tr>
+<tr><td><textarea cols=30 rows=10 name="admins"></textarea></td>
+<td><textarea cols=30 rows=10 name="moderators"></textarea></td>
+<td><textarea cols=30 rows=10 name="banned"></textarea></td>
+<tr><td colspan=3 align="right"><input type="submit" name="setrights"
+value="Сохранить">
+</table>
+</form>
+
+</BODY>
+</HTML>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<META NAME="description" CONTENT="">
+<TITLE>Белория RPG - Форум</TITLE>
+<script type="text/javascript" language="JavaScript" src="page.js"></script>
+<script type="text/javascript" language="JavaScript" src="common.js"></script>
+<link rel="forum-script" href="forum">
+<link rel="forum-user-list" href="forum">
+<link rel="stylesheet" type="text/css" href="belstyle.css">
+</HEAD><BODY onload="customizePage();">
+<center>
+<table width=95% cellpadding=5 cellspacing=0 border=0>
+<tr>
+<td valign=absmiddle width=160 height=135>
+<img src="http://www.belorya-rpg.ru/template/logo8.png">
+</td>
+<td>
+<p class=center><img src=http://www.belorya-rpg.ru/template/zaglavie6.gif>
+</td>
+<td valign=absmiddle width=160 height=135>
+</td>
+
+<tr>
+<td colspan=3>
+<p><a class="userurl" href="forum?register=1">Зарегистрироваться</a> <a
+class="login" href="forum?login=1">Войти</a>
+<a href="forum?edit=1">Редактировать</a>
+<a href=".">К списку тем</a>
+<!--H3>Тестовый форум Still Life</h3-->
+<center>
+<table width=100% class=forumtable>
+<tr>
+<td valign=top>
+
+<p class=title>Тестовая тема</p>
+<p>Создана <a class="author">Irene</a> <span class="date">06.05.2008</span>
+<div class="abstract">
+<p>Это такая тестовая тема
+</div>
+<a href="forum?reply=1" onClick="return showForm(this,'replyform');">Высказаться</a>
+</td>
+</tr>
+</table>
+
+<div class="messagelist">
+<div class="message">
+
+<table width=100% class=forumtable border=0>
+<tr>
+<th rowspan=3 width=200 valign="top">
+<a href="#"><div class="user">Автор</div></a>
+<div class="avatar"><img alt=""
+src="http://www.belorya-rpg.ru/template/logo8.png"></div>
+<div class="forumstatus">Статус: <span class="ap-status">Тест</span></div>
+<div class="forumemail">Email: <span
+class="ap-email">test@test.ru</span></div>
+</td>
+<td><a class="manchor"></a><span class="mdate">21.03.2008 17:02</span>
+<span class="subject">Тема сообщения</span> (<a class="mlink">ссылка</a>) <a
+class="mparent">(в ответ на)</a>
+</td>
+</tr>
+<tr>
+<td valign="top">
+<div class="mtext">Это очень-очень-очень длинный текст сообщения P.head1 {color: #522816; FONT-FAMILY: Monotype Corsiva, serif ; FONT-SIZE: 22px; padding: 0 0 0 0; TEXT-ALIGN: center; FONT-WEIGHT: normal;}
+
+P.pagetitle{color: #522816; FONT-FAMILY: Monotype Corsiva, serif ; FONT-SIZE: 40px; TEXT-ALIGN: center; margin: 0px 0px 0px 0px ; FONT-WEIGHT: normal;}
+
+body {background: url("http://www.belorya-rpg.ru/template/green.png");}
+
+p.copyright {FONT-FAMILY: Arial, Helvetica, sans-serif ; FONT-SIZE: 10px; FONT-STYLE: italic; COLOR: #dd9f64; text-align: right;
+}
+
+p.center {TEXT-ALIGN: center;}
+
+h1 {color: #522816; FONT-FAMILY: Monotype Corsiva, serif ; FONT-SIZE: 28pt; TEXT-ALIGN: center; font-weight: normal; margin: 0px 0px 0px 0px ;}
+
+p.line {text-align: center;}
+
+.hand { FONT-FAMILY: Monotype Corsiva, serif ; FONT-SIZE: 12pt; COLOR: #324237; FONT-WEIGHT: normal;}
+
+.up {FONT-FAMILY: Monotype Corsiva, serif ; FONT-SIZE: 12pt; COLOR: #324237; FONT-WEIGHT: normal; TEXT-ALIGN: right; TEXT-DECORATION: underline;}
+
+.up a {FONT-FAMILY: Monotype Corsiva, serif ; FONT-SIZE: 12pt; COLOR: #324237; FONT-WEIGHT: normal; TEXT-ALIGN: right; TEXT-DECORATION: underline;}
+
+.up a:visited {FONT-FAMILY: Monotype Corsiva, serif ; FONT-SIZE: 12pt; COLOR: #324237; FONT-WEIGHT: normal; TEXT-ALIGN: right; TEXT-DECORATION: underline;}
+
+.up a:hover {FONT-FAMILY: Monotype Corsiva, serif ; FONT-SIZE: 12pt; COLOR: #324237; FONT-WEIGHT: normal; TEXT-ALIGN: right; TEXT-DECORATION: underline;}
+</div>
+</td>
+</td>
+</tr>
+<tr>
+<td valign="top">
+<form class="msginfo" action="forum" method="GET">
+<input name=id type="hidden">
+<input name=author type="hidden">
+<input type="submit" name="edit" value="Редакт">
+<input type="submit" name="move" value="Переместить">
+<input type="submit" name="delete" value="Удалить">
+<input type="submit" name="reply" value="Высказаться"
+onClick="return showForm(this,'replyform');">
+</form>
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div id="replyform">
+<form method="POST" enctype="multipart/form-data" name="reply" action="forum">
+<input type="hidden" name="id" value="">
+<table border=0>
+<tr><td rowspan=2>Пользователь:</td><td> <a class="userurl" href="forum?register=1">Зарегистрироваться</a><br></td></tr>
+<tr><td><input type=text name="user" size=30>
+<select name="openidsite" onchange="selectSite(this)">
+<option selected value="">Этот сайт</option>
+<option value="http://livejournal.com/users/%s">LiveJournal.com</option>
+<option value="http://diary.ru/~%s">Diary.ru</option>
+<option value="http://lj.rossia.org/users/%s">LJ.Rossija.org</option>
+<option value="http://%s">Другой Open-ID сайт</option>
+</select></td></tr>
+<tr> <td rowspan=2>Пароль:</td><td><input type="password" name
+="password"></td></tr>
+<tr><td><input type="checkbox" name="bindip" value="1"> Только с этого IP-адреса
+</td></tr>
+<tr><td colspan=2 class="error"></td></tr>
+<tr><td>Тема: </td><td><input name="subject" size="40"></td></tr>
+<tr><td>Текст:</td><td><textarea name="text" rows=10
+cols=72></textarea></td></tr>
+<tr><td>Формат:</td><td><select name="text_format"><option value="text"
+selected>Без разметки</option>
+<option value="bbcode">BBCode</option>
+<option value="html">Html</option></select></td></tr>
+<tr class="pictureinput"><td>Картинка</td> <td><input onchange="addPictureInput(this);" type=file name="image1"></td></tr>
+<tr><td colspan=2 align="right">
+<input type="button" value="Отмена" onclick="return hideForm('replyform');">
+<input type=submit name="reply" value="Высказаться"></td></tr>
+</table>
+</form>
+</div>
+</td>
+</tr>
+</table>
+</BODY>
+</HTML>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>Still Life - Вход</TITLE>
+<script type="text/javascript" language="JavaScript" src="templates/form.js"></script>
+<script type="text/javascript" language="JavaScript" src="templates/common.js"></script>
+<link rel="forum-script" href="forum">
+<link rel="forum-user-list" href="forum">
+<link rel="stylesheet" type="text/css" href="templates/basic.css">
+</HEAD><BODY bgcolor="#ccffcc">
+<H3>Тестовый форум Still Life</h3>
+<H2>Пользователь <a href="#" class="author"></a></H2>
+<img src="#" alt="" class="avatar">
+<a href="forum?profile=1">Редактировать</a><br clear="all">
+
+<table border=1 cellspacing=0 width="500" cellpadding=10>
+<tr><td>Статус</td><td width="400"><span class="ap-status"></span></td></tr>
+<tr><td>Зарегистрирован</td><td><span class="ap-registered"></span></td></tr>
+<tr><td>Адрес E-Mail</td><td><span class="ap-email"></span></td></tr>
+<tr><td>Адрес ICQ</td><td><span class="ap-icq"></span></td></tr>
+<tr><td>Адрес Jabber</td><td><span class="ap-jabber"></span></td></tr>
+<tr><td>Пол</td><td><span class="ap-gender"></span></td></tr>
+<tr><td>Потолок<br><span class="fineprint">(в
+метрах)</span></td><td><span class="ap-ceiling"></span></td></tr>
+<tr><td>Комментарий<br><span class="fineprint">(виден только<br>на странице<br>
+пользователя)</span></td><td><div class="ap-comment"> </div></td></tr>
+<tr><td>Подпись<br><span class="fineprint">(добавляется<br>ко всем<br>
+сообщениям)</span></td><td><div class="ap-signature"> </div></td></tr>
+<tr><td>Сообщений</td><td><span class="ap-messages"></span>(последнее
+<span class="ap-last_message"></span>)</td></tr>
+<tr><td>Тем</td><td><span class="ap-topics"></span>(последняя
+<span class="ap-last-topic"></span>)</td></tr>
+</table>
+</BODY>
+</HTML>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML><HEAD>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+<TITLE>Still Life - Список пользователей</TITLE>
+<script type="text/javascript" language="JavaScript" src="templates/form.js"></script>
+<script type="text/javascript" language="JavaScript" src="templates/common.js"></script>
+<link rel="forum-script" href="forum">
+<link rel="forum-user-list" href="forum">
+<link rel="stylesheet" type="text/css" href="templates/basic.css">
+</HEAD><BODY bgcolor="#ccffcc">
+<H3>Тестовый форум Still Life</h3>
+<H2>Список пользователей</H2>
+
+<table border=1 cellpadding=2>
+<tr><th>Пользователь</th><th>Статус</th><th>Зарегистрирован</th><th>Сообщений</th><th>Последнее</th></tr>
+<tr class="userinfo"><td><a class="author" href="#"></a></td><td
+class="ap-status"></td><td class="ap-registered"></td><td
+class="ap-messages"></td><td class="ap-last-message"></td><td><a
+href="forum?profile=1">Редактировать</a></td></tr>
+</table>
+</BODY>
+</HTML>