Благодаря возможностям модуля поиск индексирование происходит не только по тексту, но и по тегам.
Для начала в панели управления для статей блога создадим несколько тегов. Потом переходим на сайт, на тестовую страницу, и вызываем визуальный редактор. Нам надо получить код вызова компонента «Облако тегов», который находится в Служебные -> Поиск. В настройках изменяем количество тегов, сортировку (по имени или релевантности) и выбираем область поиска: тип инфоблока и сам инфоблок (который был создан в панели управления под публикации статей блога) - см. картинка к посту.
Копируем код вызова компонента и закрываем редактор без сохранения:
$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; ?>