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
+194
View File
@@ -0,0 +1,194 @@
<?php
/**
* 更新数据结构
**/
$prefix = \Phpcmf\Service::M()->prefix;
// 审核流程表
if (!\Phpcmf\Service::M()->is_table_exists('admin_verify')) {
$rt = \Phpcmf\Service::M('table')->install_schema([
'tables' => [
'admin_verify' => [
'comment' => '审核管理表',
'fields' => [
'id' => 'smallint(5) unsigned NOT NULL AUTO_INCREMENT',
'name' => 'text NOT NULL COMMENT \'名称\'',
'verify' => 'text NOT NULL COMMENT \'审核部署\'',
],
'indexes' => [
'PRIMARY KEY (`id`)',
],
],
],
'seeds' => [
['table' => 'admin_verify', 'data' => ['id' => 1, 'name' => '默认审核', 'verify' => '{"edit":"1","role":{"1":"2"}}']],
],
]);
if (empty($rt['code'])) {
log_message('error', 'Cms_free update admin_verify: '.($rt['msg'] ?? ''));
}
}
// 模块
$is_module = \Phpcmf\Service::M()->is_table_exists('module');
if ($is_module) {
$module = \Phpcmf\Service::M()->table('module')->order_by('displayorder ASC,id ASC')->getAll();
// 栏目模型字段修正
\Phpcmf\Service::M()->db->table('field')->where('relatedname', 'share-'.SITE_ID)->update(['relatedname' => 'catmodule-share']);
if ($module) {
foreach ($module as $m) {
if (!\Phpcmf\Service::M()->table('field')->where('relatedname', 'module')
->where('relatedid', $m['id'])->where('fieldname', 'author')->counts()) {
\Phpcmf\Service::M()->db->table('field')->insert(array(
'name' => '笔名',
'fieldname' => 'author',
'fieldtype' => 'Text',
'relatedid' => $m['id'],
'relatedname' => 'module',
'isedit' => 1,
'ismain' => 1,
'ismember' => 1,
'issystem' => 1,
'issearch' => 1,
'disabled' => 0,
'setting' => dr_array2string(array(
'is_right' => 1,
'option' => array(
'width' => 200, // 表单宽度
'fieldtype' => 'VARCHAR', // 字段类型
'fieldlength' => '255', // 字段长度
'value' => '{name}'
),
'validate' => array(
'xss' => 1, // xss过滤
)
)),
'displayorder' => 0,
));
}
}
}
}
// 站点
foreach ($this->site as $siteid) {
// 升级栏目表
if ($is_module) {
$table = $prefix . $siteid . '_share_category';
if (\Phpcmf\Service::M()->is_table_exists($table)) {
// 创建字段 代码
if (!\Phpcmf\Service::M()->db->fieldExists('disabled', $table)) {
\Phpcmf\Service::M('table')->add_field($table, 'disabled', 'tinyint(1)', 'DEFAULT \'0\'', '');
\Phpcmf\Service::M()->query('UPDATE `' . $table . '` SET `disabled` = 0');
}
\Phpcmf\Service::M()->query('UPDATE `' . $table . '` SET `disabled` = 0 WHERE `disabled` IS NULL ');
if (!\Phpcmf\Service::M()->db->fieldExists('ismain', $table)) {
\Phpcmf\Service::M('table')->add_field($table, 'ismain', 'tinyint(1)', 'DEFAULT \'0\'', '');
\Phpcmf\Service::M()->query('UPDATE `' . $table . '` SET `ismain` = 1');
}
}
if ($module) {
foreach ($module as $m) {
$mtable = $prefix . $siteid . '_' . $m['dirname'];
if (!\Phpcmf\Service::M()->is_table_exists($mtable)) {
continue;
}
// 附表字段是否同步
$tables = [];
$otable = $mtable.'_data_0'; // 母表
list($a, $sql) = \Phpcmf\Service::M('table')->create_table_sql($otable);
$old = \Phpcmf\Service::M('table')->show_full_colunms($otable);
// 模块附表
for ($i = 1; $i < 200; $i ++) {
// 新表是否存在
if (!\Phpcmf\Service::M()->is_table_exists($mtable.'_data_'.$i)) {
break;
}
$new = \Phpcmf\Service::M('table')->show_full_colunms($mtable.'_data_'.$i);
foreach ($old as $t) {
$td = 0;
foreach ($new as $n) {
if ($t['Field'] == $n['Field']) {
$td = 1;
break;
}
}
if ($td == 0 && $sql[$t['Field']] && !\Phpcmf\Service::M()->db->fieldExists($t['Field'], $mtable.'_data_'.$i)) {
// 新增表字段
$def = preg_replace('/^`'.preg_quote($t['Field'], '/').'`\s+/', '', trim($sql[$t['Field']]));
\Phpcmf\Service::M('table')->add_field($mtable.'_data_'.$i, $t['Field'], $def, '', '');
}
}
}
// 增加长度
$table = $prefix . $siteid . '_' . $m['dirname'];
if (\Phpcmf\Service::M()->db->fieldExists('inputip', $table)) {
\Phpcmf\Service::M('table')->edit_field($table, 'inputip', 'VARCHAR(100)', 'NOT NULL', '客户端ip信息');
}
$table = $prefix . $siteid . '_' . $m['dirname'] . '_time';
if (!\Phpcmf\Service::M()->db->fieldExists('error', $table)) {
\Phpcmf\Service::M('table')->add_field($table, 'error', 'tinyint(1)', 'DEFAULT 0', '');
}
$table = $prefix . $siteid . '_' . $m['dirname'] . '_recycle';
if (\Phpcmf\Service::M()->is_table_exists($table)) {
// 创建字段 删除理由
if (!\Phpcmf\Service::M()->db->fieldExists('result', $table)) {
\Phpcmf\Service::M('table')->add_field($table, 'result', 'Text', 'NOT NULL', '');
}
}
$table = $prefix . $siteid . '_' . $m['dirname'] . '_support';
if (\Phpcmf\Service::M()->is_table_exists($table)) {
// 创建字段 游客点赞
if (!\Phpcmf\Service::M()->db->fieldExists('agent', $table)) {
\Phpcmf\Service::M('table')->add_field($table, 'agent', 'VARCHAR(200)', 'DEFAULT NULL', '');
}
}
$table = $prefix . $siteid . '_' . $m['dirname'] . '_oppose';
if (\Phpcmf\Service::M()->is_table_exists($table)) {
// 创建字段 游客点赞
if (!\Phpcmf\Service::M()->db->fieldExists('agent', $table)) {
\Phpcmf\Service::M('table')->add_field($table, 'agent', 'VARCHAR(200)', 'DEFAULT NULL', '');
}
}
$table = $prefix . $siteid . '_' . $m['dirname'] . '_verify';
if (!\Phpcmf\Service::M()->db->fieldExists('vid', $table)) {
\Phpcmf\Service::M('table')->add_field($table, 'vid', 'INT(10)', 'DEFAULT NULL', '');
}
if (!\Phpcmf\Service::M()->db->fieldExists('islock', $table)) {
\Phpcmf\Service::M('table')->add_field($table, 'islock', 'tinyint(1)', 'DEFAULT NULL', '');
}
// 点击时间
$table = $prefix . $siteid . '_' . $m['dirname'] . '_hits';
foreach (['day_time', 'week_time', 'month_time', 'year_time'] as $a) {
if (!\Phpcmf\Service::M()->db->fieldExists($a, $table)) {
\Phpcmf\Service::M('table')->add_field($table, $a, 'INT(10)', 'DEFAULT NULL', '');
}
}
$table = $prefix . $siteid . '_' . $m['dirname'] . '_category';
if (\Phpcmf\Service::M()->is_table_exists($table)) {
if (!\Phpcmf\Service::M()->db->fieldExists('disabled', $table)) {
\Phpcmf\Service::M('table')->add_field($table, 'disabled', 'tinyint(1)', 'DEFAULT \'0\'', '');
\Phpcmf\Service::M()->query('UPDATE `' . $table . '` SET `disabled` = 0');
}
\Phpcmf\Service::M()->query('UPDATE `' . $table . '` SET `disabled` = 0 WHERE `disabled` IS NULL ');
if (!\Phpcmf\Service::M()->db->fieldExists('ismain', $table)) {
\Phpcmf\Service::M('table')->add_field($table, 'ismain', 'tinyint(1)', 'DEFAULT \'0\'', '');
\Phpcmf\Service::M()->query('UPDATE `' . $table . '` SET `ismain` = 1');
}
}
// 栏目模型字段修正
\Phpcmf\Service::M()->db->table('field')->where('relatedname', $m['dirname'] . '-' . $siteid)->update(['relatedname' => 'catmodule-' . $m['dirname']]);
// 无符号修正
//\Phpcmf\Service::M()->query('ALTER TABLE `'.$prefix.$siteid.'_'.$m['dirname'].'` CHANGE `updatetime` `updatetime` INT(10) NOT NULL COMMENT \'更新时间\'');
//\Phpcmf\Service::M()->query('ALTER TABLE `'.$prefix.$siteid.'_'.$m['dirname'].'` CHANGE `inputtime` `inputtime` INT(10) NOT NULL COMMENT \'更新时间\'');
}
}
}
}