Material Admin

[v1.1.5.4] Material Admin - рефорк SB++ 1.5.4.7

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • Автор ресурса
  • #681
По просьбе двух товарищей, пишу этот пост.
Многие, наверное, видели эту темку: Общий онлайн в SourceBans
И моё решение из неё, тоже.
В моём посте из темы говорится, что он подходит к любому СБ. Так и было. До версии 1.1.5.
Начиная с 1.1.5, в SourceBans отсутствует класс CServerInfo, через который получается информация о сервере, а код добавления XAJAX функций был переработан, из-за чего первой же строки из первого пункта нет. В этом посте я решил переписать инструкцию под версии рефорка 1.1.5 и старше.
Ну что ж, поехали.

1. Открываем файл includes/sb-callback.php и находим строчку:
PHP:
$methods = array('admin' => array('AddMod', 'RemoveMod', 'AddGroup', 'RemoveGroup', 'RemoveAdmin', 'RemoveSubmission', 'RemoveServer', 'UpdageGroupPermissions', 'UpdateAdminPermissions', 'AddAdmin', 'SetupEditServer', 'AddServerGroupName', 'AddServer', 'AddBan', 'RehashAdmins', 'EditGroup', 'RemoveProtest', 'SendRcon', 'EditAdminPerms', 'AddComment', 'EditComment', 'RemoveComment', 'PrepareReban', 'Maintenance', 'KickPlayer', 'GroupBan', 'BanMemberOfGroup', 'GetGroups', 'BanFriends', 'SendMessage', 'ViewCommunityProfile', 'SetupBan', 'CheckPassword', 'ChangePassword', 'CheckSrvPassword', 'ChangeSrvPassword', 'ChangeEmail', 'CheckVersion', 'SendMail', 'AddBlock', 'PrepareReblock', 'PrepareBlockFromBan', 'removeExpiredAdmins', 'AddSupport', 'ChangeAdminsInfos', 'InstallMOD', 'UpdateGroupPermissions', 'PastePlayerData', 'AddWarning', 'RemoveWarning'), 'default' => array('Plogin', 'ServerHostPlayers', 'ServerHostProperty', 'ServerHostPlayers_list', 'ServerPlayers', 'LostPassword', 'RefreshServer', 'AddAdmin_pay', 'RehashAdmins_pay'));

Заменяем на:
PHP:
$methods = array('admin' => array('AddMod', 'RemoveMod', 'AddGroup', 'RemoveGroup', 'RemoveAdmin', 'RemoveSubmission', 'RemoveServer', 'UpdageGroupPermissions', 'UpdateAdminPermissions', 'AddAdmin', 'SetupEditServer', 'AddServerGroupName', 'AddServer', 'AddBan', 'RehashAdmins', 'EditGroup', 'RemoveProtest', 'SendRcon', 'EditAdminPerms', 'AddComment', 'EditComment', 'RemoveComment', 'PrepareReban', 'Maintenance', 'KickPlayer', 'GroupBan', 'BanMemberOfGroup', 'GetGroups', 'BanFriends', 'SendMessage', 'ViewCommunityProfile', 'SetupBan', 'CheckPassword', 'ChangePassword', 'CheckSrvPassword', 'ChangeSrvPassword', 'ChangeEmail', 'CheckVersion', 'SendMail', 'AddBlock', 'PrepareReblock', 'PrepareBlockFromBan', 'removeExpiredAdmins', 'AddSupport', 'ChangeAdminsInfos', 'InstallMOD', 'UpdateGroupPermissions', 'PastePlayerData', 'AddWarning', 'RemoveWarning'), 'default' => array('Plogin', 'ServerHostPlayers', 'ServerHostProperty', 'ServerHostPlayers_list', 'ServerPlayers', 'LostPassword', 'RefreshServer', 'AddAdmin_pay', 'RehashAdmins_pay', 'SumOnline'));

2. Ищем строку в этом же файле:
PHP:
function RehashAdmins_pay($server, $do=0, $card)

