最近客户有个需求,说能不能给ecshop指定的产品设置权限,比如要看一个产品信息,就必须用户登录而且用户等级达到一定等级。
这个需求的实现并不难,方案做法也有很多,大多数做法都是直接给产品设置等级id,根据等级id判断是否展示。
但这个有个缺陷就的就是灵活性并不高,要改个等级排列的时候得每个产品从新设置一边等级。
这里我提供一个比较好的实现函数。直接给产品设置一个等级id即可。
实现无论等级的points排序如何改变都不会乱。
function get_rank_priv()
{
$sql="select rank_id from ".$ecs->table('user_rank')." order by min_points asc";
$list=$GLOBALS['db']->getCol($sql);
$left=$list;
array_unshift($left,0);
$list=array_reverse($list);
$data=array();
foreach($list as $rank)
{
$data[$rank]=implode(',',$left);
array_pop($left);
}
}
这样就可以根据用户当前的等级,获取到对应的浏览权限。很完美的达到了用户的需求。
正文完