最近,有朋友找我说:
[totaldata]'notes',2,0,0[/totaldata]在搜索结果页面上不能正常显示,网上找了一个方法(js)可以显示,但是不能实时更新。
这个问题的本质是帝国cms搜索模板不支持标签。解决的方法有两个,要么二开修改源代码,要么在模板中直接写php代码调用。
先看第二种方法,就拿[totaldata]'notes',2,0,0[/totaldata]来说,可以用以下php代码实现:
<?=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_notes")?>
第一种方法,首先引入后台函数集合/e/class/functions.php和t_functions.php,然后对模板内容最标签替换处理即可。具体实现方法如下:
1,打开 /e/search/result/index.php 文件
查找
require("../../class/connect.php"); require("../../class/db_sql.php"); require("../../data/dbcache/class.php"); require("../../class/q_functions.php"); require "../".LoadLang("pub/fun.php");
修改为:
require('../../class/connect.php'); require('../../class/db_sql.php'); require('../../class/functions.php'); require('../../class/t_functions.php'); require('../../data/dbcache/class.php'); require "../".LoadLang("pub/fun.php");
2,再查找
//替换公共模板变量 $listtemp=$tempr[temptext];
在上面添加如下代码
//页面支持标签 $tempr[temptext]=DtNewsBq('list'.$tempid,$tempr[temptext],0);
修改完成,这样就可以在搜索模板中灵活使用帝国cms强大的灵动和万能标签了
后记,经过朋友测试,第二种办法是行不通的。不修改源代码,则搜索模板不支持php代码。所以只有动刀子,结果是满意的,结合项测试也是可以用的。