Cotonti / Open Source PHP Content Management FrameworkContent Management Framework

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

Документация / Разработчикам / Собственные установочные скрипты

Вы можете создать свой собственный установочный профиль для своей сборки Cotonti, используя установочный скрипт

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



1. Macik  10.11.2013 05:08

Thanks: 0

Thanks Pavel.

2. esclkm  10.11.2013 16:49

Thanks: 0

nzch

3. Roffun  12.11.2013 11:38

Thanks: 0

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

4. Yusupov  25.11.2013 10:23

Thanks: 0

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

5. esclkm  03.01.2014 08:41

Thanks: 0

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

Всего: 5, на странице: 5

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