21  /  36

Файлы описания

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

Всего можно выделить четыре типа файлов описания:

  • .description.php — файл описания мастера создания сайта;
  • .templates.php — файл описания шаблонов сайта;
  • .services.php — файл описания сервисов сайта;
  • .sites.php — файл описания типов сайта.

Файл .description.php содержит название, описание, а также ряд других характеристик мастера. Этот файл должен всегда присутствовать в папке мастера.

Языковой файл подключается автоматически (должен лежать в папке /lang/ID языка/.description.php относительно папки мастера).

Пример файла описания стандартного мастера demo_personal (bitrix.sitepersonal):

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
if(!defined("WIZARD_DEFAULT_SITE_ID") && !empty($_REQUEST["wizardSiteID"])) 
	define("WIZARD_DEFAULT_SITE_ID", $_REQUEST["wizardSiteID"]); 

$arWizardDescription = Array(
	"NAME" => GetMessage("PORTAL_WIZARD_NAME"), 
	"DESCRIPTION" => GetMessage("PORTAL_WIZARD_DESC"), 
	"VERSION" => "1.0.0",
	"START_TYPE" => "WINDOW",
	"WIZARD_TYPE" => "INSTALL",
	"IMAGE" => "/images/".LANGUAGE_ID."/solution.png",
	"PARENT" => "wizard_sol",
	"TEMPLATES" => Array(
		Array("SCRIPT" => "wizard_sol")
	),
	"STEPS" => (defined("WIZARD_DEFAULT_SITE_ID") ? 
		Array( "SelectTemplateStep", "SelectThemeStep", "SiteSettingsStep", "DataInstallStep" , "FinishStep" ) : 
		Array("SelectSiteStep", "SelectTemplateStep", "SelectThemeStep", "SiteSettingsStep", "DataInstallStep" , "FinishStep"))
);
?>

Если мастер создания сайта содержит файл wizard.php, то необходимость остальных файлов описания определяется логикой шагов мастера. Стандартный мастер wizard_sol использует только файл .services.php по пути /site/services/ игнорируя остальные файлы описания.

Стандартно подключается языковой файл /lang/ID языка/site/services/.services.php относительно папки мастера.

При работе мастера создания сайта без файла wizard.php в файле .services.php определяется массив $arWizardServices.

Если же мастер работает с использованием файла wizard.php, то в файле .services.php определяется массив $arServices вида:

$arServices = array(
	"ID сервиса" => Array(
  	"NAME" => имя сервиса,
			"STAGES" => Array(
				"файл шага установки",
				"файл шага установки",
			),
	),
);

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

$arServices = array(
	"main" => Array(
  	"NAME" => Настройки сайта,
			"STAGES" => Array(
				"создание сайта",
				"копирование системных файлов и публичной части",
				"установка шаблона дизайна",
				"установка цветовой схемы",
				"создание групп пользователей",
				"настройка сайта",
			),
	),
	"iblock" => Array(
  	"NAME" => Установка демо-данных,
			"STAGES" => Array(
				"создание типов инфоблоков",
				"установка 1 инфоблока",
				"установка 2 инфоблока",
				……………………………
				"установка N инфоблока",
			),
	),
);

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

Пример файла описания сервисов стандартного мастера demo_personal (bitrix.sitepersonal):

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arServices = Array(
	"main" => Array(
		"NAME" => GetMessage("SERVICE_MAIN_SETTINGS"),
		"STAGES" => Array(
			"site_create.php", // Create site
			"files.php", // Copy bitrix files
			"template.php", // Install template
			"theme.php", // Install theme
			"settings.php",
		),
	),

	"iblock" => Array(
		"NAME" => GetMessage("SERVICE_IBLOCK"),
		"STAGES" => Array(
			"types.php", //IBlock types
			"user_photogallery.php",
		),
	),

	"blog" => Array(
		"NAME" => GetMessage("SERVICE_BLOG"),
		"STAGES" => Array(
			"index.php", 
		),
	),
);
?>
8
Курсы разработаны в компании «1С-Битрикс»

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