Файлы с версткой страниц и элементами шаблона сайта я скачал из уроков указанного курса. После прохождения всех уроков и выполнения заданий у меня получился готовый сайт. На его основе я и создал свой мастер установки. Результат моей работы доступен в репозитории GitHub. Вы можете разработать мастер на основе какого-нибудь своего готового сайта. Главное, чтобы у вас был готовый сайт, мастер установки которого вы будете создавать.
Шаг 1
Установим CMS «1С-Битрикс». Для нашей задачи будет нужна редакция «Стандарт».
На данном шаге нужно определиться с кодировкой файлов вашего мастера. Есть 2 варианта: windows-1251 и utf-8. Выбор кодировки зависит от того, собираетесь ли вы размещать свое решение на маркетплейсе Битрикса. Если да, то файлы должны быть в кодировке windows-1251. В процессе установки их кодировка будет преобразована в кодировку сайта.
Шаг 2
В файле wizard.php код самого мастера. Подробнее о нем в шаге 8.
Шаг 3
Шаг 4
Внутри папки templates размещаем шаблоны сайта, которые будут доступны для установки. В нашем случае шаблонов несколько, но мы покажем только один, потому что на главной подключается один шаблон сайта, на остальных страницах – другой шаблон.
Получается, что нам нужно на шаге выбора шаблона установить несколько шаблонов сразу и настроить их отображение по описанным условиям. Ниже я опишу как это сделать.
Шаг 5
Шаг 6
Шаг 7
В моем случае папке main находятся следующие файлы:
Также в ней еще может располагаться файл theme.php – в случае если на сайте используются цветовые темы в шаблоне.
Эти файлы можно скопировать из соответствующей папки мастера создания корпоративного сайта производственной компании, о котором я упоминал в начале статьи. При необходимости их нужно будет отредактировать.
В моем случае в папке iblock я разместил следующие файлы:
Не забудьте создать языкове файлы для файла types.php в папке /site/services/iblock/lang/. Причем необходимо создать их для обоих языков: ru и en. Если не создать языковой файл для английского языка, то в процессе установки все инфоблоки будут размещение в типе инфоблоков 1c_catalog
Его и остальные файлы из этой папки можно создать на основе какого-либо аналогичного файла из мастера создания корпоративного сайта производственной компании, например, news.php ;
Копируем содержимое файла news.php в vacancies.php и немного редактируем его.
Во-вторых, заменяем значение параметра в вызове метода WizardServices::ImportIBlockFromXML (строка 34) на свой. В моем случае, значением будет «furniture_vacancies».
С остальными файлами проделываем аналогичные действия.
Это необходимо сделать для того, чтобы при установке решения в случае многосайтовости, не испортились существующие инфоблоки с совпадающими идентификаторами. В процессе установки строковые ID из xml-файла у инфоблоков будут заменены числовыми уникальными идентификаторами.
Шаг 7
Свой файл также будем создавать на основе файла wizard.php мастера создания корпоративного сайта производственной компании. Откроем его в редакторе для наглядности.
Первый шаг мастера – выбор сайта (класс SelectSiteStep )
Хочу обратить внимание читателя на то, что этот шаг запускается не всегда. Его можно увидеть, если запустить мастер установки из админки сайта (Настройки→Настройки продукта→Список мастеров).
Второй шаг мастера – выбор шаблона сайта (класс SelectTemplateStep ).
В мастере создания корпоративного сайта производственной компании этот класс не изменяется – используется код из стандартного мастера установки (wizard_sol).
Мне нужно его изменить. Первым делом напишем код, который будет пропускать следующий шаг, потому что у меня в шаблонах сайта нет тем оформления.
Копируем код функции из стандартного мастера установки (wizard_sol). Находим в нем строку if (empty($arTemplates)) return; вставляем после нее следующий код:
Третий шаг мастера – Выбор цветовой схемы шаблона сайта (класс SelectThemeStep ).
Этот шаг я пропускаю. Если вам необходимо обеспечить выбор темы в вашем мастере, можно ознакомиться с классом SelectThemeStep в стандартном мастере установки (wizard_sol).
Четвертый шаг мастера – настройки для сайта (класс SiteSettingsStep ).
Пятый шаг мастера – Установка демо-данных (класс DataInstallStep ).
Код класса DataInstallStep копируем из мастера создания корпоративного сайта производственной компании. Ничего в нем не меняем.
Шестой шаг мастера – заключительный (класс FinishStep ).
Также копируем из мастера создания корпоративного сайта производственной компании и ничего не меняем в нем.
Все, с файлами мастера мы закончили. Теперь если все сделано правильно, вы можете запустить свой мастер создания сайта и пройдя все его шаги, в результате получить готовый сайт.
Напомню, что мастер установки можно запустить 2 способами: с кнопки «Протестировать новое решение» на панели управления в публичной части и в разделе «Настройки» административной части (Настройки→Настройки продукта→Список мастеров).
Класс CWizard
Описание
Класс CWizard позволяет запускать мастера из общего репозитария, а также поддерживает механизм мастера создания сайта. Для того чтобы использовать методы класса CWizard в теле переопределяемых функций (InitStep, ShowStep, OnPostFrom), нужно получить объект класса CWizard с помощью метода CWizardBase::GetPackage:
Список методов
| Метод | Описание | С версии |
|---|---|---|
| СWizard | Конструктор. | |
| GetDescription | Вывод описаний. | |
| GetErrors | Вывод ошибок. | |
| GetID | Вывод имени мастера. | 6.5.3 |
| GetPath | Метод возвращает путь к текущему мастеру относительно корня сайта. | 6.5.3 |
| GetServices | Вывод сервисов. | |
| GetSiteGroupID | Вывод шаблонов. | 6.5.3 |
| GetSiteID | Вывод типа сайта. | 6.5.3 |
| GetSiteServiceID | Возвращает массив ID выбранных сервисов. | 6.5.3 |
| GetSiteTemplateID | Возвращает ID выбранного шаблона сайта. | 6.5.3 |
| GetTemplateGroups | Возвращает массив групп шаблонов сайта по фильтру. | |
| GetTemplates | Возвращает массив шаблонов сайта по фильтру. | |
| IncludeWizardLang | Подключает языковой файл для скрипта. | |
| Install | Метод запускает мастер. | |
| SetError | Метод устанавливает ошибку мастера. |
Смотрите также
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
Физическое расположение мастера
Все мастера находятся в папке /bitrix/wizards/. Папка для кастомных наработок /local не поддерживает работу мастеров.
Системные (поставляемые разработчиками продукта) мастера находятся в директории /bitrix/wizards/bitrix/. Содержимое этой папки обновляется системой SiteUpdate и не может изменяться пользователем. Пользовательские мастера могут находиться в любых других подпапках директории /bitrix/wizards/ или прямо в директории /bitrix/wizards/.
Название подпапки директории /bitrix/wizards/ образует пространство имен (namespace) мастеров. Например, все системные мастера расположены в пространстве имен bitrix. При создании пользовательских мастеров рекомендуется создать какое-либо пространство имен и размещать пользовательские мастера в нем. Полное имя мастера включает в себя пространство имен и имеет вид «пространство_имен:имя_мастера«. Например, «bitrix:sale.install«. Если мастер лежит вне пространства имен, то пространство имен не указывается. Например, «sale.install«.
Мастера централизованно хранятся в одной папке (репозитарии). Это обеспечивает большую целостность и понятность структуры сайта. Папка доступна для запросов по HTTP протоколу, а, значит, мастер может легко подключать свои дополнительные ресурсы. Мастер хранит все, что ему нужно для работы, в своей папке. Поэтому мастера можно легко переносить между проектами. Мастер неделим.
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
Оптимизация размера сайта на платформе 1С-Битрикс
Доля использования 1С-Битрикс в рунете продолжает расти, поэтому все чаще приходится сталкиваться с этой cms при администрирование веб-серверов. У этой cms (как и у других) существует много проблем, и я бы хотел рассказать об одной из них, с которой столкнулся уже несколько раз — это большой размер, занимаемый сайтом на cms 1C-Битрикс:
Как системные администраторы сталкиваются с этой проблемой?
На одном из серверов, которые находятся у меня на администрировании, посыпались ошибки БД. Практически сразу было выяснено, что причина ошибок — отсутствие свободного места на хостинге. Почистив ненужные файлы и временно вернув работоспособность серверу, я сел думать, что можно удалить еще? Проблема осложнялась тем, что хостер не мог увеличить размер раздела, то есть выход оставался один — освобождать место удалением файлов, либо переносом сайтов с сервера.
200Мб создавал кэш размеров в
Проведем небольшой опыт.
Разворачиваем пустой сайт, используя скрипт bitrixsetup.php с официального сайта. Для установки выбираем версию «Малый бизнес». Выбор кодировки — cp1251
После установки сайт, абсолютно не содержащий контента занимает
55M new/bitrix/wizards
11M new/bitrix/modules/bitrix.sitecorporate
42M new/bitrix/modules/bitrix.eshop
Примерное число сайтов на хостинге у нас около ста. Таким образом, удалив соответствующие папки, мы освобождаем около 10Гб дискового пространства. Хочу отметить, что данные каталоги так же попадают в архивы резервных копий, создаваемые в папке сайта, увеличивая их на 50-100Мб.
На скорую руку был написан скрипт для поиска проблемных папок на сервере, которым мне бы и хотелось поделиться:











