При работе с клиентами нам часто необходимы готовые решения, которые помогут сделать работу быстро, и максимально сократят количество наших действий. Для этого в 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 )))