Перед ней добавляем:
PHP:
function SumOnline($obIdCurrPlayers, $obIdMaxPlayers, $obPropCurrPlayers, $obPropMaxPlayers) {
    require INCLUDES_PATH.'/CServerControl.php';
    $objResponse = new xajaxResponse();

    $playersMax = 0;
    $playersOnline = 0;
    $srvSock = new CServerControl();
    $servers = $GLOBALS['db']->GetAll(sprintf("SELECT ip, port FROM %s_servers", DB_PREFIX));
    foreach ($servers as $server) {
        if (!$srvSock->Connect($server["ip"], $server["port"]))
            continue;

        $srvInfo = $srvSock->GetInfo();
        if (!$srvInfo)
            continue;

        $playersMax += $srvInfo['MaxPlayers'];
        $playersOnline += $srvInfo['Players'];
    }

    $objResponse->addAssign($obIdCurrPlayers, $obPropCurrPlayers, $playersOnline);
    $objResponse->addAssign($obIdMaxPlayers, $obPropMaxPlayers, $playersMax);
    return $objResponse;
}
Оффтоп
Начиная с версии 1.1.6, будет так же изменён фреймворк для работы с БД. ADOdb, который сейчас используется, будет полностью вырезан, и вместо него будет использоваться PDO. Из-за чего надо будет изменить одну строку.
PHP:
$servers = $GLOBALS['db']->GetAll(sprintf("SELECT ip, port FROM %s_servers", DB_PREFIX));
Заменить на это:
PHP:
$servers_q = $GLOBALS['db']->query(sprintf("SELECT ip, port FROM %s_servers", DB_PREFIX));
    $servers = array();
    while ($row = $servers_q->fetch(PDO::FETCH_LAZY)) {
        $servers[] = $row;
    }
Все остальные шаги, начиная с третьего, полностью идентичны из оригинального сообщения.
 
Последнее редактирование:

TotSamiiRodya

Участник
Сообщения
246
Реакции
107
А есть такой плагин тип чтто б автоматом покупать админку? или вы скоро это сделаете?
 

Boeing 767

заскамили мамонта ни за что, ни про что
Сообщения
524
Реакции
913
А когда донат будет?
А есть такой плагин тип чтто б автоматом покупать админку? или вы скоро это сделаете?

На вопрос когда? Точного ответа нету (c) Kruzya
Он сейчас переносит SB на PDO и это займёт время так что пока что все вопросы с автодонатом не имеют ответа.
 
Последнее редактирование:

lexx777

Участник
Сообщения
309
Реакции
41
Подскажите пожалуйста можно ли каким то образом с главной страницы убрать информационный блок "Список последних блоков" ?
 

RazerHR

Участник
Сообщения
11
Реакции
0
1cdc255ebba34a01b7831f76c121b4a8.png

В чём проблема ?
 

RazerHR

Участник
Сообщения
11
Реакции
0
Нет конекта с базой данных.
Видел подобную ошибку, когда в ручную правил файл config.php
все исправил =)
--- Добавлено позже ---
Нет конекта с базой данных.
Видел подобную ошибку, когда в ручную правил файл config.php
у меня почему-то щас не работает админка фотя в sb_admins я там есть
--- Добавлено позже ---
Нет конекта с базой данных.
Видел подобную ошибку, когда в ручную правил файл config.php
знаешь в чем может быть проблема ?
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • Автор ресурса
  • #689
@RazerHR, Вы охрененно описываете проблему.

Вы плагин на сервер ставили? В databases.cfg прописывали его конфиги? Давайте больше конкретики. Так нам не придется играть в "угадайку", и быстрее дать ответ на Вас интересующий вопрос.
 

lexx777

Участник
Сообщения
309
Реакции
41
все исправил =)
--- Добавлено позже ---

у меня почему-то щас не работает админка фотя в sb_admins я там есть
--- Добавлено позже ---

знаешь в чем может быть проблема ?

Теперь скорее всего конект базы данных на стороне сервера.
Как и сказал Kruzya проверяйте стоят ли у вас плагины на сервере и прописан ли конфиг в файле databases.cfg .
Если все у вас прописано, то смотрите логи связанные с соурсбаном и выложите сюда под сполер что система пишет в логах.
Но скорее всего нету конетка сервера с базой данных, поэтому и админка перестала работать - это в том случае если у вас залиты все плагины и настроен конфиг databases.cfg .
 

smoke96

Участник
Сообщения
1,134
Реакции
175
Чёт не вкурил, установил дев 1.1.6 скачанную из первого поста , а установилась 1.5.4.7 , шо за?
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • Автор ресурса
  • #692
