栏目会员权限概述
织梦CMS的会员权限系统允许管理员为不同栏目设置不同的会员访问级别。通过配置 arcrank 字段和会员等级(M_MbRank),可以实现精细化的栏目内容权限控制。
一、会员等级体系
| 等级 | rank值 | 说明 |
|---|---|---|
| 游客 | 0 | 未登录用户 |
| 注册会员 | 10 | 注册后默认等级 |
| 中级会员 | 50 | 活跃用户/付费用户 |
| 高级会员 | 100 | VIP/年费会员 |
二、设置栏目的会员访问权限
- 进入
核心 > 栏目管理 - 点击目标栏目的"更改"
- 在"访问权限"设置:
允许访问的最低会员等级: ○ 所有用户(含游客) → arcrank=0 ○ 注册会员 → arcrank=10 ○ 中级会员 → arcrank=50 ○ 高级会员 → arcrank=100
三、模板中判断会员权限
<!-- 判断用户是否有权访问当前栏目 -->
{dede:php}
// 获取当前栏目所需的最低权限
$typeid=$refObj->TypeLink->TypeInfos['id'];
$arcrank=$refObj->TypeLink->TypeInfos['arcrank'] ?? 0;
// 获取当前会员等级
$memberRank=$cfg_ml->IsLogin() ? $cfg_ml->M_MbRank : 0;
if($memberRank < $arcrank){
// 权限不足
if(!$cfg_ml->IsLogin()){
echo '<div class="login-tip">
<p>本栏目需要登录后才能访问</p>
<a href="/member/login.php">立即登录</a>
<a href="/member/reg.php">注册账号</a>
</div>';
} else {
echo '<div class="vip-tip">
<p>您当前等级不足以访问本栏目</p>
<p>当前等级:'.$memberRank.',需要等级:'.$arcrank.'</p>
<a href="/member/upgrade.php">升级会员</a>
</div>';
}
} else {
// 权限足够,显示正常内容
}
{/dede:php}
四、不同栏目不同会员策略
<!-- 根据栏目类型设置不同的访问策略 -->
{dede:php}
$typeid=$refObj->TypeLink->TypeInfos['id'];
// 不同栏目的权限策略
$typePolicies=array(
3=> array('name'=>'免费栏目', 'min_rank'=>0),
5=> array('name'=>'会员栏目', 'min_rank'=>10),
8=> array('name'=>'VIP栏目', 'min_rank'=>50),
10=> array('name'=>'高级VIP', 'min_rank'=>100),
);
$policy=$typePolicies[$typeid] ?? $typePolicies[3];
$memberRank=$cfg_ml->IsLogin() ? $cfg_ml->M_MbRank : 0;
if($memberRank >=$policy['min_rank']){
echo '<span class="badge">'.$policy['name'].'</span>';
}
{/dede:php}
五、通过SQL批量设置栏目权限
-- 批量设置所有子栏目为会员可见 UPDATE dede_arctype SET arcrank=10 WHERE reid=父栏目ID; -- 将指定栏目设为VIP可见 UPDATE dede_arctype SET arcrank=100 WHERE id IN(5,8,10); -- 恢复所有栏目为公开访问 UPDATE dede_arctype SET arcrank=0;
六、会员到期自动降权
<?php
// 定时检查VIP会员是否到期
require_once(dirname(__FILE__)."/include/common.inc.php");
$now=time();
// 查找过期的VIP会员并降级
$dsql->ExecuteNoneQuery(
"UPDATE dede_member
SET mrank=10
WHERE mrank >=50 AND exptime > 0 AND exptime < {$now}"
);
echo "已处理过期会员";
?>
权限设计建议:建议采用"金字塔"权限模型:大部分栏目对游客开放(吸引流量),部分优质栏目对注册会员开放(促注册),少量核心内容对VIP开放(变现)。这种梯度权限策略能兼顾流量获取和商业变现。