В недавних обновлениях добавили обработчик OnCustomXmlCategory, который позволяет добавлять собственные атрибуты в тег <category>.
Рассмотрим добавление своего атрибута picture для вывода изображения картинки категории.
Прежде всего, необходимо в настройках профиля в XML категории добавить новый атрибут:
<category id="#ID#" parentId="#PARENT_ID#" picture="#PICTURE#">#NAME#</category>
Далее, необходимо добавить обработчик на сайте:
# В произвольном XML добавить свои атрибуты в <category> # Пример: #NAME#
addEventHandler('acrit.exportproplus', 'OnCustomXmlCategory', function($plugin, $sectionId, $category, &$replace){
# Задаём «заготовку» для значения, это обязательно чтобы при пустых значениях в XML не осталось #PICTURE#
$replace['#PICTURE#'] = null;
# Задаём ID профилей, для которых необходимо категориям добавить вывод картинок
$profilesId = [4];
if($profile = $plugin->getProfileArray()){
if(in_array($profile['ID'], $profilesId)){
$profile = $plugin->getProfileArray();
# Ищем текущий раздел по его ID ($sectionId)
if($section = \CIBlockSection::getList([], ['ID' => $sectionId], false, ['ID','PICTURE'])->fetch()){
if($section['PICTURE']){
# Определяем относительный путь к картинке
$replace['#PICTURE#'] = \Acrit\Core\Helper::siteUrl($profile['DOMAIN'], $profile['IS_HTTPS'] == 'Y', \CFile::getPath($section['PICTURE']));
}
}
}
}
});
В обработчике необходимо подкорректировать ID нужных профилей, чтобы обработчик действовал только для них (в примере это профили 12, 15 и 23).
Возврат к списку