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

Discussion in 'Интерактивные возможности' started by freelancer2x2, Dec 29, 2014.

Thread Status:
Not open for further replies.
  1. freelancer2x2
    Offline

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

    Joined:
    Dec 21, 2012
    Messages:
    268
    Likes Received:
    7
    Gender:
    Male
    Подскажите пожалуйста, где можно произвести настройку стандартного модуля поиска Joomla 2.5? В поиск вписывается определенное количество символов и дальше обрезается. Например так:
    kiss_7kb.1419857546.jpg
    kiss_5kb.1419857364.jpg
    (отображение на главной и после нажатия "Искать")
    Найти новость по полному названию невозможно. В модуле менял параметры, но не помогает. Хочу увеличить количество символов, которое можно вводить в поле поиска. То, что есть стандартно не устраивает ни меня, ни посетителей.

     
  2.  
  3. Best Answer:
    Post #8 by OlegK, Dec 30, 2014
  4. OlegK
    Offline

    OlegK Russian Joomla! Team Staff Member ⇒ Профи ⇐

    Joined:
    Jan 17, 2011
    Messages:
    7,812
    Likes Received:
    771
    Gender:
    Male
    /administrator/language/ru-RU/ru-Ru.localise.php
    Код (PHP):
    1. public static function getUpperLimitSearchWord()
    2. {
    3. return 50;
    4. }
     
  5. freelancer2x2
    Offline

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

    Joined:
    Dec 21, 2012
    Messages:
    268
    Likes Received:
    7
    Gender:
    Male
    Не помогло, попробовал три раза, даже кэш почистил на всякий случай.
     
  6. AKopytenko
    Offline

    AKopytenko Russian Joomla! Team Staff Member

    Joined:
    Sep 1, 2011
    Messages:
    1,963
    Likes Received:
    168
    Gender:
    Male
    А в настройках модуля длина запроса не ограничена?
     
  7. freelancer2x2
    Offline

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

    Joined:
    Dec 21, 2012
    Messages:
    268
    Likes Received:
    7
    Gender:
    Male
    Там только одно поле, как раз стоит значение "20" - именно столько символов влезает в поиск. Меняю на "60", результата нет.
    Больше менять негде. Вот скриншот настроек модуля
    kiss_30kb.1419878708.jpg
     
  8. OlegK
    Offline

    OlegK Russian Joomla! Team Staff Member ⇒ Профи ⇐

    Joined:
    Jan 17, 2011
    Messages:
    7,812
    Likes Received:
    771
    Gender:
    Male
  9. freelancer2x2
    Offline

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

    Joined:
    Dec 21, 2012
    Messages:
    268
    Likes Received:
    7
    Gender:
    Male
    Советуют вот это:
    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 Staff Member ⇒ Профи ⇐

    Joined:
    Jan 17, 2011
    Messages:
    7,812
    Likes Received:
    771
    Gender:
    Male
    Best Answer
    по этой правке измени на 150 http://joomla-support.ru/thread/45015/#post-179311
    файл /modules/mod_search/mod_search.php
    Код (PHP):
    1. $maxlength  = 150;

    --- добавлено: Dec 30, 2014, первое сообщение размещено: Dec 30, 2014 ---
    сделай аналогично для английского языка
     
    freelancer2x2 likes this.
  11. freelancer2x2
    Offline

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

    Joined:
    Dec 21, 2012
    Messages:
    268
    Likes Received:
    7
    Gender:
    Male
    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. .Но мало ли какие-то патчи выходить будут. В любом случае, проверю.
     
Thread Status:
Not open for further replies.

Share This Page

Loading...