使用DIY字段实现用户组复选效果,可用于一些权限控制之类的需求,比如指定用户组才能访问内容。
字段效果:

设计方法:
1、新建 /config/myfield/user-quanxian.php 文件
user-quanxian.php 文件名可随意自定义
文件内容如下:
<?php
/**
* 示例文件
* 变量介绍
* $name 字段英文名称
* $field 字段信息(数组)
* $value 当前字段的值
* \Phpcmf\Service::C() 表示控制器方法
* \Phpcmf\Service::M() 表示模型方法
* 表单的name值格式是:data[$name]
*/
$code = ''; // 最终输出的代码
$data = \Phpcmf\Service::C()->member_cache['group'];
$data[0] = [
'name' => '游客'
];
$value = dr_string2array($value);
foreach ($data as $v => $n) {
$s = is_array($value) && in_array($v, $value) ? ' checked' : '';
$kj = '<input type="checkbox" name="data['.$name.'][]" value="'.$v.'" '.$s.' '.$attr.' />';
$code.= '<label class="mt-checkbox mt-checkbox-outline">'.$kj.''.$n['name'].' <span></span> </label> ';
}2、给模块创建diy字段,选择刚才的文件名称,保存。

3、返回后台信息发布界面就可以看到字段选择效果了

4、前端示例
4.1、show.html页判断当前用户组是否是所选中的用户组
{if ($member && array_intersect($quanxian, $member.groupid)) || (!$member && in_array(0, $quanxian))}
在选择的用户组内,有权限访问
{else}
不在选择的用户组内,无权限访问
{/if}本文地址:https://www.diyuncms.com/doc/959.html



