最近网站改版,遇到这个问题在频道中选择“列表页模板名”显示一堆重名文件——文章列表模板。
有位仁兄为了解决这个问题提供了一种解决办法:
打开文件: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]-->
就能正常显示“列表页模板”的名字了!