parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Я доделал чат. Может кто протестирует? Пожа-а-а-а-алуйста!

Лис 29.07.2005 20:03

@authoring[]
$date[^date::now[]]
$names[^table::load[names.txt]]
$online[^table::load[online.txt]]
$soobsh[^table::load[soobsh.txt]]
$authoringforms{
<form method='post'>
<table width='250' align=center>
<tr><td align='center' COLSPAN=2><input type='test' name='login'></td></tr>
<tr><td align='center' COLSPAN=2><input type='password' name='password'></td></tr>
<tr><td align=left><input type='submit' name='submit' value='Войти'></td><td align='right'><input type='reset' name='reset' value='Очистить'></td></tr>
<tr><td align='center' COLSPAN=2>Если пользователь с таким именем еще не входил в систему вы будете зарегестрированы.<br><b>$Error</b></td></tr>
</table>
</form>}
^if(def $form:login && def $form:password){
^if(^names.locate[Name;$form:login]){
^if($form:password eq $names.password){
^if(^online.locate[names;$form:login]){}{^online.append{$form:login	$date.minute}^online.save[online.txt]}^chat[]}{
$Error[Неверный пароль.] $authoringforms}}{
^names.append{$form:login	$form:password}$error[Вы зараегстрированы]^names.save[names.txt]
^online.append{$form:login	$date.minute}^online.save[online.txt]^chat[]}}{
$Error[Надо заполнить все поля формы.] $authoringforms}
@chat[]
<form method='post'>
<table width='950' height='550' border=1 align=center>
<tr heigh='90%'><td width=90% valign=up>^vivodsoobshenii[]</td><td valign=up>^onlinelist[]</td></tr>
<tr><td COLSPAN=2 height=50>^otpravkasoobsh[]</td></tr>
</table>
#чтобы не возвращало к входу
<input type='hidden' name='login' value='$form:login'>
<input type='hidden' name='password' value='$form:password'>
</form>
@onlinelist[]
#удаление старых записей из списка
^for[i](1;^online.count[]){
^online.offset[set]($i-1)
$razn($online.time-$date.minute)
^if($razn>3 || $razn<-3){
$online2[^table::create[$online;$.offset($i)]]
$online[^table::create[$online;$.limit($i-1)]]
^online.join[$online2]
^online.save[online.txt]}}
#перечисление посетителей
^online.menu{
^if($online.names eq $form:login){<b>$online.names<br></b>}{
<input type='checkbox' name='ch' value='$online.names'>$online.names<br>}}
@otpravkasoobsh[]
#форма для сообщения
<input type='text' name='soobsh' size='100'><br>
<input type='submit' name='submit' value='Отправить'>
<input type='reset' name='reset' value='Очистить'> Поставте галочку возле имени того, кому хотите отправить сообщение.
@vivodsoobshenii[]
#определение адресата сообщения
$totab[$form:tables.ch]
#добавление сообщения
^if(def $form:soobsh){
^if(def $totab){
^soobsh.append{$form:login	^totab.menu{$totab.field}[, ]^:	$form:soobsh}
^soobsh.save[soobsh.txt]<br>}{$totab[all]
^soobsh.append{$form:login	$totab^:	$form:soobsh}
^soobsh.save[soobsh.txt]<br>}}{$error[Скажем "Нет!" пустым сообщениям!]
<b>$error</b><br>}
#обновление времени последней связи с поситителем
^if(^online.locate[names;$form:login]){
$online2[^table::create[$online;$.offset(^online.line[])]]
$online[^table::create[$online;$.limit(^online.line[]-1)]]
^online.append{$form:login	$date.minute}
^online.join[$online2]
^online.save[online.txt]}{
^online.append{$form:login	$date.minute}
^online.save[online.txt]}
#удаление старых сообщений
^if(^soobsh.count[]>20){
$soobsh[^table::create[$soobsh;$.offset(^soobsh.count[]-20)]]
^soobsh.save[soobsh.txt]}
#вывод на экран
^soobsh.menu{
^if(^soobsh.tohom.pos[$form:login,]>-1 || ^soobsh.tohom.pos[$form:login^:]>-1){
<b>$soobsh.author to $soobsh.tohom $soobsh.text<br></b>}{
$soobsh.author to $soobsh.tohom $soobsh.text<br>}}