<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://docs.instantcms.ru/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://docs.instantcms.ru/feed.php">
        <title>Документация InstantCMS - dev:integration</title>
        <description>для администраторов и разработчиков</description>
        <link>https://docs.instantcms.ru/</link>
        <image rdf:resource="https://docs.instantcms.ru/_media/wiki/dokuwiki.svg" />
       <dc:date>2026-11-13T22:51:30+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://docs.instantcms.ru/dev/integration/overview?rev=1450024600"/>
                <rdf:li rdf:resource="https://docs.instantcms.ru/dev/integration/queue?rev=1524467681"/>
                <rdf:li rdf:resource="https://docs.instantcms.ru/dev/integration/rss?rev=1537169328"/>
                <rdf:li rdf:resource="https://docs.instantcms.ru/dev/integration/search?rev=1524463705"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://docs.instantcms.ru/_media/wiki/dokuwiki.svg">
        <title>Документация InstantCMS</title>
        <link>https://docs.instantcms.ru/</link>
        <url>https://docs.instantcms.ru/_media/wiki/dokuwiki.svg</url>
    </image>
    <item rdf:about="https://docs.instantcms.ru/dev/integration/overview?rev=1450024600">
        <dc:format>text/html</dc:format>
        <dc:date>2015-12-13T16:36:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Введение в интеграцию компонентов</title>
        <link>https://docs.instantcms.ru/dev/integration/overview?rev=1450024600</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;введение-в-интеграцию-компонентов&quot;&gt;Введение в интеграцию компонентов&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В InstantCMS есть компоненты (контроллеры), которые могут использоваться другим компонентами движка.
К ним относятся такие компоненты, как «Генератор RSS», «Поиск», «Лента активности», «Генератор карты сайта» и так далее.
&lt;/p&gt;

&lt;p&gt;
Такие компоненты условно можно разделить на два типа:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; встраиваемые&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; обслуживающие&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
К встраиваемым относятся компоненты, например, «Комментарии», «Рейтинг». К обслуживающим относятся «Генератор RSS», «Поиск» и подобные.
&lt;/p&gt;

&lt;p&gt;
Например, компонент «Комментарии» может работать на любой странице движка и дополнять функционал текущего компонента возможностью комментировать.
&lt;/p&gt;

&lt;p&gt;
А, к примеру, компонент «Генератор RSS» обслуживает нужный компонент. Т.е. его назначение выводить rss фиды на основе нужных данных.
&lt;/p&gt;

