И вновь возвращаюсь к теме обновления Joomla с версии 2.5.11 до версии 2.5.13 и ошибкам, вылезшим, в связи с этим обновлением. В прошлый раз я устранял ошибку в компоненте sh404sef. В этот раз вылезла ошибка в компоненте Advanced Site Search от того же разработчика.
Я даже содал
В результате пришлось решать проблему самостоятельно. А дело вот в чем. Как я уже сказал, после обновления Joomla с 2.5.11 до 2.5.13 на страницах с результатами поиска компонента Advanced Site Search, а также на некоторых других (с неопределенной периодичностью), а также в административной панели стали появляться ошибки:
JDispatcher: :register: Обработчик событий не распознан. Обработчик: plgSearchContentauthor
JDispatcher: :register: Обработчик событий не распознан. Обработчик: plgSearchAscategories
JDispatcher: :register: Обработчик событий не распознан. Обработчик: plgSearchAscontacts
JDispatcher: :register: Обработчик событий не распознан. Обработчик: plgSearchAscontent
Если сайт не поддерживает русский язык, то сообщение выглядело вот так:
JDispatcher: :register: Event handler not recognized. Handler: plgSearchContentauthor
JDispatcher: :register: Event handler not recognized. Handler: plgSearchAscategories
JDispatcher: :register: Event handler not recognized. Handler: plgSearchAscontacts
JDispatcher: :register: Event handler not recognized. Handler: plgSearchAscontent
Что делать? Беглый анализ данных выдачи Google показал, что ошибку нужно искать в некорректном вызове функции registerEvent и, судя по сообщениями, проблема была в плагинах поиска plgSearchContentauthor, plgSearchAscategories, plgSearchAscontacts и plgSearchAscontent.
Открыв один из плагинов по адресу /plugins/search/ascontent/ascontent.php я обнаружил такую строку:
JFactory::getApplication()->registerEvent('onSearch', 'plgSearchAscontent');
Решено было закомментировать её до выяснения причин:
//JFactory::getApplication()->registerEvent('onSearch', 'plgSearchAscontent');
После этого я посмотрел работу поискового компонента Advanced Site Search и с удивлением обнаружил, что ничего не изменилось.
То же самое я проделал с другими плагинами, а именно в файле /plugins/search/ascategories/ascategories.php заменил:
JFactory::getApplication()->registerEvent('onSearch', 'plgSearchAscategories');
на
//JFactory::getApplication()->registerEvent('onSearch', 'plgSearchAscategories');
В файле /plugins/search/contentauthor/contentauthor.php закомментировал:
JFactory::getApplication()->registerEvent('onSearch', 'plgSearchContentauthor');
на
//JFactory::getApplication()->registerEvent('onSearch', 'plgSearchContentauthor');
В файле /plugins/search/ascontacts/ascontacts.php заменил:
JFactory::getApplication()->registerEvent('onSearch', 'plgSearchAscontacts');
на
//JFactory::getApplication()->registerEvent('onSearch', 'plgSearchAscontacts');
Дело пошло. Ошибки исчезли. Поиск вроде работает как и раньше. Предназначение данных строк для меня пока что остается загадкой. Не силен я еще в плагинах поиска (хотя в ближайших планах - сделать один).
Респект разработчикам Advanced Site Search за их суперские расширения!
И никакого респекта разработчикам за их ужасную поддержку!
Это искренне и субъективно.