Поиск только по статьям

Все блоги / DLE движок для сайтов 8 августа 2014 413   
Поиск только по статьям
Привет Друзья! У меня к вам вопрос как сделать поиск только по статьям и убрать расширенный поиск? Что отсюда лишнее нужно вырезать?

 Показать / Скрыть текст

" );         $goodquotes = array ("#", "'", '"' );         $repquotes = array ("#", "'", '"' );         $text = stripslashes( $text );         $text = trim( strip_tags( $text ) );         $text = str_replace( $quotes, '', $text );         $text = str_replace( $goodquotes, $repquotes, $text );         return $text;     }          $count_result = 0;     $sql_count = "";     $sql_find = "";     // Минимальное количество символов в слове поиска     $config['search_length_min'] = 4;     $tpl->load_template( 'search.tpl' );          $config['search_number'] = intval($config['search_number']);     if ( $config['search_number'] < 1) $config['search_number'] = 1;          $this_date = date( "Y-m-d H:i:s", $_TIME );     if( $config['no_date'] AND !$config['news_future'] ) $this_date = " AND " . PREFIX . "_post.date < '" . $this_date . "'"; else $this_date = "";          if( isset( $_REQUEST['story'] ) ) $story = dle_substr( strip_data( rawurldecode( $_REQUEST['story'] ) ), 0, 90, $config['charset'] ); else $story = "";     if( isset( $_REQUEST['search_start'] ) ) $search_start = intval( $_REQUEST['search_start'] ); else $search_start = 0;     if( isset( $_REQUEST['titleonly'] ) ) $titleonly = intval( $_REQUEST['titleonly'] ); else $titleonly = 0;     if( isset( $_REQUEST['searchuser'] ) ) $searchuser = dle_substr( $_REQUEST['searchuser'], 0, 40, $config['charset'] ); else $searchuser = "";     if( isset( $_REQUEST['exactname'] ) ) $exactname = $_REQUEST['exactname']; else $exactname = "";     if( isset( $_REQUEST['all_word_seach'] ) ) $all_word_seach = intval($_REQUEST['all_word_seach']); else $all_word_seach = 0;     if( isset( $_REQUEST['replyless'] ) ) $replyless = intval( $_REQUEST['replyless'] ); else $replyless = 0;     if( isset( $_REQUEST['replylimit'] ) ) $replylimit = intval( $_REQUEST['replylimit'] ); else $replylimit = 0;     if( isset( $_REQUEST['searchdate'] ) ) $searchdate = intval( $_REQUEST['searchdate'] ); else $searchdate = 0;     if( isset( $_REQUEST['beforeafter'] ) ) $beforeafter = htmlspecialchars( $_REQUEST['beforeafter'], ENT_QUOTES, $config['charset'] ); else $beforeafter = "after";     if( preg_match( "/[||'|<|>|"|!|?|$|@|/||&~*+]/", $searchuser ) ) $searchuser="";     if ($config['full_search']) {         if( isset( $_REQUEST['sortby'] ) ) $sortby = htmlspecialchars( $_REQUEST['sortby'], ENT_QUOTES, $config['charset']  ); else $sortby = "";     } else {         if( isset( $_REQUEST['sortby'] ) ) $sortby = htmlspecialchars( $_REQUEST['sortby'], ENT_QUOTES, $config['charset']  ); else $sortby = "date";     }     if( isset( $_REQUEST['resorder'] ) ) $resorder = htmlspecialchars( $_REQUEST['resorder'], ENT_QUOTES, $config['charset'] ); else $resorder = "desc";     if( isset( $_REQUEST['showposts'] ) ) $showposts = intval( $_REQUEST['showposts'] ); else $showposts = 0;     if( isset( $_REQUEST['result_from'] ) ) $result_from = intval( $_REQUEST['result_from'] ); else $result_from = 1; // Показать страницу с результатом № ХХХ     $full_search = intval( $_REQUEST['full_search'] );     if( !count( $_REQUEST['catlist'] ) ) {         $catlist = array ();         $catlist[] = '0';     } else         $catlist = $_REQUEST['catlist'];     $category_list = array();          foreach ( $catlist as $value ) {         $category_list[] = intval($value);     }     $category_list = $db->safesql( implode( ',', $category_list ) );     if( function_exists( "get_magic_quotes_gpc" ) && get_magic_quotes_gpc() ) $story = stripslashes( $story );     $findstory = stripslashes($story); // Для вывода в поле поиска     $findstory = htmlspecialchars($findstory, ENT_QUOTES, $config['charset']);     $story = addslashes( $story );     if ($titleonly == 2 AND !empty( $searchuser ) ) $searchuser = "";     if( empty( $story ) AND !empty( $searchuser ) AND $titleonly != 2) $story = "___SEARCH___ALL___"; // Для поиска всех статей     if( $search_start < 0 ) $search_start = 0; // Начальная страница поиска     if( $titleonly < 0 or $titleonly > 3 ) $titleonly = 0; // Искать в заголовках, статьях, комментариях     if( $replyless < 0 or $replyless > 1 ) $replyless = 0; // Искать больше или меньше ответов     if( $replylimit < 0 ) $replylimit = 0; // Лимит ответов     if( $showposts < 0 or $showposts > 1 ) $showposts = 0; // Искать в статьях или комментариях юзера          $listdate = array (0, - 1, 1, 7, 14, 30, 90, 180, 365 ); // Искать за период ХХХ дней     if( ! (in_array( $searchdate, $listdate )) ) $searchdate = 0;     if( $beforeafter != "after" and $beforeafter != "before" ) $beforeafter = "after"; // Искать до или после периода дней     $listsortby = array ("date", "title", "comm_num", "news_read", "autor", "category", "rating" );     if ($config['full_search']) {         if( ! (in_array( $sortby, $listsortby )) ) $sortby = ""; // Сортировать по полям     } else {         if( ! (in_array( $sortby, $listsortby )) ) $sortby = "date"; // Сортировать по полям     }     $listresorder = array ("desc", "asc" );     if( ! (in_array( $resorder, $listresorder )) ) $resorder = "desc"; // Сортировать по возрастающей или убывающей          // Определение выбранных ранее опций, переданных в форме     $titleonly_sel = array ('0' => '', '1' => '', '2' => '', '3' => '' );     $titleonly_sel[$titleonly] = 'selected="selected"';     $replyless_sel = array ('0' => '', '1' => '' );     $replyless_sel[$replyless] = 'selected="selected"';     $searchdate_sel = array ('0' => '', '-1' => '', '1' => '', '7' => '', '14' => '', '30' => '', '90' => '', '180' => '', '365' => '' );     $searchdate_sel[$searchdate] = 'selected="selected"';     $beforeafter_sel = array ('after' => '', 'before' => '' );     $beforeafter_sel[$beforeafter] = 'selected="selected"';     $sortby_sel = array ('date' => '', 'title' => '', 'comm_num' => '', 'news_read' => '', 'autor' => '', 'category' => '', 'rating' => '' );     $sortby_sel[$sortby] = 'selected="selected"';     $resorder_sel = array ('desc' => '', 'asc' => '' );     $resorder_sel[$resorder] = 'selected="selected"';     $showposts_sel = array ('0' => '', '1' => '' );     $showposts_sel[$showposts] = 'checked="checked"';     if( $exactname == "yes" ) $exactname_sel = 'checked="checked"';     else $exactname_sel = '';     if( $all_word_seach == 1 ) $all_word_seach_sel = 'checked="checked"';     else $all_word_seach_sel = '';          // Вывод формы поиска     if( $category_list == "" or $category_list == "0" ) {         $catselall = "selected="selected"";     } else {         $catselall = "";         $category_list = preg_replace( "/^0,/", '', $category_list );     }          // Определение и вывод доступных категорий     $cats = "";          $tpl->copy_template .= << HTML;          $searchtable = <<

HTML;          if( $full_search ) {         if ($config['full_search']) {             $full_search_option = "{$lang['s_fsrelate']}{$lang['s_fsdate']}";             $all_word_option = "";         } else {             $full_search_option = "{$lang['s_fsdate']}";             $all_word_option = "

{$lang['s_fword']}

";         }                  $searchtable .= <<        

      

                                  

                                             {$lang['s_con']}                                                                           

                            

{$lang['s_word']}

                            

                            {$all_word_option}                         

                                                                          

                                                     

                                                                                       

                

                                                                  {$lang['s_mname']}                                                                           

                            

{$lang['s_fname']}

                            

{$lang['s_fgname']}                             

                        

                                                                                       

                                                  

                                             {$lang['s_fart']}                         

                                                          {$lang['s_wcomm']}                         

                                                                  {$lang['s_fdaten']}                         

                                                                                                       

                                                                  {$lang['s_fsoft']}                             

                                                                                              

                                                                  {$lang['s_vlegend']}                                                                           

{$lang['s_vwie']}                             {$lang['s_vnews']}                             {$lang['s_vtitle']}                         

                                                                                       

                

                                             {$lang['s_fcats']}                             

                                

$cats

                            

                                     

                                          

                    

                                                                                               

                

                                

    

   HTML;          } else {     if ( $smartphone_detected ) {         $link_full_search = "";     } else {         $link_full_search = "";     }                  $searchtable .= <<        

                                          

     HTML;          }          $searchtable .= <<

HTML;          $tpl->set( '{searchtable}', $searchtable );     // По умолчанию, выводится только форма поиска     if( $subaction != "search" ) {         $tpl->set_block( "'[searchmsg](.*?)[/searchmsg]'si", "" );         $tpl->compile( 'content' );     }     // Конец вывода формы поиска          if( $subaction == "search" ) {         // Вывод результатов поиска                 if ($config['full_search']) {                  $arr = explode( ' ', $story );             $story_maxlen = 0;             $story = array ();                          foreach ( $arr as $word ) {                 $wordlen = dle_strlen( trim( $word ), $config['charset'] );                                  if( $wordlen >= $config['search_length_min'] ) $story[] = $word;                                  if( $wordlen > $story_maxlen ) {                     $story_maxlen = $wordlen;                 }             }                          $story = implode( " ", $story );              } else {                  if ( !$all_word_seach ) $story = preg_replace( "#(s+|__OR__)#i", '%', $story );             $story_maxlen = dle_strlen( trim( $story ), $config['charset'] );              }              if( (empty( $story ) or ($story_maxlen < $config['search_length_min'])) and (empty( $searchuser ) or (strlen( $searchuser ) < $config['search_length_min'])) ) {                          msgbox( $lang['all_info'], $lang['search_err_3'] );                          $tpl->set( '{searchmsg}', '' );             $tpl->set_block( "'[searchmsg](.*?)[/searchmsg]'si", "" );             $tpl->compile( 'content' );                  } else {             // Начало подготовки поиска             if( $search_start ) {                 $search_start = $search_start - 1;                 $search_start = $search_start * $config['search_number'];             }                          // Проверка разрешенных категорий из списка выбранных категорий             $allow_cats = $user_group[$member_id['user_group']]['allow_cats'];             $allow_list = explode( ',', $allow_cats );             $stop_list = "";             if( $allow_list[0] == "all" ) {                 // Все категории доступны для группы                 if( $category_list == "" or $category_list == "0" ) {                     // Выбран поиск по всем категориям                 ;                 } else {                     // Выбран поиск по некоторым категориям                     $stop_list = str_replace( ',', '|', $category_list );                 }             } else {                 // Не все категории доступны для группы                 if( $category_list == "" or $category_list == "0" ) {                     // Выбран поиск по всем категориям                     $stop_list = str_replace( ',', '|', $allow_cats );                 } else {                     // Выбран поиск по некоторым категориям                     $cats_list = explode( ',', $category_list );                     foreach ( $cats_list as $id ) {                         if( in_array( $id, $allow_list ) ) $stop_list .= $id . '|';                     }                     $stop_list = substr( $stop_list, 0, strlen( $stop_list ) - 1 );                 }             }             // Ограничение по категориям             $where_category = "";             if( ! empty( $stop_list ) ) {                                  if( $config['allow_multi_category'] ) {                                          $where_category = "category regexp '[[:<:]](" . $stop_list . ")[[:>:]]'";                                  } else {                                          $stop_list = str_replace( "|", "','", $stop_list );                     $where_category = "category IN ('" . $stop_list . "')";                                  }             }                          if( $story == "___SEARCH___ALL___" ) $story = '';             $thistime = date( "Y-m-d H:i:s", (time() + $config['date_adjust'] * 60) );                          if( $exactname == 'yes' ) $likename = '';             else $likename = '%';             if( $searchdate != '0' ) {                 if( $searchdate != '-1' ) {                     $qdate = date( "Y-m-d H:i:s", (time() + $config['date_adjust'] * 60 - $searchdate * 86400) );                 } else {                     if( $is_logged and isset( $_SESSION['member_lasttime'] ) ) $qdate = date( "Y-m-d H:i:s", $_SESSION['member_lasttime'] );                     else $qdate = $thistime;                 }             }                          // Поиск по автору статьи или комментария    &nbs
  • Оцените публикацию
  • 0

Похожие публикации

@
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent

Архив публикаций