您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程

PHPCMS模型设置和栏目设置方法

孙奎汝2025-05-20 16:12:15phpcms教程已有4人查阅

导读先增模型那怕是不完善的模型,一定要先设置,然后建立对应的模板,那怕是一个空模板文件。原因很简单回头修改设置好了的栏目属性会是一件非常疼苦的事,在这点DEDE更人性化,更简单。

第三节,模型设置和栏目设置
在这里一定要注意次序
先增模型那怕是不完善的模型,一定要先设置,然后建立对应的模板,那怕是一个空模板文件。原因很简单回头修改设置好了的栏目属性会是一件非常疼苦的事,在这点DEDE更人性化,更简单。
设置完了模型后,就可以设置栏目了,栏目可以批量建立,也可以一个一个的建立。
处理完这些,为了SEO进行个性化的栏目访问地址,这时会出现栏目不能正常访问了,这是phpcms的一个小BUG。
通过网上找的解决方式修改程序后可以正常使用
也就是当超过三级采用相对路径时phpcms v9的文件夹存储路径就发生了错误
解决:查找admin模型下category.php(phpcms\modules\admin\category.php)
查找函数 function get_parentdir($catid)
修改
//--------------------------------
/**
* 获取父栏目路径
* @param$catid
*/
function get_parentdir($catid) {
if($this->categorys[$catid]['parentid']==0) return '';
$r = $this->categorys[$catid];
$setting = string2array($r['setting']);
$url = $r['url'];
$arrparentid = $r['arrparentid'];
$pid = $r['parentid'];
unset($r);
if (strpos($url, '://')===false) {
if ($setting['creat_to_html_root']) {
return '';
} else {
$arrparentid = explode(',', $arrparentid);
$arrcatdir = array();
foreach($arrparentid as $id) {
if($id==0) continue;
$rr = $this->categorys[$id];
$rsetting = string2array($rr['setting']);
if($rsetting['create_to_html_root'] && $id==$pid)
{
return$this->categorys[$id]['catdir']."/";
}
else $arrcatdir[] = $this->categorys[$id]['catdir'];
}
return implode('/', $arrcatdir).'/';
}
} else {
if ($setting['create_to_html_root']) {
if (preg_match('/^((http|https):\/\/)?([^\/]+)/i', $url, $matches)) {
$url = $matches[0].'/';
$rs = $this->db->get_one(array('url'=>$url), '`parentdir`,`catid`');
if ($catid == $rs['catid']) return '';
else return $rs['parentdir'];
} else {
return '';
}
} else {
$arrparentid = explode(',', $arrparentid);
$arrcatdir = array();
krsort($arrparentid);
foreach ($arrparentid as $id) {
if ($id==0) continue;
$arrcatdir[] = $this->categorys[$id]['catdir'];
if ($this->categorys[$id]['parentdir'] == '') break;
}
krsort($arrcatdir);
return implode('/', $arrcatdir).'/';
}
}
}

本文标签:

很赞哦! (1)

暂无内容
暂无内容
暂无内容
暂无内容
留言与评论 (共有 0 条评论)
昵称:
匿名发表 登录账号
         
验证码: