@strangerfrompast

Как добавить картинки в меню Bitrix?

Очень много информации есть по данному вопросу, но устаревшей. Суть ниже
Нужно в меню каталога интернет-магазина, которое формируется из файла ext.php добавить картинки, которые я задаю для каждой категории в админке через инфоблок каталога

Код моего меню ext.php
<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
global $APPLICATION;
   $aMenuLinksExt = $APPLICATION->IncludeComponent("bitrix:menu.sections", "", 
	array(
		"IS_SEF" => "Y",
		"SEF_BASE_URL" => "/catalog/",
		"SECTION_PAGE_URL" => "#SECTION_CODE#/",
		"DETAIL_PAGE_URL" => "#SECTION_CODE#/#ELEMENT_CODE#",
		"IBLOCK_TYPE" => "1c_catalog",
		"IBLOCK_ID" => "5",
		"DEPTH_LEVEL" => "3",
		"CACHE_TYPE" => "A",
		"CACHE_TIME" => "3600",
	),
	false
);
$aMenuLinks = array_merge($aMenuLinks, $aMenuLinksExt);
?>

Я находил на форумах как сделать вывод, через добавления в component.php компонента menu.sections параметр PICTURE в 3 (или 4 местах)

Однако проблема возникает на моменте, где сказано, что в Bitrix:menu/темаМеню/template.php
нужно вставить ПОСЛЕ foreach($arResult as $arItem): код:

$strImg = '';
 
if(intval($arItem["PARAMS"]["PICTURE"])>0 && $arItem["DEPTH_LEVEL"]==1){
   $img = CFile::ResizeImageGet($arItem["PARAMS"]["PICTURE"], array('width'=>30, 'height'=>30),
 BX_RESIZE_IMAGE_PROPORTIONAL, false);  
   $strImg = '<img alt="" src="'.$img['src'].'" />';
 }


Однако в новых сборках битрикса нет даже намека на foreach($arResult as $arItem):

Поэтому ничего не работает. Может кто сталкивался с вопросом выведения картинок для меню каталога в компоненте catalog.sections ?
  • Вопрос задан
  • 1113 просмотров
Решения вопроса 1
alexyarik
@alexyarik
Битрикс разработчик
Все манипуляции по обработке данных и изменении (добавлении данных) результирующего массива меню нужно делать в файле result_modifier.php
https://dev.1c-bitrix.ru/learning/course/index.php...
https://dev.1c-bitrix.ru/learning/course/index.php...
Пример result_modifier.php по вашей задаче с картинками для каждой категории смотрите в шаблоне меню catalog_horizontal, там как раз есть решение вопросов с картинками и описанием категорий. Вы можете доработать, я помню дорабатывал картинки до 4-х уровней вложенности.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
1) component.php нельзя менять в системных компонентах битрикса
2) посмотрите что приходит в переменную $arResult в template.php и добавьте туда нужные данные
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы