Кросслинкер
Сразу хочу отметить, что у модуля нет визуальной публичной части, он предоставляет лишь механизмы. Еще момент, что данная статья для разработчика, где я описал максимально все подробно, и более детальных комментариев по настройке не даю.
После установки модуля, пройдите в настройки и укажите какие инфоблоки должны участвовать в парсинге.
После этого вам необходимо пройти в раздел шаблонов кросс-сылок (Настройки продукта / Шаблоны кросс-сылок) и внести необходимые шаблоны.
Остановимся поподробнее на последнем. Допустим, у вас есть каталог статей, у которых детальная ссылка имеет вид http://site.ru/public/12345/. Тогда шаблон должен будет выглядеть как /public/([\d]+)/{0,1}. Это регулярное выражение, которое передается php-функции preg_match_all, подробнее о которой вы можете прочитать в документации.
И так далее, добавляете столько шаблонов, сколько у вас есть форматов статей (ссылок на них). Вы можете добавлять шаблоны для разных каталогов, и разных сайтов, главное укажите инфоблок в настройках.
В дальнейшем планируется добавить форумы и блоги для пролинковки.
Модуль генерирует кросс-линки, которые позволяют вывести информацию таким образом:
Но каким образом сделать вывод? Тут нам поможет любой подходящий компонент для работы с инфоблоками. Давайте попробуем вывести ссылки на примере компонента bitrix:news.list.
Кидаете его на страницу, указываете нужный инфоблок (или несколько), настраиваете как вам угодно остальное. В поле фильтр указываете arrFilter.
Затем, перед выводом компонента (в коде страницы) ставите следующий код:
Код (прочитайте ниже внимательно, код не просто для вставки):
<?
if (CModule::IncludeModule('asd.crosslink')) {
$arIDs = CASDcrosslink::GetLinks(19856);
$GLOBALS['arrFilter'] = array('ID' => $arIDs['TO']);
$GLOBALS['arrFilter'] = array('ID' => $arIDs['FROM']);
}
?>
Разберем подробнее строчки кода:
- Подключение модуля.
- Получение ID-ков ссылок для текущего элемента. Возвращает сразу как ссылки "от", так и ссылки "на". В примере код задан явно (19856), вам же надо указать динамический ID. Какой он, это зависит от реализации вашего каталога. Например, данный код вы можете (и нужно) вставить в шаблон компонента вывода основной статьи, и вот там уже у вас есть необходимая переменная. Подробнее этот момент рассматривать не буду.
- Если мы хотим вывести элементы, НА которые ссылается данный, то оставляем данную строчку...
- ... а иначе четвертую.
Подчеркну, 3 и 4 строчки взаимоисключающие и вам надо оставить только одну. Но вы можете вывести два компонента, в один передать первый фильтр, а во второй другой. На скрине со ссылками именно такой механизм и используется.