&lt;p&gt;
Таким образом, встраиваемые компоненты вы &lt;strong&gt;можете интегрировать с любым своим компонентом&lt;/strong&gt;, а обслуживающие могут для реализации своего функционала &lt;strong&gt;использовать данные, предоставляемые вашим компонентом&lt;/strong&gt;.
&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;
&lt;a href=&quot;https://docs.instantcms.ru/dev/integration&quot; class=&quot;wikilink1&quot; title=&quot;dev:integration&quot; data-wiki-id=&quot;dev:integration&quot;&gt;К оглавлению раздела &amp;quot;Интеграция&amp;quot;&lt;/a&gt;
&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;
&lt;a href=&quot;https://docs.instantcms.ru/dev/start&quot; class=&quot;wikilink1&quot; title=&quot;dev:start&quot; data-wiki-id=&quot;dev:start&quot;&gt;К оглавлению документации для разработчиков&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
</description>
    </item>
    <item rdf:about="https://docs.instantcms.ru/dev/integration/queue?rev=1524467681">
        <dc:format>text/html</dc:format>
        <dc:date>2018-04-23T07:14:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Интеграция и работа с очередью</title>
        <link>https://docs.instantcms.ru/dev/integration/queue?rev=1524467681</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;интеграция-и-работа-с-очередью&quot;&gt;Интеграция и работа с очередью&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В InstantCMS присутствует механизм «очередей». Это набор заданий, которые выполняются последовательно, согласно очередности и приоритета. После успешного выполнения задания, оно удаляется. У задания очереди есть состояния:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Ожидает выполнения;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Выполняется;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Ожидает повторного выполнения;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Завершено с ошибкой.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Очередь запускается по CRON при помощи системного &lt;a href=&quot;https://docs.instantcms.ru/manual/settings/scheduler&quot; class=&quot;wikilink1&quot; title=&quot;manual:settings:scheduler&quot; data-wiki-id=&quot;manual:settings:scheduler&quot;&gt;планировщика&lt;/a&gt;. За одно выполнение запускаются 20 задач очереди. Система очередей интегрирована в компоненты &lt;a href=&quot;https://docs.instantcms.ru/manual/components/messages&quot; class=&quot;wikilink1&quot; title=&quot;manual:components:messages&quot; data-wiki-id=&quot;manual:components:messages&quot;&gt;Личные сообщения&lt;/a&gt; и &lt;a href=&quot;https://docs.instantcms.ru/manual/components/subscriptions&quot; class=&quot;wikilink1&quot; title=&quot;manual:components:subscriptions&quot; data-wiki-id=&quot;manual:components:subscriptions&quot;&gt;Подписки&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0438 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043e\u0447\u0435\u0440\u0435\u0434\u044c\u044e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f-\u0438-\u0440\u0430\u0431\u043e\u0442\u0430-\u0441-\u043e\u0447\u0435\u0440\u0435\u0434\u044c\u044e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-1085&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;работа-с-очередью&quot;&gt;Работа с очередью&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Вся работа с очередью заключается в большинстве случаев в постановке задания в очередь. Обслуживается это системным классом &lt;code&gt;cmsQueue&lt;/code&gt;, в котором все методы статические. Класс можно дополнить/переопределить, в нём используется &lt;a href=&quot;http://php.net/manual/ru/language.oop5.late-static-bindings.php&quot; class=&quot;urlextern&quot; title=&quot;http://php.net/manual/ru/language.oop5.late-static-bindings.php&quot; rel=&quot;ugc nofollow&quot;&gt;позднее статическое связывание&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043e\u0447\u0435\u0440\u0435\u0434\u044c\u044e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0430\u0431\u043e\u0442\u0430-\u0441-\u043e\u0447\u0435\u0440\u0435\u0434\u044c\u044e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1086-1672&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;методы&quot;&gt;Методы&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Все методы класса являются статичными.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;cmsqueuepushon&quot;&gt;cmsQueue::pushOn&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;pushOn(string  $queue, array  $data, integer  $priority = 1) : integer&lt;/pre&gt;

&lt;p&gt;
Добавляет задание в очередь.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Параметры&lt;/strong&gt;
&lt;/p&gt;
&lt;div class=&quot;table sectionedit4&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 leftalign&quot;&gt; Тип  &lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; Имя &lt;/th&gt;&lt;th class=&quot;col2&quot;&gt; Описание &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; string &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; $queue &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Имя очереди. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; array &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; $data &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Основные данные очереди. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; integer &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; $priority &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Приоритет задания, по умолчанию 1. &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1948-2186&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h4 id=&quot;cmsqueuepushonlater&quot;&gt;cmsQueue::pushOnLater&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;pushOnLater(string  $queue, array  $data, integer  $priority = 1) : integer&lt;/pre&gt;

&lt;p&gt;
Добавляет задачу в очередь с отсрочкой в секундах или по дате.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Параметры&lt;/strong&gt;
&lt;/p&gt;
&lt;div class=&quot;table sectionedit5&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 leftalign&quot;&gt; Тип  &lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; Имя &lt;/th&gt;&lt;th class=&quot;col2&quot;&gt; Описание &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; mixed &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; $date &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Количество секунд для смещения от текущего времени или полная дата. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; string &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; $queue &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Имя очереди. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; array &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; $data &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Основные данные очереди. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; integer &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; $priority &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Приоритет задания, по умолчанию 1. &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;2437-2820&amp;quot;} --&gt;
&lt;p&gt;
В обоих случаях в массиве $data передаются непосредственно полезные данные очереди, например:
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;    cmsQueue&lt;span class=&quot;sy0&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;me2&quot;&gt;pushOn&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'email'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;
        &lt;span class=&quot;st_h&quot;&gt;'controller'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'messages'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st_h&quot;&gt;'hook'&lt;/span&gt;       &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'queue_send_email'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st_h&quot;&gt;'params'&lt;/span&gt;     &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$to&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$letter&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$is_nl2br_text&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Массив $data должен содержать ячейки:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;controller&lt;/strong&gt; - название контроллера (обязательно);&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;hook&lt;/strong&gt; - название &lt;a href=&quot;https://docs.instantcms.ru/dev/controllers/hooks&quot; class=&quot;wikilink1&quot; title=&quot;dev:controllers:hooks&quot; data-wiki-id=&quot;dev:controllers:hooks&quot;&gt;хука&lt;/a&gt; контроллера (необязательно);&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;action&lt;/strong&gt; - название &lt;a href=&quot;https://docs.instantcms.ru/dev/controllers/actions&quot; class=&quot;wikilink1&quot; title=&quot;dev:controllers:actions&quot; data-wiki-id=&quot;dev:controllers:actions&quot;&gt;экшена&lt;/a&gt; контроллера (необязательно);&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;params&lt;/strong&gt; - параметры, передаваемые в хук или экшен (необязательно).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Должен быть передан либо &lt;strong&gt;hook&lt;/strong&gt;, либо &lt;strong&gt;action&lt;/strong&gt;. Если будет переданы оба параметра, вызовется сначала хук, потом экшен с одинаковыми параметрами &lt;strong&gt;params&lt;/strong&gt;. Обратите внимание, что при выполнении задания в хук или экшен первым параметром всегда будет передаваться текущая попытка выполнения &lt;code&gt;$attempts&lt;/code&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041c\u0435\u0442\u043e\u0434\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043c\u0435\u0442\u043e\u0434\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1673-4268&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;обработка-очереди&quot;&gt;Обработка очереди&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Само выполнение задания очереди - это стандартный хук или экшен контроллера. При использовании хука, как метода исполнения задания очереди, нет необходимости его описывать в &lt;a href=&quot;https://docs.instantcms.ru/dev/controllers/hooks#манифест&quot; class=&quot;wikilink1&quot; title=&quot;dev:controllers:hooks&quot; data-wiki-id=&quot;dev:controllers:hooks&quot;&gt;файле манифеста&lt;/a&gt; контроллера.
&lt;/p&gt;

&lt;p&gt;
Исполняющий хук или экшен задания &lt;strong&gt;строго&lt;/strong&gt; может возвращать:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; булево true - в этом случае движок будет считать, что задание выполнено успешно и удалит его из очереди;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; булево false - задание выполнено, но будет запущено еще раз, пока не будет достигнуто максимальное кол-во перезапусков (по умолчанию 4);&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; любая строка, которая будет означать текст ошибки выполнения.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Выполнение каждого задания заключено в обработку &lt;a href=&quot;http://php.net/manual/ru/language.exceptions.php&quot; class=&quot;urlextern&quot; title=&quot;http://php.net/manual/ru/language.exceptions.php&quot; rel=&quot;ugc nofollow&quot;&gt;исключений&lt;/a&gt;, поэтому все возможные ошибки выполнения отслеживаются и в случае их наличия, будут записаны в задание.
&lt;/p&gt;

&lt;p&gt;
Пример реализации хука можно посмотреть &lt;a href=&quot;https://github.com/instantsoft/icms2/blob/master/system/controllers/messages/hooks/queue_send_email.php&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/instantsoft/icms2/blob/master/system/controllers/messages/hooks/queue_send_email.php&quot; rel=&quot;ugc nofollow&quot;&gt;здесь&lt;/a&gt; или &lt;a href=&quot;https://github.com/instantsoft/icms2/blob/master/system/controllers/subscriptions/hooks/send_letters.php&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/instantsoft/icms2/blob/master/system/controllers/subscriptions/hooks/send_letters.php&quot; rel=&quot;ugc nofollow&quot;&gt;здесь&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0447\u0435\u0440\u0435\u0434\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430-\u043e\u0447\u0435\u0440\u0435\u0434\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;4269-6080&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;интеграция-списка-заданий-очереди-в-админке&quot;&gt;Интеграция списка заданий очереди в админке&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Для удобной интеграции списка очереди, используемой в контроллере, необходимо в контроллере админки объявить следующее свойство (на примере контроллера подписок):
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$queue&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;
    &lt;span class=&quot;st_h&quot;&gt;'queues'&lt;/span&gt;           &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'subscriptions'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// имена очередей, используемых в контроллере&lt;/span&gt;
    &lt;span class=&quot;st_h&quot;&gt;'queue_name'&lt;/span&gt;       &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; LANG_SBSCR_QUEUE_NAME&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;// общее название этих очередей&lt;/span&gt;
    &lt;span class=&quot;st_h&quot;&gt;'use_queue_action'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;                    &lt;span class=&quot;co1&quot;&gt;// флаг, разрешающий добавить раздел очередей в админку компонента&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Для заданий очереди будут доступны действия удаления и перезапуска.
&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;
&lt;a href=&quot;https://docs.instantcms.ru/dev/integration&quot; class=&quot;wikilink1&quot; title=&quot;dev:integration&quot; data-wiki-id=&quot;dev:integration&quot;&gt;К оглавлению раздела &amp;quot;Интеграция&amp;quot;&lt;/a&gt;
&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;
&lt;a href=&quot;https://docs.instantcms.ru/dev/start&quot; class=&quot;wikilink1&quot; title=&quot;dev:start&quot; data-wiki-id=&quot;dev:start&quot;&gt;К оглавлению документации для разработчиков&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f-\u0441\u043f\u0438\u0441\u043a\u0430-\u0437\u0430\u0434\u0430\u043d\u0438\u0439-\u043e\u0447\u0435\u0440\u0435\u0434\u0438-\u0432-\u0430\u0434\u043c\u0438\u043d\u043a\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;6081-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="https://docs.instantcms.ru/dev/integration/rss?rev=1537169328">
        <dc:format>text/html</dc:format>
        <dc:date>2018-09-17T07:28:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Интеграция ленты RSS для своего компонента</title>
        <link>https://docs.instantcms.ru/dev/integration/rss?rev=1537169328</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;интеграция-ленты-rss-для-своего-компонента&quot;&gt;Интеграция ленты RSS для своего компонента&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В комплекте InstantCMS есть компонент «&lt;a href=&quot;https://docs.instantcms.ru/manual/components/rss&quot; class=&quot;wikilink1&quot; title=&quot;manual:components:rss&quot; data-wiki-id=&quot;manual:components:rss&quot;&gt;Генератор RSS&lt;/a&gt;», выполняющий генерацию RSS лент на сайте. Архитектура построена таким образом, что позволяет генерировать ленты RSS для любого компонента. Интеграция заключается в:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создание записи в таблице &lt;code&gt;cms_rss_feeds&lt;/code&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создании хука &lt;code&gt;rss_feed_list&lt;/code&gt; для получения из него данных;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; При необходимости, дополнить настройки RSS ленты (её форму) также посредством хуков.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043b\u0435\u043d\u0442\u044b RSS \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f-\u043b\u0435\u043d\u0442\u044b-rss-\u0434\u043b\u044f-\u0441\u0432\u043e\u0435\u0433\u043e-\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-833&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;создание-записи-в-таблице&quot;&gt;Создание записи в таблице&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Если вы делаете компонент, который впоследствии оформите в пакет дополнения, то создание записи в таблице &lt;code&gt;rss_feed_list&lt;/code&gt; необходимо делать в установщике пакета.
&lt;/p&gt;

&lt;p&gt;
Типичный SQL запрос на добавление записи выглядит так (на примере компонента «Комментарии»):
&lt;/p&gt;
&lt;pre class=&quot;code sql&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;INSERT&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;INTO&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;`cms_rss_feeds`&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;`ctype_name`&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;`title`&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;`mapping`&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;`is_enabled`&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;VALUES&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;'comments'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;'Комментарии'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;'---&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;title: target_title&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;description: content_html&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;pubDate: date_pub&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;

