Система sBuilder придумана давно и стала неактуальной уже лет наверно 10. Но есть сайты, которые никто не хочет или не может перевести на другие системы, и возникает необходимость поддерживать сайты на старых системах упраавления.
Разработчики закончили её поддержку году наверно в 2010-м. Последние сообщения зарегистрированных пользователей форума были в 2017-м году.
Хозяева держат лишь автоматизированную систему получения лицензий, благодаря которой до сих пор возможно создать сайт на этой CMS-ке.
Стоит упомянуть, что система на самом деле достойна всяческой похвалы, так как времени на ее разработку и улучшение потрачено очень много и небезрезультатно! Казбек Елевкоев, если не ошибаюсь, – автор – очень тщательно и с предусмотрением впредь разработал все-все нюансы потребностей сайтодержателя.
Для php7 нужно исправить несколько моментов, которые мешают запустить сайт. Это фнкция each(), которая в php7 не поддерживается. Попытки её заменить в файле, который формирует ключ системы, приводят к нарушению лицензии.
Чтобы избежать применения each(), люди советуют заменить ее своей функцией.
function myEach(&$arr) {
$key = key($arr);
$result = ($key === null) ? false : [$key, current($arr), 'key' => $key, 'value' => current($arr)];
next($arr);
return $result;
}
В файле /cms/lib/sbDB.inc.php в начале разместить эту функцию. Она будет использоваться как для frontend, так и для backend. Везде, где в файлах возникает функция each(), заменить её на myEach(). Это 2-3 случая. По-моему в этом же файле.
Далее: в моем случае возникла проблема с определением https: он не определялся системой. Для устранения я исправил код определения в двух местах:
Файл /cms/kernel/init.inc.php добавить строку
(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') ||
чтобы строки определения https выглядели так:
...
/**
* Доменное имя сайта
*/
if ( (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != '' && $_SERVER['HTTPS'] != 'off') ||
(isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) ||
(isset($_SERVER['HTTP_X_SCHEME']) && sb_strtoupper($_SERVER['HTTP_X_SCHEME']) == 'HTTPS') ||
(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') ||
(isset($_SERVER['HTTP_X_HTTPS']) && sb_strtoupper($_SERVER['HTTP_X_HTTPS']) == 'ON') ||
strpos($_SERVER['REQUEST_URI'], "https://") !== false)
{
$protocol = 'https://';
define('SB_HTTPS', true);
}
...
То же самое в файле /cms/kernel/prog/init.inc.php