@B1g,
  1. У дев 1.1.6 пока нет отличий от 1.1.5.4, кроме как изменённой лицензии везде и переструктуризации каталогов. В конце недели появятся первые отличия.
  2. ХЗ.
 

TotSamiiRodya

Участник
Сообщения
246
Реакции
107
Крузя слушай,а можно как то сделать отдельно страницу для правил? ну они там есть или нет? Или же самому html коды менять?
xAeJYd3hpbvbEr.jpg

--- Добавлено позже ---
или заменять например страницу Сервера,все равно на гл. высвечивается))
--- Добавлено позже ---
заменить не получилось:D как добавить)
 
Последнее редактирование:

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • Автор ресурса
  • #694
@TotSamiiRodya, в 1.1.6 такой функционал будет доступен из админки. Пока что только файлы править. Подробнее, как это сделать, можно спросить у @Samoletik1337, например.
--- Добавлено позже ---
Ах да. Ссылки в эту панель можно добавлять здесь, если всё ещё не заметил:
cbIsoTS.png
 
Последнее редактирование:

TotSamiiRodya

Участник
Сообщения
246
Реакции
107
или заменять например страницу Сервера,все равно на гл. высвечи
@TotSamiiRodya, в 1.1.6 такой функционал будет доступен из админки. Пока что только файлы править. Подробнее, как это сделать, можно спросить у @Samoletik1337, например.
--- Добавлено позже ---
Ах да. Ссылки в эту панель можно добавлять здесь, если всё ещё не заметил:
cbIsoTS.png
Про страницы уже нашел)) просто страницу б создать))
 

vicsilence

Участник
Сообщения
3
Реакции
0
Доброго времени суток, уважаемые пользователи! Представляем Вам свой форк популярной системы банов, основанный на SB++, собранный обычными пользователями русскоязычного сообщества HLMod! Авторы рефорка вложили свои силы, потратили Своё время и предоставляют Вам свои труды совершенно бесплатно! Поэтому, просим, не убирайте копирайты. Там просто список тех, кто трудился над форком, и не более.


Примеры:

Скачать:
Списки изменений (вплоть до изменённого кода) доступны в репозитории рефорка на GitHub.

  • Все самые последние обновления
    Более обновлённый довёрстанный шаблон
    Исправления безопасности, если были найдены дыры с момента выхода stable-версии
    Повышенная возможная вероятность "падения" системы

Обратите внимание: этот шаблон (чисто папка /themes/ из дистрибутива) не совместим с SB 1.4.10 и SB++. Необходимо полностью обновлять файлы системы. Однако можно произвести "мягкое" обновление со старых версий систем. Для этого загрузите весь дистрибутив, включая обновлятор (/updater/), но без установщика (/install/).

Доступный функционал

  • Администраторы на время
    Дополнительные поля для Администраторов (VK, Skype, Персональный комментарий aka Должность)
    Вход в аккаунт через Steam OpenID
    Настраиваемый прямо из настроек системы шаблон.
    Встроенный модуль списка Администраторов, разделённых по серверам. Включается в настройках.
    Поддержка отправки писем системой через SMTP, которая позволяет настроить отправку писем через популярные бесплатные почтовые сервисы, если mail() на сервере отключен, не настроен или просто нет желания отправлять письма через него. Возможность переключиться на mail() добавлена в версии 1.1.5
    Возможность загружать сразу несколько изображений карт, а не по одной, как это реализовано в оригинале.
    Возможность добавлять Администраторов в боковую панель, которая находится справа.
    Возможность разрешить Администраторам указывать вручную свои контактные данные (VK, Skype) у себя в Аккаунте.
    Возможность скрыть более подробную информацию об Администраторе, который выдал Бан, в Банлисте.
    Возможность добавлять и удалять блоки с Главной страницы системы (муты, баны, блокировки).
    "Система ваучеров".

    • Позволяет Администраторам "вручную" регистрироваться в системе по специальному одноразовому коду, который может выдать Главный Администратор. Сервер, к которому привяжется Администратор, и его группы, указываются при создании одноразового кода.
      Имеется капча для защиты от автоподбора ботами.
      Ссылка для перехода на страницу активации ваучера находится там же, где и кнопки авторизации.
      После активации ваучера, Администратор автоматически попадает в свой аккаунт.
    Вывод аватаров Администраторов из Steam.
    Вывод информации о критической ошибке, которая препятствует дальнейшей работе веб-системы, вместо "пустой" страницы. С версии 1.1.5
