Initial project files: BESCMS full source

This commit is contained in:
bes
2026-08-13 23:37:46 +08:00
parent fa6cddb540
commit 2e26f85723
2166 changed files with 396625 additions and 0 deletions
+120
View File
@@ -0,0 +1,120 @@
<?php namespace Phpcmf\Model;
/**
* https://www.besyun.com
* BESCMS
* 本文件是框架系统文件,二次开发时不可以修改本文件,可以通过继承类方法来重写此文件
**/
// 系统模型 - 后台
class System extends \Phpcmf\Model {
public $config = [
'SYS_DEBUG' => '调试器开关',
'SYS_ADMIN_CODE' => '后台登录验证码开关',
'SYS_ADMIN_LOG' => '后台操作日志开关',
'SYS_AUTO_FORM' => '自动存储表单数据',
'SYS_ADMIN_PAGESIZE' => '后台数据分页显示数量',
'SYS_TABLE_ISFOOTER' => '批量操作按钮位置设定',
'SYS_CRON_AUTH' => '自动任务权限IP地址',
'SYS_SMS_IMG_CODE' => '发送短信验证码双重图形验证开关',
'SYS_GO_404' => '404页面跳转开关',
'SYS_301' => '内容地址唯一模式',
'SYS_FONT_SIZE' => '字号设置',
'SYS_URL_ONLY' => '地址匹配规则',
'SYS_URL_REL' => '地址相对模式',
'SYS_KEY' => '安全密匙',
'SYS_CSRF' => '开启跨站验证',
'SYS_CSRF_TIME' => '跨站验证有效期',
'SYS_HTTPS' => 'https模式',
'SYS_NOT_ADMIN_CACHE' => '禁用后台tab切换效果',
'SYS_ADMIN_MODE' => '禁用后台登录进行模式选择',
'SYS_ADMIN_LOGINS' => '登录失败N次后,系统将锁定登录',
'SYS_ADMIN_LOGIN_TIME' => '登录失败锁定后在x分钟内禁止登录',
'SYS_ADMIN_LOGIN_AES' => '登录密码加密处理',
'SYS_ADMIN_OAUTH' => '后台启用快捷登录',
'SYS_ADMIN_SMS_LOGIN' => '后台启用短信登录',
'SYS_ADMIN_SMS_CHECK' => '后台启用短信二次验证登录',
'SYS_ATTACHMENT_DB' => '附件归属开启模式',
'SYS_ATTACHMENT_GUEST' => '游客是否附件上传',
'SYS_ATTACHMENT_PAGESIZE' => '浏览附件分页数',
'SYS_ATTACHMENT_CF' => '重复上传控制',
'SYS_ATTACHMENT_REL' => '相对于当前站点的域名',
'SYS_ATTACHMENT_SAFE' => '附件上传安全模式',
'SYS_ATTACHMENT_DOWN_REMOTE' => '下载远程附件重命名方式',
'SYS_ATTACHMENT_DOWN_SIZE' => '下载附件重命名条件',
'SYS_ATTACHMENT_PATH' => '附件上传路径',
'SYS_ATTACHMENT_SAVE_TYPE' => '附件存储方式',
'SYS_ATTACHMENT_SAVE_DIR' => '附件存储目录',
'SYS_ATTACHMENT_SAVE_ID' => '附件存储全局策略',
'SYS_ATTACHMENT_URL' => '附件访问地址',
'SYS_AVATAR_PATH' => '头像上传路径',
'SYS_AVATAR_URL' => '头像访问地址',
'SYS_API_TOKEN' => 'API请求密钥',
'SYS_API_CODE' => 'API请求时验证码开关',
'SYS_API_REL' => 'API请求时的URL方式',
'SYS_THEME_ROOT_PATH' => '资源路径引用方式',
'SYS_NOT_UPDATE' => '禁止自动检测版本',
];
/**
* 保存配置文件
*/
public function save_config($system, $data) {
foreach ($this->config as $name => $s) {
if (isset($data[$name])) {
$value = $data[$name];
if ($name == 'SYS_ADMIN_PAGESIZE') {
$value = max(1, $value);
} elseif ($name == 'SYS_NOT_ADMIN_CACHE') {
if (!\Phpcmf\Service::LIC('vip')) {
$value = 1;
}
}
$system[$name] = $value;
}
}
\Phpcmf\Service::L('config')->file(WRITEPATH.'config/system.php', '系统配置文件', 32)->to_require_one(
$this->config,
$system
);
}
// 读取配置信息
public function get_setting($name) {
$data = $this->table('admin_setting')->where('name', $name)->getRow();
return $data ? dr_string2array($data['value']) : [];
}
// 存储配置信息
public function save_setting($name, $value) {
$this->table('admin_setting')->replace([
'name' => $name,
'value' => dr_array2string($value),
]);
}
// 更新缓存
public function cache() {
$rt = [];
$data = $this->table('admin_setting')->getAll();
if ($data) {
foreach ($data as $t) {
$rt[$t['name']] = dr_string2array($t['value']);
}
}
\Phpcmf\Service::L('cache')->set_file('admin_setting', $rt);
}
}