<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR...nsitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml">
<head>
<title>Бан-лист проекта</title>
<script type="text/javascript" src="
http://code.jquery.c...t.js"></script>
</head>
<body>
<?php
/***********************************
* Скрипт вывода банов SourceBans
* Автор Onotole
* onotole@onotole.myarena.ru
*
* Скрипт универсальный.
* При правильном подходе заработает
* на любой CMS
* Самое главное - это узнать,
* как пишутся произвольные страницы
* для Вашей CMS
***********************************/
// Данные базы. Сюда прописывать данные, которые вписаны в databases.cfg
$host = 'адрес бд';
$database = 'логин';
$user = 'пользователь';
$pass = 'пароль';
$prefix = 'sb';
// Настройки
$limit = 30; // Количество банов для вывода
$showpast = 1; // Выводить ли истекшие баны (0 - не выводить, 1 выводить)
/********************************************************
* Дальше желательно ничего не трогать
********************************************************/
// Функция преобразования срока бана в человеко-понятный вид
function date2word($dif,$short=false)
{
if($dif == 0)
return 'Навсегда';
$dif = $dif;
if($dif) {
$s = "";
$years=intval($dif/(60*60*24*365));
$dif=$dif-($years*(60*60*24*365));
if($years) {
$s.= $years." лет ";
}
if($years && $short) return $s;
$months=intval($dif/(60*60*24*30));
$dif=$dif-($months*(60*60*24*30));
if($months) {
$s.= $months." мес. ";
}
if($months && $short) return $s;
$weeks=intval($dif/(60*60*24*7));
$dif=$dif-($weeks*(60*60*24*7));
if($weeks) {
$s.= $weeks." нед. ";
}
if($weeks && $short) return $s;
$days=intval($dif/(60*60*24));
$dif=$dif-($days*(60*60*24));
if($days) {
$s.= $days." дн. ";
}
if($days && $short) return $s;
$hours=intval($dif/(60*60));
$dif=$dif-($hours*(60*60));
if($hours) {
$s.= $hours." час. ";
}
if($hours && $short) return $s;
$minutes=intval($dif/(60));
$seconds=$dif-($minutes*60);
if($minutes) {
$s.= $minutes." мин.";
}
if($minutes && $short) return $s;
if($short) return $seconds." сек.";
return $s;
} else {
return;
}
}
// Подключаемся к базе
$db = new PDO("mysql:host={$host};dbname={$database}", $user, $pass);
// Выбираем баны
$bans = $db->query("SELECT * FROM `{$prefix}_bans`".($showpast === 0 ? " WHERE ISNULL(`RemoveType`)" : "")." ORDER BY `bid` DESC LIMIT {$limit}")->fetchAll();
// Выбираем админов, чтобы не делать кучи запросов
$adminsquery = $db->query("SELECT `aid`, `user` FROM `{$prefix}_admins`")->fetchAll();
// Загоняем админов в массив id => user
$admin = array();
foreach($adminsquery as $admins)
{
$admin[$admins['aid']] = $admins['user'];
}
// Функция вывода ника админа по его ID
function getAdmin($id)
{
global $admin;
if(!array_key_exists($id, $admin))
return 'Удален';
return $admin[$id];
}
?>
<?php
// Далее идет примерный вывод данных в таблице. К самой таблице
// или к ее элементам можете подставлять стили или классы Вашего движка
?>
<style>
table {
width: 150%; /* Ширина таблицы в процентах */
}
.col1 {
width: 100px; /* Ширина ячейки */
}
</style>
<style>
table {
width: 1340px;
height: auto;
border-collapse: collapse;
}
table {
font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
border-collapse: collapse;
color: #686461;
}
caption {
padding: 10px;
color: white;
background: #8FD4C1;
font-size: 18px;
text-align: left;
font-weight: bold;
}
th {
border-bottom: 3px solid #B9B29F;
padding: 10px;
text-align: left;
}
td {
padding: 10px;
}
tr:nth-child(odd) {
background: white;
}
tr:nth-child(even) {
background: #E8E6D1;
}
</style><center>
<table class="bordered">
<thead>
<tr>
<th>
Ник
</th>
<th>
Причина
</th>
<th>
Админ
</th>
<th>
Срок
</th>
</tr>
</thead>
<tbody>
<?php foreach($bans as $ban): ?>
<tr>
<td>
<?php echo htmlspecialchars($ban['name'], ENT_QUOTES) ?>
</td>
<td>
<?php echo htmlspecialchars($ban['reason'], ENT_QUOTES) ?>
</td>
<td>
<?php echo getAdmin($ban['aid']) ?>
</td>
<td>
<?php echo date2word($ban['length']) ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table></center>
</body>
</html>