&lt;p&gt;
В поле mapping вы должны в YAML формате указать соответствия полей используемых в самой RSS ленте с полями в вашей записи:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Поле title (в примере выше title соответствует полю target_title в таблице комментариев);&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Поле description (в примере выше поле description соответствует полю content_html в таблице комментариев);&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Поле pubDate (в примере выше поле pubDate соответствует полю date_pub в таблице комментарие).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Удобнее всего сделать это в массиве, который потом преобразовать в YAML.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435-\u0437\u0430\u043f\u0438\u0441\u0438-\u0432-\u0442\u0430\u0431\u043b\u0438\u0446\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;834-2391&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;создание-хука&quot;&gt;Создание хука&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Для того, чтобы получить данные для RSS ленты вашего компонента, необходимо &lt;a href=&quot;https://docs.instantcms.ru/dev/controllers/hooks&quot; class=&quot;wikilink1&quot; title=&quot;dev:controllers:hooks&quot; data-wiki-id=&quot;dev:controllers:hooks&quot;&gt;создать хук&lt;/a&gt; с названием &lt;code&gt;cms_rss_feeds&lt;/code&gt;. Обратите внимание, для этого хука &lt;strong&gt;не нужно&lt;/strong&gt; создавать запись в &lt;a href=&quot;https://docs.instantcms.ru/dev/controllers/hooks#манифест&quot; class=&quot;wikilink1&quot; title=&quot;dev:controllers:hooks&quot; data-wiki-id=&quot;dev:controllers:hooks&quot;&gt;файле manifest.php&lt;/a&gt; вашего компонента. Хук вызывается напрямую, в контексте вашего контроллера. Объект $this→request внутри хука будет также в &lt;a href=&quot;https://docs.instantcms.ru/dev/controllers/request&quot; class=&quot;wikilink1&quot; title=&quot;dev:controllers:request&quot; data-wiki-id=&quot;dev:controllers:request&quot;&gt;контексте текущего запроса, тип запроса - стандартный&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
В хук передаётся один параметр &lt;code&gt;$feed&lt;/code&gt;, это массив данных ленты, полученный из базы данных.
&lt;/p&gt;

&lt;p&gt;
Возвращать хук должен массив массивов &lt;code&gt;array($feed, $category, $author)&lt;/code&gt;. Где, &lt;code&gt;$feed&lt;/code&gt; - переданный массив ленты в хук, &lt;code&gt;$category&lt;/code&gt; - массив категории, если необходимо, &lt;code&gt;$author&lt;/code&gt; - массив данных об авторе, если необходимо.
&lt;/p&gt;

