1с битрикс параметры компонента
Приветствую! Совсем недавно я рассмотрел разработку собственного универсального компонента Битрикс. Но он был написан ещё по старым канонам разработки. А новое ядро D7 наступает и помаленьку вытесняет старые подходы. Сейчас уже компоненты раздела bitrix:catalog почти все написаны на классах. Я решил так же разобраться в этой теме и переписать свой компонент на новую технологию с использованием классов.
- component.php - уже не обязательный файл
- class.php - основной фал компонента с классами в котором реализуется вся логика работы компонента на API Bitrix
- .description.php - файл описания компонента.
- .parameters.php - файл параметров компонента.
- templates/.default/template.php - файл шаблона по умолчанию для компонента.
Как работает файл class.php?
Как я уже сказал подключается он автоматически. Далее необходимо объявить класс с произвольным именем, как класс наследник от CBitrixComponent.
В этом классе уже доступны две переменные (объявлять их не нужно):
Код:
С ними и происходит вся работа, как и при старом подходе.
Так же есть 2 предопределенных метода, которые срабатывают автоматически.
Код:
Вызываются они в порядке следования. В функции onPrepareComponentParams() принято обрабатывать массив $arParams. А метод executeComponent() выполняет основной код компонента в котором происходит заполнение массива $this->arResult.
В своем компоненте я разместил следующий код в методе executeComponent().
- $this->checkModules() - мы проверяем подключен ли модуль Инфоблоков Битрикс.
- $this->getResult() - подготавливаем массив $arResult. Это основной блок кода.
- $this->includeComponentTemplate() - эта конструкция подключает шаблон.
Посмотрите, если свернуть код в редакторе насколько он стал проще для восприятия и организованней. ООП действительно рулит.
Это уже не огромная простыня кода, где ещё надо самостоятельно делить на блоки код чтобы начать что-то понимать. Все вполне наглядно и помещается в один экран.
От автора:
Мне такой подход понравился. Код, как я уже написал, стал организованней и понятнее. Можно сразу свернуть вспомогательные функции и оставить только главное. Дальше я буду пользоваться только компонентами Битрикс с использованием классов. До встречи!
В файле .parameters.php содержится описание входных параметров компонента. Это описание применяется для работы с компонентом из среды БУС (например, в визуальном редакторе), а так же при работе в режиме редактирования сайта. При работе самого компонента (при обращении к странице, на которой расположен компонент) описание не используется и файл .parameters.php не подключается.
[spoiler]
Данные .parameters.php нужны исключительно для того, чтобы сформировать форму для ввода свойств компонента в среде БУС (например, в визуальном редакторе).
Файл .parameters.php должен находиться в папке компонента. Языковой файл подключается автоматически (должен лежать в папке /lang/<язык>/.parameters.php относительно папки компонента).
Структура типичного файла .parameters.php такова
То есть в файле определяется массив $arComponentParameters, который описывает входные параметры компонента. Если необходимо, то производится выборка каких-либо дополнительных данных. Например, для формирования выпадающего списка типов информационных блоков (входной параметр IBLOCK_TYPE_ID) выбираются все активные типы.
Массив $arComponentParameters имеет следующие ключи:
"GROUPS" - значением этого ключа является массив групп параметров компонента. Параметры в визуальных средствах среды БУС (например, в визуальном редакторе) группируются. Группы в среде БУС располагаются в том порядке, в котором заданы в файле. Массив групп параметров компонента состоит из элементов следующего вида
"PARAMETERS" - значением этого ключа является массив параметров компонента. В каждой группе параметров параметры располагаются в том порядке, в котором заданы в файле. Массив обычных параметров компонента состоит из элементов следующего вида
Существуют особые параметры, которые стандартизованы и которые нет необходимости описывать полностью. Достаточно указать, что они есть. Например,
Первый из указанных параметров - переключатель "а не нужно ли компоненту установить заголовок страницы", а второй - время кеширования.
Цитатник веб-разработчиков В тексте курса вы встретите цитаты, высказанные в разное время разработчиками системы и разработчиками проектов на базе Bitrix Framework. Надеемся, что такие неформальные замечания внесут некоторое разнообразие в процесс изучения. Заодно опытные специалисты поделятся и своим опытом.
Имена авторов цитат даются в том написании, в каком авторы зарегистрировали себя на сайте "1С-Битрикс". .
Курс для разработчиков - продолжение линейки учебных курсов по Bitrix Framework. Получение сертификата по курсу рекомендуется после успешной сдачи тестов по всей линейке курсов, так как без понятия о работе Контент-менеджера и Администратора создание успешных сайтов будет затруднено.
Чтобы научиться программировать в Bitrix Framework, нет необходимости изучать всю линейку курсов. Но есть моменты, которые необходимо знать разработчикам о системе, они раскрыты в начальных курсах:
- Интерфейс программы - в главе Элементы управления курса Контент-менеджер.
- Компоненты 2.0 (начальные сведения) в главе Компоненты 2.0 (начальные сведения) курса Контент-менеджер.
- Информационные блоки - в главе Информационные блоки (начальные сведения) курса Контент-менеджер.
- Управление доступом к файлам, элементам контента, модулям и другие права доступа в главе Управление доступом курса Администратор. Базовый.
- Работа с инструментами системы - в главе Работа с инструментами курса Администратор. Базовый.
- Модуль Поиск - в главе Поиск курса Администратор. Базовый.
- Вся информация по администрированию модулей размещена в курсах:
-
- модули "1С-Битрикс: Управление сайтом" - модули "1С-Битрикс: Управление сайтом", связанные с коммерческой деятельностью в Интернете. - модули "1С-Битрикс: Корпоративный портал"
Как построен курс
Общепринятая градация квалификации разработчиков в рамках курса обозначает что:
- Junior сможет создавать простые сайты работая со штатными компонентами и модифицируя их шаблоны.
- Middle разработчик может работать с API Bitrix Framework.
- Senior умеет работать над производительностью и безопасностью сайтов, создавать свои модули и компоненты.
Начальные требования к подготовке
Для успешного изучения курса и овладения мастерством разработки сайтов на Bitrix Framework необходимо владеть (хотя бы на начальном уровне):
- основами PHP, баз данных;
- основами HTML, CSS.
У нас часто спрашивают, сколько нужно заплатить
Курс полностью бесплатен. Изучение курса, прохождение итоговых тестов и получение сертификатов - ничего из этого оплачивать не нужно.
Ещё у нас есть Академия 1С-Битрикс, где можно обучиться на платной основе на курсах нашей компании либо наших партнёров.
Баллы опыта
В конце каждого урока есть кнопка Прочитано! . При клике на неё в Вашу итоговую таблицу опыта добавляется то количество баллов, которое указано в прочитанном После нажатия кнопки Прочитано! появится
окно подтверждения:
уроке.
Периодически мы заново оцениваем сложность уроков, увеличивая/уменьшая число баллов, поэтому итоговое количество набранных Вами баллов может отличаться от максимально возможного. Не переживайте! Отличный результат - это если общее число набранных Вами баллов отличается от максимального на 1-2%.
Тесты
После изучения курса вам будет предложено пройти тесты на сертификацию. При успешной сдаче последовательности тестов на странице Моё обучение можно просмотреть результат обучения и загрузить сертификат в формате PDF.
Комментарии к статьям
Что дальше?
Одновременно с изучением курса Разработчик Bitrix Framework вам придётся обращаться к информации о других технологиях Bitrix Framework. Эта информация размещена в следующих курсах:
Для преподавания оффлайн
Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 5 дней (40 академических часов).
Если нет интернета
iPhone:
FBReader
CoolReader
iBook
Bookmate
Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome
iOS
Marvin for iOS
ShortBook
обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса.
При работе самого компонента (при обращении к странице, на которой расположен компонент) описание не используется и указанный файл не подключается.
P.S. Неужели даже администратор не знает.
задайте корректный вопрос получите ясный ответ. а то кроме того что не видите параметров компонента, какого компонента, как смотрите. что делали. Есть вопрос где? Вам дали вполне внятный ответ, где посмотреть как устроен компонент и где лежат его параметры. Если это не оно то задайте понятный вопрос тут телепатов нет. Стандартный неизмененный компонент bitrix:eshop.catalog.top ВОПРОС где хранятся его настройки (параметры) ? Мне не нужны описания параметров для редактора!Цитата |
---|
m4shop пишет: Стандартный неизмененный компонент bitrix:eshop.catalog.top ВОПРОС где хранятся его настройки (параметры) ? Мне не нужны описания параметров для редактора! |
Оба теста по Компонентам курса Разработчик Bitrix Framework сданы с первой попытки, а понятия о структуре компонента нет.
Что, сайты с ответами на наши тесты не помогают в решении реальных проблем?
Вам дали правильную ссылку открыв которую вы смогли бы понять как устроен компонент и соответственно смогли бы найти где искать его параметры.
в вашем случае /bitrix/components/bitrix/eshop.catalog.top/ .parameters.php
в данном файле вы найдете все что отвечает за параметры данного компонента.
в вашем случае /bitrix/components/bitrix/eshop.catalog.top/ .parameters.php
Так откройте ссылку, прочитайте: "При работе самого компонента (при обращении к странице, на которой расположен компонент) описание не используется и указанный файл не подключается."Цитата |
---|
m4shop пишет: Мне не нужны описания параметров для редактора! |
Цитата |
---|
m4shop пишет: Так откройте ссылку, прочитайте: "При работе самого компонента (при обращении к странице, на которой расположен компонент) описание не используется и указанный файл не подключается." |
Цитата |
---|
m4shop пишет: Стандартный неизмененный компонент bitrix:eshop.catalog.top ВОПРОС где хранятся его настройки (параметры) ? Мне не нужны описания параметров для редактора! |
Вся штука в том, что при изменении настроек компонента страница не изменяется, а настройки изменяются и где-то сохраняются. Вопрос: где?
Цитата |
---|
Tatiana Starkova пишет: А что же вам тогда надо? Список параметров, которые принимает компонент, содержится в файле .parameters.php папки компонента. Визуально параметры отображаются при редактировании страницы в визуальном редакторе или же в форме параметров компонента . Либо вы можете просмотреть список параметров компонента при редактировании страницы, на которой он размещен, в режиме html-кода или php-кода. |
Цитата |
---|
m4shop пишет: Вся штука в том, что при изменении настроек компонента страница не изменяется, а настройки изменяются и где-то сохраняются. Вопрос: где? |
- НЕ настроен инфоблок,
- Выбраны параметры, не имеющие значений,
- Выбраны настройки не соответсвующие реальному наполнению (вывод 10 элементов на страницу, а в инфоблоке всего 5)
- и так далее?
Внешний вид страницы ИЗМЕНЯЕТСЯ, а код страницы НЕ ИЗМЕНЯЕТСЯ. Настройки где-то сохраняются. Вопрос: где?
Переход по вашей ссылке выводит ошибку.
m4shop , думаю, стоит все же начать со штудирования документации (курсов). Потом вы поймете, что компоненты еще и в header.php могут лежать и еще где, а настройки компонентов хранятся точно там, где компоненты вызываются.Цитата |
---|
Алексей Гребнев пишет: m4shop , думаю, стоит все же начать со штудирования документации (курсов). Потом вы поймете, что компоненты еще и в header.php могут лежать и еще где, а настройки компонентов хранятся точно там, где компоненты вызываются. |
Цитата |
---|
Алексей Гребнев пишет: m4shop , думаю, стоит все же начать со штудирования документации (курсов). Потом вы поймете, что компоненты еще и в header.php могут лежать и еще где, а настройки компонентов хранятся точно там, где компоненты вызываются. |
Цитата |
---|
Роман Мощенский написал: Параметры хранятся в таблице b_component_params. |
От себя замечу, что за прошедшие с начала дискуссии семь лет, однозначно правильная фраза из описания "При работе самого компонента (при обращении к странице, на которой расположен компонент) описание не используется и указанный файл не подключается. " так и не пополнилась комментарием о том, откуда, все-таки, подгружаются параметры компонента при его работе.
Упорство, с которым Администраторы , Эксперт и Постоянный Посетитель доказывали Разработчику, что ему нужно прочитать руководстве, стоило бы потратить на толковый комментарий в руководстве же.
Файл .parameters.php содержит описание параметров компонента. Данные файла нужны для отображения формы настроек компонента:
Структура файла может иметь следующий вид: Для удобства я не использовал lang файл для описания параметров (а-та-та, так делать плохо). Как видно из кода, в файле формируется массив $arComponentParameters, который состоит из двух ключей: GROUPS и PARAMETERS.
- ADDITIONAL_SETTINGS - появляется при указании SET_TITLE;
- CACHE_SETTINGS - настройки кэша, появляется при указании CACHE_TIME;
- SEF_MODE - настройки ЧПУ;
- URL_TEMPLATES - шаблоны ссылок;
- VISUAL - настройки внешнего вида;
- DATA_SOURCE - источник данных, ID и TYPE инфоблока;
- BASE - основные параметры;
- AJAX_SETTINGS - настройки AJAX.
Описание группы содержит два ключа: NAME - название группы выводимое на форме и SORT - внутренняя сортировка.
- LIST для списка
- STRING для поля ввода
- CHECKBOX для чекбокса
- CUSTOM для своих элементов управления
В некоторых случаях требуется заполнять списки значениями из инфоблоков, в этом случае можно использовать средства API и формировать массивы для VALUES до определения массива $arComponentParameters. В следующем примере для параметров IBLOCK_TYPE и IBLOCK_ID формируются массивы $paramIBlockTypes и $paramIBlocks соответственно. Заметьте, что при использовании "REFRESH" => "Y" , значения выбранных свойств можно получить из массива $arCurrentValues . Таким образом можно реализовать сложную логику зависимостей между параметрами.
Помимо .parameters.php , хранящегося в папке компонента, стандартные настройки можно дополнять, создавая одноименные файлы в папке шаблона. Описанные в этом файле параметры будут отображаться только если выбран соответствующий шаблон компонента. Структура файла:
Дмитрий Языков
Помогаю развивать интернет-проекты. Пишу про веб-разработку, маркетинг и дизайн.
Читайте также: