[ALPHA] MATERIAL Admin - ReFork на основе [SB: 1.5.4.7] [Bootstrap 3]

Статус
В этой теме нельзя размещать новые ответы.

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@Disaster, тогда смотри в таблицу sb_logs в БД. Ошибки такого уровня должны выводиться там, если в логах пусто.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@Disaster, бред какой-то.
Конфигурация от БД точно правильно настроена в config.php?
--- Добавлено позже ---
Решили в ЛС.
--- Добавлено позже ---
Я собрал список неотвёрстанных страниц на Гите, в разделе TODO.
Те, кому не лень и кто умеет копировать-вставлять с правкой текста, милости просим с Пул реквестами на Гит.
Если не умеете Пул реквестить, товарищ @Dreizehnt относительно недавно писал о том, как это делается здесь.
Сделаем СБ лучше вместе!

SB_Material_Design/TODO.md at master · CrazyHackGUT/SB_Material_Design · GitHub
 
Последнее редактирование:

SlavON

Добрая душа
Сообщения
1,582
Реакции
326
Так как решили?
--- Добавлено позже ---
У меня я так понял вот эта ошибка, пытается создать уже существующую колонку mysqli error: [1060: Duplicate column name 'support'] in EXECUTE("ALTER TABLE `sb_admins` ADD `support` int(6) NULL DEFAULT '0';")
 
Последнее редактирование:

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@SlavON, парень не совсем корректно сформулировал проблему. У него СБ становился белым после авторизации в системе. В итоге в ходе поисков, выяснилось, что отключен модуль JSON. Подключили, и все заработало.

По поводу ошибки, напиши тоже в ЛС. Буду у компьютера - попытаюсь помочь.
 

Boeing 767

заскамили мамонта ни за что, ни про что
Сообщения
524
Реакции
913
@-=Vampir=-, кто авторизуется. Права не проверяются при просмотре страниц.
На редактирование, удаление и создании страниц повесил флаг доступа к настройкам веб-панели СБ.
Сейчас закончу разбираться с SQL-запросом (кто может помочь (непонятная ошибка) - в ЛС), и выложу файлы с инструкцией по установке.
--- Добавлено позже ---
Всё, разобрался :D
Счас доработаю последнюю хрень (настройки статических страниц), и выложу файлы с инструкцией...
--- Добавлено позже ---
Добавляем статические страницы в свой SourceBans.
1. Открываем includes/sb-callback.php, ищем строчку:
PHP:
$xajax->registerFunction("removeExpiredAdmins");
Добавляем после этой строчки:
PHP:
    $xajax->registerFunction("RemoveStaticPage");
    $xajax->registerFunction("AddStaticPage");
    $xajax->registerFunction("EditStaticPage");
    $xajax->registerFunction("EditStaticSettings");
Ищем строчку:
PHP:
$username = $userbank->GetProperty("user");
Добавляем после неё:
PHP:
function EditStaticSettings($enabled, $editors, $listing) {
    global $userbank;
    $objResponse = new xajaxResponse();
    if (!$userbank->HasAccess(ADMIN_WEB_SETTINGS)) {
        $objResponse->addScript('ShowBox("Ошибка!", "У вас недостаточно прав для выполнения этой операции!", "red", "index.php?p=static");');
        $log = new CSystemLog("w", "Ошибка доступа", "Администратор пытался создать статическую страницу, не имея на это прав.");
    } else {
        if ($GLOBALS['db']->Execute(sprintf("UPDATE `%s_settings` SET `value`=%d WHERE `setting`='page.static'", DB_PREFIX, ($enabled=="true")?1:0)) && $GLOBALS['db']->Execute(sprintf("UPDATE `%s_settings` SET `value`=%d WHERE `setting`='static.show_editor_public'", DB_PREFIX, ($editors=="true")?1:0)) && $GLOBALS['db']->Execute(sprintf("UPDATE `%s_settings` SET `value`=%d WHERE `setting`='static.show_allpages'", DB_PREFIX, ($listing=="true")?1:0))) {
            $objResponse->addScript('ShowBox("Успех!", "Настройки модуля статических страниц сохранены.", "green", "index.php?p=static");');
            $log = new CSystemLog("m", "Правка настроек статических страниц", "Изменены настройки статических страниц.");
        } else
            $objResponse->addScript('ShowBox("Ошибка!", "Не удалось сохранить Настройки модуля статических страниц. Повторите попытку.", "red", "", true);');
    }
    return $objResponse;
}

