Линейки и метрики для Fallout
Поставь линейку себе в подпись!
function clear_cache() {
$idaynow = date('d');
$ar_remove = array();
if ($dh=opendir($GLOBALS['CACHE_DIRECTORY'])) {
while(($fname = readdir($dh)) !== false) {
$fpath = $GLOBALS['CACHE_DIRECTORY'].'/'.$fname;
if($fname != '.' && $fname != '..' && is_file($fpath)) {
$arStat = stat($fpath);
if($arStat) {
$idayfile = date('d',$arStat[9]);
if($idayfile != $idaynow) $ar_remove[] = $fpath;
}
}
}
closedir($dh);
}
foreach ($ar_remove as $fpath) {
@unlink($fpath);
}
}
// radio
function out_radio($fname,$val,&$arr,$ssplit)
{
$out='';
foreach($arr as $k=>$v)
{
$out.='
'.$v.' '.$ssplit;
}
return $out;
}
// select-
function out_select_color($fname,$val,&$arr,$s_add='',$finvers=FALSE)
{
$out='
';
foreach($arr as $k=>$c_arr)
{
if($finvers)
{
$s_style='background-color:#'.$c_arr[0];
if(isset($c_arr[2])) { $s_style.=';color:#'.$c_arr[2].';'; }
}
else{
$s_style='color:#'.$c_arr[0];
if(isset($c_arr[2])) { $s_style.=';background-color:#'.$c_arr[2].';'; }
}
$out.=''.$c_arr[1].' ';
}
$out.=' ';
return $out;
}
// select
function out_select($fname,$val,&$arr,$s_add='')
{
$out='
';
foreach($arr as $k=>$v)
{
$out.=''.$v.' ';
}
$out.=' ';
return $out;
}
// select
function out_num_select($fname,$val,$from,$to,$s_add='')
{
$out='
';
for($i=$from; $i <= $to; $i++)
{
$out.=''.$i.' ';
}
$out.=' ';
return $out;
}
/**
*
*/
function write_log($action, $text = '') {
if (!$GLOBALS['WRITE_LOG'] || ($action == 'CACHE' && !$GLOBALS['WRITE_LOG_FROM_CACHE'])) {
return;
}
$fp = @fopen($GLOBALS['LOG_FILE_PATH'], 'a');
if ($fp) {
$referer = (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '-');
$line = date("m.d.y H:i:s").' '.$_SERVER['REMOTE_ADDR'].' '.$action.' '.$text.' '.$referer."\n";
@fwrite($fp, $line);
@fclose($fp);
}
}
/**
*
*/
function sql_connect() {
global $MYSQL_CONFIG;
if (isset($MYSQL_CONFIG) && $MYSQL_CONFIG['enabled']) {
if(@mysql_connect($MYSQL_CONFIG['host'], $MYSQL_CONFIG['user'], $MYSQL_CONFIG['password'])) {
if (@mysql_select_db($MYSQL_CONFIG['database'])) {
return true;
}
$MYSQL_CONFIG['enabled'] = false;
}
}
return false;
}
/**
* (, . )
*/
function test_metric_table() {
global $MYSQL_CONFIG;
$r = @mysql_query("SELECT COUNT(*) FROM ".$MYSQL_CONFIG['metric_table']);
if (!$f = @mysql_fetch_row($r)) {
mysql_query("CREATE TABLE ".$MYSQL_CONFIG['metric_table']." (
id int(10) unsigned NOT NULL auto_increment,
dtcreate datetime NOT NULL default '0000-00-00 00:00:00',
dtlastreq datetime NOT NULL default '0000-00-00 00:00:00',
iattr int(10) unsigned NOT NULL default '0',
irule tinyint(3) unsigned NOT NULL default '0',
ibegun tinyint(3) unsigned NOT NULL default '0',
sdate date NOT NULL default '0000-00-00',
itzone tinyint(4) NOT NULL default '0',
ipodp tinyint(4) NOT NULL default '0',
spodp varchar(64) NOT NULL default '',
sip varchar(15) NOT NULL default '',
PRIMARY KEY (id)
)");
}
}
function sql_get($query) {
if ($result = @mysql_query($query)) {
return @mysql_fetch_assoc($result);
}
return false;
}
?>
$CACHE_DIRECTORY = './cache/'; // Директория для кеширования метриков
$URL_METRIC = 'http://www.fo3.ru/lines/'; // URL, где располагается скрипт метриков
$default_time_zone = 3; // Временная зона по умолчанию, Москва
$default_font = './includes/fonts/SMALLF/13'; // Путь к файлу шрифта (ttf)
$default_text_color = '5c96b2'; // Цвет текста на линеечке (RGB)
$metric_width = 600; // Ширина метрика, в пикс.
$metric_height = 97; // Высода метрика, в пикс.
$ERROR_MSG = 'Ошибка вызова метрика www.rc-script.ru'; // Сообщение при ошибке
$METRIC_CONFIG = array(
'SHOW_WEEKS' => true, // показывать = true или не показывать = false недели на линеечке
'SHOW_COUNTDOWN_9_MONTHS' => true, // показывать = true или не показывать = false обратный отсчет 9 недель
// Показывать (=true) / не показывать (=false) выпадающий список годов
'SHOW_YEARS_LIST' => true,
// Выбранный по умолчанию год в списке: число (например, 1999),
// или выражение (например, (date('Y') - 1) - прошлый год)
'DEFAULT_YEAR' => (date('Y') - 1),
// Интервал допустимых годов: от ... до ... ( date('Y') - текущий год )
'YEARS_RANGE_FROM' => 1990,
'YEARS_RANGE_TO' => (date('Y') + 3),
// разрешить (=true)/запретить (=false) только текстовый отсчет (без картинок)
'TEXT_COUNTER_ENABLED' => true,
'TEXT_COUNTER_WIDTH' => 506, // ширина текстового метрика
'TEXT_COUNTER_HEIGHT' => 50 // высота текстового метрика
);
/**
* Если MySQL не используется, то нужно записать 'enabled' => false, иначе 'enabled' => true.
* Использование MySQL позволяет вводить пользователям произвольный текст на линеечках.
* Если при выполнении скрипта соединение с БД не возможно,
* то на время выполнения автоматически считается 'enabled' => false.
*/
$MYSQL_CONFIG = array(
'enabled' => true,
'host' => 'localhost',
'user' => 'fo3',
'password' => 'fo33of',
'database' => 'fo3', // название БД
'metric_table' => 'metric_table_demo' // название таблицы
);
$WRITE_LOG = false; // писать/не писать лог-файл
$WRITE_LOG_FROM_CACHE = false; // писать, если метрик берется из кэша
$LOG_FILE_PATH = './metric_log.txt'; // путь к лог-файлу
/**
* Изображения линеечек (должны быть в папке /images/lines)
*/
$arLines = array(
1 => 'line1.gif',
2 => 'line2.gif',
// 3 => 'line3.gif',
3 => 'line4.gif'
);
/**
* Изображения бегунков (должны быть в папке /images/begunki)
*/
$arBegunki = array(
1 => '2.gif',
2 => '4.gif',
3 => '6.gif',
4 => '9.gif',
5 => '10.gif'
);
/**
* Подписи
*/
$arPodpisi = array(
1 => 'Играю в Fallout 3',
2 => 'Гулификация',
3 => 'Взорвал Мегатонну',
4 => 'Cпас Мегатонну',
5 => 'Состаю в Анклаве',
6 => 'Состаю в Братстве Стали',
7 => 'Вышел из убежища',
8 => 'Питаюсь челевечинкой',
9 => 'Прошел Fallout'
);
/**
* Временные зоны
*/
$arTimeZones = array(
'-12' => '(GMT - 12 часов) Enitwetok, Kwajalien',
'-11' => '(GMT - 11 часов) Midway Island, Самоа',
'-10' => '(GMT - 10 часов) Гавайи',
'-9' => '(GMT - 9 часов) Аляска',
'-8' => '(GMT - 8 часов) Тихоокеанское время (США & Канада)',
'-7' => '(GMT - 7 часов) Mountain Time (США & Канада)',
'-6' => '(GMT - 6 часов) Центральное время (США & Канада), Мехико',
'-5' => '(GMT - 5 часов) Восточное время (США & Канада), Богота, Лима, Кито',
'-4' => '(GMT - 4 часа) Атлантическое время (Канада), Каракас, Ла Паз',
'-3.5' => '(GMT - 3,5 часа) Ньюфаундланд',
'-3' => '(GMT - 3 часа) Бразилия, Буэнос-Айрес, Джоржтаун, Фолклендские острова',
'-2' => '(GMT - 2 часа) Средняя Атлантика, Ascention Is., О. Св. Елены',
'-1' => '(GMT - 1 час) Азорские о-ва, о-ва Капе-Верди',
'0' => '(GMT) Касабланка, Дублин, Эдинбург, Лондон, Лисбон, Монровиа',
'1' => '(GMT + 1 час) Берлин, Брюссель, Копенгаген, Мадрид, Париж, Рим',
'2' => '(GMT + 2 часа) Калининград, Южная Африка, Варшава',
'3' => '(GMT + 3 часа) Багдад, Риад, Москва, Найроби',
'3.5' => '(GMT + 3,5 часа) Тегеран',
'4' => '(GMT + 4 часа) Абу-Даби, Баку, Мускат, Тбилиси',
'4.5' => '(GMT + 4,5 часа) Кабул',
'5' => '(GMT + 5 часов) Екатеринбург, Исламабад, Карачи, Ташкент',
'5.5' => '(GMT + 5 часов) Бомбей, Калькутта, Мадрас, Нью Дели',
'6' => '(GMT + 6 часов) Алма-Ата, Колумбия, Дакра',
'7' => '(GMT + 7 часов) Бангкок, Ханой, Джакарта',
'8' => '(GMT + 8 часов) Пекин, Гон Конг, Perth, Сингапур, Тайпей',
'9' => '(GMT + 9 часов) Осака, Саппоро, Сеул, Токио, Якутск',
'9.5' => '(GMT + 9,5 часов) Аделаида, Дарвин',
'10' => '(GMT + 10 часов) Мельбурн, Папуа Новая Гвинея, Сидней, Владивосток',
'11' => '(GMT + 11 часов) Магадан, Новая Каледония, Соломоновы острова',
'12' => '(GMT + 12 часов) Окланд, Веллингтон, Фиджи, Маршалловы острова'
);
// месяца
$arMonths = array(
1 => 'Январь',
2 => 'Февраль',
3 => 'Март',
4 => 'Апрель',
5 => 'Май',
6 => 'Июнь',
7 => 'Июль',
8 => 'Август',
9 => 'Сентябрь',
10 => 'Октябрь',
11 => 'Ноябрь',
12 => 'Декабрь'
);
?>