最近,有朋友找我说: [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代码。所以只有动刀子,结果是满意的,结合项测试也是可以用的。
|