У меня стояла задача поиска по содержимому файлов прикрепленных к элементам инфоблока, сами файлы - множественное свойство типа файл. Я использую событие OnSearchGetFileContent . Контент парсится при помощи необходимых библиотек в зависимости от типа файла. ПОлучаю содержимое файла в ключе CONTENT, но почему то TITLE устанавливается именем элемента инфоблока а не именем файла как я прописываю в коде :
AddEventHandler("search", "OnSearchGetFileContent", array("FindInFiles", "OnSearchGetFileContent"));
class FindInFiles
{
public static function OnSearchGetFileContent($absolute_path)
{
if(file_exists($absolute_path) && is_file($absolute_path) && substr($absolute_path, -3) == "pdf")
{
return self::processPdfFile($absolute_path);
}
else
return false;
}
private static function processPdfFile($absolute_path) {
$parser = new \Smalot\PdfParser\Parser();
$pdf = $parser->parseFile($absolute_path);
$text = $pdf->getText();
return array(
"TITLE" => basename($absolute_path),
"CONTENT" => $text,
"PROPERTIES" => [],
);
}
Что я делаю не так? И еще вопрос, у меня локально стоит поиск -mysql , на удаленной машине стоит Sphinx и почему то этот код вообще не работает( .