25  /  36

Шаг за шагом

Просмотров: 22439
Дата последнего изменения: 29.06.2023
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
1
2
3
4
5

Как было отмечено ранее, установщик представляет собой набор стандартных шагов. Они могут генерироваться автоматически на основе файлов описаний или быть заданы в виде классов в файле wizards.php. Рассмотрим второй случай более подробно.

Файл wizards.php представляет собой набор шагов установки, которые могут как вызывать шаги стандартного мастера, так и переопределять их. Файл должен начинаться с подключения стандартного мастера:

require_once($_SERVER['DOCUMENT_ROOT']."/bitrix/modules/main/install/wizard_sol/wizard.php");

Сами шаги представляют собой классы, наследующиеся от классов стандартного мастера. Минимальная запись выглядит так:

class SelectTemplateStep extends CSelectTemplateWizardStep {
}

Эта запись означает, что при установке присутствует шаг Выбор шаблона, со стандартной реализацией.

Для переопределения какого-либо шага необходимо перегрузить соответствующий метод.

class SelectThemeStep extends CSelectThemeWizardStep {
	function InitStep() {
	…....................
	}
	function OnPostForm() {
	…....................
	}
	function ShowStep() {
	…....................
	}
}

В соответствии с названиями, эти методы отвечают за инициализацию, показ шага и обработку результатов шага после перехода по кнопке Далее.

Для вызова шага родителя в этом случае используется объект parent.

Пример стандартного шага выбора темы с установкой своего подзаголовка:

class SelectThemeStep extends CSelectThemeWizardStep {
	function InitStep() {
		parent::InitStep();
		$this->SetSubTitle(GetMessage('SELECT_THEME_SUBTITLE'));
	}
}

Важно! Если определение шагов мастера создания сайта делается через файл wizard.php, то поиск и обработка файлов описания .template.php, .service.php, .site.php не происходит, если это не реализовано вами, либо в стандартном классе соответствующего шага. Таким образом, чтобы реализовать сортировку шаблонов через файл .template.php, нужно перегрузить метод ShowStep() шага CSelectTemplateWizardStep, сделать собственную реализацию метода WizardServices::GetTemplates из файла \bitrix\modules\main\install\wizard_sol\utils.php.

Также можно не использовать файл .template.php, а указать значение сортировки в файле описания шаблона.

5
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии