最近网站改版,遇到这个问题在频道中选择“列表页模板名”显示一堆重名文件——文章列表模板。
有位仁兄为了解决这个问题提供了一种解决办法:
打开文件:source\admincp\admincp_portalcategory.php
约990行:
$catetplselect .= '<option value="'.$k.'"'.$selected.'>'.$v.'</option>';
修改为:
$catetplselect .= '<option value="'.$k.'"'.$selected.'>'.$v.'['.$k.']'.'</option>';
我在阅读了一下程序后发现一段这样的代码(第964行):
$tpls[str_replace('.htm','',$file)] = getprimaltplname($file);
这个函数getprimaltplname($file)是干什么用的呢?
它的代码如下:
function getprimaltplname($filename) {
global $_G, $lang;
$content = @file_get_contents(DISCUZ_ROOT.($_G['cache']['style_default']['tpldir'] ? $_G['cache']['style_default']['tpldir'] : './template/default').'/portal/'.$filename);
$name = $filename;
if($content) {
preg_match("/\<\!\-\-\[name\](.+?)\[\/name\]\-\-\>/i", trim($content), $mathes);
if(!empty($mathes[1])) {
preg_match("/^\{lang (.+?)\}$/", $mathes[1], $langs);
if(!empty($langs[1])) {
$name = !$lang[$langs[1]] ? $langs[1] : $lang[$langs[1]];
} else {
$name = dhtmlspecialchars($mathes[1]);
}
}
}
return $name;
}
各位仁兄看到这里也许就明白了,在模板中加入:
<!--[name]您的模板名[/name]-->
就能正常显示“列表页模板”的名字了!