Всем привет.
Вот разбираюсь с компонентом search.title, ни как не могу разобраться с тем как cформировать свои ссылки на результат поиска.
На данный момент путь имеет такой вид.
У элемента результата поиска имеются 2 свойства - ID_USER и ID_SERVICE.
Мне необходимо сформировать свой путь используя эти свойства.
В Файле result_modifier.php в строке №97 5-м параметром указал те свойства которые необходимо вернуть, но ни как не могу понять как они попадают в массив $arResult["CATEGORIES"] в файле alax.php
В при распечатке $arElement добавленные мной свойства выводятся.
Как сделать так чтобы эти значения оказались в $arResult["CATEGORIES"].
На данный момент решил задачу таким образом.
В файле ajax.php перед выводом результата, изменил результирующий массив.
Ниже приведенное решение не совсем правильное, т.к приходиться делать отдельно запрос чтобы вытащить свойства элементов.
Вот разбираюсь с компонентом search.title, ни как не могу разобраться с тем как cформировать свои ссылки на результат поиска.
На данный момент путь имеет такой вид.
Код |
---|
/catalog/detail.php?ID=167 |
У элемента результата поиска имеются 2 свойства - ID_USER и ID_SERVICE.
Мне необходимо сформировать свой путь используя эти свойства.
В Файле result_modifier.php в строке №97 5-м параметром указал те свойства которые необходимо вернуть, но ни как не могу понять как они попадают в массив $arResult["CATEGORIES"] в файле alax.php
В при распечатке $arElement добавленные мной свойства выводятся.
Как сделать так чтобы эти значения оказались в $arResult["CATEGORIES"].
Код |
---|
if(substr($arItem["ITEM_ID"], 0, 1) !== "S") { //Try to find gif by element proprety value xml id $rsElement = CIBlockElement::GetList( array(), array( "=ID" => $arItem["ITEM_ID"], "IBLOCK_ID" => $arItem["PARAM2"], ), false, false, array( "ID", "IBLOCK_ID", "CODE", "XML_ID", "PROPERTY_DOC_TYPE", "PROPERTY_ID_USER", "PROPERTY_ID_PARENT_SERVICE", ) ); $arElement = $rsElement->Fetch(); |
На данный момент решил задачу таким образом.
В файле ajax.php перед выводом результата, изменил результирующий массив.
Ниже приведенное решение не совсем правильное, т.к приходиться делать отдельно запрос чтобы вытащить свойства элементов.
Код |
---|
foreach($arResult["CATEGORIES"] as $key => $itCategory){ foreach($itCategory["ITEMS"] as $i_ => $arItem_){ $idMAss[] = $arItem_["ITEM_ID"]; } } $array_empty = array("",0, null); $resMass = array_diff($idMAss, $array_empty); if(!empty($resMass)){ $rsElement = CIBlockElement::GetList( array(), array( "ID" => $resMass ), false, false, array( "ID", "IBLOCK_ID", "PROPERTY_ID_USER", "PROPERTY_ID_PARENT_SERVICE", ) ); while($arElement = $rsElement->Fetch()){ $item_result["ID"] = $arElement["ID"]; $item_result["ID_USER"] = $arElement["PROPERTY_ID_USER_VALUE"]; $item_result["ID_PARENT_SERVICE"] = $arElement["PROPERTY_ID_PARENT_SERVICE_VALUE"]; $mass_result[] = $item_result; } } foreach($arResult["CATEGORIES"] as $key => $itCategory_){ foreach($itCategory_["ITEMS"] as $i_ => $arItem_){ foreach($mass_result as $i__ => $Item_res){ if($Item_res["ID"] == $arItem_["ITEM_ID"]){ $itCategory_["ITEMS"][$i_]["URL_PAGE"] = "/id".$Item_res["ID_USER"]."/services/".$Item_res["ID_PARENT_SERVICE"]."/"; } } } } |
murad30