1с битрикс параметры компонента

Обновлено: 07.07.2024

Приветствую! Совсем недавно я рассмотрел разработку собственного универсального компонента Битрикс. Но он был написан ещё по старым канонам разработки. А новое ядро 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().

  1. $this->checkModules() - мы проверяем подключен ли модуль Инфоблоков Битрикс.
  2. $this->getResult() - подготавливаем массив $arResult. Это основной блок кода.
  3. $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. По этому же принципу построены и тесты. Но такая структура не очень удобна для использования содержания курса как постоянного источника информации. Что бы переключить курс в режим Справочника, воспользуйтесь переключателем в верхнем правом углу шапки курса.

    Начальные требования к подготовке

    Для успешного изучения курса и овладения мастерством разработки сайтов на 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 пишет:
    Мне не нужны описания параметров для редактора!
    А что же вам тогда надо? Список параметров, которые принимает компонент, содержится в файле .parameters.php папки компонента. Визуально параметры отображаются при редактировании страницы в визуальном редакторе или же в форме параметров компонента . Либо вы можете просмотреть список параметров компонента при редактировании страницы, на которой он размещен, в режиме html-кода или php-кода.
    Цитата
    m4shop пишет:
    Так откройте ссылку, прочитайте: "При работе самого компонента (при обращении к странице, на которой расположен компонент) описание не используется и указанный файл не подключается."
    Все верно. Когда вы размещаете компонент на странице, то задаете только конкретные значения параметров компонента. При обращении к странице происходит подключение компонента с заданными вами параметрами и осуществляется вывод информации в соответствии с шаблоном компонента, сам файл .parameters.php никак к странице не подключается.
    Цитата
    m4shop пишет:
    Стандартный неизмененный компонент bitrix:eshop.catalog.top ВОПРОС где хранятся его настройки (параметры) ? Мне не нужны описания параметров для редактора!

    Вся штука в том, что при изменении настроек компонента страница не изменяется, а настройки изменяются и где-то сохраняются. Вопрос: где?

    Цитата
    Tatiana Starkova пишет:
    А что же вам тогда надо? Список параметров, которые принимает компонент, содержится в файле .parameters.php папки компонента. Визуально параметры отображаются при редактировании страницы в визуальном редакторе или же в форме параметров компонента . Либо вы можете просмотреть список параметров компонента при редактировании страницы, на которой он размещен, в режиме html-кода или php-кода.
    Вся штука в том, что при изменении настроек компонента страница не изменяется, а настройки изменяются и где-то сохраняются. Вопрос: где? m4shop ,Что-то мне кажется, что проблема не на уровне курса Разработчик Bitrix Framework, а на уровне курса Контент-менеджер.
    Цитата
    m4shop пишет:
    Вся штука в том, что при изменении настроек компонента страница не изменяется, а настройки изменяются и где-то сохраняются. Вопрос: где?
    • НЕ настроен инфоблок,
    • Выбраны параметры, не имеющие значений,
    • Выбраны настройки не соответсвующие реальному наполнению (вывод 10 элементов на страницу, а в инфоблоке всего 5)
    • и так далее?

    Внешний вид страницы ИЗМЕНЯЕТСЯ, а код страницы НЕ ИЗМЕНЯЕТСЯ. Настройки где-то сохраняются. Вопрос: где?

    Переход по вашей ссылке выводит ошибку.

    m4shop , думаю, стоит все же начать со штудирования документации (курсов). Потом вы поймете, что компоненты еще и в header.php могут лежать и еще где, а настройки компонентов хранятся точно там, где компоненты вызываются.
    Цитата
    Алексей Гребнев пишет:
    m4shop , думаю, стоит все же начать со штудирования документации (курсов). Потом вы поймете, что компоненты еще и в header.php могут лежать и еще где, а настройки компонентов хранятся точно там, где компоненты вызываются.
    Ок. Редактор находит, а я найти не могу. Как-то оперативно эта проблема решается?
    Цитата
    Алексей Гребнев пишет:
    m4shop , думаю, стоит все же начать со штудирования документации (курсов). Потом вы поймете, что компоненты еще и в header.php могут лежать и еще где, а настройки компонентов хранятся точно там, где компоненты вызываются.
    Решается прочтением курса за время что вы тут пишите вы смогли бы уже все прочитать про компоненты. и разобрать где что лежит. Однако вы продолжаете, упорно игнорировать документацию.
    Цитата
    Роман Мощенский написал:
    Параметры хранятся в таблице b_component_params.

    От себя замечу, что за прошедшие с начала дискуссии семь лет, однозначно правильная фраза из описания "При работе самого компонента (при обращении к странице, на которой расположен компонент) описание не используется и указанный файл не подключается. " так и не пополнилась комментарием о том, откуда, все-таки, подгружаются параметры компонента при его работе.

    Упорство, с которым Администраторы , Эксперт и Постоянный Посетитель доказывали Разработчику, что ему нужно прочитать руководстве, стоило бы потратить на толковый комментарий в руководстве же.

    Файл настройки параметров компонента Bitrix (.parameters.php)

    Файл .parameters.php содержит описание параметров компонента. Данные файла нужны для отображения формы настроек компонента:

    Параметры компонента.PNG

    Структура файла может иметь следующий вид: Для удобства я не использовал 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 для своих элементов управления

    Списки.PNG

    В некоторых случаях требуется заполнять списки значениями из инфоблоков, в этом случае можно использовать средства API и формировать массивы для VALUES до определения массива $arComponentParameters. В следующем примере для параметров IBLOCK_TYPE и IBLOCK_ID формируются массивы $paramIBlockTypes и $paramIBlocks соответственно. Заметьте, что при использовании "REFRESH" => "Y" , значения выбранных свойств можно получить из массива $arCurrentValues . Таким образом можно реализовать сложную логику зависимостей между параметрами.

    Помимо .parameters.php , хранящегося в папке компонента, стандартные настройки можно дополнять, создавая одноименные файлы в папке шаблона. Описанные в этом файле параметры будут отображаться только если выбран соответствующий шаблон компонента. Структура файла:

    Дмитрий Языков

    Помогаю развивать интернет-проекты. Пишу про веб-разработку, маркетинг и дизайн.

    Читайте также: