При работе с клиентами нам часто необходимы готовые решения, которые помогут сделать работу быстро, и максимально сократят количество наших действий. Для этого в 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. Завершение установки.
Соответственно все наши функции будет именоваться следующим образом:
1 |
cot_install_step([1-5])_(tags|import|setup)\(\) |
Рассмотрим пример установочного скрипта blog.install.php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
// Модули и плагины, выбранные по умолчанию $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 )))