28  /  36

Импорт демо-данных

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

  Порядок установки

Импорт демо-данных осуществляется на шаге установки сервисов. Порядок установки ничем заранее не оговаривается, кроме внутренних зависимостей. Обычный порядок следующий:

  1. Создание самого сайта и установка его настроек.
  2. Копирование публичной части сайта и рекурсивная замена макроса #SITE_DIR#.
  3. Копирование выбранного на этапе установки шаблона сайта
  4. Копирование выбранной на этапе установки темы сайта поверх шаблона, с перезаписью.
  5. Создание всех типов инфоблоков.
  6. Создание инфоблоков и подстановка замена соответствующих макросов функцией CwizardUtil::ReplaceMacros(Путь к файлу, array("Имя макроса без #" => Значение на замену)). Так как второй параметр - массив, то в одном файле можно произвести сразу несколько замен.
  7. Настройка блогов, форумов, статистики, рабочего стола и прочее.
  • Пользователи
  • Инфоблоки
  • Шаблоны
  •   Пользователи

    Импорт заранее подготовленного набора пользователей используется редко. В случае необходимости используется стандартный класс CSVUserImport, входящий в состав модуля main.

      Инфоблоки

    Данные инфоблоков в мастере создания сайта хранятся в виде xml файлов, сформированных с помощью стандартного экспорта инфоблоков Bitrix Framework. Эти файлы, а также папки с дополнительными файлами, получающиеся в результате экспорта, обычно помещаются в каталог /xml/ID языка/. В самом простом случае файл установки инфоблока включает следующий код:

    if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)
    	die();
    if(!CModule::IncludeModule("iblock"))
    	return;
    
    $iblockID = WizardServices::ImportIBlockFromXML(
    	 WIZARD_SERVICE_RELATIVE_PATH."/xml/".LANGUAGE_ID."/feedback.xml", 
    	 "iblockCode", 
    	 "iblockType", 
    	 WIZARD_SITE_ID, 
    	 $permissions = Array(
    		 "1" => "X",
    		 "2" => "R",
    	 )
    );
    
    if ($iblockID < 1)
     return;
    
    CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH."/feedback/new.php", array("FEEDBACK_IBLOCK_ID" => $iblockID));

    Функция

    WizardServices::ImportIBlockFromXML
      (function ImportIBlockFromXML
         ($xmlFile, 
          $iblockCode, 
          $iblockType, 
          $siteID, 
          $permissions = Array()
         )
    ) 
    WizardServices::ImportIBlockFromXML (function ImportIBlockFromXML($xmlFile, $iblockCode, $iblockType, $siteID, $permissions = Array())) проверяет наличие инфоблока с символьным кодом $iblockCode, типом $iblockType для сайта $siteID. Если инфоблок не найден, то он устанавливается из файла $xmlFile. Путь к файлу указывается с подстановкой стандартной константы WIZARD_SERVICE_RELATIVE_PATH.

    Примечание: При импорте торгового каталога, метод не создаст элементы этого каталога. Необходимо разделить xml-файл на 2. В первом описывается обычный инфоблок без цен, во втором - непосредственно цены.

    В случае поддержки многосайтовости (или просто решения для Bitrix Marketplace) к символьному или внешнему коду инфоблока после его установки следует добавить и ID сайта. Следует заметить, что в функцию ImportIBlockFromXML подставляется код инфоблока без добавления ID сайта, само добавление происходит уже потом через создание метод Update класса CSite.

      Шаблоны

    При создании мастера с использованием файла wizard.php шаблоны располагаются в каталоге /site/templates/. Для уменьшения проблем с кодировками можно помещать их в каталог /site/templates/ID языка/, но лучше помещать русский текст в языковые файлы и вставлять через GetMessage. Кроме стандартных файлов каталог шаблона должен содержать следующие файлы:

    • description.php — файл описания шаблона, содержит массив $arTemplate. Обычно содержит два ключа: NAME для названия шаблона и DESCRIPTION для его описания. Набор ключей можно расширить, например, сортировкой, и установкой шаблона по умолчанию, если вы реализовали это переопределив метод WizardServices::GetTemplates.
    • screen.png — скриншот шаблона в нормальном размере. Обычно нигде не отображается.
    • preview.png — скриншот шаблона в уменьшенном размере, отображается на шаге выбора шаблона.
    • /themes/ - каталог с цветовыми схемами данного шаблона. Имеет ту же структуру, что и каталог самого шаблона, но содержит лишь зависящие от цветовой схемы файлы. Обычно это файлы стилей, screen.png и preview.png темы, а также некоторые шаблоны компонентов.

    Примечание: Расширение и расположение файлов screen.png и preview.png задается конкретной реализацией шагов установки шаблона и темы в файле wizard.php.


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

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