1. <?php
  2. /***********************************
  3. * Скрипт вывода банов AmxBans
  4. * Автор Onotole
  5. *
  6. * Скрипт для CMS e107
  7. * http://e107club.ru
  8. ***********************************/
  9. // Данные базы. Сюда прописывать данные, которые вписаны в sql.cfg
  10. $amx_sql_host = 'localhost'; // Хост БД
  11. $amx_sql_user = 'user'; // Пользователь базы
  12. $amx_sql_pass = 'password'; // Пароль пользователя
  13. $amx_sql_db = 'amxbans'; // База данных
  14. // Настройки
  15. $limit = 20; // Количество банов для вывода
  16. $showpast = 0; // Выводить ли истекшие баны (0 - не выводить, 1 выводить)
  17. /********************************************************
  18. * Дальше желательно ничего не трогать
  19. ********************************************************/
  20. // Функция преобразования срока бана в человеко-понятный вид
  21. function date2word($dif,$short=false)
  22. {
  23. if($dif == 0)
  24. return 'Навсегда';
  25. $dif = $dif * 60;
  26. if($dif) {
  27. $s = "";
  28. $years=intval($dif/(60*60*24*365));
  29. $dif=$dif-($years*(60*60*24*365));
  30. if($years) {
  31. $s.= $years." лет ";
  32. }
  33. if($years && $short) return $s;
  34. $months=intval($dif/(60*60*24*30));
  35. $dif=$dif-($months*(60*60*24*30));
  36. if($months) {
  37. $s.= $months." мес. ";
  38. }
  39. if($months && $short) return $s;
  40. $weeks=intval($dif/(60*60*24*7));
  41. $dif=$dif-($weeks*(60*60*24*7));
  42. if($weeks) {
  43. $s.= $weeks." нед. ";
  44. }
  45. if($weeks && $short) return $s;
  46. $days=intval($dif/(60*60*24));
  47. $dif=$dif-($days*(60*60*24));
  48. if($days) {
  49. $s.= $days." дн. ";
  50. }
  51. if($days && $short) return $s;
  52. $hours=intval($dif/(60*60));
  53. $dif=$dif-($hours*(60*60));
  54. if($hours) {
  55. $s.= $hours." час. ";
  56. }
  57. if($hours && $short) return $s;
  58. $minutes=intval($dif/(60));
  59. $seconds=$dif-($minutes*60);
  60. if($minutes) {
  61. $s.= $minutes." мин.";
  62. }
  63. if($minutes && $short) return $s;
  64. if($short) return $seconds." сек.";
  65. return $s;
  66. } else {
  67. return;
  68. }
  69. }
  70. $db = new PDO("mysql:host={$amx_sql_host};dbname={$amx_sql_db}", $amx_sql_user, $amx_sql_pass);
  71. $bans = $db->query("SELECT * FROM `amx_bans`".($showpast === 0 ? " WHERE `expired` = 0" : "")." ORDER BY `bid` DESC LIMIT {$limit}")->fetchAll();
  72. require_once 'class2.php';
  73. require_once HEADERF;
  74. $text = '
  75. <table>
  76. <tr>
  77. <td class="forumheader">
  78. Ник
  79. </td>
  80. <td class="forumheader">
  81. Причина
  82. </td>
  83. <td class="forumheader">
  84. Админ
  85. </td>
  86. <td class="forumheader">
  87. Срок
  88. </td>
  89. </tr>';
  90. foreach($bans as $ban)
  91. {
  92. $text .= '
  93. <tr>
  94. <td class="forumheader2">
  95. '.htmlspecialchars($ban['player_nick'], ENT_QUOTES).'
  96. </td>
  97. <td class="forumheader2">
  98. '.htmlspecialchars($ban['ban_reason'], ENT_QUOTES).'
  99. </td>
  100. <td class="forumheader2">
  101. '.htmlspecialchars($ban['admin_nick'], ENT_QUOTES).'
  102. </td>
  103. <td class="forumheader2">
  104. '.date2word($ban['ban_length']).'
  105. </td>
  106. </tr>';
  107. }
  108. $text .= '
  109. </table>';
  110. $ns->tablerender('Список банов', $text);
  111. require_once FOOTERF;