@Swally

Как вывести в поиске Bitrix общие данные из всех инфоблоках?

Всем добрый день.
Прошу помощи по следующему вопросу. Есть интернет магазин в котором представлены разные группы товаров и они, соответственно, делятся на разные категории. Уже существует написанный код, но при выводе результатов поиска товары разделяются по категориям, а не отображаются все вместе единым потоком.
Пример на скрине:
6124baa0a6649473444440.png
Есть ли возможность объединить вывод в showItem все категории чтобы они не разделялись, а показывалось все сразу?

Пример кода:

$nameItem = $_GET['q'];
$were = $_GET['were'];

$nameItem2 = str_replace('-', '', $nameItem);
$nameItem = str_replace('-', '_', $nameItem);
if ($nameItem2 != $nameItem)
    $nameItem = array($nameItem, $nameItem2);
$arFilter = array(
    array("LOGIC" => "OR",
        "?NAME" => $nameItem,
        "?PROPERTY_ATT_PARTNUMBER" =>  $nameItem,
        "?PREVIEW_TEXT" =>  $nameItem,
        "?DETAIL_TEXT" =>  $nameItem,
        "?XML_ID" =>  $nameItem,
    ));
if ($USER->IsAdmin())
    ;
else if (
    in_array(13,$USER->GetUserGroupArray())
    || in_array( 7,$USER->GetUserGroupArray())
    || in_array( 8,$USER->GetUserGroupArray())
    || in_array( 9,$USER->GetUserGroupArray())
    || in_array(10,$USER->GetUserGroupArray())
    || in_array(11,$USER->GetUserGroupArray())
)
{
    $arFilter["PROPERTY_ATT_ODILER_VALUE"] = 1;
}
else
{
    $arFilter["PROPERTY_ATT_OROZN_VALUE"] = 1;
}
//	$arFilter["!PROPERTY_ATT_OARCHIVE_VALUE"] = 1;  
$array_iblocks="";

if ($were)
    $array_iblocks=array($were);
else
    $array_iblocks=array(45,44,43,8);

$l4_count = 0;

foreach($array_iblocks as $iblock_id)
{
    $arFilter['IBLOCK_ID'] = $iblock_id;
    $arSelect=array('IBLOCK_ID','ID');
    $rsElements = CIBlockElement::GetList($arSort, $arFilter, false, false, $arSelect);
//   $arIDs="";
    unset($arIDs);
    while($obElement = $rsElements->GetNextElement())
    {
        $l4_count++;
        $arIDs['ID'][] = $obElement->fields['ID'];
    }
<b>   showItem($iblock_id,$arIDs,'');</b>    // вводя такое значение, выводит результат, отраженный на скрине //
}

if ($l4_count == 0)
    echo '<h3>Поиск не дал результатов</h3>';

function showItem($idIBlock, $pz_arrrrFilter,$text)
{
    global $viewtype;
    global $arrrrFilter;
    global $USER;
    global $user_price_code_id;
    $arrrrFilter = $pz_arrrrFilter;

    if (empty($arrrrFilter['ID']))
        return;

    global $APPLICATION;
  • Вопрос задан
  • 56 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы