<?php
//Копирайты///////////////////////////////////////////////////////////////////////////////////////////////////
/*
  ----------------------------------
 |                                  |
 |    AdenWorld.ru engine by Dnny   |
 |     mailto:dnny75@gmail.com      |
 |             File  v1.2           |
 |        date(30.12.2006);         |
 |                                  |
  ----------------------------------

		 *-*

  ----------------------------------
 {				    }	
 {  Доработка Axelll - icq:561-081  }
 {  http://l2zona.net/status6/      }		
 {	     ver 0.1		    }
 {        date 4.02.2010	    }	
 {				    }
  ----------------------------------	 
 

1. Изменена структура скрипта, ради удобства.
2. Добавлена проверка на заполненость конфигов.
3. Исправлено регулярное выражение, теперь ники могут быть любые.
4. Добавлено подробное описание.
5. По мелочи пару фиксов.

*/

//Описание///////////////////////////////////////////////////////////////////////////////////////////////////
/*

Скрипт предназначен для запуска на веб-сервере с поддержкой php.
Для чтения данных, вам нужно указать путь до файла логов.
если файл логов находится на той же машине что и веб-север, указывать надо путь от корня.

для OS Windows путь будет выглядить так:
D:\AppServ\www\php\chat.log.0

для OS Linux
/home/server/L2JOneo_gameserver/log/chat.log

Если файл логов и данный скрипт находятся на разных машинах, то файл логов должен быть доступен через веб-сервер.
На Linux это можно реализовать используя ссылки.

В этом случае путь должен выглядить так:
http://somehost.com/somedir1/somedir2/chat.log.0

!!!! Внимание, прочтите внимательно конфиги данного скрипта, они находятся под копирайтом !!!!
*/


//Конфиги//////////////////////////////////////////////////////////////////////////////////////////////////////

//Тут вводим время обновления чата "минуты:секунды"
//Минуты можно вводить от 0 до бесконечности.
//Секунды от 0 до 59. Оптимально, у меня настроено на 5 секунд, ибо народу мало.
//Если больше 50 онлайна ставте время обновления больше.
echo'<script>
var limit="00:05"
</script>';

/* Настройка чата пути к логу чата, например:
/home/server/L2JOneo_gameserver/log/chat.log
*/
$orders = file("chat.log.0");

// кодировка - с какой на какую
$s = iconv("WINDOWS-1251", "WINDOWS-1251", $s);

//!!!!!!!!!! что бы начать работать с скриптом, изменить 0 на 1, это нужно для тех, кто сразу не понимает, что конфиги надо править. !!!!!!!!!!!!!!!
$test='1';

//Конец конфигам////////////////////////////////////////////////////////////////////////////////////////////////


if($test==1){
echo '
	<html>
	<head>
	<title>Admin chat. version 0.1</title>
	<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
	</head>
	<body bgcolor="#252525">
	';

    // Имена колонок можно заменить на русские, но тогда работать будет только на винде, для линуксов меняем кодировку
    echo "<table border=1>\n";
    echo '<tr><th bgcolor = "#CCCCFF\">Время(дата)</th>

          <th bgcolor = "#CCCCFF\">Имена</th>
          <th bgcolor = "#CCCCFF\">Текст сообщения</th>

    </tr>';
    for ($i = count($orders); $i >= count($orders)-1000; $i--)
    {
	// Разбивка строк. Цвет настроен как и в чате в клиенте.
      $s = $orders[$i];
      $line = array();
      preg_match("/(\\[[^\\]]+\\])[\\s]*([\\w]+)[\\s]*(\\[[^.]+\\])[\\s]*([\\ ]+[^\\z]+)/", $s, $line);
        if      ($line[2] == "SHOUT")$color='#c78354';
        elseif  ($line[2] == "ALL")$color='#fffdf9';
        elseif  ($line[2] == "TELL")$color='#ff00ff';
        elseif  ($line[2] == "TRADE")$color='#d8a3cf';
        elseif  ($line[2] == "CLAN")$color='#948ad1';
        elseif  ($line[2] == "PARTY")$color='#08fb09';
		elseif  ($line[2] == "ALLIANCE")$color='#00FfFf';
		elseif  ($line[2] == "PRIV_MSG")$color='#ff00ff';
		elseif  ($line[2] == "WHISPER")$color='#ff00ff';
		if (preg_match ("/to Telnet]/", $s)) $color='#ff0000';
	      // Вывод чата
	      echo     "<tr><td><font color='$color'>$line[1]</td>
                    <td><font color='$color'><center>$line[3]</center></td>
                    <td><font color='$color'>$line[4]</td>
                </tr>";



    }
    echo "</table>";
}
else {
echo '
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
Откройте этот скрипт при помощи блокнота или любого другого текстового редактора.<br>
<b>ВНИМАТЕЛЬНО</b> прочтите и заполните конфиги.<br>
Иначе скрипт работать не будет.
</html>
';
exit();
}
?>
<script>
<!--

//Дальше ничего менять не надо.
if (document.images){
var parselimit=limit.split(":")
parselimit=parselimit[0]*60+parselimit[1]*1
}
function beginrefresh(){
if (!document.images)
return
if (parselimit==1)
window.location.reload()
else{
parselimit-=1
curmin=Math.floor(parselimit/60)
cursec=parselimit%60
if (curmin!=0)
curtime=curmin+" minutes "+cursec+" seconds to automatic refresh!"
else
curtime=cursec+" seconds to automatic refresh!"
window.status=curtime
setTimeout("beginrefresh()",1000)
}
}

window.onload=beginrefresh
//-->
</script>
</body>
</html>