function AddStaticPage($title, $text, $url, $only_admins) {
    global $userbank;
    $objResponse = new xajaxResponse();
    $only_admins = ($only_admins=="true")?1:0;
    if (!$userbank->HasAccess(ADMIN_WEB_SETTINGS)) {
        $objResponse->addScript('ShowBox("Ошибка!", "У вас недостаточно прав для выполнения этой операции!", "red", "index.php?p=static");');
        $log = new CSystemLog("w", "Ошибка доступа", "Администратор пытался создать статическую страницу, не имея на это прав.");
    } else if (!preg_match("/^[aA0\--zZ9_]{1,}$/",$url))
        $objResponse->addScript('ShowBox("Ошибка!", "В ссылке существуют недопустимые символы! Разрешены только английские символы, цифры и знак минуса и подчёркивания", "red", "", true);');
    else {
        if ($GLOBALS['db']->GetRow(sprintf("SELECT COUNT(*) FROM `%s_pages` WHERE `url` = %s", DB_PREFIX, $GLOBALS['db']->qstr($url)))[0] > 0)
            $objResponse->addScript('ShowBox("Ошибка!", "Страница с такой ссылкой уже существует!", "red", "", true);');
        else if ($GLOBALS['db']->Execute(sprintf("INSERT INTO `%s_pages` (`url`, `title`, `text`, `lastedit`, `editor`, `hidden`) VALUES (%s, %s, %s, %d, %d, %d)", DB_PREFIX, $GLOBALS['db']->qstr($url), $GLOBALS['db']->qstr($title), $GLOBALS['db']->qstr($text), time(), $userbank->GetProperty("aid"), $only_admins))) {
            $objResponse->addScript('ShowBox("Успех!", "Статическая страница создана.", "green", "index.php?p=static");');
            $log = new CSystemLog("m", "Создание статической страницы", "Создана статическая страница");
        } else {
            $objResponse->addScript('ShowBox("Ошибка!", "Не удалось создать статическую страницу.<br />Смотрите в системный лог.", "red", "index.php?p=static");');
            $log = new CSystemLog("w", "Создание статической страницы", "Не удалось создать статическую страницу.");
        }
    }
    return $objResponse;
}

function EditStaticPage($id, $title, $text, $url, $only_admins) {
    global $userbank;
    $objResponse = new xajaxResponse();
    $only_admins = ($only_admins=="true")?1:0;
    if (!$userbank->HasAccess(ADMIN_WEB_SETTINGS)) {
        $objResponse->addScript('ShowBox("Ошибка!", "У вас недостаточно прав для выполнения этой операции!", "red", "index.php?p=static");');
        $log = new CSystemLog("w", "Ошибка доступа", "Администратор пытался отредактировать статическую страницу, не имея на это прав.");
  } else if (!preg_match("/^[aA0\--zZ9_]{1,}$/",$url))
      $objResponse->addScript('ShowBox("Ошибка!", "В ссылке существуют недопустимые символы! Разрешены только английские символы, цифры и знак минуса и подчёркивания", "red", "", true);');
    else {
        if ($GLOBALS['db']->Execute(sprintf("UPDATE `%s_pages` SET `title`=%s, `text`=%s, `url`=%s, `hidden`=%d, `editor`=%d, `lastedit`=%d WHERE `pid` = %d", DB_PREFIX, $GLOBALS['db']->qstr($title), $GLOBALS['db']->qstr($text), $GLOBALS['db']->qstr($url), $only_admins, $userbank->GetProperty("aid"), time(), $id))) {
            $objResponse->addScript('ShowBox("Успех!", "Статическая страница отредактирована.", "green", "index.php?p=static");');
            $log = new CSystemLog("m", "Редактирование статической страницы", sprintf("Изменена статическая страница под уникальным идентификатором %d", $id));
        } else {
            $objResponse->addScript(sprintf('ShowBox("Ошибка!", "Не удалось отредактировать статическую страницу под идентификатором %d.<br />Смотрите в системный лог для получения подробностей.", "red", "index.php?p=static");', $id));
            $log = new CSystemLog("w", "Редактирование статической страницы", sprintf("Не удалось отредактировать статическую страницу под идентификатором %d: Страница не найдена", $id));
        }
    }
    return $objResponse;
}

function RemoveStaticPage($id) {
    global $userbank;
    $objResponse = new xajaxResponse();

    if (!$userbank->HasAccess(ADMIN_WEB_SETTINGS)) {
        $objResponse->addScript('ShowBox("Ошибка!", "У вас недостаточно прав для выполнения этой операции!", "red", "index.php?p=static");');
        $log = new CSystemLog("w", "Ошибка доступа", "Администратор пытался удалить статическую страницу, не имея на это прав.");
    } else {
        if ($GLOBALS['db']->Execute(sprintf("DELETE FROM `%s_pages` WHERE `pid` = %s", DB_PREFIX, $id))) {
          $objResponse->addScript('ShowBox("Успех!", "Статическая страница удалена.", "green", "index.php?p=static");');
          $log = new CSystemLog("m", "Удаление статической страницы", sprintf("Удалена статическая страница под уникальным идентификатором %d", $id));
        } else {
            $objResponse->addScript(sprintf('ShowBox("Ошибка!", "Не удалось удалить статическую страницу под идентификатором %d.<br />Смотрите в системный лог для подробной информации.", "red", "index.php?p=static");', $id));
            $log = new CSystemLog("w", "Удаление статической страницы", sprintf("Не удалось удалить страницу под уникальным идентификатором %d: Страница не найдена.", $id));
        }
    }
    return $objResponse;
}
2. Открываем includes/system-functions.php и ищем строчку:
PHP:
AddTab("<i class='zmdi zmdi-accounts zmdi-hc-fw'></i> Админлист", "index.php?p=adminlist", "Список администраторов на доступных серверах.");
Добавляем после неё:
PHP:
    if($GLOBALS['config']['page.static']=="1" || $userbank->is_admin())
        AddTab("<i class='zmdi zmdi-copy zmdi-hc-fw'></i> Страницы", "index.php?p=static", "Список страниц, созданных администраторами.");
3. Открываем includes/page-builder.php и ищем:
PHP:
default:
Дописываем перед этой строкой:
PHP:
    case "static":
        RewritePageTitle("Статическая страница");
        $page = TEMPLATES_PATH . "/page.static.php";
        break;
4. Открываем scripts/sourcebans.js и дописываем в самый конец:
PHP:
function RemoveStaticPage(id, name) {
    if (confirm("Вы уверены, что хотите удалить страницу \"" + name + "\" (ID: " + id + ")?")) xajax_RemoveStaticPage(id);
}
5. Загружаем этот архив и распаковываем в папку с SourceBans.
6. Выполняем эти запросы к БД:
PHP:
INSERT INTO `sb_settings` (`setting`, `value`) VALUES ('page.static', '0');
INSERT INTO `sb_settings` (`setting`, `value`) VALUES ('static.show_editor_public', '0');
INSERT INTO `sb_settings` (`setting`, `value`) VALUES ('static.show_allpages', '0');
CREATE TABLE IF NOT EXISTS `sb_pages` (
  `pid` int(11) NOT NULL AUTO_INCREMENT,
  `url` varchar(32) NOT NULL,
  `title` varchar(128) NOT NULL,
  `text` text NOT NULL,
  `lastedit` int(11) NOT NULL,
  `editor` int(11) NOT NULL,
  `hidden` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`pid`),
  UNIQUE KEY `url` (`url`),
  UNIQUE KEY `pid_2` (`pid`),
  KEY `pid` (`pid`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 ;

ЗЫ: Архив обновлён от 19:45. Исправлена ошибка, когда без ручной активации страниц через БД, их редактирование всё равно было недоступно администратору. Спасибо за репорт @-=Vampir=-.
ЗЫЫ: Код под спойлером для includes/sb-callback.php был обновлён от 21:30. Исправлены баги, когда страница не сохранялась без изменения ссылки и прочие мелочи.
ЗЫЫЫ: Обновлен архив от 22:56. Исправлена ошибка, когда вместо списка страниц, администратору принудительно выводилась ошибка, что страница не указана.
А куда эти страницы сохраняются, нужно сделать вывод чата на страницу. Дизайн у ruskydubl понравился
 
Последнее редактирование:

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
куда эти страницы сохраняются
В БД.

нужно сделать вывод чата на страницу.
Через статические страницы ты это никак не реализуешь. Тебе надо отдельный PHP-файл создавать, и ссылаться на него в page-builder.php
 

egis2122

Участник
Сообщения
27
Реакции
1
Была ошибка при выполнении запроса: ALTER IGNORE TABLE `sb_admins` DROP COLUMN `expired`;. Возможно, таких данных нету в БД - продолжаю. ->В этом нет ничего страшного!<-
Была ошибка при выполнении запроса: ALTER IGNORE TABLE `sb_admins` DROP COLUMN `skype`;. Возможно, таких данных нету в БД - продолжаю. ->В этом нет ничего страшного!<-
Была ошибка при выполнении запроса: ALTER IGNORE TABLE `sb_admins` DROP COLUMN `comment`;. Возможно, таких данных нету в БД - продолжаю. ->В этом нет ничего страшного!<-
Была ошибка при выполнении запроса: ALTER IGNORE TABLE `sb_admins` DROP COLUMN `vk`;. Возможно, таких данных нету в БД - продолжаю. ->В этом нет ничего страшного!<-
Была ошибка при выполнении запроса: ALTER IGNORE TABLE `sb_admins` DROP COLUMN `support`;. Возможно, таких данных нету в БД - продолжаю. ->В этом нет ничего страшного!<-
Удаления старых таблиц - успешно
Запрос на добавление настроек и не только - успешно.
Выполняется редерикт на обновление SourceBans
 

egis2122

Участник
Сообщения
27
Реакции
1
Я не завершится после того, как обновление требует

Папка /updater не найдена в корне SourceBans. Пожалуйста скачайте и залейте ТОЛЬКО ЭТУ папку из последнего обновления рефорка.
 

SlavON

Добрая душа
Сообщения
1,582
Реакции
326
@egis2122, добавь папку updater в fix_to_white_screen, ещё добавь и config.php
--- Добавлено позже ---
Кстати автор мог бы и сразу указать, что надо кидать в эту папку, а то сам не сразу врубился что за траблы).
 

