Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Проблема с CFile::GetByID

00 голосов
2
Здравствуйте, возникла проблема с CFile::GetByID. Имеется доп. свойство элементов инфоблока типа "Файл" с кодом "LOGO". Добавляем изображение 25х30px формата .jpg

В результате содержимое $arItem['PROPERTIES']['LOGO']



Код
Array
(
    [ID] => 3
    [TIMESTAMP_X] => 2012-06-18 22:05:52
    [IBLOCK_ID] => 2
    [NAME] => Логотип
    [ACTIVE] => Y
    [SORT] => 500
    [CODE] => LOGO
    [DEFAULT_VALUE] => 
    [PROPERTY_TYPE] => F
    [ROW_COUNT] => 1
    [COL_COUNT] => 30
    [LIST_TYPE] => L
    [MULTIPLE] => N
    [XML_ID] => 
    [FILE_TYPE] => jpg, gif, bmp, png, jpeg
    [MULTIPLE_CNT] => 5
    [TMP_ID] => 
    [LINK_IBLOCK_ID] => 0
    [WITH_DESCRIPTION] => N
    [SEARCHABLE] => N
    [FILTRABLE] => N
    [IS_REQUIRED] => Y
    [VERSION] => 1
    [USER_TYPE] => 
    [USER_TYPE_SETTINGS] => 
    [HINT] => 
    [PROPERTY_VALUE_ID] => 4
    [VALUE] => 2
    [DESCRIPTION] => 
    [VALUE_ENUM] => 
    [VALUE_XML_ID] => 
    [~VALUE] => 2
    [~DESCRIPTION] => 
    [~NAME] => Логотип
    [~DEFAULT_VALUE] => 
)
далее пытаюсь получить массив с описанием файла через CFile::GetByID таким способом $arFile = CFile::GetByID($arItem['PROPERTIES']['LOGO']['VALUE'])->GetNext(); в $arFile содержится вот что:



Код
Array(
    [ID] => 2
    [~ID] => 2
    [TIMESTAMP_X] => 18.06.2012 22:46:19
    [~TIMESTAMP_X] => 18.06.2012 22:46:19
    [MODULE_ID] => iblock
    [~MODULE_ID] => iblock
    [HEIGHT] => 27
    [~HEIGHT] => 27
    [WIDTH] => 30
    [~WIDTH] => 30
    [FILE_SIZE] => 1726
    [~FILE_SIZE] => 1726
    [CONTENT_TYPE] => image/jpeg
    [~CONTENT_TYPE] => image/jpeg
    [SUBDIR] => iblock/721
    [~SUBDIR] => iblock/721
    [FILE_NAME] => evraz.jpg
    [~FILE_NAME] => evraz.jpg
    [ORIGINAL_NAME] => evraz.jpg
    [~ORIGINAL_NAME] => evraz.jpg
    [DESCRIPTION] => 
    [~DESCRIPTION] => 
    [HANDLER_ID] => 
    [~HANDLER_ID] => 
    [~src] => 
    [~~src] => 
)
Вопрос: Где src?
спросил 14 Апр, 14 от Limur (240 баллов)

2 Ответы

00 голосов
Используйте GetFileArray()

P.S.: попробуйте вызвать Fetch() вместо GetNext() в вашем примере
ответил 16 Ноя, 14 от Almarea (3,760 баллов)
00 голосов
Цитата
Дмитрий Яковенко пишет:
Используйте GetFileArray()

P.S.: попробуйте вызвать Fetch() вместо GetNext() в вашем примере
Спасибо Вам,  GetFileArray() помог.
Но это явно проблема битрикса, полез дебажить модули. Дошёл пока что до того, что метод GetByID класса CAllFile уже возвращает массив без SRC, проблема где то в методе GetFromCache. Если быть точнее где то здесь, потому что дальше $ar уже без SRC.


Дальше разбираться лень smile:)
Код
foreach(GetModuleEvents("main", "OnGetFileSRC", true) as $arEvent)
            {
               $ar["~src"] = ExecuteModuleEventEx($arEvent, array($ar));
               if($ar["~src"])
                  break;
            }
 





Разработчики, прошу обратить внимание на проблему.

p.s.
С ->Fetch() тоже самое кстати.


p.p.s.
Комменты в коде жгут smile:D
ответил 13 Март, 15 от Limur (240 баллов)

Похожие вопросы

0 голосов
2 ответов
спросил 14 Янв, 13 от Siemka (1,020 баллов)
0 голосов
3 ответов
спросил 19 Март, 14 от Snezhka (2,240 баллов)
0 голосов
7 ответов
спросил 31 Авг, 13 от Nastygrl (120 баллов)
0 голосов
3 ответов
спросил 21 Июль, 13 от Kania (5,180 баллов)