Initial project files: BESCMS full source
This commit is contained in:
@@ -0,0 +1,250 @@
|
||||
<?php namespace Phpcmf\Model;
|
||||
/**
|
||||
* https://www.besyun.com
|
||||
* BESCMS
|
||||
* 本文件是框架系统文件,二次开发时不可以修改本文件,可以通过继承类方法来重写此文件
|
||||
**/
|
||||
|
||||
class Site extends \Phpcmf\Model {
|
||||
|
||||
// 设置风格
|
||||
public function set_theme($name, $siteid) {
|
||||
|
||||
$site = $this->table('site')->get($siteid);
|
||||
if (!$site) {
|
||||
return [];
|
||||
}
|
||||
|
||||
$site['setting'] = dr_string2array($site['setting']);
|
||||
$site['setting']['config']['SITE_THEME'] = $name;
|
||||
|
||||
$this->table('site')->update($siteid, [
|
||||
'setting' => dr_array2string($site['setting']),
|
||||
]);
|
||||
}
|
||||
|
||||
// 设置模板
|
||||
public function set_template($name, $siteid) {
|
||||
|
||||
$site = $this->table('site')->get($siteid);
|
||||
if (!$site) {
|
||||
return [];
|
||||
}
|
||||
|
||||
$site['setting'] = dr_string2array($site['setting']);
|
||||
$site['setting']['config']['SITE_TEMPLATE'] = $name;
|
||||
|
||||
$this->table('site')->update($siteid, [
|
||||
'setting' => dr_array2string($site['setting']),
|
||||
]);
|
||||
}
|
||||
|
||||
// 获取项目配置
|
||||
public function config($siteid, $name = '', $data = []) {
|
||||
|
||||
!$siteid && $siteid = SITE_ID;
|
||||
$site = $this->table('site')->get($siteid);
|
||||
if (!$site) {
|
||||
return [];
|
||||
}
|
||||
|
||||
$site['setting'] = dr_string2array($site['setting']);
|
||||
$site['setting']['config']['SITE_NAME'] = $site['name'];
|
||||
$site['setting']['config']['SITE_DOMAIN'] = strtolower((string)$site['domain']);
|
||||
|
||||
if ($name && $data) {
|
||||
// 更新数据
|
||||
if ($data['SITE_NAME']) {
|
||||
$site['name'] = $data['SITE_NAME'];
|
||||
}
|
||||
if ($data['SITE_DOMAIN']) {
|
||||
$site['domain'] = $data['SITE_DOMAIN'];
|
||||
}
|
||||
$site['setting'][$name] = $data;
|
||||
$this->table('site')->update($siteid, [
|
||||
'name' => $site['name'],
|
||||
'domain' => strtolower((string)$site['domain']),
|
||||
'setting' => dr_array2string($site['setting']),
|
||||
]);
|
||||
}
|
||||
|
||||
return $site['setting'];
|
||||
}
|
||||
|
||||
// 存储项目配置
|
||||
public function save_config($siteid, $name, $data) {
|
||||
|
||||
!$siteid && $siteid = SITE_ID;
|
||||
$site = $this->table('site')->get($siteid);
|
||||
if (!$site) {
|
||||
return [];
|
||||
}
|
||||
|
||||
$site['setting'] = dr_string2array($site['setting']);
|
||||
$site['setting']['config']['SITE_NAME'] = $site['name'];
|
||||
$site['setting']['config']['SITE_DOMAIN'] = strtolower((string)$site['domain']);
|
||||
|
||||
// 更新数据
|
||||
if ($data['SITE_NAME']) {
|
||||
$site['name'] = $data['SITE_NAME'];
|
||||
}
|
||||
if ($data['SITE_DOMAIN']) {
|
||||
$site['domain'] = $data['SITE_DOMAIN'];
|
||||
}
|
||||
$site['setting'][$name] = $data;
|
||||
$this->table('site')->update($siteid, [
|
||||
'name' => $site['name'],
|
||||
'domain' => strtolower((string)$site['domain']),
|
||||
'setting' => dr_array2string($site['setting']),
|
||||
]);
|
||||
|
||||
return $site['setting'];
|
||||
}
|
||||
|
||||
// 设置项目单个配置
|
||||
public function config_value($siteid, $group, $value) {
|
||||
|
||||
!$siteid && $siteid = SITE_ID;
|
||||
$site = $this->table('site')->get($siteid);
|
||||
if (!$site || !$value) {
|
||||
return;
|
||||
}
|
||||
|
||||
$site['setting'] = dr_string2array($site['setting']);
|
||||
|
||||
foreach ($value as $n => $v) {
|
||||
$site['setting'][$group][$n] = $v;
|
||||
}
|
||||
|
||||
$this->table('site')->update($siteid, [
|
||||
'setting' => dr_array2string($site['setting']),
|
||||
]);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// 新增
|
||||
public function create($data) {
|
||||
|
||||
if (IS_USE_MODULE) {
|
||||
return \Phpcmf\Service::M('site', 'module')->create($data);
|
||||
}
|
||||
|
||||
$save = [
|
||||
'name' => $data['name'],
|
||||
'domain' => (string)$data['domain'],
|
||||
'setting' => dr_array2string([
|
||||
'webpath' => $data['webpath'],
|
||||
]),
|
||||
'disabled' => 0,
|
||||
'displayorder' => 0,
|
||||
];
|
||||
if (defined('IS_INSTALL')) {
|
||||
$save['id'] = 1;
|
||||
}
|
||||
$this->db->table('site')->replace($save);
|
||||
|
||||
$siteid = $this->db->insertID();
|
||||
|
||||
if ($siteid == 1) {
|
||||
return $siteid; // 安装不执行后面操作
|
||||
}
|
||||
|
||||
return $siteid;
|
||||
}
|
||||
|
||||
// 变更主域名
|
||||
public function edit_domain($value) {
|
||||
|
||||
if (IS_USE_MODULE) {
|
||||
return \Phpcmf\Service::M('site', 'module')->edit_domain($value);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 设置域名
|
||||
public function domain($value = []) {
|
||||
|
||||
if (IS_USE_MODULE) {
|
||||
return \Phpcmf\Service::M('site', 'module')->domain($value);
|
||||
}
|
||||
|
||||
return [[], []];
|
||||
}
|
||||
|
||||
// 站点缓存缓存
|
||||
public function cache($siteid = null, $data = null, $module = null) {
|
||||
|
||||
if (IS_USE_MODULE) {
|
||||
return \Phpcmf\Service::M('site', 'module')->cache($siteid, $data, $module);
|
||||
}
|
||||
|
||||
$sso_domain = $client_domain = $webpath = $app_domain = $site_domain = $config = $cache = [];
|
||||
|
||||
if (!$data) {
|
||||
$data = $this->table('site')->where('disabled', 0)->order_by('displayorder ASC,id ASC')->getAll();
|
||||
}
|
||||
|
||||
if ($data) {
|
||||
foreach ($data as $t) {
|
||||
if ($t['id'] > 1) {
|
||||
break;
|
||||
}
|
||||
$t['domain'] = DOMAIN_NAME;
|
||||
$t['setting'] = dr_string2array($t['setting']);
|
||||
|
||||
$config[$t['id']] = [
|
||||
'SITE_NAME' => $t['name'],
|
||||
'SITE_DOMAIN' => $t['domain'],
|
||||
'SITE_LOGO' => $t['setting']['config']['logo'] ? dr_get_file($t['setting']['config']['logo']) : ROOT_THEME_PATH.'assets/logo-web.png',
|
||||
'SITE_MOBILE' => '',
|
||||
'SITE_MOBILE_DIR' => '',
|
||||
'SITE_AUTO' => 0,
|
||||
'SITE_IS_MOBILE_HTML' => 0,
|
||||
'SITE_MOBILE_NOT_PAD' => 0,
|
||||
'SITE_CLOSE' => 0,
|
||||
'SITE_THEME' => 'default',
|
||||
'SITE_TEMPLATE' => 'default',
|
||||
'SITE_REWRITE' => 0,
|
||||
'SITE_SEOJOIN' => '_',
|
||||
'SITE_LANGUAGE' => $t['setting']['config']['SITE_LANGUAGE'],
|
||||
'SITE_TIMEZONE' => $t['setting']['config']['SITE_TIMEZONE'],
|
||||
'SITE_TIME_FORMAT' => $t['setting']['config']['SITE_TIME_FORMAT'],
|
||||
'SITE_INDEX_HTML' => 0,
|
||||
'SITE_THUMB_WATERMARK' => (int)$t['setting']['watermark']['thumb'],
|
||||
];
|
||||
unset($t['setting']['mobile']['auto'],
|
||||
$t['setting']['mobile']['domain'],
|
||||
$t['setting']['seo']['SITE_REWRITE'],
|
||||
$t['setting']['seo']['SITE_SEOJOIN'],
|
||||
$t['setting']['config']['SITE_THEME'],
|
||||
$t['setting']['config']['SITE_TEMPLATE'],
|
||||
$t['setting']['config']['SITE_LANGUAGE'],
|
||||
$t['setting']['config']['SITE_TIME_FORMAT'],
|
||||
$t['setting']['config']['SITE_NAME'],
|
||||
$t['setting']['config']['SITE_TIMEZONE'],
|
||||
$t['setting']['config']['SITE_DOMAIN'],
|
||||
$t['setting']['config']['SITE_CLOSE']
|
||||
);
|
||||
// 本站的全部域名归属
|
||||
$sso_domain[] = $t['domain'];
|
||||
$site_domain[$t['domain']] = $t['id'];
|
||||
// 项目路径
|
||||
$webpath[$t['id']] = [
|
||||
'site' => ROOTPATH,
|
||||
];
|
||||
$cache[$t['id']] = $t['setting'];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
\Phpcmf\Service::L('Cache')->set_file('site', $cache);
|
||||
\Phpcmf\Service::L('Config')->file(WRITEPATH.'config/site.php', '项目配置文件', 32)->to_require($config);
|
||||
\Phpcmf\Service::L('Config')->file(WRITEPATH.'config/domain_sso.php', '同步域名配置文件', 32)->to_require_one($sso_domain);
|
||||
\Phpcmf\Service::L('Config')->file(WRITEPATH.'config/domain_app.php', '项目域名配置文件', 32)->to_require_one($app_domain);
|
||||
\Phpcmf\Service::L('Config')->file(WRITEPATH.'config/domain_site.php', '项目域名配置文件', 32)->to_require_one($site_domain);
|
||||
\Phpcmf\Service::L('Config')->file(WRITEPATH.'config/domain_client.php', '客户端域名配置文件', 32)->to_require_one($client_domain);
|
||||
\Phpcmf\Service::L('Config')->file(WRITEPATH.'config/webpath.php', '入口文件目录配置文件', 32)->to_require($webpath);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user