审查视图

addons/shopro/model/Config.php 4.9 KB
何书鹏 authored
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190
<?php

namespace addons\shopro\model;

use think\Model;

/**
 * 配置模型
 */
class Config extends Model
{

    // 表名,不含前缀
    protected $name = 'shopro_config';
    // 自动写入时间戳字段
    protected $autoWriteTimestamp = false;
    // 定义时间戳字段名
    protected $createTime = false;
    protected $updateTime = false;
    // 追加属性
    protected $append = [
    ];

    /**
     * 读取配置类型
     * @return array
     */
    public static function getTypeList()
    {
        $typeList = [
            'string' => __('String'),
            'text' => __('Text'),
            'editor' => __('Editor'),
            'number' => __('Number'),
            'date' => __('Date'),
            'time' => __('Time'),
            'datetime' => __('Datetime'),
            'select' => __('Select'),
            'selects' => __('Selects'),
            'image' => __('Image'),
            'images' => __('Images'),
            'file' => __('File'),
            'files' => __('Files'),
            'switch' => __('Switch'),
            'checkbox' => __('Checkbox'),
            'radio' => __('Radio'),
            'array' => __('Array'),
            'custom' => __('Custom'),
        ];
        return $typeList;
    }

    public static function getEasyWechatConfig($platform)
    {
        $config = json_decode(self::where(['name' => $platform])->value('value'), true);
        return $config;
    }

    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 getExtendAttr($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;
    }

    public static function load($name)
    {
        $value = self::where(['name' => $name])->value('value');
        return json_decode($value, true);
    }

    /**
     * 读取分类分组列表
     * @return array
     */
    public static function getGroupList()
    {
        $group = self::group('group')->column('group');
        $groupList = [];
        foreach ($group as $v) {
            $groupList[$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 = isset($data['field']) ? $data['field'] : (isset($data['key']) ? $data['key'] : []);
        $value = isset($data['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');

        $upload = [
            'cdnurl' => $uploadcfg['cdnurl'],
            'uploadurl' => $uploadcfg['uploadurl'],
            'bucket' => 'local',
            'maxsize' => $uploadcfg['maxsize'],
            'mimetype' => $uploadcfg['mimetype'],
            'multipart' => [],
            'multiple' => $uploadcfg['multiple'],
        ];
        return $upload;
    }

}