Стандартный поиск (com_search, mod_search) в Joomla 1.5 и 2.5 обрезает поисковый запрос до 20 символов. Из-за этого страдают и пользователи и сам сайт, так как страдает его поисковая оптимизация.
Изменение длины поисковой фразы Joomla 2.5
В отличие от J1.5 жестко заданные пределы были вынесены в файлы локализации JOOMLA_ROOT/administrator/language/en-GB/en-GB.localise.php и JOOMLA_ROOT/language/en-GB/en-GB.localise.php. Для русской локализации это файлы JOOMLA_ROOT/administrator/language/ru-RU/ru-RU.localise.php и JOOMLA_ROOT/language/ru-RU/ru-RU.localise.php.
Найдите в них следующие фрагменты кода:
/** * Returns the lower length limit of search words * * @return integer The lower length limit of search words. * @since 1.6 */ public static function getLowerLimitSearchWord() { return 3; } /** * Returns the upper length limit of search words * * @return integer The upper length limit of search words. * @since 1.6 */ public static function getUpperLimitSearchWord() { return 20; }
В функции getLowerLimitSearchWord можно изменить минимальное количество символов поиска (установлено "3"), а в getUpperLimitSearchWord - максимальное (установлено на "20").
Изменение длины поисковой фразы Joomla 1.5
Для исправления этой ошибки зайдем в administrator/components/com_search/helpers/search.php и на строке 58 изменяем длину поиска с 20 на 40 символов
// limit searchword to 20 characters if ( JString::strlen( $searchword ) > 20 ) {
на
// limit searchword to 40 characters if ( JString::strlen( $searchword ) > 40 ) {
Второе исправление надо сделать в админке. В модулях найти модуль Поиска и заменить в нем значение параметра максимальной длины с 20 на 40. Это значение используется в \modules\mod_search\tmpl\default.php (строка 6) и называется maxlength="'.$maxlength.'".
И третье - в самой форме поиска \components\com_search\views\search\tmpl\default_form.php (строка 12):
надо заменить длину:
input type="text" value="escape($this-" maxlength="20" size="30" id="search_searchword" name="searchword" />searchword); ?>" class="inputbox" />
на
input type="text" value="escape($this-" maxlength="40" size="30" id="search_searchword" name="searchword" />searchword); ?>" class="inputbox" />