Собственные установочные скрипты

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

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++.



1. Macik  10.11.2013 05:08
2. esclkm  10.11.2013 16:49
3. Roffun  12.11.2013 11:38

Полезная информация, спасибо

4. Yusupov  25.11.2013 10:23

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

5. esclkm  03.01.2014 08:41

это есть) жеж.. остально mysql )))

Добавление комментариев доступно только зарегистрированным пользователям