DiscuzX 3.X门户专题列表模板不生效解决方法
- 网站编辑
- 2023-09-07
- 45热度
- 0评论
1.primaltplname字段修改为你正在用的路径
默认模板,如果你的文章列表和频道列表打不开提示路径错误或者模板文件不存在可以换成默认的即可
./template/default:portal/list
或者是
./template/default:portal/list_category_onerank
/default是默认路径,可以修改为你当前使用模板的路径
如:./template/mytheme:portal/list
2.articleprimaltplname字段,修改方法同上
./template/default:portal/view
/default是默认路径,可以修改为你当前模板的路径
如:./template/mytheme:portal/view
这个字段触发更新的机制暂时没找到规律,所以直接进数据库手动修改就可以了,然后更新下缓存即可。
以上方法如果还不行
修改文件 source\admincp\admincp_portalcategory.php 1025行
函数 remakediytemplate添加一句红色的代码!
代码中只检查数据库中是否存在 目标模板栏目和 模板目录, 不判断我改变了模板名称。如果你修改的模板是一个目录下的,始终都不会更新'common_diy_data'数据表。以至于你修改不生效! 除非你修改的模板是两个不同的目录的!
具体原因自己看代码理解。
这应该是个BUG!
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'];