Всем привет.
Вот разбираюсь с компонентом search.title, ни как не могу разобраться с тем как cформировать свои ссылки на результат поиска.
На данный момент путь имеет такой вид.
[CODE]/catalog/detail.php?ID=167
[/CODE]
У элемента результата поиска имеются 2 свойства - ID_USER и ID_SERVICE.
Мне необходимо сформировать свой путь используя эти свойства.
В Файле result_modifier.php в строке №97 5-м параметром указал те свойства которые необходимо вернуть, но ни как не могу понять как они попадают в массив $arResult["CATEGORIES"] в файле alax.php
В при распечатке $arElement добавленные мной свойства выводятся.
Как сделать так чтобы эти значения оказались в $arResult["CATEGORIES"].[CODE]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();
[/CODE]
На данный момент решил задачу таким образом.
В файле ajax.php перед выводом результата, изменил результирующий массив.
Ниже приведенное решение не совсем правильное, т.к приходиться делать отдельно запрос чтобы вытащить свойства элементов.
[CODE]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"]."/";
}
}
}
}
[/CODE]
Вот разбираюсь с компонентом search.title, ни как не могу разобраться с тем как cформировать свои ссылки на результат поиска.
На данный момент путь имеет такой вид.
[CODE]/catalog/detail.php?ID=167
[/CODE]
У элемента результата поиска имеются 2 свойства - ID_USER и ID_SERVICE.
Мне необходимо сформировать свой путь используя эти свойства.
В Файле result_modifier.php в строке №97 5-м параметром указал те свойства которые необходимо вернуть, но ни как не могу понять как они попадают в массив $arResult["CATEGORIES"] в файле alax.php
В при распечатке $arElement добавленные мной свойства выводятся.
Как сделать так чтобы эти значения оказались в $arResult["CATEGORIES"].[CODE]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();
[/CODE]
На данный момент решил задачу таким образом.
В файле ajax.php перед выводом результата, изменил результирующий массив.
Ниже приведенное решение не совсем правильное, т.к приходиться делать отдельно запрос чтобы вытащить свойства элементов.
[CODE]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"]."/";
}
}
}
}
[/CODE]