Онлайн-руководство разработчика NetCat
Netcat 7 — нейросеть в вашем сайте!
Подробнее
Модуль «Поиск по сайту» 13.2.1Начало работы с модулем 13.2.2Язык запросов 13.2.3Способы хранения индекса 13.2.4Интерфейс модуля в панели управления сайтом 13.2.5Области индексирования 13.2.6Области HTML-страниц 13.2.7Области поиска на сайте 13.2.8Индексирование по расписанию, запуск индексирования в фоновом режиме 13.2.9Правила индексирования 13.2.10Постановка задачи переиндексирования в очередь 13.2.11Интеграция модуля в макеты дизайна сайта 13.2.12Простая форма поиска 13.2.13Расширенная форма поиска 13.2.14Вывод результатов поиска 13.2.15Стилизация списка подсказок 13.2.16Расширенные настройки 13.2.17Разработка расширений модуля 13.2.18Обзор архитектуры модуля 13.2.19Обработчики документов различных типов 13.2.20Текстовые фильтры 13.2.21Анализаторы текста 13.2.22Корректировщики запросов 13.2.23Подключение других поисковых систем 13.2.24Решение проблем с поиском 13.2.25Решение проблем с индексированием 13.2.26Справочник API

Компоненты

Компонент - это функционал, который отвечает за вывод какого-либо блока на сайте. Компоненты бывают контентные (которые отвечают за хранение и вывод добавленного на сайт контента, а также управление им - тексты, изображения, новости, товары, факты, отзывы и пр.), а также неконтентные (в блоке такого компонента данные не хранятся: это может быть виджет корзины или добавления товара в сравнение, блок поиска по сайту, логотип, оглавление сайта и пр.). Управление компонентами осуществляется в административном разделе в меню “Разработка → Компоненты”.

Список компонентов

Контентные компоненты

Контентный компонент – это функционал, который управляет блоком содержательной части страницы. Каждому типу данных (текст, изображения, новости, товары, факты и пр.) соответствует компонент. На уровне компонента определяется:

  • верстка блока компонентов и его элементов (список новостей, товаров и пр.);
  • верстка страницы полного вывода материала (страница новости или товара), если она есть;
  • структура данных (поля компонента: например, для новости это может быть заголовок, изображение, дата, текст);
  • несколько других свойств, о которых пойдет речь ниже.

Данные компонентов (все новости, статьи и пр.) хранятся в таблицах, которые называются 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. 

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

  1. Выполняется код шаблона Settings (системные настройки), если он не пустой. В этом шаблоне можно, в частности, внести изменения в запрос выборки элементов (объектов) для отображения в блоке;
  2. Выполняется код шаблона FormPrefix (префикс списка объектов) из файла Class.html (при этом в шаблон добавляется служебная разметка системы);
  3. Для каждой выводимой записи выполняется шаблон RecordTemplate из файла Class;
  4. Выполняется код шаблона FormSuffix (суффикс списка объектов) из файла Class.html.

У компонента может быть страница полного вывода объекта (например, страница новости или товара). Для отображения ссылки на нее в шаблоне вывода компонента должна быть ссылка, которая для каждого объекта хранится в переменной $fullLink и $fullDateLink (вторая добавляет в адрес ссылки дату в формате /2025/03/24/). При открытии такой страницы на месте блока выводятся данные этого объекта в шаблоне полного вывода, который определен в файле RecordTemplateFull.html.

Файлы компонента

Все эти шаблоны доступны для редактирования как в виде файлов, так и через веб-интерфейс редактирования компонента в панели администрирования.

Далее в разделе

Описание проекта