跳转到内容

增加系统参数的几种方法

如下图所示的频道系统参数增加有几种方法 img

第一种方法如下:

(这种方法更适合开发者自己使用) img



第二种方法如下:

(这种方法仅适合给用户升级使用。) img 在相应频道目录下面新建一个文件,比如 \application\qun\upgrade\U6.php 代码类似如下

<?php
namespace app\qun\upgrade;
use think\Db;
class U6{
public static function up(){
$sysid = modules_config('qun')['id'];
$type = Db::name('config_group')->where('sys_id',$sysid)->value('id');
into_sql("INSERT INTO `qb_config` (`type`, `title`, `c_key`, `c_value`, `form_type`, `options`, `ifsys`, `htmlcode`, `c_descrip`, `list`, `sys_id`, `is_open`) VALUES( {$type}, '论坛展示哪些圈子的VIP图标', 'show_vip_qun', '', 'text', '', 0, '', '输入圈子id,多个圈子用英文逗号,隔开', 0, {$sysid},0);");
}
}

关键点一:namespace app\qun\upgrade; 其中 qun 就是频道目录名 关键点二:class U6 其中 U6 就是文件目录名,注意首字母必须大写,文件名首字母也一样要大写。 关键点三:modules_config('qun')['id'] 其中 qun 就是频道目录名 关键点四:从第一种方法中,把当前频道所有的参数配置导出来,如下图所示 img 把导出来的SQL语句中挑选出新增的字段,修改两项参数为变量。如下图详解 img

确切的说,就是把字段type 的具体值 -1 用变量 {$type}代替 。把字段sys_id 的具体值 用变量 {$sysid}代替



第三种方法如下:

(这种方法同时适合开发者与用户升级使用) img 找到相应频道的程序控制文件,比如圈子频道的 \application\qun\admin\Setting.phpindex方法里增加下面的代码

$this->config = [
[
'c_key'=>'qun_user_show_claim',
'title'=>'哪些用户创建的'.QUN.'显示认领标志',
'c_value'=>'1,2,3',
'c_descrip'=>'多个用英文逗号隔开,比如1,2,3 认证或推荐的就不显示认领',
'form_type'=>'text',
'options'=>"",
'ifsys'=>0,
'list'=>-1,
],
[
'c_key'=>'post_auto_pass_group',
'title'=>'哪些用户创建的'.QUN.'自动通过审核',
'c_value'=>'',
'c_descrip'=>'不设置,则默认全通过审核',
'form_type'=>'checkbox',
'options'=>'app\common\model\Group@getTitleList@[{"id":["<>",2]}]',
'ifsys'=>0,
'list'=>0,
],
[
'c_key'=>'group_post_money',
'title'=>'发布主题对应用户组的虚拟币变化',
'c_descrip'=>'填负数才是扣积分,否则就是奖励积分,0或留空则不做处理',
'form_type'=>'usergroup',
'ifsys'=>0,
'list'=>-1,
],
[
'c_key'=>'group_topic_jftype',
'title'=>'发布主题奖励哪种虚拟币',
'c_descrip'=>'',
'c_value'=>'0',
'form_type'=>'jftype',
'ifsys'=>0,
'list'=>-1,
],
[
'c_key'=>'forbid_post_topic_phone_noyz',
'title'=>'未验证手机是否禁止发主题',
'c_value'=>'0',
'form_type'=>'radio',
'options'=>"0|不限\r\n1|未验证不允许发布",
'ifsys'=>0,
'list'=>-2,
],
];

注意事项 第二种方法的好处是,用户升级后,还可以进 ”插件管理 ->开发者管理->参数选项管理“ 那里自行删除相应的字段。而第三种方法是无法删除的,即使删除了,系统也会自动补上,如果确实不想显示的话,就修改他的字段类型为隐藏字段即可解决。

最后再提醒一下开发者,第三种方法是根据频道自行增加的字段,另外X1框架系统也可以强制所有频道一起增加某些字段,如果要完全禁止系统给当前频道增加字段的话,就在当前的控制器文件里,增加一个方法,如下图所示 img 即增加下面的方法。这样就可以彻底的避免X1框架系统给当前频道自动追加升级字段。

protected function add_module_config(){
return [];
}