We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 37733
    • 21 Posts
    Дошел таки в своем изучении Modx Revo до организации поиска.

    Поиск заработал, даже получилось настроить правильный вывод (убрал на мой взгляд лишнюю инфу из результатов поиска).

    Но есть две небольшие проблемы:
    1. Поиск на русском языке. Итак, например ввожу в поисковую строку слово "Antec", и в результате поиска вижу такое: . Все отлично.
    Далее например ввожу слово "корпус" и получаю такой результат (статья одна и та же):

    Т.е. если идет поиск на русском, то результат кривой. Как с этим бороться ума не приложу - вроде везде прописано utf8....
    2. Как сделать так, чтобы поисковик не обращал внимания на большие и маленькие буквы, т.е. чтобы Antec и antec для него было одно и тоже?
      • 31246 ☆ A M B ☆
      • 428 Posts
      Ха, раньше такой проблемы не было.... аж интересно стало.
      По поводу кодировки - core/components/simplesearch/model/simplesearch/simplesearch.class.php
      1) стр.261
      $text = trim(preg_replace('/\s+/', ' ', $this->sanitize($text)));

      заменяем на
      $text = trim(preg_replace('/\s+/u', ' ', $this->sanitize($text)));

      2) стр.360
      $string = preg_replace('/' . $quoteValue . '/i', '<'.$tag.' class="'.$cls.'">$0</'.$tag.'>', $string);

      заменяем на
      $string = preg_replace('/' . $quoteValue . '/iu', '<'.$tag.' class="'.$cls.'">$0</'.$tag.'>', $string);

      3) находим строчку 247
      $text = preg_replace('/(\[\[\+.*?\]\])/i', '', $text);

      заменяем на
      $text = preg_replace('/(\[\[\+.*?\]\])/iu', '', $text);

      4) закоментировать стр 177 (будет время. разберусь)
      //if (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str));

      Как сделать так, чтобы поисковик не обращал внимания на большие и маленькие буквы, т.е. чтобы Antec и antec для него было одно и тоже?
      - вроде нормально у меня реагирует....
      [ed. note: valikras last edited this post 14 years, 9 months ago.]
        Valentin Rasulov - Industrial design (Hobbies - Web Development)
        Development not standard projects on CMF MODx Revolution.
        Small sample of extensions
        • 37733
        • 21 Posts
        Спасибо большое!!!!! Замена этих двух строк помогла! Теперь все ок! Сам бы никогда наверно не дошел до этого.

        А вот с большими и маленькими буквами у меня действительно неувязка - если набрать например в строке поиска Antec, то он найдет статью, если набрать antec, то не найдет. Проверял с разными словами, которые точно есть в тексте и только в каком-то одном написании. В общем опять же неувязка.

        Странно, что только у меня такие проблемы...
          • 37733
          • 21 Posts
          Для уточнения. Версия SimpleSearch 1.5.2-pl
          TPL имеет такой вид:
          <form id="searchform" action="[[~[[+landing:default=`[[*id]]`]]]]" method="[[+method:default=`get`]]">
          <div>
          <input id="searchField" class="my_class" type="text" name="my_custom_search_field" value="[[+searchValue:default=``]]"/>
          <!--<input name="submit" type="submit" value="Поиск"/>
          <input id="searchIcon" class="utilityButton" type="image" alt="Search" src="/assets/templates/my/images/searchButton.png">
          <input type="hidden" name="id" value="[[+landing:default=[[*id]]]]" />-->
          </div>
          </form>
          

          брался из документации к SimpleSearch, но немного переработан - закомментированы две строки.

          Так вызывается в чанке, который содержит все верхнее меню и форму поиска:
          [[SimpleSearchForm? &tpl=`mySearchFormTpl` &landing=`46`]]


          Вот так вызывается на странице результатов поиска (соответственно ID 46):
          [[!SimpleSearch? &searchIndex=`my_custom_search_field`]]
          [ed. note: freimaks last edited this post 14 years, 9 months ago.]
            • 31246 ☆ A M B ☆
            • 428 Posts
            у меня вроде работает.... http://avia-express.com.ua/ru/search?search=avia&id=96&search-submit=&sisea_offset=10
            Сейчас посмотрю, может я, что-то менял там....
              Valentin Rasulov - Industrial design (Hobbies - Web Development)
              Development not standard projects on CMF MODx Revolution.
              Small sample of extensions
              • 31246 ☆ A M B ☆
              • 428 Posts
              не знаю, у меня вроде больше ничего не изменял, как вариант
              1) откройте сниппет SimpleSearch - попробуйте в вкладке Параметры изменить параметр searchStyle
              2) в файле core/components/simplesearch/model/simplesearch/simplesearch.class.php
              стр 247
              $text = preg_replace('/(\[\[\+.*?\]\])/i', '', $text);
              заменить на
              $text = preg_replace('/(\[\[\+.*?\]\])/iu', '', $text);

              3) Откройте сниппет SimpleSearch
              стр 95-96
              $extract = strip_tags(preg_replace("#\<!--(.*?)--\>#si",'',$extract));
              $extract = preg_replace("#\[\[(.*?)\]\]#si",'',$extract);
              заменить на
              $extract = strip_tags(preg_replace("#\<!--(.*?)--\>#siu",'',$extract));
              $extract = preg_replace("#\[\[(.*?)\]\]#siu",'',$extract);

              [ed. note: valikras last edited this post 14 years, 9 months ago.]
                Valentin Rasulov - Industrial design (Hobbies - Web Development)
                Development not standard projects on CMF MODx Revolution.
                Small sample of extensions
                • 31246 ☆ A M B ☆
                • 428 Posts
                Quote from: freimaks at Jan 04, 2012, 04:12 PM
                SimpleSearch? &searchIndex=`my_custom_search_field`
                ....
                а дальше? my_custom_search_field?
                  Valentin Rasulov - Industrial design (Hobbies - Web Development)
                  Development not standard projects on CMF MODx Revolution.
                  Small sample of extensions
                  • 31246 ☆ A M B ☆
                  • 428 Posts
                  P.S. Дополнение — подстветка класса
                  я исправил ошибку - стр 360 должна быть
                  $string = preg_replace('/' . $quoteValue . '/iu', '<'.$tag.' class="'.$cls.'">$0</'.$tag.'>', $string);
                    Valentin Rasulov - Industrial design (Hobbies - Web Development)
                    Development not standard projects on CMF MODx Revolution.
                    Small sample of extensions
                    • 37733
                    • 21 Posts
                    С багом разобрался. Косяк так сказать во мне - а точнее в БД которую я создал изначально.
                    Дело в том, что по всем таблицам стояло сравнение utf8_bin, а надо utf8_general_ci. Все поправил и теперь поиск работает как надо.
                    Решение было описано тут https://forums.modx.com/thread/4038/how-to-case-insensitive-search-using-simplesearch#dis-post-24511

                    Теперь осталось разобрать с остальными параметрами типа highlightClass ибо и тут у меня какие-то косяки
                      • 31246 ☆ A M B ☆
                      • 428 Posts
                      я уже поправил - три изменения нужно в классе simplesearch.class.php и всё должно работать....
                      https://forums.modx.com/thread/72965/simplesearch#dis-post-405693
                        Valentin Rasulov - Industrial design (Hobbies - Web Development)
                        Development not standard projects on CMF MODx Revolution.
                        Small sample of extensions