Компонент - это функционал, который отвечает за вывод какого-либо блока на сайте. Компоненты бывают контентные (которые отвечают за хранение и вывод добавленного на сайт контента, а также управление им - тексты, изображения, новости, товары, факты, отзывы и пр.), а также неконтентные (в блоке такого компонента данные не хранятся: это может быть виджет корзины или добавления товара в сравнение, блок поиска по сайту, логотип, оглавление сайта и пр.). Управление компонентами осуществляется в административном разделе в меню “Разработка → Компоненты”.
Контентный компонент – это функционал, который управляет блоком содержательной части страницы. Каждому типу данных (текст, изображения, новости, товары, факты и пр.) соответствует компонент. На уровне компонента определяется:
Данные компонентов (все новости, статьи и пр.) хранятся в таблицах, которые называются MessageXX, где XX - ID компонента в системе. Структура данных каждой таблицы определяется полями компонента: например, для компонента "Новости" помимо обязательных полей в таблице MessageXX могут быть поля Name, Image, Date, Text.
С помощью функционала компонентов можно реализовать огромный объем задач, в то же время их просто и удобно использовать в работе редактора сайта.
У каждого компонента есть набор настроек и свойств:
В составе Netcat поставляется большое количество готовых компонентов. На их примерах разработчики могут создавать свои уникальные компоненты либо подстраивать существующие под свои нужды.
Несколько типов функциональных элементов, которые можно реализовать при помощи контентных компонентов:
Компоненты также применимы для тех случаев, когда списочный вывод не требуется. В этом случае используется один объект компонента «HTML-текст».
На одной странице могут быть использованы несколько компонентов, например, новость и комментарии посетителей к ней; список вакансий компании, выше которого указан вводный текст, а ниже – список менеджеров и т.д.
Каждому компоненту соответствует запись в SQL-таблице Class (которая описывает компонент), таблица с данными MessageX, где X - ID компонента в таблице Class, набор записей в таблице Field - список полей компонента и их характеристики. Также на диске в каталоге /netcat_templates/class/ создается каталог для шаблонов этого компонента, . В нем хранятся шаблоны отображения компонента, альтернативные шаблоны, шаблоны действий, стили, дополнительный PHP-код, данные для автоматического добавления первого объекта при добавлении блока.
При создании компонента для него автоматически создается таблица MessageX для хранения контента этого компонента. В каждой такой таблице есть системные поля (дата и время создания и последнего изменения, ID добавившего запись (объект) и изменившего ее последним пользователя, признак включенности и пр.). При добавлении поля, описывающего сущность компонента (название, полный текст, изображение, цена и пр.) в эту таблицу также добавляется поле с помощью SQL-оператора ALTER TABLE.
Когда компонент разработан и отлажен, добавьте инфоблок этого компонента на нужную страницу. После этого можно добавлять данные в этот блок. Вывод добавленных данных при открытии этой страницы происходит следующим образом:
У компонента может быть страница полного вывода объекта (например, страница новости или товара). Для отображения ссылки на нее в шаблоне вывода компонента должна быть ссылка, которая для каждого объекта хранится в переменной $fullLink и $fullDateLink (вторая добавляет в адрес ссылки дату в формате /2025/03/24/). При открытии такой страницы на месте блока выводятся данные этого объекта в шаблоне полного вывода, который определен в файле RecordTemplateFull.html.
Все эти шаблоны доступны для редактирования как в виде файлов, так и через веб-интерфейс редактирования компонента в панели администрирования.