Админлист

kepchuk

Участник
Сообщения
34
Реакции
4
что то не могу найти вот эти 2 строчки у себя:

После:
PHP код:
if($GLOBALS['config']['config.enableprotest']=="1")
AddTab("Protest a ban", "index.php?p=protest", "Here you can protest your ban. And prove your case as to why you should be unbanned.");

в какой папке в какой примерно строке они находятся?

А ты какой sb используешь?
 

jktu

Участник
Сообщения
20
Реакции
0
здраствуйте помогите пожалоста !!!
зделал админ лист
помогите зделать так что бы последний визит отображался когда заходил на сервер а не в панель веб управления
 

Вложения

  • банс.PNG
    банс.PNG
    19.3 КБ · Просмотры: 146

[BRABUS]///AMG

Участник
Сообщения
3
Реакции
0
Здравствуйте ребята , установил Админлист вылезла такая проблемка
что делать ?
 

Вложения

  • Безымянный.png
    Безымянный.png
    58.9 КБ · Просмотры: 110

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
Поделюсь своей реализацией админлиста с выводом по серверам для SB 1.5.4.7 для стандартного шаблона. Изначально делалось для одного знакомого, но потом было решено облагородить внутренности админлиста и поделиться в паблике.
290dce465bd3.png
138951e5a42f.png

Можно так же вручную поглазеть на демку. (временно недоступна)
Все пункты из раздела базовой установки обязательны. Раздел расширенной установки подразумевает собой правку ещё парочки файлов для добавления настроек админлиста в настройки панели SourceBans.
page.adminlist.enabled принимает два значения: 0 и 1, или выключено и включено сответственно.

page.adminlist.sortby принимает четыре значения:
0 - сортировать по убыванию администраторского идентификатора
1 - сортировать по возрастанию администраторского идентификатора
2 - сортировать по возрастанию иммунитета
3 - сортировать по убыванию иммунитета

1. Произвести запрос к базе (обратите внимание: если вы указывали другую (нестандартную) приставку для таблиц SB, измените её и в запросе):
C-подобный:
INSERT INTO `sb_settings` (`setting`, `value`) VALUES ('page.adminlist.enabled',0), ('page.adminlist.sortby', 0)

2. Скачать файлы админлиста, распаковать архив.

3. Перенести файл page.adminlist.php в pages, а page_adminlist.tpl - в папку с шаблоном (как правило, themes/default)

4. Открыть файл includes/page-builder.php, найти строчку:
PHP:
   default:
Вставить перед ней:
PHP:
    case "adminlist":
        RewritePageTitle("Админлист");
        $page = TEMPLATES_PATH . "/page.adminlist.php";
        break;

5. Открыть файл includes/system-functions.php, найти строчку:
PHP:
if($GLOBALS['config']['config.enablesubmit']=="1")
Вставить перед ней:
PHP:
    if($GLOBALS['config']['page.adminlist.enabled']=="1")
        AddTab("Админлист", "index.php?p=adminlist", "Всех активных администраторов, поделённых по серверам, можно посмотреть здесь.");

6. Открыть файл includes/sb-callback.php, найти строчку:
PHP:
$xajax->registerFunction("RefreshServer");
Добавить после неё:
PHP:
$xajax->registerFunction("GetServerName");
Найти строчку:
PHP:
function RefreshServer($sid)
Добавить перед ней:
PHP:
function GetServerName($sid, $obId, $obProp) {
    $objResponse = new xajaxResponse();
    require INCLUDES_PATH.'/CServerInfo.php';

    $sid = (int)$sid;

    $res = $GLOBALS['db']->GetRow("SELECT ip, port FROM ".DB_PREFIX."_servers WHERE sid = $sid");
    if(empty($res[0]) || empty($res[1]))
        return $objResponse;
    $info = array();
    $sinfo = new CServerInfo($res[0],$res[1]);
    $info = $sinfo->getInfo();

    if (!empty($info['hostname']))
        $objResponse->addAssign($obId, $obProp, htmlspecialchars($info['hostname']));
    else
        $objResponse->addAssign($obId, $obProp, "Ошибка соединения (".$res[0].":".$res[1].")");
    return $objResponse;
}
Перед выполнением операций из данного раздела, удостоверьтесь, что все пункты из раздела базовой установки сделаны.

1. Открыть файл pages/admin.settings.php, найти строчку:
PHP:
$adminrehash = (isset($_POST['enable_adminrehashing']) && $_POST['enable_adminrehashing'] == "on" ? 1 : 0);
Вставить после неё:
PHP:
           $adminlist_enabled = (isset($_POST['enable_adminlist']) && $_POST['enable_adminlist'] == "on" ? 1 : 0);
           $adminlist_sortby = (isset($_POST['adminlist_sortby']) ? $_POST['adminlist_sortby'] : 0);
Найти строчку:
PHP:
(" . (int)$adminrehash . ", 'config.enableadminrehashing')");
Заменить на:
PHP:
(" . (int)$adminrehash . ", 'config.enableadminrehashing'),
                                            (" . (int)$adminlist_enabled . ", 'page.adminlist.enabled'),
                                            (" . (int)$adminlist_sortby . ", 'page.adminlist.sortby')");

Найти строчку:
PHP:
$('enable_adminrehashing').checked = <?php echo $GLOBALS['config']['config.enableadminrehashing']?>;
Вставить после неё:
PHP:
$('enable_adminlist').checked = <?php echo $GLOBALS['config']['page.adminlist.enabled']?>;
$('sel_adminlist_sortby').selectedIndex = <?php echo $GLOBALS['config']['page.adminlist.sortby']?>;

2. Открыть файл themes/default/page_admin_settings_features.tpl, найти строчки:
PHP:
              <div id="enable_adminrehashing.msg" class="badentry"></div>
           </td>
        </tr>
Вставить после них:
PHP:
        <tr>
            <td valign="top"><div class="rowdesc">{help_icon title="Включить админлист" message="Установите галочку в данном чекбоксе, если желаете включить админлист в SourceBans."}Включить админлист</div></td>
           <td>
              <div align="left">
                    <input type="checkbox" name="enable_adminlist" id="enable_adminlist" />
              </div>
              <div id="enable_adminlist.msg" class="badentry"></div>
           </td>
        </tr>
        <tr>
            <td valign="top"><div class="rowdesc">{help_icon title="Сортировка админов" message="Здесь вы можете изменить способ сортировки администраторов в админлисте."}Сортировка в админлисте</div></td>
           <td>
              <div align="left">
                    <select class="select" TABINDEX=4 name="adminlist_sortby" id="sel_adminlist_sortby">
                        <optgroup label="По уникальному идентификатору администратора">
                            <option value="0">В порядке убывания</option>
                            <option value="1">В порядке возрастания</option>
                        </optgroup>
                        <optgroup label="По иммунитету">
                            <option value="3">В порядке убывания</option>
                            <option value="2">В порядке возрастания</option>
                        </optgroup>
                    </select>
              </div>
              <div id="adminlist_sortby.msg" class="badentry"></div>
           </td>
        </tr>
Под этим небольшим спойлером я решил собрать доступные теги, которые можно использовать при модификации шаблона под свои нужды.
Желательно в данной области писать свой код после условия проверки кол-ва администраторов и после установки мода сервера:
PHP:
{if $server.admincount > 0}
{assign var="CurrentGame" value=$server.modid}
{assign var="CurrentGame" value=$games.$CurrentGame}

{$server.admincount} - количество администраторов на сервере (можно сделать вывод в конце админлиста, как тут)
{$server.sid} - идентификатор сервера в БД. Можно использовать в XAJAX-запросах вроде GetServerName(). Другого применения не вижу.
{$server.ip} - IP-адрес сервера.
{$server.port} - порт сервера.
{$CurrentGame.icon} - имя файла иконки мода в images/games/ на веб-сервере.
{$CurrentGame.name} - имя мода.
Желательно в данной области писать свой код после условия проверки, принадлежит ли текущий администратор к текущему обрабатываемому серверу:
PHP:
{if $admin.srv == $server.sid}

{$admin.user} - имя пользователя админа в SourceBans.
{$admin.authid} - SteamID v2 (выглядит как STEAM_0:1:2).
{$admin.authid_v3} - SteamID v3 (выглядит как [U:1:5]). Можно использовать в ссылке на профиль Steam, подставляя после /profiles/.
{$admin.communityid} - SteamID 64 или CommunityID. Можно использовать в ссылке на профиль, подставляя после /profiles/.
{$admin.aid} - уникальный идентификатор администратора в БД SourceBans.
{$admin.srv_group} - имя группы администратора. Ничему не равно, если используются уникальные права доступа.
{$admin.immunity} - иммунитет администратора. Если вручную не задан (используется иммунитет из группы администраторов), равен иммунитету этой самой группы, к которой он принадлежит.
{$admin.srv} - идентификатор сервера, к которому администратор принадлежит. Аналог {$server.sid}.

Upd (14:30, 10.09.2016): Обновил page.adminlist.php. Ссылка на архив обновлена. Из изменений: исправлен баг, когда иммунитет админа из "группы" не учитывался при сортировке.
Upd (20:33, 10.09.2016): Добавил спойлер с тегами шаблона.
Upd (20:50, 10.09.2016): Переоформил немного спойлер с установкой.
Upd (19:39, 14.09.2016): "Отключил" временно СБ с демкой.
 
Последнее редактирование:

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@AS TRO, шаблон немного по другому устроен, как и сам код, впринципе.
 

miki

Участник
Сообщения
93
Реакции
22
Поделюсь своей реализацией админлиста с выводом по серверам для SB 1.5.4.7 для стандартного шаблона. Изначально делалось для одного знакомого, но потом было решено облагородить внутренности админлиста и поделиться в паблике.
290dce465bd3.png
138951e5a42f.png

Можно так же вручную поглазеть на демку. (временно недоступна)
Все пункты из раздела базовой установки обязательны. Раздел расширенной установки подразумевает собой правку ещё парочки файлов для добавления настроек админлиста в настройки панели SourceBans.
page.adminlist.enabled принимает два значения: 0 и 1, или выключено и включено сответственно.

page.adminlist.sortby принимает четыре значения:
0 - сортировать по убыванию администраторского идентификатора
1 - сортировать по возрастанию администраторского идентификатора
2 - сортировать по возрастанию иммунитета
3 - сортировать по убыванию иммунитета

1. Произвести запрос к базе (обратите внимание: если вы указывали другую (нестандартную) приставку для таблиц SB, измените её и в запросе):
C-подобный:
INSERT INTO `sb_settings` (`setting`, `value`) VALUES ('page.adminlist.enabled',0), ('page.adminlist.sortby', 0)

2. Скачать файлы админлиста, распаковать архив.

3. Перенести файл page.adminlist.php в pages, а page_adminlist.tpl - в папку с шаблоном (как правило, themes/default)

4. Открыть файл includes/page-builder.php, найти строчку:
PHP:
   default:
Вставить перед ней:
PHP:
    case "adminlist":
        RewritePageTitle("Админлист");
        $page = TEMPLATES_PATH . "/page.adminlist.php";
        break;

5. Открыть файл includes/system-functions.php, найти строчку:
PHP:
if($GLOBALS['config']['config.enablesubmit']=="1")
Вставить перед ней:
PHP:
    if($GLOBALS['config']['page.adminlist.enabled']=="1")
        AddTab("Админлист", "index.php?p=adminlist", "Всех активных администраторов, поделённых по серверам, можно посмотреть здесь.");

6. Открыть файл includes/sb-callback.php, найти строчку:
PHP:
$xajax->registerFunction("RefreshServer");
Добавить после неё:
PHP:
$xajax->registerFunction("GetServerName");
Найти строчку:
PHP:
function RefreshServer($sid)
Добавить перед ней:
PHP:
function GetServerName($sid, $obId, $obProp) {
    $objResponse = new xajaxResponse();
    require INCLUDES_PATH.'/CServerInfo.php';

    $sid = (int)$sid;

    $res = $GLOBALS['db']->GetRow("SELECT ip, port FROM ".DB_PREFIX."_servers WHERE sid = $sid");
    if(empty($res[0]) || empty($res[1]))
        return $objResponse;
    $info = array();
    $sinfo = new CServerInfo($res[0],$res[1]);
    $info = $sinfo->getInfo();

    if (!empty($info['hostname']))
        $objResponse->addAssign($obId, $obProp, htmlspecialchars($info['hostname']));
    else
        $objResponse->addAssign($obId, $obProp, "Ошибка соединения (".$res[0].":".$res[1].")");
    return $objResponse;
}
Перед выполнением операций из данного раздела, удостоверьтесь, что все пункты из раздела базовой установки сделаны.

1. Открыть файл pages/admin.settings.php, найти строчку:
PHP:
$adminrehash = (isset($_POST['enable_adminrehashing']) && $_POST['enable_adminrehashing'] == "on" ? 1 : 0);
Вставить после неё:
PHP:
           $adminlist_enabled = (isset($_POST['enable_adminlist']) && $_POST['enable_adminlist'] == "on" ? 1 : 0);
           $adminlist_sortby = (isset($_POST['adminlist_sortby']) ? $_POST['adminlist_sortby'] : 0);
Найти строчку:
PHP:
(" . (int)$adminrehash . ", 'config.enableadminrehashing')");
Заменить на:
PHP:
(" . (int)$adminrehash . ", 'config.enableadminrehashing'),
                                            (" . (int)$adminlist_enabled . ", 'page.adminlist.enabled'),
                                            (" . (int)$adminlist_sortby . ", 'page.adminlist.sortby')");

Найти строчку:
PHP:
$('enable_adminrehashing').checked = <?php echo $GLOBALS['config']['config.enableadminrehashing']?>;
Вставить после неё:
PHP:
$('enable_adminlist').checked = <?php echo $GLOBALS['config']['page.adminlist.enabled']?>;
$('sel_adminlist_sortby').selectedIndex = <?php echo $GLOBALS['config']['page.adminlist.sortby']?>;

2. Открыть файл themes/default/page_admin_settings_features.tpl, найти строчки:
PHP:
              <div id="enable_adminrehashing.msg" class="badentry"></div>
           </td>
        </tr>
Вставить после них:
PHP:
        <tr>
            <td valign="top"><div class="rowdesc">{help_icon title="Включить админлист" message="Установите галочку в данном чекбоксе, если желаете включить админлист в SourceBans."}Включить админлист</div></td>
           <td>
              <div align="left">
                    <input type="checkbox" name="enable_adminlist" id="enable_adminlist" />
              </div>
              <div id="enable_adminlist.msg" class="badentry"></div>
           </td>
        </tr>
        <tr>
            <td valign="top"><div class="rowdesc">{help_icon title="Сортировка админов" message="Здесь вы можете изменить способ сортировки администраторов в админлисте."}Сортировка в админлисте</div></td>
           <td>
              <div align="left">
                    <select class="select" TABINDEX=4 name="adminlist_sortby" id="sel_adminlist_sortby">
                        <optgroup label="По уникальному идентификатору администратора">
                            <option value="0">В порядке убывания</option>
                            <option value="1">В порядке возрастания</option>
                        </optgroup>
                        <optgroup label="По иммунитету">
                            <option value="3">В порядке убывания</option>
                            <option value="2">В порядке возрастания</option>
                        </optgroup>
                    </select>
              </div>
              <div id="adminlist_sortby.msg" class="badentry"></div>
           </td>
        </tr>
Под этим небольшим спойлером я решил собрать доступные теги, которые можно использовать при модификации шаблона под свои нужды.
Желательно в данной области писать свой код после условия проверки кол-ва администраторов и после установки мода сервера:
PHP:
{if $server.admincount > 0}
{assign var="CurrentGame" value=$server.modid}
{assign var="CurrentGame" value=$games.$CurrentGame}

{$server.admincount} - количество администраторов на сервере (можно сделать вывод в конце админлиста, как тут)
{$server.sid} - идентификатор сервера в БД. Можно использовать в XAJAX-запросах вроде GetServerName(). Другого применения не вижу.
{$server.ip} - IP-адрес сервера.
{$server.port} - порт сервера.
{$CurrentGame.icon} - имя файла иконки мода в images/games/ на веб-сервере.
{$CurrentGame.name} - имя мода.
Желательно в данной области писать свой код после условия проверки, принадлежит ли текущий администратор к текущему обрабатываемому серверу:
PHP:
{if $admin.srv == $server.sid}

{$admin.user} - имя пользователя админа в SourceBans.
{$admin.authid} - SteamID v2 (выглядит как STEAM_0:1:2).
{$admin.authid_v3} - SteamID v3 (выглядит как [U:1:5]). Можно использовать в ссылке на профиль Steam, подставляя после /profiles/.
{$admin.communityid} - SteamID 64 или CommunityID. Можно использовать в ссылке на профиль, подставляя после /profiles/.
{$admin.aid} - уникальный идентификатор администратора в БД SourceBans.
{$admin.srv_group} - имя группы администратора. Ничему не равно, если используются уникальные права доступа.
{$admin.immunity} - иммунитет администратора. Если вручную не задан (используется иммунитет из группы администраторов), равен иммунитету этой самой группы, к которой он принадлежит.
{$admin.srv} - идентификатор сервера, к которому администратор принадлежит. Аналог {$server.sid}.

Upd (14:30, 10.09.2016): Обновил page.adminlist.php. Ссылка на архив обновлена. Из изменений: исправлен баг, когда иммунитет админа из "группы" не учитывался при сортировке.
Upd (20:33, 10.09.2016): Добавил спойлер с тегами шаблона.
Upd (20:50, 10.09.2016): Переоформил немного спойлер с установкой.
Upd (19:39, 14.09.2016): "Отключил" временно СБ с демкой.
силка на админ лист битая " 2. Скачать файлы админлиста, распаковать архив. "
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@miki, уверен? Я перешёл только что по своей ссылке, и...
ti_vtiraesh_mne_kakuu-to_dich_sbadminlist.PNG
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@miki, тебе браузер прямо говорит: твоя ОС не поддерживает мой протокол шифрования. И съезжай с XP...
 

Вложения

  • AdminList_SB1547_v2.7z
    2.2 КБ · Просмотры: 33
  • Мне нравится
Реакции: miki

miki

Участник
Сообщения
93
Реакции
22
@miki, тебе браузер прямо говорит: твоя ОС не поддерживает мой протокол шифрования. И съезжай с XP...
спасибо )
--- Добавлено позже ---
кто подскажет в каком файле можно изменить это
--- Добавлено позже ---
разобрался по кавырял в файле admin.php в папке includes
 

Вложения

  • 2016-09-16_023235.png
    2016-09-16_023235.png
    19.9 КБ · Просмотры: 80
Последнее редактирование:

SynZilla

Хороший мальчик
Сообщения
243
Реакции
68
Подскажите, как вывести цифру с количеством администраторов?
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@SynZilla, производить подсчёт во время вывода админов. А потом вывести)
 

Sizner

Участник
Сообщения
51
Реакции
12
Здравствуйте ребята , установил Админлист вылезла такая проблемка
что делать ?
Не прописывай строчку: AddTab("Админлист", "index.php?p=adminlist", "Список всех админов");
Добавь через админ центр ссылку: index.php?p=adminlist
И будет тебе счастье.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
Добавь через админ центр ссылку: index.php?p=adminlist
И будет тебе счастье.
К Вашему сведению, в самом SourceBans никогда не было возможности вручную добавлять ссылки через админцентр. Это дополнение от Онотоле, и только для его форка.
 

serega36

Участник
Сообщения
127
Реакции
5
Кто может сделать Админлист!стоит sourcebans 1.5.1 ! на myarena! не бесплатно! в личку напишите!
 

Vadim4149

Участник
Сообщения
7
Реакции
0
Добрый день. Кто-нибудь может знает?
Решил сделать админлист в sourcebans v1.5.1
и я захотел сделать предупреждения Администраторам, но вот столкнулся с тем как сделать что-бы через панель можно-было ставить значение заданое мной. Скриншот примера:
Screenshot_8389637_28305265.png
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@Vadim4149, это надо таблицу под предупреждения создавать и код соответствующий писать для работы с ней.
 

Vadim4149

Участник
Сообщения
7
Реакции
0
@Kr1kuzya, а код можите скинуть?
--- Добавлено позже ---
@Kr1kuzya, вот мой пример кода:
div><h3>Список Администраторов</h3></div>
<?php
global $theme;
if(!defined("IN_SB")){echo "You should not be here. Only follow links!";die();}
else
{
function st32to64($steam_id)
{
list( , $m1, $m2) = explode(':', $steam_id, 3);
list($steam_cid, ) = explode('.', bcadd((((int) $m2 * 2) + $m1), '76561197960265728'), 2);
return $steam_cid;
}

$html = "";
$html.= "<table style=\"border-collapse: collapse;\" width=\"100%\" cellspacing=\"3\" cellpadding=\"3\" align=\"center\" border=\"1\" class=\"listtable\">";
$html.= "<tr>";
$html.= "<td padding-left=\"3\" height=\"16\" class=\"listtable_top\" align=\"center\"><b>Ник</b></td>";
$html.= "<td height=\"16\" class=\"listtable_top\" align=\"center\"><b>Steam</b></td>";
$html.= "<td height=\"16\" class=\"listtable_top\" align=\"center\"><b>Группа</b></td>";
$html.= "<td height=\"22\" class=\"listtable_top\" align=\"center\"><p>SKYPE ✆</b></p></td>";
$html.= "<td height=\"16\" class=\"listtable_top\" align=\"center\"><b>Предупреждения</b></td>";
$html.= "<td height=\"16\" class=\"listtable_top\" align=\"center\"><b>Посл. визит</b></td>";
$html.= "<td height=\"16\" class=\"listtable_top\" align=\"center\"><b>Дата<p>окончания</b></td>";
$html.= "</tr>";


$sb = mysql_query("SELECT `user`, authid, email, srv_group, lastvisit FROM sb_admins WHERE sb_admins.authid LIKE '%STEAM_0%' ORDER BY lastvisit DESC");
while ($res = mysql_fetch_assoc($sb))
{
$html.= "<tr>";
$html.= "<td align=\"center\"><a href=\"Steam Community :: Error".st32to64($res['authid'])."\" target=\"_blank\">Профиль</a></td>";
$html.= "<td align=\"center\"><a href=\"Steam Community :: Error".st32to64($res['authid'])."\" target=\"_blank\">Профиль</a></td>";
$html.= "<td align=\"center\">".$res['srv_group']."</td>";
$html.= "<td align=\"center\">".RemoveCode($res['skype'])."</td>";
$html.= "<td align=\"center\"><a></a></td>";
$html.= "<td align=\"center\">".date("Y-m-d H:i",$res['lastvisit'])."</td>";
$html.= "<td align=\"center\">".($u['expired'] == 0 ? 'Навсегда' : ($u['expired'] < time() ? 'Истёк (В скором случаи будет удалён)' : 'Через&nbsp;'.round((($u['expired'] - time()) / 86400),0) . '&nbsp;дней'))."</td>";
$html.= "</tr>";
}
$html.= "</table>";
echo $html;


}

$theme->assign('access_bans', ($userbank->HasAccess(ADMIN_OWNER|ADMIN_ADD_BAN)?true:false)) ;
$theme->assign('server_list', $servers);
$theme->assign('IN_SERVERS_PAGE', !defined('IN_HOME'));
$theme->assign('opened_server', $number);
?>
 
Сверху Снизу