Вывод свойств в шаблон компонента bitrix.catalog.element работающего в составе сложного компонента bitrix.catalog

Рейтинг: 0  
На голосовании
Предложил Пользователь 77725 15.02.2019 16:04:04

Вывод свойств в шаблон компонента bitrix.catalog.element работающего в составе сложного компонента bitrix.catalog

В настройках стандартного компонента bitrix.catalog есть раздел "Настройка детального просмотра".
Здесь можно выбрать поля свойств включенных массив $arResult['DISPLAY_PROPERTIES'], который выводится в шаблоне компонента bitrix.catalog.element.
Но это в теории, на практике если добавить свойство типа "файл", то В массиве $arResult['PROPERTIES'] оно есть,
в массиве $arResult['DISPLAY_PROPERTIES'] его уже нет! Вообще.
Так же не выодятся свойства типа 'строка' если они не заполнены. В этом конечно ничего страшного нет, но при кастомизации шаблона компонента напрягает.

Очень интересно ведет себя свойство типа файл с кодом "MORE_PHOTO". Оно выводится не в составе массива $arResult['DISPLAY_PROPERTIES'], а отдельно. А в качестве значения, при выводе в шаблон, ему присваивается ссылка на детальную картинку. Она же и выводится на сайте. То есть свое поле с кодом "MORE_PHOTO" работать не будет, так как тупо не выводится.

Общий вывод и предложения
1.В сложном компоненте настройка есть, результата нет!
Вы уж определитесь-либо настройки уберите, либо функционал доработайте.
Ведь после настройки ожидаешь стандартный результат.
2.Зачем испоьзовать нестандартные поля, там где есть стандартные. Например detail_picture, а "MORE_PHOTO" оставьте клиентам.

Рейтинг: 0  
Пользователь 44828 18.02.2019 10:15:26
на практике если добавить свойство типа "файл", то В массиве $arResult['PROPERTIES'] оно есть,
в массиве $arResult['DISPLAY_PROPERTIES'] его уже нет! Вообще.
все выводится(проверяйте настройки, возможно свойство пустое или не отмечено), вот с моего проекта
 [FOTO_ZAL] => Array
        (
            [ID] => 862
            [IBLOCK_ID] => 39
            [NAME] => Торговый зал
           ...
            [HINT] => Фотографии залов данного магазина
            [~NAME] => Торговый зал
           ...
            [VALUE] => Array
                (
                    [0] => 162578 - идентификаторы файлов
                    [1] => 162579
                    [2] => 162580
                    [3] => 162581
                    [4] => 162582
                    [5] => 162583
                )

         ...
[FILE_VALUE] => Array
                (
                    [0] => Array
                        (
                            [ID] => 162578
                            [TIMESTAMP_X] => 22.03.2017 16:37:09
                            [MODULE_ID] => iblock
                            [HEIGHT] => 801
                            [WIDTH] => 1199
                            [FILE_SIZE] => 240999
                            [CONTENT_TYPE] => image/jpeg
                            [SUBDIR] => iblock/cb6
                            [FILE_NAME] => kal1.jpg
                            [ORIGINAL_NAME] => кал1.jpg
                            [DESCRIPTION] => 
                            [HANDLER_ID] => 
                            [EXTERNAL_ID] => 4bdec844b30ceba280ec2b5f143840d3
                            [~src] => 
                            [SRC] => /upload/iblock/cb6/kal1.jpg
                        )

                    [1] => Array
....
                (


Очень интересно ведет себя свойство типа файл с кодом "MORE_PHOTO". Оно выводится не в составе массива $arResult['DISPLAY_PROPERTIES'], а отдельно.

Все верно, свойство с таким кодом забронировано для дополнительных изображений

Так же не выодятся свойства типа 'строка' если они не заполнены.
любое свойство если оно не заполнено в массив DISPLAY_PROPERTIES не попадет и это логично и правильно

Общий вывод и предложения
1.В сложном компоненте настройка есть, результата нет!
Вы уж определитесь-либо настройки уберите, либо функционал доработайте.
Ведь после настройки ожидаешь стандартный результат.
2.Зачем испоьзовать нестандартные поля, там где есть стандартные. Например detail_picture, а "MORE_PHOTO" оставьте клиентам.

Ваши выводы ошибочны. Вы не разобрались с битриксом(его настройками) просто.
Рейтинг: 0  
Пользователь 77725 20.02.2019 15:30:49
Проблему признают сотрудники компании.
https://dev.1c-bitrix.ru/community/webdev/user/166748/blog/12875/
Также я обращался в техподдержку и мне предложили доработать компонент самому.

А если где-то, что-то выводится значит кто-то поколдовал с файлом result_modifier.php шаблона компонента catalog.element
Рейтинг: 0  
Пользователь 44828 21.02.2019 09:50:32
У меня пара проектов, 17 версия битрикса.
если посмотреть в дефолтный шаблон /bitrix/components/bitrix/catalog.element/templates/.default/result_modifier.php
там всего пару строк
<? if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();

/**
* @var CBitrixComponentTemplate $this
* @var CatalogElementComponent $component
*/

$component = $this->getComponent();
$arParams = $component->applyTemplateModifications();

так что не уверен что кто-то что-то удалял
Рейтинг: 0  
Пользователь 77725 21.02.2019 10:12:25
Я работаю с последней 18 версией
Мой файл result_modifier.php тоже был аналогичного содержания

Очень интересно как у Вас это решено. Может есть папка local, в ней доработанный компонент catalog.element?