unique

Добрая душа
Сообщения
247
Реакции
34
Ребята при установке последний пункт
Вылезает ошибка
Fatal error: mysqli error: [1062: Duplicate entry 'Sanya' for key 'user'] in EXECUTE("INSERT INTO sb_admins(user,authid,password,gid, email, extraflags, immunity) VALUES ('Sanya','STEAM_0:0:814033228','1ef480edd375425bd21d30bb16a214f769374b83',-1,'alexander_unique@mail.ru',16777216,100)") in /mnt/iscsi/www/unique/data/www/unique.myarena.ru/ban/includes/adodb/adodb-errorhandler.inc.php on line 79
 
Последнее редактирование:

egis2122

Участник
Сообщения
27
Реакции
1
Запуск обновления: Версии: 480... Ошибка запуска обновления под номером: /updater/data/480.php. Остановка процесса!
Обновление не удалось, возникли ошибки.
 

SlavON

Добрая душа
Сообщения
1,582
Реакции
326
@Unique., ставь на чистую базу, то есть удали её и создай новую, не делай установку на ту же самую базу.
 

egis2122

Участник
Сообщения
27
Реакции
1
[256] mysqli error: [1054: Unknown column 'adm.expired' in 'field list'] in EXECUTE("SELECT adm.user user, adm.authid authid, adm.password password, adm.gid gid, adm.email email, adm.validate validate, adm.extraflags extraflags, adm.immunity admimmunity,sg.immunity sgimmunity, adm.srv_password srv_password, adm.srv_group srv_group, adm.srv_flags srv_flags,sg.flags sgflags, wg.flags wgflags, wg.name wgname, adm.lastvisit lastvisit, adm.expired expired, adm.skype skype, adm.comment comment, adm.vk vk FROM sb_admins AS adm LEFT JOIN sb_groups AS wg ON adm.gid = wg.gid LEFT JOIN sb_srvgroups AS sg ON adm.srv_group = sg.name WHERE adm.aid = 1")
Произошла фатальная ошибка на строке 79 в файле /var/www/html/bans/includes/adodb/adodb-errorhandler.inc.php
 

unique

Добрая душа
Сообщения
247
Реакции
34
[256] mysqli error: [1054: Unknown column 'adm.expired' in 'field list'] in EXECUTE("SELECT adm.user user, adm.authid authid, adm.password password, adm.gid gid, adm.email email, adm.validate validate, adm.extraflags extraflags, adm.immunity admimmunity,sg.immunity sgimmunity, adm.srv_password srv_password, adm.srv_group srv_group, adm.srv_flags srv_flags,sg.flags sgflags, wg.flags wgflags, wg.name wgname, adm.lastvisit lastvisit, adm.expired expired, adm.skype skype, adm.comment comment, adm.vk vk FROM sb_admins AS adm LEFT JOIN sb_groups AS wg ON adm.gid = wg.gid LEFT JOIN sb_srvgroups AS sg ON adm.srv_group = sg.name WHERE adm.aid = 1")
Произошла фатальная ошибка на строке 79 в файле /var/www/html/bans/includes/adodb/adodb-errorhandler.inc.php
Новую базу создай)
Только что подсказали)
--- Добавлено позже ---
@Unique., ставь на чистую базу, то есть удали её и создай новую, не делай установку на ту же самую базу.
А не подскажите, почему "updater" ни делает ни чего
Просто страница пустая и все
 

egis2122

Участник
Сообщения
27
Реакции
1
которые могли бы сделать администратору, чтобы быть в состоянии поместить имя и пароль
 

SlavON

Добрая душа
Сообщения
1,582
Реакции
326
@Unique., это проблема с белым экраном, мне помогло кеш браузера почистить) или с другого зайти. В теме есть фикс белого экрана но он мне не помог.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу