Перевод "SX" CMS в режим “Разработчика”

В этой небольшой статье расскажу о настройках системы "SX" CMS для “Разработчика”.

Наиболее удобным вариантом будет иметь копии измененных файлов и при разработке модулей или шаблонов замещать оригинальные файлы на момент работы.

В первую очередь необходимо выключить ЧПУ в глобальных настройках системы в панели управления.

Для версии 1.03 достаточно в файле sys.config.php  изменить настройку $config_sys['debug']. Настройка включает режим отладки, включено - 1, сайт в рабочем режиме - 0 

config_sys


Строка включения режима отладки


Внимание! Текст ниже относится для версий ниже 1.03.

Включение режима вывода ошибок интерпретатора PHP на экран.

В файлах sys.config.php, в корневом index.php и в index.php в папке admin следует:
error_reporting(0); заменить на:
на error_reporting(E_ALL);
В корневом index.php и в index.php в папке admin также следует закомментировать строку:
set_error_handler('err_handler');
Эти изменения дадут возможность видеть ошибки и предупреждения, выводимые интерпретатором PHP.

Вы спросите, а не удобнее ли смотреть эти ошибки в логах системы? Нет.
Объясняю почему. Любые перехватчики ошибок PHP, в том числе и встроенный в систему "SX" CMS, могут записывать только ошибки пользовательского уровня, то есть фатальная ошибка записана не будет, потому что упавший скрипт ничего не успеет записать.

И если вы после установки системы, или каких либо изменений вдруг увидели вместо сайта белый экран, то так же следует проделать вышеописанные действия и в большинстве случаев ответ на вопрос, а что не так, будет на экране.


Отключение оптимизации системы.

Ниже представленная конфигурация файла sys.config.php выключит не нужную оптимизацию на момент отладки системы.

В файле sys.config.php необходимо установить следующие настройки:

if(!defined('BASE_DIR')) exit; error_reporting(E_ALL); @ini_set('magic_quotes_runtime', 0); @ini_set('magic_quotes_sybase', 0); @ini_set('arg_separator.input', '&'); @ini_set('arg_separator.output', '&'); @ini_set('url_rewriter.tags', '1'); $basepath = str_replace('/index.php','/',$_SERVER['PHP_SELF']); $basepath = str_replace('//','/',$basepath); define('BASE_PATH', $basepath); define('SECURED_GFX', 1); define('SYS_VERSION', 'Status-X 1.02a9'); $page_no_shop = array('showforums','showforum','showtopic','forum','members','movepost','newtopic','newpost','pn','addpost','delpost'); $page_no_kalendar = array('shop','showforums','showforum','showtopic', 'forum','members','movepost','newtopic','newpost','pn','addpost','delpost'); ## Cжатие кэша MySQL в формате gzip, если не поддерживается сервером, установка true игнорируется $config_cashe['usegz'] = false; ## Время жизни кэша: -1 пожизненно; 0 - обновлять; далее - в секундах $config_cashe['lifetime'] = -1; ## true - использовать режим автоматического контроля изменения таблиц MySQL, false - кэш будет обновляться в соответствии с $config_cashe['lifetime'] $config_cashe['smartupdate'] = true; ## Оптимизация файлов, включено - 1 рекомендовано - 1 $config_cashe['minify']['javascript'] = "0"; $config_cashe['minify']['page'] = "0"; $config_cashe['minify']['css'] = "0"; if (extension_loaded('zlib') && !ini_get('zlib.output_compression') && ini_get('output_handler') != 'ob_gzhandler') { ## Сжатие в формате gzip, включено - 1 рекомендовано - 1 $config_cashe['gzip']['javascript'] = "0"; $config_cashe['gzip']['page'] = "0"; $config_cashe['gzip']['css'] = "0"; } else { ## Ниже три строки не изменять $config_cashe['gzip']['javascript'] = "0"; $config_cashe['gzip']['page'] = "0"; $config_cashe['gzip']['css'] = "0"; } ## Документ устарел, значит, не кешируется браузером - 0, кешируется - 1, рекомендовано - 1 $config_cashe['far_future_expires']['javascript'] = "0"; $config_cashe['far_future_expires']['css'] = "0"; ## Быстрая очистка кэша, включено - 1, рекомендовано - 0 $config_cashe['cleanup']['on'] = "0"; ## Оптимизация фоновых изображений, включено - 1, отключено - 0 $config_cashe['data_uris']['on'] = "0"; ##Указываются файлы которые не надо обрабатывать плагином, более одного разделяем запятой: fancy.css,style.navi.css $config_cashe['ignore_list'] = ""; ## Чистка кеша SQL раз в сутки, отключено - 0, активно - 1 $config_sys['sql_clear'] = '1'; ## Поздравление пользователей с днем рождения по почте, отключено - 0, активно - 1 $config_sys['birthdays_mail'] = '1'; ## Испьзование Google Analytics, отключено - 0, активно - 1 $config_sys['google_analytics']['aktiv'] = '0'; $config_sys['google_analytics']['code'] = ''; // Код Google Analytics ## Коды в метатегах подтверждения собственности сайта, отключено - 0, активно - 1 $config_sys['google']['aktiv'] = '0'; $config_sys['google']['code'] = ''; // Код Google $config_sys['yandex']['aktiv'] = '0'; $config_sys['yandex']['code'] = ''; // Код Yandex ## Системы обмена ссылками, отключено - 0, активно - 1 $config_sys['sape']['aktiv'] = '0'; define('_SAPE_USER', ''); // Код SAPE $config_sys['linkfeed']['aktiv'] = '0'; define('LINKFEED_USER', ''); // Код LINKFEED


Добавление кода автоочистки кешей системы.

Чтобы добавить на момент разработки возможность автоматической очистки кешей системы, в корневой index.php необходимо добавить следующий код, в самом низу файла, перед закрывающим тегом:

// На рабочем сайте не использовать function dell_cache($f) { $verzname = $f; $dh = opendir($verzname); while (@gettype($datei = @readdir($dh)) != @boolean){ if (is_file( "$verzname/$datei")){ if ($datei != "." && $datei != ".." && $datei != ".htaccess" && $datei != "index.php") { @unlink($verzname . $datei); } } } @closedir($dh); } dell_cache(BASE_DIR . '/temp/compiled/' . $_SESSION['area'] .'/'); dell_cache(BASE_DIR . '/temp/cache/'); dell_cache(BASE_DIR . '/temp/sql/'); dell_cache(BASE_DIR . '/uploads/shop/icons_thumbnails/big/'); dell_cache(BASE_DIR . '/uploads/shop/icons_thumbnails/medium/'); dell_cache(BASE_DIR . '/uploads/shop/icons_thumbnails/normal/'); dell_cache(BASE_DIR . '/uploads/shop/icons_thumbnails/small/'); dell_cache(BASE_DIR . '/uploads/shop/icons_thumbnails/xsmall/');


Этот код даст возможность использовать всегда актуальные файлы, незакешированные. Да и на мой взгляд, такой код быстрее добавить, чем модули поотдельности настраивать и smarty. Ну а вот за кешем браузера все-таки придется следить каждому самостоятельно.


Консоль отладки smarty.

При отладке системы так же не стоит забывать про тег {debug}. Для тех, кто не знает что это за зверь, рассказываю. При вставке тега {debug} в шаблон будет выведено всплывающее окно с информацией о переменных, используемых smarty в этом шаблоне. Весьма полезная вещь при разработке.

Так к чему я про тег {debug}, к тому что он не работает в системе по причине того что класс Compressor коверкает его, и что бы консоль нормально заработала необходимо закомментировать в корневом index.php строку:

$compressor = new Compressor(array('view' => $view, 'options' => $config_cashe, 'jsmin' => $jsmin, 'user_agent' => $user_agent));


В большинстве своем этих изменений вполне хватает для разработки или отладки своих модулей и шаблонов в CMS Status-X

Автор: SX от 16.12.2009
Оценка:  





  

Вы не можете комментировать!
Copyright © 2009 - 2024 SX All rights reserved | Powered by SX CMS 1.06 UTF | Контакты