Полный поиск по документам MODX

Поиск ищет каждое слово отдельно, затем убирает повторяющийся результат

В месте вывода результата поиска прописать [ ! search ! ]

код сниппета ниже

 


<?
    if ( isset ($_GET['search']) && !empty($_GET['search'])){     $search = $modx->db->escape($modx->stripTags($_GET['search']));          //профикс     $search = str_replace(";", "", $search);     $search = str_replace("'", "", $search);     $search = str_replace('"', "", $search);     $search = str_replace("=", "", $search);     $search = str_replace("-", "", $search);     $search = str_replace("″", "", $search);     $search = quotemeta ($search);     $search = trim($search);     //$search= mysql_real_escape_string($search);     // если ищем по TV документа MODX     $search  = explode(" ", $search);     foreach($search as $index => $value) {         //echo 'Индекс элемента массива = '. $index .', значение = '.$value."<BR />"; // выводит на экран значения всех переменных массива.                  $res_keys = $modx->db->query("SELECT `contentid`         FROM `modx_site_tmplvar_contentvalues`         WHERE `value` LIKE '%".$value."%'");                 while( $row_keys = $modx->db->getRow( $res_keys ) ) {                  //echo "<BR />".$row_keys[contentid]."<BR />";                     $array_id .= $row_keys[contentid].' ';                 }     }     $array_id  = explode(" ", $array_id);  // соберём значения в массив     //массив ID результатов     $array_id = array_unique($array_id); // удалим дубли              // если ищем по полям документа MODX         foreach($search as $index => $value) {         $res_keys = $modx->db->query("SELECT *         FROM `modx_site_content`         WHERE `pagetitle` LIKE '%".$value."%'         AND `parent` =115");                 while( $row_keys = $modx->db->getRow( $res_keys ) ) {                  //echo "<BR />".$row_keys[pagetitle].$row_keys[id]."<BR />";                     $array_id_pagetitle .= $row_keys[id].' ';                 }         }         $array_id_pagetitle  = explode(" ", $array_id_pagetitle);  // соберём значения в массив         //массив ID результатов         $array_id_pagetitle = array_unique($array_id_pagetitle); // удалим дубли              $array_value = array_merge ($array_id_pagetitle, $array_id);         $array_value = array_unique($array_value); // удалим дубли         // удалим пустые значения         $array_empty = array(null);         $array_value = array_diff($array_value, $array_empty);                 //print_r ($array_value);         $parents = implode(",", $array_value);                  //echo $parents;                          echo '<div>Результаты поиска по слову: '.$_GET['search'].'</div>                                          <table width="100%">                         <thead>                         <tr><td>Договор</td><td>Дата</td><td>ФИО</td><td>Сфера</td></tr>                         </thead>                         <tbody>                                                '.$modx->runSnippet('catalogView', array(                             'sortBy' => 'NumDogovor',                             'sortDir' => 'asc',                             'tpl' => 'cat_item',                             'dataType' => 'documents',                             'products' => ''.$parents.'',                             'noResult' => '<tr><td></td><td></td><td>Поиск не дал результатов</td><td></td></tr>'                         )).'                                                  <tbody>                     </table>';                                      //echo $search;     }

Сделать заказ

| необходим для связи с вами
В кротчайшие сроки я свяжусь с вами.

Также вы можетете связать со мной:
Skype: Dolphin_za
Телефон (Украина): +380965468891