Возможен и иной функционал, не перечисленный в данном списке.

Плюсы данного рефорка

  • Администраторы, у которых истёк доступ, не смогут зайти в систему или получить свои Администраторские права на сервере.
    Поиск Администраторов по параметрам Истекшие/Актуальные из Админпанели, что позволяет снизить результаты поиска до минимума.
    Отличный шаблон, который подстроится под любой экран с равным функционалом основного шаблона.
    Изменённое сообщение забаненному игроку при получении бана и при перезаходе на игровой сервер.
    В Аккаунте пользователя, рядом с списком доступных ему привилегий, показывается срок окончания прав.
    Возможность устроить автопродажу Администраторских прав, создав несколько одноразовых кодов, и выставив их на продажу через сайт для продажи цифровой дистрибьюции (Plati.RU, например).

TODO-список (планируется сделать)

  • Подстроить все страницы под шаблон.
    Добавить систему автопродажи Администраторских привилегий, разбана.
    Полная русификация системы.
    Переделать серверную часть.
Это лишь часть того, что планируется сделать. С полным списком Вы можете ознакомиться здесь.
Внимание: Если у вас веб-хостинг от MyArena, то следуйте инструкциям этого поста

Установка веб-части с нуля

  • Скачать и распаковать дистрибутив.
    Переименовать /config.php.temple в /config.php
    (опционально) Если у вас PHP версии 5.4, то проделайте пункт 5 из этого поста.
    Загрузить все файлы из папки web_upload на веб-сервер.
    Установить права 0777 на папки /images/games/, /images/maps/, /themes_c/ и на файл /config.php
    Перейти на установщик системы (как правило, имеет адрес в стиле httр://mуsite.соm/sourcebans/install/) и следовать инструкциям на экране.
    Перейти на обновлятор системы (как правило, имеет адрес в стиле httр://mуsite.соm/sourcebans/updater/) после успешной установки.
    Удалить папки /install/ и /updater/ с веб-сервера

Обновление веб-части с более старой версии

  • Скачать и распаковать дистрибутив.
    Загрузить все файлы из папки web_upload на веб-сервер, кроме установщика (/install/) и конфига-образца (/config.php.temple)
    Перейти на обновлятор системы (как правило, имеет адрес в стиле httр://mуsite.соm/sourcebans/updater/).
    Удалить папку /updater/ с веб-сервера.

Для версий, старее 1.1.5: Все настройки находятся в /includes/smtp-func.php. По умолчанию, прописаны порты и прочее для Яндекс.Почты. Настройки для сторонних сервисов (GMail, Mail.RU) можно найти в Гугле.
Для версий новее 1.1.5 включительно: Настройки от SMTP находятся в самом низу главных настроек. Переключиться на mail() можно там же.

Замечание: При обновлении с версии 1.1.4 и старее, обновлятор бережно перенесёт настройки SMTP, если файл /includes/smtp-func.php при обновлении не удалять.
Чтобы не дублироваться, предлагаю для начала прочитать FAQ оригинального SB++ (перевод). В нём, как правило, описаны все часто задаваемые вопросы по самой системе.

Как только, так сразу.
Заключите проблемный кусок кода в специальный тег шаблонизатора {literal}, что бы вышло что-то вроде:
PHP:
<...>
{literal}
  function isblank(field) {
    if (field.value == '')
      return false;
    else
    {
        document.loginform.submit();
        return true;
    }
  }
{/literal}
<...>

Подробнее о теге можете прочитать в документации шаблонизатора.
Создайте Issue на Гитхабе по этой ссылке с подробным описанием бага, включая версию PHP.
В подвале СБ:
0dQAAIZ.png
Была произведена установка рефорка на хост с добавлением серверов из Интернета (все без RCON'а), и он был заполнен банами и мутами. Подробнее в этом посте.
Нет.
Сервер не отдаёт по запросу A2S_PLAYER информацию рода "Бот" или "SteamID". Он отдаёт лишь кол-во убийств (фрагов), никнейм, время соединения и ID. Подробнее здесь.
Не хватает библиотек на "тачке". Начинайте читать с этого поста, чтобы понять суть проблемы: [ALPHA] MATERIAL Admin - ReFork на основе [SB: 1.5.4.7] [Bootstrap 3]
Или можете сразу перейти к решению: [ALPHA] MATERIAL Admin - ReFork на основе [SB: 1.5.4.7] [Bootstrap 3]

Благодарности:

  • Пользователи HLMod - за тестирование.
    GameConnect - за разработку оригинала системы.
    Sarabveer - за допиливание оригинала и создание SourceBans++.

Вы можете поддержать развитие рефорка материально. Подробнее здесь.


  • 29.12.2016 09:50 - Поправил номер dev-версии
    31.12.2016 12:53 - Добавил ещё один СБ в примеры
    04.01.2017 19:30 - Добавил два пункта в FAQ
    05.01.2017 18:31 - Добавил ссылку на перевод официального FAQ SourceBans++
    06.01.2017 17:00 - Добавил ссылку на пост про групповую беседу рефорка в ВКонтакте
    08.01.2017 0:01 - Добавил текст про FAQ
    08.01.2017 01:54 - Добавил текст про материальную поддержку рефорка.
    10.01.2017 14:01 - Добавил текст про поиск по теме.
    15.01.2017 17:07 - Добавил маленькое изображение скриншота в шапку.
    16.01.2017 17:01 - Добавил интересно оформленный СБ в список примеров и небольшое уведомление.
    19.01.2017 22:41 - Обновление до 1.1.5
    20.01.2017 14:48 - Добавил ссылку на сервер в Discord
    20.01.2017 20:05 - Обновил ссылку на Discord
    25.01.2017 16:43 - Обновление до 1.1.5.1
    29.01.2017 00:04 - Обновление до 1.1.5.2
    29.01.2017 00:20 - Пару файлов забыл закинуть в апдейт, теперь всё хорошо должно быть
    03.02.2017 13:15 - Дополнил FAQ
    05.02.2017 14:18 - Обновление 1.1.5.4
    08.02.2017 17:57 - Добавил заметку на тему Администраторов
    10.02.2017 14:08 - Обновлены ссылки в шапке

ОГРОМНАЯ ПРОСЬБА! ПЕРЕД ТЕМ, КАК ЗАДАВАТЬ ВОПРОС, ПРОЧТИТЕ FAQ! КАК ПРАВИЛО, В НЁМ СОДЕРЖИТСЯ 80% ЗАДАВАЕМЫХ ВОПРОСОВ! ТАК ЖЕ НЕ ЗАБЫВАЙТЕ ПОЛЬЗОВАТЬСЯ ПОИСКОМ ПО ТЕМЕ!

ЕСЛИ НЕ ОБНОВЛЯЮТСЯ АДМИНИСТРАТОРЫ НА СЕРВЕРАХ ПОСЛЕ ДОБАВЛЕНИЯ В ВЕБ-ПАНЕЛИ, ТО ЧИТАЙТЕ ЭТОТ ПОСТ!

народ, не работает отправка писем по smtp, кто сталкивался подскажите в чём проблема?((
 

CrazyGhostRider

Участник
Сообщения
24
Реакции
13
Решил замутить игрока с сайта (Чат+микр). Написало, что замутило, но он продолжил общаться.
Оказывается, сайт отправляет команду ma_wb_block. А такой команды нет в плагине.
 

CAH4E3

Сосанчез.
Сообщения
1,597
Реакции
779
Решил замутить игрока с сайта (Чат+микр). Написало, что замутило, но он продолжил общаться.
Оказывается, сайт отправляет команду ma_wb_block. А такой команды нет в плагине.
В настройках вебпанели "включите" режим поддержки старой серверной части.
 

CrazyGhostRider

Участник
Сообщения
24
Реакции
13
В настройках вебпанели "включите" режим поддержки старой серверной части.
Тогда сайт отправляет только статус. Перекомпилил плагин, заменив ma_wb_mute на ma_wb_block. мут не срабатывает т.к. сайт не отправляет причину.
Кстати. Размут тоже не робит т.к. от сайта идет команда "sc_fw_ungag" Не зависимо от включения совместимости.

П.с. У меня сервер TF2, у друга CSGO—ошибки одинаковые.
 
Сверху Снизу