В этой небольшой статье расскажу о настройках системы "SX" CMS для “Разработчика”. Наиболее удобным вариантом будет иметь копии измененных файлов и при разработке модулей или шаблонов замещать оригинальные файлы на момент работы. В первую очередь необходимо выключить ЧПУ в глобальных настройках системы в панели управления. Для версии 1.03 достаточно в файле sys.config.php изменить настройку $config_sys['debug']. Настройка включает режим отладки, включено - 1, сайт в рабочем режиме - 0 Внимание! Текст ниже относится для версий ниже 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
| |