Антон Долганин веб-разработчик +7 (962) 255-86-13 Написать сообщение

Кросслинкер

Сразу хочу отметить, что у модуля нет визуальной публичной части, он предоставляет лишь механизмы. Еще момент, что данная статья для разработчика, где я описал максимально все подробно, и более детальных комментариев по настройке не даю.

После установки модуля, пройдите в настройки и укажите какие инфоблоки должны участвовать в парсинге. 

После этого вам необходимо пройти в раздел шаблонов кросс-сылок (Настройки продукта / Шаблоны кросс-сылок) и внести необходимые шаблоны.

Остановимся поподробнее на последнем. Допустим, у вас есть каталог статей, у которых детальная ссылка имеет вид 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']);
}
?>

Разберем подробнее строчки кода:

  1. Подключение модуля.
  2. Получение ID-ков ссылок для текущего элемента. Возвращает сразу как ссылки "от", так и ссылки "на". В примере код задан явно (19856), вам же надо указать динамический ID. Какой он, это зависит от реализации вашего каталога. Например, данный код вы можете (и нужно) вставить в шаблон компонента вывода основной статьи, и вот там уже у вас есть необходимая переменная. Подробнее этот момент рассматривать не буду.
  3. Если мы хотим вывести элементы, НА которые ссылается данный, то оставляем данную строчку...
  4. ... а иначе четвертую.

Подчеркну, 3 и 4 строчки взаимоисключающие и вам надо оставить только одну. Но вы можете вывести два компонента, в один передать первый фильтр, а во второй другой. На скрине со ссылками именно такой механизм и используется.