原文来自:https://www.zixuephp.com

修改dedecms搜索结果页的默认模版

关于dedecms中英文的搜索实现,需要在不同语言下搜索显示不同的语言,那就必须做两个搜索页模版才行,查了下,发现dedecms5.7版本的搜索页模版已经不是在plus/search.php那里指定,而是转移到include/arc.searchview.class.php这个文件,下面说下修改办法.

打开include/arc.searchview.class.php文件,找到:

  1. $tempfile=$GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$GLOBALS['cfg_df_style']."/search.htm";

把search.htm修改成你需要的模版名字即可,当然你需要在templates/你的默认模版目录里面有这个新模版文件才行.

如果想在中英文界面搜索时使用中英文不同的模版,可以制作多一个search_en.htm模版,再在include/arc.searchview.class.php文 件:

$tempfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$GLOBALS['cfg_df_style']."/search.htm";

语句下面加多一个判断条件,我的修改之后是这样:

  1. $tempfile=$GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$GLOBALS['cfg_df_style']."/search.htm";
  2. if($typeyy="en")
  3. {
  4. $tempfile=$GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']."/".$GLOBALS['cfg_df_style']."/search_en.htm";
  5. }

然后在列表页或文章页模版里面你需要提交搜索的那部分之间增加一个参数typeyy,属性为hiddenen.

另外,为了避免在英文模版下搜索时显示中文内容,可以限定搜索的栏目范围,如限定搜索时只显示id为7的栏目下的内容.

这样就实现了中英文搜索都正常显示。