广

织梦CMS教程

  • 帝国cms教程
  • 织梦CMS教程
  • PHP CMS教程
  • ECSHOP教程
  • WordPress教程
  • Discuz教程
  • CMS学习

    整合DEDECMS和ECSHOP搜索,根据选择转向不同搜索

    2018-04-02 20:45:52 次阅读 稿源:互联网
    广告

    整合了整合DEDECMSECSHOP,搜索功能呢就要分别搜索,搜索文章是搜索DEDECMS搜索商品是搜索ECSHOP。这里实现这种功能。

    先贴出代码:

    1. <form id="searchForm" method="get" name="formsearch" onSubmit="retu validform();"> 
    2.      <input name="keywords" type="text" class="serach_input"  id="keyword" value="" /> 
    3.      <select class="serach_sel" name="searchtype" id="category"> 
    4.      <option value="titlekeyword">文章</option> 
    5.      <option value="keywords">商品</option> 
    6.      </select> 
    7.      <input type="image" src="{dede:global.cfg_templets_skin/}/images/search.gif" class="serach_img" name="submit"/> 
    8. </form> 
    9. <script language="JavaScript"> 
    10. <!-- 
    11. function validform(){ 
    12. if (document.formsearch.keywords.value == ""){ 
    13. document.formsearch.keywords.focus(); 
    14. alert ("请输入关键字或藏品名称!"); 
    15. retu false; 
    16. if (document.formsearch.searchtype.value=="titlekeyword"){ 
    17. document.formsearch.action="{dede:global.cfg_cmsurl/}/plus/search.php"
    18. if (document.formsearch.searchtype.value=="keywords"){ 
    19. document.formsearch.action="/shop/search.php"; //引号里的地址更换为你自己的ECSHOP地址
    20. //--> 
    21. </script> 

    效果图:

    选择框里选项为文章和商品,文章搜索DEDECMS,商品搜索ECSHOP

    分析:DEDE的搜索结果页面类似为

    1. http://www.meowpet.com/plus/search.php?p=%E5%85%B3%E9%94%AE%E5%AD%97&searchtype=titlekeyword&submit.x=44&submit.y=12 

     ECSHOP的搜索结果页面类似为

    1. http://www.jdztc.cc/shop/search.php?keywords=%E5%85%B3%E9%94%AE%E5%AD%97

    或者为经过encode64位编码的乱码地址。所以直接复制文章开始的代码过去是不能用得。要修改源码。下面是步骤:

    步骤1.修改ECHSOP根目录下得search.php,注释掉行18-行66。然后加入:

    1. $string["keywords"]=addslashes($_GET["keywords"]);   
    2. $string["page"]=addslashes($_GET["page"]);   
    3. $string["search_encode_time"] = $_SERVER["REQUEST_TIME"];  

     说明:这里是把ECSHOP的encode64位编码的乱码地址更换为正常的搜索地址。

    步骤2.打开DEDECMS目录下plus/search.php,找到:

    1. if(!isset($keyword)){ 
    2.     if(!isset($q)) $q = ''
    3.     $keyword=$q; 

    修改为:

    1. if(!isset($keyword)){ 
    2.     if(!isset($keywords)) $keywords = ''
    3.     $keyword=$keywords

    说明:此步骤是把DEDECMS搜索地址中得p=更换为keywords=,这样DEDECMS和ECSHOP就同样使用keywords进行搜索了。

    步骤3.更换以后有可能提示“关键字不能小于2”,如果出现此情况,找到plus/search.php

    1. if(($keyword=='' || strlen($keyword)<0) && empty($typeid)) 
    2.     ShowMsg('关键字不能小于2个字节!','-1'); 
    3.     exit(); 

    注释掉就可以了。如果没找到则省略此步骤。

    修改完后搜索“关键字”地址分别为:

    1. 选择文章后搜索,地址为:
    2. http://www.meowpet.com/plus/search.php?keywords=%E5%85%B3%E9%94%AE%E5%AD%97&searchtype=titlekeyword&submit.x=36&submit.y=19  
    3. 选择商品后搜索,地址为:
    4. http://www.meowpet.com/shop/search.php?keywords=%E5%85%B3%E9%94%AE%E5%AD%97&searchtype=keywords&submit.x=36&submit.y=12 

    此方法在DEDECMS5.7utf-8和ECSHOP2.7.2中测试通过。不能保证每个人或每个版本都适用。

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告