Документация для разработчиков
Темная тема

Мастер создания сайта: пользовательские шаги

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

1. Скопируйте папку мастера установки шаблона в новую директорию, например, в my_site_master_pro.

2. Измените название нового мастера в файле .description.php и добавьте ключ STEPS_SETTINGS для кастомизации стандартных заголовков:

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
$arWizardDescription = Array(
	"NAME" => "Мастер создания сайта: пользовательские шаги", 
	"STEPS_SETTINGS" => Array(
		"WELCOME" => Array(
			"TITLE" => "Добро пожаловать в мастер создания сайта",
			"SUBTITLE" => "Нажмите кнопку Далее для выбора шаблонов",
			"CONTENT" => "Данный мастер демонстрирует работу с пользовательскими шагами",
		),
		"SELECT_TEMPLATE" => Array(
			"TITLE" => "Шаблоны вашего сайта",
		),
	),
);
?>

3. Кроме выбора шаблона сайта пользователю будет предоставлена возможность адаптировать дизайн: например, изменить название и заголовок. В шаблонах мастера слоган и название сайта находятся в файле include_areas/company_name.php (относительно папки шаблона):

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
	<h1>Моя компания</h1>
		<span>Слоган компании</span>

Замените названия в этом в файле на соответствующие макросы:

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
	<h1>#COMPANY_NAME#</h1>
		<span>#COMPANY_SLOGAN#</span>

4. Создайте файл customize.php в папке мастера со следующим содержимым:

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
class CustomizeSiteData extends CWizardStep
{
	function InitStep()
	{
		$this->SetTitle("Данные сайта");
		$this->SetSubTitle("Настройка данных сайта");
		$wizard =& $this->GetWizard();
		$wizard->SetDefaultVars(
			Array(
				"company_name" => "Моя компания",
				"company_slogan" => "Быстро. Просто. Эффективно",
			)
		);
	}
	function ShowStep()
	{
		$wizard =& $this->GetWizard();
		$this->content .= "Укажите название вашего сайта, слоган, адрес сайта и загрузите свой логотип. 
			Название, слоган и логотип будут размещены вверху на всех страницах сайта.

"; $this->content .= '<table class="wizard-data-table"><tr>'; $this->content .= "<td>Название сайта (компании):</td>"; $this->content .= "<td>".$this->ShowInputField("text", "company_name", Array("size" => "35"))."</td>"; $this->content .= "</tr>"; $this->content .= "<tr><td>Слоган компании:</td>"; $this->content .= "<td>".$this->ShowInputField("text", "company_slogan", Array("size" => "35"))."</td>"; $this->content .= "</tr>"; $this->content .= "</table>"; } } class InstallTemplateData extends CWizardStep { function InitStep() { $this->SetTitle("Установка данных шаблона..."); $this->SetAutoSubmit(); } function OnPostForm() { $wizard =& $this->GetWizard(); $package =& $wizard->GetPackage(); $templateID = $package->GetSiteTemplateID(); //ID выбранного шаблона $templatePath = "/bitrix/templates/".$templateID; $arReplace = Array( "COMPANY_NAME" => $wizard->GetVar("company_name"), "COMPANY_SLOGAN" => $wizard->GetVar("company_slogan"), ); CWizardUtil::ReplaceMacros($_SERVER["DOCUMENT_ROOT"].$templatePath."/include_areas/company_name.php", $arReplace); } function ShowStep() { $this->content .= "Установка данных шаблона..."; } } ?>

Этот файл определяет 2 пользовательских шага: шаг выбора и шаг установки. Первый предлагает пользователю ввести название и слоган сайта, второй - заменяет макросы в файле include_areas/company_name.php на нужные значения.

5. Наконец, в файле .templates.php необходимо описать пользовательские шаги:

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
$arWizardTemplates = Array(
	"TEMPLATES" => Array(
		"web20" => Array(
			"SELECT_STEPS" => Array(
				"SCRIPT" => "customize.php",
				"STEPS" => Array(
					"customize_data" => "CustomizeSiteData",
				)
			),
			"INSTALL_STEPS" => Array(
				"SCRIPT" => "customize.php",
				"STEPS" => Array(
					"install_template_data" => "InstallTemplateData",
				)
			),
		),
		"xml_catalog" => Array(
			"SELECT_STEPS" => Array(
				"SCRIPT" => "customize.php",
				"STEPS" => Array(
					"customize_data" => "CustomizeSiteData",
				)
			),
			"INSTALL_STEPS" => Array(
				"SCRIPT" => "customize.php",
				"STEPS" => Array(
 					"install_template_data" => "InstallTemplateData",
				)
			),
		),
		"books" => Array(
			"SELECT_STEPS" => Array(
				"SCRIPT" => "customize.php",
				"STEPS" => Array(
					"customize_data" => "CustomizeSiteData",
				)
			),
			"INSTALL_STEPS" => Array(
				"SCRIPT" => "customize.php",
				"STEPS" => Array(
					"install_template_data" => "InstallTemplateData",
				)
			),
		),
	)
);
?>

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



Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх