解决修改门户列表无效的方法
问题描述:就是当我在为喀什特区兵团分区网改版的时候,在后台设置门户频道也的模板的时候,切换后前台却还是之前的样子。比如我们自己设计了一个门户列表页的模板,本来是可以直接在后台切换的为我们自己的(设置方法是:后台——门户——频道管理(选择对应的频道)——编辑——列表模板名——选择我们自己新建的),但是不管我们怎么切换,可前台还是之前的样子。
问题猜测
1、缓存问题,没有更新后台缓存。我们知道dz的缓存处理做得非常好,于是可能有缓存问题,但我们正常使用的网站是不需要更新缓存也会在前台显示切换新的列表的。
2、生产了HTMl。但事实上我的这个程序没有生成html。
3、程序BUG。很大可能就是这个问题了。
分析过程:
其实这个问题我在很久以前碰到过一次,后台升级程序补丁就没有这个问题,很显然可能是某些小版本的bug,根据查询相关的文档发现还是真的bug问题。原来是一个库文件只检查数据库中是否存在 目标模板栏目和 模板目录, 不判断我改变了模板名称。
解决方案
修改文件 source\admincp\admincp_portalcategory.php函数 remakediytemplate 添加一句红色的代码!即可解决这个问题
function remakediytemplate($primaltplname, $targettplname, $diytplname, $olddirectory){
global $_G;
if(empty($targettplname)) return false;
$tpldirectory = '';
if(strpos($primaltplname, ':') !== false) {
list($tpldirectory, $primaltplname) = explode(':', $primaltplname);
}
$tpldirectory = ($tpldirectory ? $tpldirectory : $_G['cache']['style_default']['tpldir']);
$newdiydata = C::t('common_diy_data')->fetch($targettplname, $tpldirectory);
if($newdiydata) {if($newdiydata['primaltplname'] == $primaltplname) return false;
}
$diydata = C::t('common_diy_data')->fetch($targettplname, $olddirectory);
$diycontent = empty($diydata['diycontent']) ? '' : $diydata['diycontent'];
页:
[1]