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

Как правильно вывезти свойство через result_modifier?

Здравствуйте! в компоненте news.list делал вывод по разделам и вот получилось! но появилась другая проблема) почему то немогу вывезти обычное свойство строка, хотя в настройках компонента есть
Вывожу через <?=$ELEMENT["PRICE"]?>
а тут
$arLincs[$PSID]['CHILDS'][$SID]["ELEMENTS"][$arFields["ID"]]["PRICE"] = $arFields['PROPERTIES']['PRICE']['DISPLAY_VALUE'];

$arFields['PROPERTIES']['PRICE']['DISPLAY_VALUE'] прописывал разными способами и DISPLAY_PROPERTIES и ~VALUE и просто VALUE ничего не помогает

result_modifier.php
function getSectionList($filter, $select)
{
    $dbSection = CIBlockSection::GetList(
        Array(
            'LEFT_MARGIN' => 'ASC',
        ),
        array_merge(
            Array(
                'ACTIVE' => 'Y',
                'GLOBAL_ACTIVE' => 'Y'
            ),
            is_array($filter) ? $filter : Array()
        ),
        false,
        array_merge(
            Array(
                'ID',
                'IBLOCK_SECTION_ID'
            ),
            is_array($select) ? $select : Array()
        )
    );

    while( $arSection = $dbSection-> GetNext(true, false) ){
        $SID = $arSection['ID'];
        $PSID = (int) $arSection['IBLOCK_SECTION_ID'];

        $arLincs[$PSID]['CHILDS'][$SID] = $arSection;
        $res = CIBlockElement::GetList(array(), array("IBLOCK_ID"=>15, "IBLOCK_SECTION_ID" => $arSection['ID']), false, false, array());

        while($ob = $res->GetNextElement())
        {
            $arFields = $ob->GetFields();
            $arLincs[$PSID]['CHILDS'][$SID]["ELEMENTS"][$arFields["ID"]]["NAME"] = $arFields["NAME"];
            $arLincs[$PSID]['CHILDS'][$SID]["ELEMENTS"][$arFields["ID"]]["URL"] = $arFields["DETAIL_PAGE_URL"];
            $arLincs[$PSID]['CHILDS'][$SID]["ELEMENTS"][$arFields["ID"]]["PRICE"] = $arFields['PROPERTIES']['PRICE']['DISPLAY_VALUE'];
        }

        $arLincs[$SID] = &$arLincs[$PSID]['CHILDS'][$SID];
    }
    return array_shift($arLincs);
}

$arSections = getSectionList(
    Array(
        'IBLOCK_ID' => 15
    ),
    Array(
        'NAME',
        'SECTION_PAGE_URL'
    )
);

$arResult["TREE_ITEMS"] = $arSections["CHILDS"];


Делал так, но почему то непередается

while( $arSection = $dbSection-> GetNext(true, false) ){
        $SID = $arSection['ID'];
        $PSID = (int) $arSection['IBLOCK_SECTION_ID'];
        $arSelect = Array("ID", "IBLOCK_ID", "NAME","PROPERTY_*");//IBLOCK_ID и ID обязательно должны быть указаны, см. описание arSelectFields выше
        $arLincs[$PSID]['CHILDS'][$SID] = $arSection;
        $res = CIBlockElement::GetList(array(), array("IBLOCK_ID"=>15, "IBLOCK_SECTION_ID" => $arSection['ID']), false, false, $arSelect);

        while($ob = $res->GetNextElement())
        {
            $arFields = $ob->GetFields();
            $arLincs[$PSID]['CHILDS'][$SID]["ELEMENTS"][$arFields["ID"]]["NAME"] = $arFields["NAME"];
            $arLincs[$PSID]['CHILDS'][$SID]["ELEMENTS"][$arFields["ID"]]["URL"] = $arFields["DETAIL_PAGE_URL"];
            $arLincs[$PSID]['CHILDS'][$SID]["ELEMENTS"][$arFields["ID"]]["PRICE"] = $arFields['PROPERTIES']['PRICE']['VALUE'];
        }

        $arLincs[$SID] = &$arLincs[$PSID]['CHILDS'][$SID];
    }


UPD.
Вроде как начал выводить после таких
while( $arSection = $dbSection-> GetNext(true, false) ){
        $SID = $arSection['ID'];
        $PSID = (int) $arSection['IBLOCK_SECTION_ID'];
        $arSelect = Array("ID", "IBLOCK_ID", "NAME", "DETAIL_PAGE_URL", "PROPERTY_*");//IBLOCK_ID и ID обязательно должны быть указаны, см. описание arSelectFields выше
        $arLincs[$PSID]['CHILDS'][$SID] = $arSection;
        $res = CIBlockElement::GetList(array(), array("IBLOCK_ID"=>15, "IBLOCK_SECTION_ID" => $arSection['ID']), false, false, $arSelect);

        while($ob = $res->GetNextElement())
        {
            $arFields = $ob->GetFields();
			$arProps = $ob->GetProperties();

            $arLincs[$PSID]['CHILDS'][$SID]["ELEMENTS"][$arFields["ID"]]["NAME"] = $arFields["NAME"];
            $arLincs[$PSID]['CHILDS'][$SID]["ELEMENTS"][$arFields["ID"]]["URL"] = $arFields["DETAIL_PAGE_URL"];
            $arLincs[$PSID]['CHILDS'][$SID]["ELEMENTS"][$arProps["ID"]]["PRICE"] = $arProps['PRICE']['VALUE'];
			
        }

        $arLincs[$SID] = &$arLincs[$PSID]['CHILDS'][$SID];
    }
    return array_shift($arLincs);


но в шаблоне выводит так
<div class="accordion__content">
                                        								     <a href="/prays-test/detail.php?ID=2628">Услуга-2</a>
                                        								     <a href="">123</a>
                                                                            </div>


в шаблоне
<?foreach ($CHILD["ELEMENTS"] as $ELEMENT){?>
								     <a href="<?=$ELEMENT["URL"]?>"><?=$ELEMENT["NAME"]?><?=$ELEMENT["PRICE"]?></a>
                                        <?}?
  • Вопрос задан
  • 75 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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