Столкнулся с проблемой, необходимо убрать из поиска элементы с от меченым свойством. В init.php пишу следующий код:
Код |
---|
CModule::AddAutoloadClasses('', array('SearchExclude' => '/local/php_interface/classes/SearchExclude.php',)); AddEventHandler("search", "BeforeIndex", Array("SearchExclude", "BeforeIndexHandler")); |
И добавляю следующий класс:
Код |
---|
class SearchExclude { function BeforeIndexHandler($arFields) { if ($arFields["MODULE_ID"] == "iblock" && $arFields["PARAM2"] == 2) { $db_props = CIBlockElement::GetProperty( $arFields["PARAM2"], $arFields["ITEM_ID"], array("sort" => "asc"), Array("CODE" => "NO_CATALOG")); if ($ar_props = $db_props->Fetch()) { if (!is_null($ar_props['VALUE'])) { CSearch::DeleteIndex($arFields["MODULE_ID"], $arFields["ITEM_ID"]); } } } return $arFields; } } |
Что делаю не так?