- <?php
- /***********************************
- * Скрипт вывода банов AmxBans
- * Автор Onotole
- *
- * Скрипт универсальный.
- * При правильном подходе заработает
- * на любой CMS
- * Самое главное - это узнать,
- * как пишутся произвольные страницы
- * для Вашей CMS
- ***********************************/
- // Данные базы. Сюда прописывать данные, которые вписаны в sql.cfg
- $amx_sql_host = 'localhost'; // Хост БД
- $amx_sql_user = 'user'; // Пользователь базы
- $amx_sql_pass = 'password'; // Пароль пользователя
- $amx_sql_db = 'amxbans'; // База данных
- // Настройки
- $limit = 20; // Количество банов для вывода
- $showpast = 0; // Выводить ли истекшие баны (0 - не выводить, 1 выводить)
- /********************************************************
- * Дальше желательно ничего не трогать
- ********************************************************/
- // Функция преобразования срока бана в человеко-понятный вид
- function date2word($dif,$short=false)
- {
- if($dif == 0)
- return 'Навсегда';
- $dif = $dif * 60;
- 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={$amx_sql_host};dbname={$amx_sql_db}", $amx_sql_user, $amx_sql_pass);
- $bans = $db->query("SELECT * FROM `amx_bans`".($showpast === 0 ? " WHERE `expired` = 0" : "")." ORDER BY `bid` DESC LIMIT {$limit}")->fetchAll();
- ?>
- <?php
- // Далее идет примерный вывод данных в таблице. К самой таблице
- // или к ее элементам можете подставлять стили или классы Вашего движка
- ?>
- <table>
- <thead>
- <tr>
- <th>
- Ник
- </th>
- <th>
- Причина
- </th>
- <th>
- Админ
- </th>
- <th>
- Срок
- </th>
- </tr>
- </thead>
- <tbody>
- <?php foreach($bans as $ban): ?>
- <tr>
- <td>
- <?php echo htmlspecialchars($ban['player_nick'], ENT_QUOTES) ?>
- </td>
- <td>
- <?php echo htmlspecialchars($ban['ban_reason'], ENT_QUOTES) ?>
- </td>
- <td>
- <?php echo htmlspecialchars($ban['admin_nick'], ENT_QUOTES) ?>
- </td>
- <td>
- <?php echo date2word($ban['ban_length']) ?>
- </td>
- </tr>
- <?php endforeach; ?>
- </tbody>
- </table>