| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 | 
							- <?php
 
- namespace app\common\model;
 
- use think\Model;
 
- /**
 
-  * 配置模型
 
-  */
 
- class Config extends Model
 
- {
 
-     // 表名,不含前缀
 
-     protected $name = 'config';
 
-     // 自动写入时间戳字段
 
-     protected $autoWriteTimestamp = false;
 
-     // 定义时间戳字段名
 
-     protected $createTime = false;
 
-     protected $updateTime = false;
 
-     // 追加属性
 
-     protected $append = [
 
-         'extend_html'
 
-     ];
 
-     protected $type = [
 
-         'setting' => 'json',
 
-     ];
 
-     /**
 
-      * 读取配置类型
 
-      * @return array
 
-      */
 
-     public static function getTypeList()
 
-     {
 
-         $typeList = [
 
-             'string'        => __('String'),
 
-             'password'      => __('Password'),
 
-             'text'          => __('Text'),
 
-             'editor'        => __('Editor'),
 
-             'number'        => __('Number'),
 
-             'date'          => __('Date'),
 
-             'time'          => __('Time'),
 
-             'datetime'      => __('Datetime'),
 
-             'datetimerange' => __('Datetimerange'),
 
-             'select'        => __('Select'),
 
-             'selects'       => __('Selects'),
 
-             'image'         => __('Image'),
 
-             'images'        => __('Images'),
 
-             'file'          => __('File'),
 
-             'files'         => __('Files'),
 
-             'switch'        => __('Switch'),
 
-             'checkbox'      => __('Checkbox'),
 
-             'radio'         => __('Radio'),
 
-             'city'          => __('City'),
 
-             'selectpage'    => __('Selectpage'),
 
-             'selectpages'   => __('Selectpages'),
 
-             'array'         => __('Array'),
 
-             'custom'        => __('Custom'),
 
-         ];
 
-         return $typeList;
 
-     }
 
-     public static function getRegexList()
 
-     {
 
-         $regexList = [
 
-             'required' => '必选',
 
-             'digits'   => '数字',
 
-             'letters'  => '字母',
 
-             'date'     => '日期',
 
-             'time'     => '时间',
 
-             'email'    => '邮箱',
 
-             'url'      => '网址',
 
-             'qq'       => 'QQ号',
 
-             'IDcard'   => '身份证',
 
-             'tel'      => '座机电话',
 
-             'mobile'   => '手机号',
 
-             'zipcode'  => '邮编',
 
-             'chinese'  => '中文',
 
-             'username' => '用户名',
 
-             'password' => '密码'
 
-         ];
 
-         return $regexList;
 
-     }
 
-     public function getExtendHtmlAttr($value, $data)
 
-     {
 
-         $result = preg_replace_callback("/\{([a-zA-Z]+)\}/", function ($matches) use ($data) {
 
-             if (isset($data[$matches[1]])) {
 
-                 return $data[$matches[1]];
 
-             }
 
-         }, $data['extend']);
 
-         return $result;
 
-     }
 
-     /**
 
-      * 读取分类分组列表
 
-      * @return array
 
-      */
 
-     public static function getGroupList()
 
-     {
 
-         $groupList = config('site.configgroup');
 
-         foreach ($groupList as $k => &$v) {
 
-             $v = __($v);
 
-         }
 
-         return $groupList;
 
-     }
 
-     public static function getArrayData($data)
 
-     {
 
-         if (!isset($data['value'])) {
 
-             $result = [];
 
-             foreach ($data as $index => $datum) {
 
-                 $result['field'][$index] = $datum['key'];
 
-                 $result['value'][$index] = $datum['value'];
 
-             }
 
-             $data = $result;
 
-         }
 
-         $fieldarr = $valuearr = [];
 
-         $field = $data['field'] ?? ($data['key'] ?? []);
 
-         $value = $data['value'] ?? [];
 
-         foreach ($field as $m => $n) {
 
-             if ($n != '') {
 
-                 $fieldarr[] = $field[$m];
 
-                 $valuearr[] = $value[$m];
 
-             }
 
-         }
 
-         return $fieldarr ? array_combine($fieldarr, $valuearr) : [];
 
-     }
 
-     /**
 
-      * 将字符串解析成键值数组
 
-      * @param string $text
 
-      * @return array
 
-      */
 
-     public static function decode($text, $split = "\r\n")
 
-     {
 
-         $content = explode($split, $text);
 
-         $arr = [];
 
-         foreach ($content as $k => $v) {
 
-             if (stripos($v, "|") !== false) {
 
-                 $item = explode('|', $v);
 
-                 $arr[$item[0]] = $item[1];
 
-             }
 
-         }
 
-         return $arr;
 
-     }
 
-     /**
 
-      * 将键值数组转换为字符串
 
-      * @param array $array
 
-      * @return string
 
-      */
 
-     public static function encode($array, $split = "\r\n")
 
-     {
 
-         $content = '';
 
-         if ($array && is_array($array)) {
 
-             $arr = [];
 
-             foreach ($array as $k => $v) {
 
-                 $arr[] = "{$k}|{$v}";
 
-             }
 
-             $content = implode($split, $arr);
 
-         }
 
-         return $content;
 
-     }
 
-     /**
 
-      * 本地上传配置信息
 
-      * @return array
 
-      */
 
-     public static function upload()
 
-     {
 
-         $uploadcfg = config('upload');
 
-         $uploadurl = request()->module() ? $uploadcfg['uploadurl'] : ($uploadcfg['uploadurl'] === 'ajax/upload' ? 'index/' . $uploadcfg['uploadurl'] : $uploadcfg['uploadurl']);
 
-         if (!preg_match("/^((?:[a-z]+:)?\/\/)(.*)/i", $uploadurl) && substr($uploadurl, 0, 1) !== '/') {
 
-             $uploadurl = url($uploadurl, '', false);
 
-         }
 
-         $uploadcfg['fullmode'] = isset($uploadcfg['fullmode']) && $uploadcfg['fullmode'];
 
-         $uploadcfg['thumbstyle'] = $uploadcfg['thumbstyle'] ?? '';
 
-         $upload = [
 
-             'cdnurl'     => $uploadcfg['cdnurl'],
 
-             'uploadurl'  => $uploadurl,
 
-             'bucket'     => 'local',
 
-             'maxsize'    => $uploadcfg['maxsize'],
 
-             'mimetype'   => $uploadcfg['mimetype'],
 
-             'chunking'   => $uploadcfg['chunking'],
 
-             'chunksize'  => $uploadcfg['chunksize'],
 
-             'savekey'    => $uploadcfg['savekey'],
 
-             'multipart'  => [],
 
-             'multiple'   => $uploadcfg['multiple'],
 
-             'fullmode'   => $uploadcfg['fullmode'],
 
-             'thumbstyle' => $uploadcfg['thumbstyle'],
 
-             'storage'    => 'local'
 
-         ];
 
-         return $upload;
 
-     }
 
-     /**
 
-      * 刷新配置文件
 
-      */
 
-     public static function refreshFile()
 
-     {
 
-         //如果没有配置权限无法进行修改
 
-         if (!\app\admin\library\Auth::instance()->check('general/config/edit')) {
 
-             return false;
 
-         }
 
-         $config = [];
 
-         $configList = self::all();
 
-         foreach ($configList as $k => $v) {
 
-             $value = $v->toArray();
 
-             if (in_array($value['type'], ['selects', 'checkbox', 'images', 'files'])) {
 
-                 $value['value'] = explode(',', $value['value']);
 
-             }
 
-             if ($value['type'] == 'array') {
 
-                 $value['value'] = (array)json_decode($value['value'], true);
 
-             }
 
-             $config[$value['name']] = $value['value'];
 
-         }
 
-         file_put_contents(
 
-             CONF_PATH . 'extra' . DS . 'site.php',
 
-             '<?php' . "\n\nreturn " . var_export_short($config) . ";\n"
 
-         );
 
-         return true;
 
-     }
 
- }
 
 
  |