Добро пожаловать на сайт SEDBY

Кастомный установщик Cotonti

  • 173 просмотра +1
  • 3 января, 2026
  • Обновлено: 11 января, 2026
  • admin
  • Время чтения: 4 минуты
  • 4 (Подробно)
Кастомный установщик Cotonti

Кастомный пользовательский установщик для Cotonti Siena представляет собой PHP-файл с именем xxx.install.php, где xxx – это уникальное имя. Соответственно, таких установщиков в корневой папке сборки может быть несколько, и можно выбрать набор настроек, например, для интернет-магазина, блога или корпоративного сайта.

При наличии в корневой папке хотя бы одного такого файла система предложит выбрать его для продолжения установки. При этом выбор можно и не делать. В таком случае установка продолжится по стандартному сценарию:

Приветственный экран кастомного установщика
Приветственный экран кастомного установщика

Начнем компоновать наш кастомный установщик:

<?
/**
 * Custom Installer
 * @author SED.BY
 * @copyright Copyright (c) SED.BY
 */

defined('COT_CODE') or die('Wrong URL');

$L['install_body_message1'] = "Вас приветствует кастомный установщик сайта на базе Cotonti Siena. Сейчас мы начнем установку и выполним первичные настройки.";

Приветственную фразу включать в файл необязательно. Я сделал это лишь для примера. Мы же идем дальше. На первом шаге интерактив отсутствует, поэтому и увидим мы пока только нашу приветственную фразу:

Приветственная фраза из кастомного установщика
Приветственная фраза из кастомного установщика

Переходим ко второму шагу:

function cot_install_step2_tags() {
	global $t, $db_name;
	$db_x = 'cot_';
	$db_name = 'cotonti_project';
	$t->assign([
		'INSTALL_DB_X' => $db_x,
		'INSTALL_DB_X_INPUT' => cot_inputbox('text', 'db_x',  is_null($db_x) ? 'cot_' : $db_x, ['class' => 'form-control']),
		'INSTALL_DB_NAME_INPUT' => cot_inputbox('text', 'db_name',  is_null($db_name) ? 'cotonti' : $db_name, ['class' => 'form-control']),
	]);
}

Из "интересного" здесь присутствует пока только возможность указать базу и префикс таблиц по умолчанию:

Шаг 2 кастомного установщика
Шаг 2 кастомного установщика

Пока немного, но идем дальше:

function cot_install_step3_tags() {
	global $t, $rtheme, $rscheme, $rlang;
	$rtheme = 'omnis';
	$rscheme = 'default';
	$user['name'] = 'Admin';
	$user['email'] = 'mail@example.com';
	$t->assign([
		'INSTALL_THEME_SELECT' => cot_selectbox_theme($rtheme, $rscheme, 'theme'),
		'INSTALL_USERNAME' => cot_inputbox('text', 'user_name', $user['name'], ['class' => 'form-control']),
		'INSTALL_EMAIL' => cot_inputbox('text', 'user_email', $user['email'], ['class' => 'form-control']),
	]);
}

function cot_install_step3_setup() {
	global $file;
	$admintheme = 'yukon';
	$iconpack = 'analogue';
	$config_contents = file_get_contents($file['config']);
	cot_installConfigReplace($config_contents, 'admintheme', $admintheme);
	cot_installConfigReplace($config_contents, 'defaulticons', $iconpack);
	file_put_contents($file['config'], $config_contents);
}

Как видим, здесь присутствуют две функции:

  • cot_install_step3_tags() переопределяет стандартные TPL-теги,
  • cot_install_step3_setup() прописывает в config.php настройки, не устанавливаемые стандартным способом.

Таким образом, на данном этапе мы можем установить:

  • frontend-тему по умолчанию (в примере тема Omnis),
  • цветовую схему frontend-темы по умолчанию (в примере default),
  • имя суперадмина по умолчанию (в примере Admin),
  • почту суперадмина по умолчанию (в примере mail@example.com),

Скрытно будут установлены указанные нами:

Экран основных настроек сайта
Экран основных настроек сайта

Естемтвенно, убедитесь в том, что и темы и айконпэк присутствуют в сборке. Проверка отсутствует, поэтому сайт без них не откроется, и придется выгружать их вручную.

Наконец, последний блок. Это массивы расширений, включенных по умолчанию. Самый трудоемкий этап, который всегда хочется автоматизировать. Указываем в них то, что необходимо, и в установщике просто жмем на кнопку "Завершить". Установка окончена – быстрее, чем обычно.

Экран расширений с выбранными по умолчанию
Экран расширений с выбранными по умолчанию

В качестве заключения, добавлю: кастомный установщик Cotonti не является какой-то особенной фишкой в дистрибутиве. Это скорее недокументированная фича, которая демонстрирует возможности по тонкой настройке и кастомизации движка.

Реальную помощь от кастомного инсталлятора могут получить веб-разработчики, которые используют системный подход и поддерживают в актуальном состоянии подсобранную сборку, в которой находится текущий срез Cotonti, набор иконок, темы, универсальный набор плагинов, и, конечно, сам установщик (или установщики).

Это было сегодня, а вчера мы разбирались в тонкостях настройки CKEditor 4.


Комментарии:
Аватар

Спасибо за пост. Удобная фича. А можно ли свой пароль зашивать в инсталлятор?


Новый комментарий

Ваш комментарий будет доступен для редактирования 10 минут
Блок пользователя
Регистрация на нашем сайте позволит вам общаться на форумах и получить доступ к другому полезному функционалу
Вы вошли как Гость