При работе с клиентами нам часто необходимы готовые решения, которые помогут сделать работу быстро, и максимально сократят количество наших действий. Для этого в Cotonti Siena 0.9.15 появилась возможность использования установочных скриптов. Их основное предназначение – это создание базовых сборок с предустановленным определенным набором расширений, с правильно настроенной конфигурацией, и с определенным демо-контентом.
Для работы с инсталл скриптами необходимо знание файла modules\install\inc\install.install.php.
Кратко разберем сам файл. В нем есть 2 переменные $default_modules и $default_plugins, отвечающие за набор устанавливаемых модулей и плагинов по умолчанию. Есть переменная $step, которая отвечает за текущий шаг установки.
Во время нулевого шага система предлагает нам выбрать язык установки, однако если в корневой директории будет файл с именем {имя_файла}.install.php, то система предложит выбрать его при установке Cotonti во время следующих шагов.
Файл установочного скрипта содержит переменные и функции-хуки, которые выполняются по окончании каждого этапа (во время установки недоступны обычные хуки, так как нет базы данных). Каждый из этапов состоит из трех элементов: отображение формы (tags), импорт данных и поиск ошибок (import) и собственно установка (setup). Всего 6 шагов:
0. Выбор языка и скрипта установки.
1. Создание директорий для кеша и проверка совместимости системы.
2. Настройка соединения с БД
3. Выбор темы сайта, языка сайта и создание учетной записи администратора сайта.
4. Установка моделей
5. Завершение установки.
Соответственно все наши функции будет именоваться следующим образом:
cot_install_step([1-5])_(tags|import|setup)\(\)
Рассмотрим пример установочного скрипта blog.install.php:
// Модули и плагины, выбранные по умолчанию $default_modules = array('index', 'page', 'users', 'rss'); // переопределили список устанавливаемых модулей $default_plugins = array('ckeditor', 'cleaner', 'html', 'htmlpurifier', 'ipsearch', 'mcaptcha', 'news', 'search' ); // переопределили список плагинов $L['install_body_message1'] = "Добро пожаловать в скрипт Блогов<br/><br/>Раслабьтесь и откиньтесь на спинку Вашего кресла.<br/><br/>".$L['install_body_message1']; // Заменили Стандартное приветственное сообщение function cot_install_step2_tags() { // Функция заменит префикс у баз данных по умолчанию, а так же установит другое имя базы данных при установке global $t, $db_name; $db_x = "cotblog_"; $t->assign(array( 'INSTALL_DB_X' => $db_x, 'INSTALL_DB_X_INPUT' => cot_inputbox('text', 'db_x', $db_x, 'size="32"'), 'INSTALL_DB_NAME_INPUT' => cot_inputbox('text', 'db_name', is_null($db_name) ? 'cotblog' : $db_name, 'size="32"'), )); } function cot_install_step3_tags() { // Таким же способом заменили тему по умолчанию global $t, $rtheme, $rscheme; $rtheme = ‘symisun-03’; $t->assign(array( 'INSTALL_THEME_SELECT' => cot_selectbox_theme($rtheme, $rscheme, 'theme'), )); } function cot_install_step3_setup() { // По окончании третьего шага, нам надо установить еще и свою тему админки global $file; $config_contents = file_get_contents($file['config']); cot_install_config_replace($config_contents, 'admintheme', 'priori'); file_put_contents($file['config'], $config_contents); }
Если вы хотите пропустить какой-то шаг при установке, вы должны вызвать все необходимы операции в коде вашей функции, а затем сделать $step++.
Поблагодарили: 181 раз
Thanks Pavel.
Поблагодарили: 76 раз
nzch
Поблагодарили: 175 раз
Полезная информация, спасибо
Поблагодарили: 28 раз
Не помешала бы возможность добавлять свои конфигурационные параметры для более тонкой настройки сайта при установке.
Поблагодарили: 76 раз
это есть) жеж.. остально mysql )))