56 lines
1.4 KiB
PHP
56 lines
1.4 KiB
PHP
<?
|
|
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
|
|
/** @var CBitrixComponent $this */
|
|
/** @var array $arParams */
|
|
/** @var array $arResult */
|
|
/** @var string $componentPath */
|
|
/** @var string $componentName */
|
|
/** @var string $componentTemplate */
|
|
/** @global CDatabase $DB */
|
|
/** @global CUser $USER */
|
|
/** @global CMain $APPLICATION */
|
|
|
|
use Bitrix\Main\Context,
|
|
Bitrix\Main\Type\DateTime,
|
|
Bitrix\Main\Loader,
|
|
Bitrix\Iblock;
|
|
|
|
if($this->StartResultCache(60*60*24, md5(var_export($_POST, true))))
|
|
{
|
|
if(CModule::IncludeModule('iblock'))
|
|
{
|
|
$arResult = [
|
|
'SECTIONS' => [],
|
|
];
|
|
$arResult['SEARCH'] = $_REQUEST['search'];
|
|
|
|
$sort = Array("SORT" => "ASC", "NAME" => "ASC");
|
|
$filter = Array("ACTIVE" => "Y", "IBLOCK_ID" => 19);
|
|
$options = false;
|
|
|
|
$sec_res = CIBlockSection::GetList($sort, $filter, false, [], false);
|
|
while ($section = $sec_res->GetNext())
|
|
{
|
|
$section['ITEMS'] = [];
|
|
$filter = array_merge($filter, [ "SECTION_ID" => $section['ID'] ]);
|
|
if(!empty($_REQUEST['search']))
|
|
{
|
|
$filter = array_merge($filter, [ "SEARCHABLE_CONTENT" => "%".$_REQUEST['search']."%" ]);
|
|
}
|
|
|
|
$res = CIBlockElement::GetList($sort, $filter, false, $options);
|
|
while ($element = $res->GetNextElement())
|
|
{
|
|
$ar_res = $element->GetFields();
|
|
$section['ITEMS'][] = $ar_res;
|
|
}
|
|
|
|
if(count($section['ITEMS']) > 0)
|
|
{
|
|
$arResult['SECTIONS'][] = $section;
|
|
}
|
|
}
|
|
|
|
$this->IncludeComponentTemplate();
|
|
}
|
|
} |