帝国CMS的通病就是针对优化做的不是太好,但其实帝国的核心是非常的强大,只要你的动手能力和想像空间足够的话,应该很多的功能和想法都是能够实现的,7.0开始已增加了一些伪静态的功能,算是非常大的飞跃吧,但看到有的网站搜索也是静态的是不是也很心动,别急,下面的方法或许能够帮到你。
一、打开/e/search/index.php 411行左右,找到:
1 | Header( "Location:result/?searchid=$searchid" . $dogetvar ); |
修改为:
1 | Header( "Location:$public_r[newsurl]search-0-$searchid.html" . $dogetvar ); |
二、打开/e/search/result/index.php 20行左右,找到:
1 2 | //搜索结果 $searchid =(int) $_GET [ 'searchid' ]; |
在前面添加分页函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | //增加分页函数 function page10( $num , $line , $page_line , $start , $page , $search ){ global $fun_r ; if ( $num <= $line ) { return '' ; } $search =RepPostStr( $search ,1); $url = $public_r [ 'newsurl' ]. 'search' ; $snum =2; //最小页数 $totalpage = ceil ( $num / $line ); //取得总页数 $firststr = '<a title="' . $fun_r [ 'trecord' ]. '"> ' . $num . ' </a> ' ; //上一页 if ( $page <>0) { $toppage = '<a href="' . $url . '-0-' . $search . '.html">' . $fun_r [ 'startpage' ]. '</a> ' ; $pagepr = $page -1; $prepage = '<a href="' . $url . '-' . $pagepr . '-' . $search . '.html">' . $fun_r [ 'pripage' ]. '</a>' ; } //下一页 if ( $page != $totalpage -1) { $pagenex = $page +1; $nextpage = ' <a href="' . $url . '-' . $pagenex . '-' . $search . '.html">' . $fun_r [ 'nextpage' ]. '</a>' ; $lastpage = ' <a href="' . $url . '-' .( $totalpage -1). '-' . $search . '.html">' . $fun_r [ 'lastpage' ]. '</a>' ; } $starti = $page - $snum <0?0: $page - $snum ; $no =0; for ( $i = $starti ; $i < $totalpage && $no < $page_line ; $i ++) { $no ++; if ( $page == $i ) { $is_1 = "<b>" ; $is_2 = "</b>" ; } else { $is_1 = '<a href="' . $url . '-' . $i . '-' . $search . '.html">' ; $is_2 = "</a>" ; } $pagenum = $i +1; $returnstr .= " " . $is_1 . $pagenum . $is_2 ; } $returnstr = $firststr . $toppage . $prepage . $returnstr . $nextpage . $lastpage ; return $returnstr ; } |
然后在48行左右找到:
1 | $listpage =page1( $num , $line , $page_line , $start , $page , $search ); |
修改为
1 | $listpage =page10( $num , $line , $page_line , $start , $page , $search ); |
查找:
1 | $search = "&searchid=" . $searchid ; |
修改为:
1 | $search = "$searchid" ; |
三、添加伪静态规则(例子为Apache,自己修改为对应的)
#搜索
1 | RewriteRule ^search-(.+?)-(.+?)/.html$ /e/search/result/index/.php/?page= $1 &searchid= $2 |
四、修改搜索模板中的提交地址为绝对地址:
比如
1 | <form action= '/e/search/index.php' method= "post" name= "search_news" id= "search_news" > |
提示:不建议使用相对地址。
新闻热点
疑难解答