Задать вопрос
@Darklt

Почему в битриксе не работает поиск по артикулы если есть спецсиволы?

Есть событие поиска по артикулу:
AddEventHandler("search", "BeforeIndex", "BeforeIndexHandler");
function BeforeIndexHandler($arFields)
{
   if(!CModule::IncludeModule("iblock")){
      return $arFields;
   }
   if($arFields["MODULE_ID"] == "iblock" && $arFields["PARAM2"] == 99){ // ID инфоблока
      $db_props = CIBlockElement::GetProperty(                        // Запросим свойства индексируемого элемента
                                    $arFields["PARAM2"],         // BLOCK_ID индексируемого свойства
                                    $arFields["ITEM_ID"],          // ID индексируемого свойства
                                    array("sort" => "desc"),       // Сортировка (можно упустить)
							      
                                    Array("CODE"=>"CML2_ARTICLE")); // CODE свойства (в данном случае артикул)
      if($ar_props = $db_props->Fetch()){
		  $arFields["TITLE"] = $ar_props["VALUE"] . " " . $arFields["TITLE"];
       
      }
      $arFields["BODY"] = "";
   }
   return $arFields;
}

По артикулу ищет если этот артикул состоит только из цифр и букв, а если артикул например KLC-100, то так не найдёт, найдет если указать KLC100, хотя на самом деле артикул KLC-100.
  • Вопрос задан
  • 648 просмотров
Подписаться 1 Сложный 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Профессия Графический дизайнер PRO
    15 месяцев
    Далее
  • Нетология
    Фронтенд-разработчик
    11 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы