Задать вопрос
FlexStat
@FlexStat

Как вывести свойство инфоблока в шаблоне bitrix:catalog.section.list?

Что-то я перелопатил все, никак не могу понять как это реализовать.
Создал в для элементов в инфоблоке новое свойство (тип файл):

6140d562dc300225497090.png

Перехожу в элемент, вижу, что свойство активное, загружаю файл:

6140d58318f91629018804.png

Далее подключаю его в Параметрах компонента:

6140d59cebcb4293802206.png

после этого иду в шаблон, проверяю переменную arResult и вижу, что там свойство не завелось:

Array
(
    [SECTIONS] => Array
        (
            [0] => Array
                (
                    [ID] => 1
                    [~ID] => 1
                    [NAME] => Товарные знаки
                    [~NAME] => Товарные знаки
                    [DESCRIPTION] => Представлены основные товарные знаки, которыми владеет компания 
                    [~DESCRIPTION] => Представлены основные товарные знаки, которыми владеет компания 
                    [LEFT_MARGIN] => 1
                    [~LEFT_MARGIN] => 1
                    [RIGHT_MARGIN] => 2
                    [~RIGHT_MARGIN] => 2
                    [DEPTH_LEVEL] => 1
                    [~DEPTH_LEVEL] => 1
                    [IBLOCK_ID] => 2
                    [~IBLOCK_ID] => 2
                    [IBLOCK_SECTION_ID] => 
                    [~IBLOCK_SECTION_ID] => 
                    [LIST_PAGE_URL] => /documents/index.php?ID=2
                    [~LIST_PAGE_URL] => /documents/index.php?ID=2
                    [SECTION_PAGE_URL] => /documents/list.php?SECTION_ID=1
                    [~SECTION_PAGE_URL] => /documents/list.php?SECTION_ID=1
                    [DESCRIPTION_TYPE] => html
                    [~DESCRIPTION_TYPE] => html
                    [CODE] => trade-marks
                    [~CODE] => trade-marks
                    [EXTERNAL_ID] => 81
                    [~EXTERNAL_ID] => 81
                    [IBLOCK_TYPE_ID] => redcode_mcorporate
                    [~IBLOCK_TYPE_ID] => redcode_mcorporate
                    [IBLOCK_CODE] => documents_s1
                    [~IBLOCK_CODE] => documents_s1
                    [IBLOCK_EXTERNAL_ID] => redcode_mcorporate_5
                    [~IBLOCK_EXTERNAL_ID] => redcode_mcorporate_5
                    [GLOBAL_ACTIVE] => Y
                    [~GLOBAL_ACTIVE] => Y
                    [RELATIVE_DEPTH_LEVEL] => 1
                    [EDIT_LINK] => /bitrix/admin/iblock_section_edit.php?IBLOCK_ID=2&type=redcode_mcorporate&ID=1&lang=ru&force_catalog=&filter_section=1&bxpublic=Y&from_module=iblock&return_url=%2Fcompany%2Fdocuments%2F%3Fbitrix_include_areas%3DY%26clear_cache%3DY
                    [DELETE_LINK] => /bitrix/admin/iblock_section_admin.php?IBLOCK_ID=2&type=redcode_mcorporate&lang=ru&action=delete&ID[]=1&return_url=%2Fcompany%2Fdocuments%2F%3Fbitrix_include_areas%3DY%26clear_cache%3DY
                    [~ELEMENT_CNT] => 
                    [ELEMENT_CNT] => 
                    [IPROPERTY_VALUES] => Array
                        (
                        )

                    [ELEMENTS] => Array
                        (
                            [0] => Array
                                (
                                    [IBLOCK_ID] => 2
                                    [ID] => 8
                                    [NAME] => Свидетельство на товарный знак 
                                    [PREVIEW_TEXT] => 
                                    [PREVIEW_PICTURE] => /upload/iblock/919/9193a2c53b822f27a18b126018468b74.jpg
                                    [SORT] => 100
                                    [PREVIEW_TEXT_TYPE] => text
                                    [EDIT_LINK] => /bitrix/admin/iblock_element_edit.php?IBLOCK_ID=2&type=redcode_mcorporate&ID=8&lang=ru&force_catalog=&filter_section=1&bxpublic=Y&from_module=iblock&return_url=%2Fcompany%2Fdocuments%2F%3Fbitrix_include_areas%3DY%26clear_cache%3DY
                                    [DELETE_LINK] => /bitrix/admin/iblock_element_edit.php?IBLOCK_ID=2&type=redcode_mcorporate&lang=ru&force_catalog=&filter_section=1&IBLOCK_SECTION_ID=1&bxpublic=Y&from_module=iblock&return_url=%2Fcompany%2Fdocuments%2F%3Fbitrix_include_areas%3DY%26clear_cache%3DY
                                )

                            [1] => Array
                                (
                                    [IBLOCK_ID] => 2
                                    [ID] => 9
                                    [NAME] => Свидетельство на товарный знак 
                                    [PREVIEW_TEXT] => Свидетельство на товарный знак 
                                    [PREVIEW_PICTURE] => /upload/iblock/ed7/ed7a6f9e5b3109313e76f658d1420eef.jpg
                                    [SORT] => 200
                                    [PREVIEW_TEXT_TYPE] => text
                                    [EDIT_LINK] => /bitrix/admin/iblock_element_edit.php?IBLOCK_ID=2&type=redcode_mcorporate&ID=9&lang=ru&force_catalog=&filter_section=1&bxpublic=Y&from_module=iblock&return_url=%2Fcompany%2Fdocuments%2F%3Fbitrix_include_areas%3DY%26clear_cache%3DY
                                    [DELETE_LINK] => /bitrix/admin/iblock_element_edit.php?IBLOCK_ID=2&type=redcode_mcorporate&lang=ru&force_catalog=&filter_section=1&IBLOCK_SECTION_ID=1&bxpublic=Y&from_module=iblock&return_url=%2Fcompany%2Fdocuments%2F%3Fbitrix_include_areas%3DY%26clear_cache%3DY
                                )

                        )

                )


Помогите разобраться, как добавить свойство в массив arResult, через result_modifier.php
И как это дело вывести в шаблоне
  • Вопрос задан
  • 1900 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
FlexStat
@FlexStat Автор вопроса
В общем всем спасибо. В итоге сделали через свойства элемента.

Добавили в файл template:

$LINK = (!empty($arElement["DOCUMENTS"]) ? $arElement["DOCUMENTS"] : $arElement["PREVIEW_PICTURE"]);
				$DOWNLOAD_ATTRIBUTE = (!empty($arElement["DOCUMENTS"]) ? 'download="'.$arElement["NAME"].'"' : '');


<a href="<?=$LINK;?>" <?=$DOWNLOAD_ATTRIBUTE;?> class="fancybox" title="<?=$arElement["PREVIEW_TEXT"];?>" rel="document">


в result_modifier:

if(in_array("DOCUMENTS", $arSelect))
			$arItem["DOCUMENTS"] = CFile::GetPath($arItem["PROPERTY_DOCUMENTS_VALUE"]);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
scottparker
@scottparker
ты добавил свойство элемента инфоблока и хочешь получить его в разделе? глупо)
Ответ написан
@Yariy
Вы используете компонент "список разделов", где, соответственно, выводятся разделы инфоблока.
Соответственно, либо свойство должно быть задано у раздела, либо придется действовать в два этапа:

В result_modifier для каждого выводимого раздела получить список элементов (с свойствами, соответственно). В данном случае, в том, что вы показываете, элементы уже есть, но они без свойств. Нужно сложить все ID элементов в массив и вызвать GetList с фильтром по ID и выборкой нужного свойства
В шаблоне выводить элементы со свойствами для каждого раздела

Но! Как мне кажется, тут неверно выбран компонент, используйте bitrix:catalog.section для корневого раздела. Там в параметрах указать нужное свойство
Ответ написан
Ваш ответ на вопрос

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

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