V5.5默认是a ,相当令人不爽,于是在后台将文档HTML默认保存路径修改成 html,可是一点反应都没有。
Data/config.cache.inc.php下的缓存也更新了一下,里面的$cfg_arcdir的值也变成了’/html’,可是还是没反应。于是慢慢找他是怎么生成文件名的。
1.Aritcl_add.php 225行 $artUrl = MakeArt($arcID,true,true);
这个函数在 member/inc/inc_archives_functions.php 217行定义的。
发现
$arc = new Archives($aid);
$reurl = $arc->MakeHtml();
2.再找到 Archives类,在include/ arc.archives.class.php文件里,在295行找到了 MakeHtml(),发现他的功能就是产生html文件。
//分析要创建的文件名称
$filename = GetFileNewName(
$this->ArcID,$this->Fields[‘typeid’],$this->Fields[‘senddate’],
$this->Fields[‘title’],$this->Fields[‘ismake’],$this->Fields[‘arcrank’],
$this->TypeLink->TypeInfos[‘namerule’],$this->TypeLink->TypeInfos[‘typedir’],$this->Fields[‘money’],$this->Fields[‘filename’]
);
3.得,再去找 这个函数,在include/channelunit.func.php 70行,
发现73行
$articlename = GetFileName($aid,$typeid,$timetag,$title,$ismake,$rank,$namerule,$typedir,$money,$filename);
4.在100行找到这个函数GetFileName()
122行 $articleDir = MfTypedir($typedir);
5.再找 MfTypedir()也在当前文件下,296行,
//栏目目录规则
function MfTypedir($typedir)
{
if(eregi(“^http:”,$typedir)) return $typedir;
$typedir = str_replace(“{cmspath}”,$GLOBALS[‘cfg_cmspath’],$typedir);
$typedir = ereg_replace(“/{1,}”,”/”,$typedir);
return $typedir;
}
发现上当了,这个函数什么P事都没干,就是替换两个字符,跳来跳去还没找到原因,经过一步一步输出,发现问题在第2步,$this->TypeLink->TypeInfos[‘typedir’]这个变量里包含了静态目录名a的信息,于是找 TypeLink,这个类在include/typelink.class.php里,$this->TypeInfos = $this->dsql->GetOne($query);
至此终于明白了,那个目录改了之后没有效果的原因了。打开arctype表看一下typedir字段的值就明白了{cmspath}/a/xinshoujiaocheng ,原来在添加分类的时候,他已经把目录名写到数据库里了,难怪怎么改也没有用。
{cmspath}/a/hulianwang
现在就好办了,刷新数据库,要么自己手动去后来改。