Благодаря возможностям модуля поиск индексирование происходит не только по тексту, но и по тегам.
Для начала в панели управления для статей блога создадим несколько тегов. Потом переходим на сайт, на тестовую страницу, и вызываем визуальный редактор. Нам надо получить код вызова компонента «Облако тегов», который находится в Служебные -> Поиск. В настройках изменяем количество тегов, сортировку (по имени или релевантности) и выбираем область поиска: тип инфоблока и сам инфоблок (который был создан в панели управления под публикации статей блога) - см. картинка к посту.
Копируем код вызова компонента и закрываем редактор без сохранения:
$APPLICATION->IncludeComponent(
"bitrix:search.tags.cloud",
"",
array(
"CACHE_TIME" => "3600",
"CACHE_TYPE" => "A",
"CHECK_DATES" => "N",
"COLOR_NEW" => "3E74E6",
"COLOR_OLD" => "C0C0C0",
"COLOR_TYPE" => "Y",
"FILTER_NAME" => "",
"FONT_MAX" => "50",
"FONT_MIN" => "10",
"PAGE_ELEMENTS" => "10",
"PERIOD" => "",
"PERIOD_NEW_TAGS" => "",
"SHOW_CHAIN" => "Y",
"SORT" => "NAME",
"TAGS_INHERIT" => "Y",
"URL_SEARCH" => "/search/index.php",
"WIDTH" => "100%",
"arrFILTER" => array("iblock_content"), // область поиска: тип инфобока
"arrFILTER_iblock_content" => array("1") // область поиска: сам инфобок
)
);
В нужном месте вставляем вызов компонента, облако тегов уже работает. Даже можно посмотреть результат поиска по тегу, если была создана страница результатов поиска с использованием компонента Стандартная страница поиска.Осталось только скопировать шаблон компонента Облако тегов и изменить под наш дизайн.
Удаляем весь код из скопированного шаблона local/templates/название_сайта/components/bitrix/search.tags.cloud/tags/template.php и пишем свой код:
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); /** @var array $arParams */ /** @var array $arResult */ /** @global CMain $APPLICATION */ /** @global CUser $USER */ /** @global CDatabase $DB */ /** @var CBitrixComponentTemplate $this */ /** @var string $templateName */ /** @var string $templateFile */ /** @var string $templateFolder */ /** @var string $componentPath */ /** @var CBitrixComponent $component */ $this->setFrameMode(true); ?> <? if (is_array($arResult['SEARCH']) && !empty($arResult['SEARCH'])): ?> <div class="b-tag-weight"> <h3>Облако тегов</h3> <ul> <? foreach ($arResult['SEARCH'] as $arItem): ?> <li><a href="<?= $arItem['URL']; ?>"><?= $arItem['NAME']; ?></a></li> <? endforeach; ?> </ul> </div> <? endif; ?>