&lt;p&gt;
Если массивы &lt;code&gt;$category&lt;/code&gt; и &lt;code&gt;$author&lt;/code&gt; в вашем компоненте не актуальны, то они должны быть переданы пустыми, иначе массивы должны содержать:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;$category&lt;/code&gt; - ячейку title с названием категории;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;$author&lt;/code&gt; - ячейку nickname с никнеймом пользователя.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;re0&quot;&gt;$category&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;
    &lt;span class=&quot;st_h&quot;&gt;'title'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'Название категории'&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$author&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;
    &lt;span class=&quot;st_h&quot;&gt;'nickname '&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'ЮзерНейм'&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Задача хука заполнить ячейку &lt;code&gt;$feed[&amp;#039;items&amp;#039;]&lt;/code&gt; списком данных ленты.
&lt;/p&gt;

&lt;p&gt;
Каждая запись в массиве $feed[&amp;#039;items&amp;#039;] должна содержать ячейки &lt;code&gt;target_title&lt;/code&gt; и &lt;code&gt;page_url&lt;/code&gt; с заголовком и абсолютным &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt; соответственно. Кроме этого, каждая запись должна содержать значения соответствий поля mapping, которые мы указывали в SQL запросе выше.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0445\u0443\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435-\u0445\u0443\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2392-4810&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;хуки-на-форму-rss-ленты-в-админке&quot;&gt;Хуки на форму RSS ленты в админке&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0425\u0443\u043a\u0438 \u043d\u0430 \u0444\u043e\u0440\u043c\u0443 RSS \u043b\u0435\u043d\u0442\u044b \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0445\u0443\u043a\u0438-\u043d\u0430-\u0444\u043e\u0440\u043c\u0443-rss-\u043b\u0435\u043d\u0442\u044b-\u0432-\u0430\u0434\u043c\u0438\u043d\u043a\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;4811-4881&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;формирование-url-на-ленту&quot;&gt;Формирование URL на ленту&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 URL \u043d\u0430 \u043b\u0435\u043d\u0442\u0443&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435-url-\u043d\u0430-\u043b\u0435\u043d\u0442\u0443&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;4882-4939&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;шаблон-rss-ленты&quot;&gt;Шаблон RSS ленты&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;hr /&gt;

&lt;p&gt;
&lt;a href=&quot;https://docs.instantcms.ru/dev/integration&quot; class=&quot;wikilink1&quot; title=&quot;dev:integration&quot; data-wiki-id=&quot;dev:integration&quot;&gt;К оглавлению раздела &amp;quot;Интеграция&amp;quot;&lt;/a&gt;
&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;
&lt;a href=&quot;https://docs.instantcms.ru/dev/start&quot; class=&quot;wikilink1&quot; title=&quot;dev:start&quot; data-wiki-id=&quot;dev:start&quot;&gt;К оглавлению документации для разработчиков&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0431\u043b\u043e\u043d RSS \u043b\u0435\u043d\u0442\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0431\u043b\u043e\u043d-rss-\u043b\u0435\u043d\u0442\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;4940-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="https://docs.instantcms.ru/dev/integration/search?rev=1524463705">
        <dc:format>text/html</dc:format>
        <dc:date>2018-04-23T06:08:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Интеграция полнотекстового поиска</title>
        <link>https://docs.instantcms.ru/dev/integration/search?rev=1524463705</link>
        <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;интеграция-полнотекстового-поиска&quot;&gt;Интеграция полнотекстового поиска&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В комплекте InstantCMS есть компонент «Поиск», позволяющий искать нужные страницы на сайте. Архитектура компонента построена таким образом, что позволяет подключить к поиску любые компоненты движка.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f-\u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e-\u043f\u043e\u0438\u0441\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-438&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;подключение-хука&quot;&gt;Подключение хука&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Подключение вашего компонента сводится к &lt;a href=&quot;https://docs.instantcms.ru/dev/controllers/hooks#параллельная-схема&quot; class=&quot;wikilink1&quot; title=&quot;dev:controllers:hooks&quot; data-wiki-id=&quot;dev:controllers:hooks&quot;&gt;созданию хука, который работает по параллельной схеме&lt;/a&gt; с именем &lt;strong&gt;fulltext_search&lt;/strong&gt;.
Обратите внимание, что производится &lt;a href=&quot;http://www.mysql.ru/docs/man/Fulltext_Search.html&quot; class=&quot;urlextern&quot; title=&quot;http://www.mysql.ru/docs/man/Fulltext_Search.html&quot; rel=&quot;ugc nofollow&quot;&gt;полнотекстовый поиск MySQL&lt;/a&gt;. Ваша таблица должна иметь соответствующий индекс типа FULLTEXT (если поиск по нескольким ячейкам, то индекс должен быть составной). Движок таблицы должен быть MyISAM (допускается InnoDB, если ваша версия MySQL поддерживает полнотекстовые индексы InnoDB).
&lt;/p&gt;

&lt;p&gt;
В хук не передаётся параметров. Возвратить хук должен массив с такими ячейками (все обязательные):
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;
    &lt;span class=&quot;st_h&quot;&gt;'name'&lt;/span&gt;          &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;st_h&quot;&gt;'sources'&lt;/span&gt;       &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$sources&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;st_h&quot;&gt;'table_names'&lt;/span&gt;   &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$table_names&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;st_h&quot;&gt;'match_fields'&lt;/span&gt;  &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$match_fields&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;st_h&quot;&gt;'select_fields'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$select_fields&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;st_h&quot;&gt;'filters'&lt;/span&gt;       &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$filters&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;st_h&quot;&gt;'item_callback'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$item&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$model&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$sources_name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$match_fields&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$select_fields&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array_merge&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array_merge&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$item&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;
            &lt;span class=&quot;st_h&quot;&gt;'url'&lt;/span&gt;      &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; href_to&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$sources_name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$item&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'slug'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'.html'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;st_h&quot;&gt;'title'&lt;/span&gt;    &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$item&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'title'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;st_h&quot;&gt;'fields'&lt;/span&gt;   &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;st_h&quot;&gt;'date_pub'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$item&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'date_pub'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;st_h&quot;&gt;'image'&lt;/span&gt;    &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;''&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0445\u0443\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435-\u0445\u0443\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;439-2180&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;расшифровка-ячеек-ответа&quot;&gt;Расшифровка ячеек ответа&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit4&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt; Название &lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; Описание &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;name&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Название контроллера, например guestbook. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;sources&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Массив обрабатываемых &lt;strong&gt;целей&lt;/strong&gt;, например &lt;code&gt;array(&amp;#039;guestbook&amp;#039; ⇒ &amp;#039;Гостевая книга&amp;#039;)&lt;/code&gt;. Название &lt;strong&gt;цели&lt;/strong&gt; может совпадать с названием контроллера. Целей может быть несколько. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;table_names&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Массив таблиц, из которых выбирать данные. Ключом массива должно быть название цели. Для каждой цели указывается своя таблица, например &lt;code&gt;array(&amp;#039;guestbook&amp;#039; ⇒ &amp;#039;guestbooks&amp;#039;)&lt;/code&gt; (таблица &lt;code&gt;cms_guestbooks&lt;/code&gt;). &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;match_fields&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Массив, ключом которого является название цели, а значением массив полей, которые участвуют непосредственно в полнотекстовой выборке в операторе MATCH. Например, &lt;code&gt;array(&amp;#039;guestbook&amp;#039; ⇒ array(&amp;#039;title&amp;#039;, &amp;#039;description&amp;#039;))&lt;/code&gt;. Для каждой цели можно указать свой набор полей. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;select_fields&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Массив, ключом которого является название цели, а значением массив полей, которые нужно выбрать из таблицы. Например, &lt;code&gt;array(&amp;#039;guestbook&amp;#039; ⇒ array(&amp;#039;id&amp;#039;, &amp;#039;slug&amp;#039;, &amp;#039;title&amp;#039;, &amp;#039;description&amp;#039;))&lt;/code&gt;. Для каждой цели можно указать свой набор полей. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;filters&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; Массив, ключом которого является название цели, а значением массив условий и полей для фильтрации. Например, &lt;code&gt;array(&amp;#039;guestbook&amp;#039; ⇒ array(array(&amp;#039;condition&amp;#039; ⇒ &amp;#039;=&amp;#039;,&amp;#039;value&amp;#039; ⇒ 1,&amp;#039;field&amp;#039; ⇒ &amp;#039;is_pub&amp;#039;)))&lt;/code&gt;. В этом случае будет происходить фильтрация по полю &lt;code&gt;is_pub&lt;/code&gt;, которое должно быть равным 1.  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;item_callbackck&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;http://php.net/manual/ru/functions.anonymous.php&quot; class=&quot;urlextern&quot; title=&quot;http://php.net/manual/ru/functions.anonymous.php&quot; rel=&quot;ugc nofollow&quot;&gt;Анонимная функция&lt;/a&gt;, которая обрабатывает ответ из базы данных. В ней доступны переменные: $item - массив записи с полями, которые мы запросили в ячейке &lt;strong&gt;select_fields&lt;/strong&gt;, $model - объект модели класса modelSearch, $sources_name - название цели, например &lt;code&gt;guestbook&lt;/code&gt; (полезно для формирования url записей), $match_fields и $select_fields в которых содержится массив соответствующих полей, которые мы указали выше. Возвращать эта функция должна несколько &lt;em class=&quot;u&quot;&gt;обязательных ячеек&lt;/em&gt;: &lt;strong&gt;url&lt;/strong&gt; сформированная ссылка на страницу просмотра искомой записи, &lt;strong&gt;title&lt;/strong&gt; - название найденной записи, &lt;strong&gt;date_pub&lt;/strong&gt; - дата записи (без форматирования), &lt;strong&gt;image&lt;/strong&gt; &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; код изображения, если таковое есть. Остальные ячейки не являются обязательными, поэтому при ответе практичнее будет результирующий массив сливать с массивом обязательных ячеек, как показано в PHP коде выше. &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;2239-5854&amp;quot;} --&gt;
&lt;p&gt;
Примеры уже готовых хуков вы можете посмотреть в файлах &lt;code&gt;/system/controllers/content/hooks/fulltext_search.php&lt;/code&gt; (реализация полнотекстового поиска в компоненте «Контент») и  &lt;code&gt;/system/controllers/photos/hooks/fulltext_search.php&lt;/code&gt; (полнотекстовый поиск по фотографиям).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u044f\u0447\u0435\u0435\u043a \u043e\u0442\u0432\u0435\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430-\u044f\u0447\u0435\u0435\u043a-\u043e\u0442\u0432\u0435\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2181-6257&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;свой-шаблон-вывода-результатов-для-цели&quot;&gt;Свой шаблон вывода результатов для цели&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
По-умолчанию, движок для вывода результатов поиска использует шаблон &lt;code&gt;/templates/default/controllers/search/index.tpl.php&lt;/code&gt;. Однако, для нужной цели вы можете создать свой шаблон с названием по принципу index_НАЗВАНИЕ_ЦЕЛИ.tpl.php. Например, шаблон &lt;code&gt;/templates/default/controllers/search/index_photos.tpl.php&lt;/code&gt; обрабатывает результаты поиска по фотографиям. Шаблон &lt;code&gt;/templates/default/controllers/search/index_guestbook.tpl.php&lt;/code&gt; будет обслуживать результаты поиска по компоненту «Гостевая книга» и так далее.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0432\u043e\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u0432\u044b\u0432\u043e\u0434\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0434\u043b\u044f \u0446\u0435\u043b\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0432\u043e\u0439-\u0448\u0430\u0431\u043b\u043e\u043d-\u0432\u044b\u0432\u043e\u0434\u0430-\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432-\u0434\u043b\u044f-\u0446\u0435\u043b\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;6258-7120&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;хуки-обработки-данных-поиска&quot;&gt;Хуки обработки данных поиска&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Помимо описанного выше, после выполнения основного хука, компонент «Поиск» обрабатывает следующие хуки:
&lt;/p&gt;
&lt;div class=&quot;table sectionedit7&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt; Название &lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; Описание &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;search_CONTROLLER_NAME_data&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; CONTROLLER_NAME - название контроллера, например guestbook (название хука будет search_guestbook_data). Обрабатывает каждый ответ контроллеров основного хука &lt;strong&gt;fulltext_search&lt;/strong&gt;. В него передаётся то, что вернул заданный контроллер. Полезно использовать для дополнительной фильтрации/дополнения полей в выборку или для иных действий. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;content_TARGET_NAME_search_list&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; TARGET_NAME - название цели, например guestbook (название хука будет content_guestbook_search_list). Обрабатывает результирующий массив данных ответа от поиска. &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;7380-8306&amp;quot;} --&gt;&lt;hr /&gt;

&lt;p&gt;
&lt;a href=&quot;https://docs.instantcms.ru/dev/integration&quot; class=&quot;wikilink1&quot; title=&quot;dev:integration&quot; data-wiki-id=&quot;dev:integration&quot;&gt;К оглавлению раздела &amp;quot;Интеграция&amp;quot;&lt;/a&gt;
&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;
&lt;a href=&quot;https://docs.instantcms.ru/dev/start&quot; class=&quot;wikilink1&quot; title=&quot;dev:start&quot; data-wiki-id=&quot;dev:start&quot;&gt;К оглавлению документации для разработчиков&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0425\u0443\u043a\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0438\u0441\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0445\u0443\u043a\u0438-\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438-\u0434\u0430\u043d\u043d\u044b\u0445-\u043f\u043e\u0438\u0441\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;7121-&amp;quot;} --&gt;</description>
    </item>
</rdf:RDF>
