Курсы

Разработка решений для Marketplace: Файлы описания

Разработка решений для Marketplace: Файлы описания

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

  • .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", 
        ),
    ),
);
?>

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

!Прокрутить вверх

🚀 Нужна помощь с сайтом на 1С-Битрикс или Аспро?

Я работаю удалённо по всей России и СНГ. Узнайте цены и условия для вашего города:

Все регионы →