Кастомный установщик Cotonti
Популярные запросы: Open Graph, плагин Reading Time, тема Quebec, плагин Telegram, набор иконок Analogue
- 173 просмотра +1
- 3 января, 2026
- Обновлено: 11 января, 2026
- admin
- Время чтения: 4 минуты
- 4 (Подробно)
Кастомный пользовательский установщик для 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']),
]);
}
Из "интересного" здесь присутствует пока только возможность указать базу и префикс таблиц по умолчанию:
Пока немного, но идем дальше:
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.
Спасибо за пост. Удобная фича. А можно ли свой пароль зашивать в инсталлятор?
Новый комментарий
Ошибка
Выполнено