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

Файл описания сервисов сайта .services.php

Файл .services.php определяет шаги Выбор сервисов и Установка сервисов в цепочке шагов мастера создания сайта. Если в папке мастера нет файла .services.php, то шаги Выбор сервисов и Установка сервисов отсутствуют. Под сервисом понимается совокупность программных модулей (публичных файлов, компонентов, данных), направленных на реализацию конкретного функционала сайта. Примерами сервисов могут быть доска объявлений, фотогалерея, каталог ссылок, каталог товаров, новости, форум и т.п.

Структура типичного файла .services.php такова:

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

$arWizardServices = Array(
    "news" => Array(
        "NAME" => "Новости",
        "DESCRIPTON" => "Новости с поиском, рсс и разделами",
        "SITE_ID" => Array("blog","homepage"),
        "ICON" => "images/icon.gif",
        "FORM" => Array(
            "TYPE" => "radio",
            "DEFAULT" => "Y",
        ),

        "INSTALL_STEPS" => Array(
            "SCRIPT" => "scripts/news.php",
            "STEPS" => Array(
                "newsstep1" => "NewsStep1",
                "newsstep2" => "NewsStep2",
                "newsstep3" => "NewsStep3",
            )
        ),
        "FILES" => Array(
            Array("DELETE" => "/folder"),
            Array("FROM" => "files/blog_site", "TO" => "/myblog"),
        )
    ),

    "forum" => Array(
        "NAME" => "Форум",
        "ICON" => "images/icon2.gif",
        "FORM" => Array(
            "TYPE" => "radio",
        ),
        "DESCRIPTON" => "Новости с поиском, рсс и разделами",
        "SITE_ID" => Array("blog","homepage"),
        "DEFAULT" => "Y",
        "FILES" => Array(
            Array("FROM" => "news/components", "TO" => "/bitrix/components"),
            Array("FROM" => "news/public", "TO" => "/news")
        )
    ),

    "articles" => Array(
        "NAME" => "Статьи",
        "DESCRIPTON" => "Статьи",
        "SITE_ID" => Array("blog","homepage"),
        "SELECT_STEPS" => Array(
            "SCRIPT" => "scripts/articles.php",
            "STEPS" => Array(
                "article1" => "ArticleStep1",
                "article2" => "ArticleStep2",
            )
        )
    ),

    "foto" => Array(
        "NAME" => GetMessage("SERVICE_FOTO"),
        "FORM" => Array(
            "TYPE" => "checkbox",
            "DEFAULT" => "Y",
        ),
        "DESCRIPTON" => "Красивая фотогалерея на вашем сайте",
        "SITE_ID" => Array("blog","homepage"),
    ),

    "blog_components" => Array(
        "NAME" => "Компоненты Блога",
        "SITE_ID" => "blog",
        "DESCRIPTON" => "Компоненты Блога",
        "FORM" => Array(
            "TYPE" => "checkbox",
            "DEFAULT" => "Y",
        ),
    ),

    "homepage_components" => Array(
        "NAME" => "Компоненты дом. странички",
        "SITE_ID" => "homepage",
        "FORM" => Array(
            "DEFAULT" => "Y",
            "TYPE" => "checkbox"
        ),
        "DESCRIPTON" => "Компоненты дом. странички",
    ),
);

?>

В файле .services.php определяется массив $arWizardServices, состоящий из элементов следующего вида:


"ID сервиса" => Array(
  "NAME" => имя сервиса,
  "DESCRIPTON" => описание сервиса,
  "ICON" => иконка сервиса, путь к файлу относительно папки мастера,
  "SITE_ID" => ID сайта, к которому принадлежит сервис (одиночное значение или массив)
  "FORM" => массив, описывающий вид элемента Web-формы
   Array(
     "TYPE" => тип элемента Web-формы. Допустимые значения "radio" (переключатель), 
     "checkbox" (флажок) и "required" (обязателен для установки). 
      По умолчанию равен "checkbox" (флажок),                                                 
     "DEFAULT" => если равно "Y", данный сервис будет выбран по умолчанию,
     "GROUP" => ID группы, к которой принадлежит элемент Web-формы. 
     Применяется для группировки переключателей (radio) Web-формы.
   ),
  "SELECT_STEPS" => массив, описывающий дополнительные шаги после шага Выбор сервисов
   Array(
     "SCRIPT" => путь к файлу с классами шагов относительно папки мастера
     "STEPS" => массив шагов, добавляемых в мастер
      Array(
        "ID шага 1" => "Имя класса шага 1",
        "ID шага 2" => "Имя класса шага 2",
        …
      )
   )
  "INSTALL_STEPS" => массив, описывающий дополнительные шаги после шага Установка сервиса
   Array(
     "SCRIPT" => путь к файлу с классами относительно папки мастера,
     "STEPS" => массив шагов, добавляемых в мастер
      Array(
        "ID шага 1" => "Имя класса шага 1",
        "ID шага 2" => "Имя класса шага 2",
        …
      )
   ),
  "FILES" => массив, описывающий файлы для копирования/удаления
   Array(
    Array(
      "FROM" => путь к каталогу (файлу) относительно папки мастера,
      содержимое которого нужно скопировать,
      "TO" => путь к файлу или папке относительно корня сайта, 
      куда будут скопированы файлы
      "REWRITE" => перезаписывать ли существующие файлы;
      необязательный параметр, по умолчанию равен "Y" (перезаписывать),
      "RECURSIVE" => копировать ли рекурсивно все подкаталоги и файлы, 
      входящие в путь, указанный в параметре FROM;
      необязательный параметр, по умолчанию равен "Y" (копировать рекурсивно),
      "DELETE" => путь к папке (файлу), которую нужно удалить 
    ),
    …
   )
),


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

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

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

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

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
1
Николай Ожогов
Для установки сервисов из папки /site/services/.servies.php на одном из шагов мастера нужно установить скрытое поле:

Код
$this->content .= $this->ShowHiddenField("installDemoData","Y");
и еще нужно добавить этот шаг, только тогда произойдет установка сервисов и вы увидите "индикатор"(процент выполнения) установки вашего решения.

Код
class DataInstallStep extends CDataInstallWizardStep
{
    function CorrectServices(&$arServices)
    {
        $wizard =& $this->GetWizard();
        if($wizard->GetVar("installDemoData") != "Y")
        {
        }
    }
}
© «Битрикс», 2001-2019, «1С-Битрикс», 2019
Наверх