Вопрос Настройка поиска на сайте

Тема в разделе "Интерактивные возможности", создана пользователем freelancer2x2, 29.12.2014.

Статус темы:
Закрыта.
  1. freelancer2x2
    Offline

    freelancer2x2 Тариф: Спонсор ⇒ Спонсор форума ⇐

    Регистрация:
    21.12.2012
    Сообщения:
    268
    Симпатии:
    7
    Пол:
    Мужской
    Подскажите пожалуйста, где можно произвести настройку стандартного модуля поиска Joomla 2.5? В поиск вписывается определенное количество символов и дальше обрезается. Например так:
    kiss_7kb.1419857546.jpg
    kiss_5kb.1419857364.jpg
    (отображение на главной и после нажатия "Искать")
    Найти новость по полному названию невозможно. В модуле менял параметры, но не помогает. Хочу увеличить количество символов, которое можно вводить в поле поиска. То, что есть стандартно не устраивает ни меня, ни посетителей.

     
  2.  
  3. Лучший ответ:
    Сообщение #8 от 30.12.2014, автор OlegK
  4. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    /administrator/language/ru-RU/ru-Ru.localise.php
    Код (PHP):
    1. public static function getUpperLimitSearchWord()
    2. {
    3. return 50;
    4. }
     
  5. freelancer2x2
    Offline

    freelancer2x2 Тариф: Спонсор ⇒ Спонсор форума ⇐

    Регистрация:
    21.12.2012
    Сообщения:
    268
    Симпатии:
    7
    Пол:
    Мужской
    Не помогло, попробовал три раза, даже кэш почистил на всякий случай.
     
  6. AKopytenko
    Offline

    AKopytenko Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 963
    Симпатии:
    168
    Пол:
    Мужской
    А в настройках модуля длина запроса не ограничена?
     
  7. freelancer2x2
    Offline

    freelancer2x2 Тариф: Спонсор ⇒ Спонсор форума ⇐

    Регистрация:
    21.12.2012
    Сообщения:
    268
    Симпатии:
    7
    Пол:
    Мужской
    Там только одно поле, как раз стоит значение "20" - именно столько символов влезает в поиск. Меняю на "60", результата нет.
    Больше менять негде. Вот скриншот настроек модуля
    kiss_30kb.1419878708.jpg
     
  8. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
  9. freelancer2x2
    Offline

    freelancer2x2 Тариф: Спонсор ⇒ Спонсор форума ⇐

    Регистрация:
    21.12.2012
    Сообщения:
    268
    Симпатии:
    7
    Пол:
    Мужской
    Советуют вот это:
    1) заходите в: templates/ВАШ ШАБЛОН/html/mod_search/default.php
    2) находите там в 13 строке: $output = '<input name="searchword" id="search" maxlength="20" class="inputbox'
    3) заменяете это, например, на 50 символов: $output = '<input name="searchword" id="search" maxlength="50" class="inputbox'
    Но в значении maxlength у меня нет чисел, выглядит так:
    Код (PHP):
    1. $output = '<input name="searchword" id="mod-search-searchword" maxlength="'.$maxlength.'"  class="inputbox'.$moduleclass_sfx.'" type="text" size="'.$width.'" value="'.$text.'"  onblur="if (this.value==\'\') this.value=\''.$text.'\';" onfocus="if (this.value==\''.$text.'\') this.value=\'\';" />';


    Попробовал вставил в maxlength значение "30" - не помого.

    Еще советуют:
    "в \administrator\components\com_search\helpers\search.php
    есть переменная function limitSearchWord(&$searchword) которая отвечает за ограничение символов =)
    Оригинальный комментарий и ф-я:"
    Код (PHP):
    1. [LIST=1]
    2. [*]function limitSearchWord(&$searchword)
    3. [*]   {
    4. [*]       $restriction = false;
    5. [*]
    6.  
    7. [*]       // limit searchword to 20 characters
    8. [*]       if ( JString::strlen( $searchword ) > 45 ) {
    9. [*]           $searchword   = JString::substr( $searchword, 0, 44 );
    10. [*]           $restriction   = true;
    11. [*]       }
    12. [*]
    13.  
    14. [*]       // searchword must contain a minimum of 3 characters
    15. [*]       if ( $searchword && JString::strlen( $searchword ) < 3 ) {
    16. [*]           $searchword   = '';
    17. [*]           $restriction   = true;
    18. [*]       }
    19. [*]
    20.  
    21. [*]       return $restriction;
    22. [*]   }
    23. [/LIST]

    Но у меня в этом месте выглядит иначе:
    Код (PHP):
    1. static function limitSearchWord(&$searchword)
    2.     {
    3.         $restriction = false;
    4.  
    5.         $lang = JFactory::getLanguage();
    6.  
    7.         // limit searchword to a maximum of characters
    8.         $upper_limit = $lang->getUpperLimitSearchWord();
    9.         if (JString::strlen($searchword) > $upper_limit) {
    10.             $searchword        = JString::substr($searchword, 0, $upper_limit - 1);
    11.             $restriction    = true;
    12.         }
    13.  
    14.         // searchword must contain a minimum of characters
    15.         if ($searchword && JString::strlen($searchword) < $lang->getLowerLimitSearchWord()) {
    16.             $searchword        = '';
    17.             $restriction    = true;
    18.         }
    19.  
    20.         return $restriction;
    21.     }

    Самостоятельно что-либо менять в этом файле побаиваюсь, хочу уточнить как правильно вписать и применимо ли такое вообще для Joomla 2.5.
     
  10. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    Лучший ответ
    по этой правке измени на 150 http://joomla-support.ru/thread/45015/#post-179311
    файл /modules/mod_search/mod_search.php
    Код (PHP):
    1. $maxlength  = 150;

    --- добавлено: 30.12.2014, первое сообщение размещено: 30.12.2014 ---
    сделай аналогично для английского языка
     
    freelancer2x2 нравится это.
  11. freelancer2x2
    Offline

    freelancer2x2 Тариф: Спонсор ⇒ Спонсор форума ⇐

    Регистрация:
    21.12.2012
    Сообщения:
    268
    Симпатии:
    7
    Пол:
    Мужской
    1) В /administrator/language/ru-RU/ru-Ru.localise.php заменил значение "return 50" на "150"
    2) В файл /modules/mod_search/mod_search.php вместо строки $maxlength = $upper_limit; вписал $maxlength = 150;
    3) в файл administrator/language/en-GB/en-GB.localise.php изменил в строке public static function getUpperLimitSearchWord() return 20; на return 150
    4) Очистил кэш
    5) Работает!
    kiss_12kb.1419933530.jpg
    Если я правильно понимаю, то при обновлении движка эту манипуляцию придется произвести заново? Хотя о чем я... с завтрашнего дня закончится поддержка 2.5. .Но мало ли какие-то патчи выходить будут. В любом случае, проверю.
     
Статус темы:
Закрыта.

Поделиться этой страницей

Загрузка...