Каждому, кто ковырялся в выходных массивах, формируемых компонентами и шаблонами битрикса известно, сколько полезной всячины из содержимого элемента можно оттуда извлечь. Все бы ничего, но порой необходимо добраться до прямых ссылок на файлы, а нам отдаются только идентификаторы.

Тут и приходится вспомнить о средствах для разработчика и богатом запутанном API CMS. В данном случае предлагается воспользоваться функцией CFile::GetPath, как раз и извлекающей прямые ссылки из скормленных ей идентификаторов.

В качестве примера - компактная фотогалерея, состоящая из одного элемента. В самом элементе (то есть в родительском инфоблоке) имеется множественное свойство типа Файл, куда подгружаются фотки и где очень удачно имеется поле для описания.

Перед выводом имеем следующий код:

<-?
foreach ($arResult[ELEMENTS_LIST][XX][PROPERTIES][MORE_PHOTO][VALUE] as $index=>$photo)
{
$File = CFile::GetPath($arResult[ELEMENTS_LIST][XX][PROPERTIES][MORE_PHOTO][VALUE][$index]);
$Description = ($arResult[ELEMENTS_LIST][XX][PROPERTIES][MORE_PHOTO][DESCRIPTION][$index]);
?->

Вместо XX следует поставить ID элемента, где хранятся фотки, в переменной $File окажется ссылка на фото, а в $Description - ее описание.
Я, конечно, очень крутой программист, перебирающий массив только ради ключей… но думаю, смысл понятен.

Как известно, горизонтальное многоуровневое меню битрикса представляет собой огромный кусок кода, который, несмотря на множество комментариев (в css) понять сходу удастся врядли. Все операции, что мне приходилось совершать, заключались лишь в настройке стилей, но всегда наступает момент, когда таки придется лезть в исходный код… Далее