Files
BESCMS/dayrui/App/Cms/Config/Install.php
T

161 lines
9.2 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* Cms_free 安装:urlrule/module + 站点共享表 + 免费版默认数据
*/
$rt = \Phpcmf\Service::M('table')->install_schema([
'tables' => [
'urlrule' => [
'comment' => 'URL规则表',
'fields' => [
'id' => 'smallint(5) unsigned NOT NULL AUTO_INCREMENT',
'type' => 'tinyint(1) unsigned NOT NULL COMMENT \'规则类型\'',
'name' => 'varchar(50) NOT NULL COMMENT \'规则名称\'',
'value' => 'text NOT NULL COMMENT \'详细规则\'',
],
'indexes' => [
'PRIMARY KEY (`id`)',
'KEY `type` (`type`)',
],
],
'module' => [
'comment' => '模块表',
'fields' => [
'id' => 'smallint(5) unsigned NOT NULL AUTO_INCREMENT',
'site' => 'mediumtext NULL COMMENT \'站点划分\'',
'dirname' => 'varchar(50) NOT NULL COMMENT \'目录名称\'',
'share' => 'tinyint(1) unsigned DEFAULT NULL COMMENT \'是否共享模块\'',
'setting' => 'text NULL COMMENT \'配置信息\'',
'comment' => 'text NULL COMMENT \'评论信息\'',
'disabled' => 'tinyint(1) NOT NULL DEFAULT \'0\' COMMENT \'禁用?\'',
'displayorder' => 'smallint(5) DEFAULT \'0\'',
],
'indexes' => [
'PRIMARY KEY (`id`)',
'UNIQUE KEY `dirname` (`dirname`)',
'KEY `disabled` (`disabled`)',
'KEY `displayorder` (`displayorder`)',
],
],
'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 install_schema: '.($rt['msg'] ?? ''));
return dr_return_data(0, dr_lang('安装失败').''.($rt['msg'] ?? ''));
}
foreach ($this->site as $siteid) {
$catTable = $this->dbprefix($siteid.'_share_category');
if (!$this->is_table_exists($catTable)) {
$crt = \Phpcmf\Service::M('table')->create_table(
$catTable,
[
'id' => 'smallint(5) unsigned NOT NULL AUTO_INCREMENT',
'tid' => 'tinyint(1) NOT NULL COMMENT \'栏目类型,0单页,1模块,2外链\'',
'pid' => 'smallint(5) unsigned NOT NULL DEFAULT \'0\' COMMENT \'上级id\'',
'mid' => 'varchar(20) NOT NULL COMMENT \'模块目录\'',
'pids' => 'varchar(255) NOT NULL COMMENT \'所有上级id\'',
'name' => 'varchar(255) NOT NULL COMMENT \'栏目名称\'',
'dirname' => 'varchar(255) NOT NULL COMMENT \'栏目目录\'',
'pdirname' => 'varchar(255) NOT NULL COMMENT \'上级目录\'',
'child' => 'tinyint(1) unsigned NOT NULL DEFAULT \'0\' COMMENT \'是否有下级\'',
'disabled' => 'tinyint(1) unsigned NOT NULL DEFAULT \'0\' COMMENT \'是否禁用\'',
'ismain' => 'tinyint(1) unsigned NOT NULL DEFAULT \'1\' COMMENT \'是否主栏目\'',
'childids' => 'text NOT NULL COMMENT \'下级所有id\'',
'thumb' => 'varchar(255) NOT NULL COMMENT \'栏目图片\'',
'show' => 'tinyint(1) unsigned NOT NULL DEFAULT \'1\' COMMENT \'是否显示\'',
'content' => 'mediumtext NOT NULL COMMENT \'单页内容\'',
'setting' => 'mediumtext NOT NULL COMMENT \'属性配置\'',
'displayorder' => 'smallint(5) NOT NULL DEFAULT \'0\'',
],
[
'PRIMARY KEY (`id`)',
'KEY `mid` (`mid`)',
'KEY `tid` (`tid`)',
'KEY `show` (`show`)',
'KEY `disabled` (`disabled`)',
'KEY `ismain` (`ismain`)',
'KEY `dirname` (`dirname`)',
'KEY `module` (`pid`,`displayorder`,`id`)',
],
'共享模块栏目表'
);
if (empty($crt['code'])) {
log_message('error', 'Cms_free create table failed['.$catTable.']: '.($crt['msg'] ?? ''));
return dr_return_data(0, dr_lang('安装失败').''.($crt['msg'] ?? '无法创建表 '.$catTable));
}
}
$idxTable = $this->dbprefix($siteid.'_share_index');
if (!$this->is_table_exists($idxTable)) {
$crt = \Phpcmf\Service::M('table')->create_table(
$idxTable,
[
'id' => 'int(10) unsigned NOT NULL AUTO_INCREMENT',
'mid' => 'varchar(20) NOT NULL COMMENT \'模块目录\'',
],
[
'PRIMARY KEY (`id`)',
'KEY `mid` (`mid`)',
],
'共享模块内容索引表'
);
if (empty($crt['code'])) {
log_message('error', 'Cms_free create table failed['.$idxTable.']: '.($crt['msg'] ?? ''));
return dr_return_data(0, dr_lang('安装失败').''.($crt['msg'] ?? '无法创建表 '.$idxTable));
}
}
}
file_put_contents(CONFIGPATH.'rewrite.php', file_get_contents(dr_get_app_dir('cms').'Config/Rewrite.php'));
file_put_contents(WRITEPATH.'is_module_install.lock', 1);
$json = [];
$json[] = '{"id":"5","type":"3","name":"不带栏目路径","value":"{\"list\":\"list-{dirname}.html\",\"list_page\":\"list-{dirname}-{page}.html\",\"show\":\"show-{id}.html\",\"show_page\":\"\",\"catjoin\":\"/\"}"}';
$json[] = '{"id":"4","type":"3","name":"带栏目路径","value":"{\"list\":\"{dirname}/\",\"list_page\":\"{dirname}/p{page}.html\",\"show\":\"{dirname}/{id}.html\",\"show_page\":\"\",\"catjoin\":\"/\"}"}';
$json[] = '{"id":"8","type":"2","name":"共享模块搜索","value":"{\"search\":\"search/{modname}.html\",\"search_page\":\"search/{modname}/{param}.html\",\"catjoin\":\"/\"}"}';
foreach ($json as $t) {
$data = dr_string2array($t);
unset($data['id']);
$this->table('urlrule')->insert($data);
}
\Phpcmf\Service::M('module', 'cms')->install('news', null, 0, 1);
// 默认站点信息字段
$site_field = [];
$site_field['yqlj'] = '{"name":"友情链接","fieldname":"yqlj","fieldtype":"Ftable","isedit":"1","ismain":"1","issystem":"0","ismember":"1","issearch":"0","disabled":"0","setting":{"option":{"is_add":"1","is_first_hang":"0","count":"","first_cname":"","hang":{"1":{"name":""},"2":{"name":""},"3":{"name":""},"4":{"name":""},"5":{"name":""}},"field":{"1":{"type":"1","name":"网站名称","width":"200","option":""},"2":{"type":"1","name":"网站地址","width":"","option":""},"3":{"type":"0","name":"","width":"","option":""},"4":{"type":"0","name":"","width":"","option":""},"5":{"type":"0","name":"","width":"","option":""},"6":{"type":"0","name":"","width":"","option":""},"7":{"type":"0","name":"","width":"","option":""},"8":{"type":"0","name":"","width":"","option":""},"9":{"type":"0","name":"","width":"","option":""},"10":{"type":"0","name":"","width":"","option":""}},"width":"","height":"","css":""},"validate":{"required":"0","pattern":"","errortips":"","xss":"1","check":"","filter":"","tips":"","formattr":""},"is_right":"0"},"displayorder":"0"}';
$site_field['hdtp'] = '{"name":"幻灯图片","fieldname":"hdtp","fieldtype":"Ftable","isedit":"1","ismain":"1","issystem":"0","ismember":"1","issearch":"0","disabled":"0","setting":{"option":{"is_add":"1","is_first_hang":"0","count":"","first_cname":"","hang":{"1":{"name":""},"2":{"name":""},"3":{"name":""},"4":{"name":""},"5":{"name":""}},"field":{"1":{"type":"3","name":"图片","width":"200","option":""},"2":{"type":"1","name":"名称","width":"200","option":""},"3":{"type":"1","name":"跳转地址","width":"","option":""},"4":{"type":"0","name":"","width":"","option":""},"5":{"type":"0","name":"","width":"","option":""},"6":{"type":"0","name":"","width":"","option":""},"7":{"type":"0","name":"","width":"","option":""},"8":{"type":"0","name":"","width":"","option":""},"9":{"type":"0","name":"","width":"","option":""},"10":{"type":"0","name":"","width":"","option":""}},"width":"","height":"","css":""},"validate":{"required":"0","pattern":"","errortips":"","xss":"1","check":"","filter":"","tips":"","formattr":""},"is_right":"0"},"displayorder":"0"}';
foreach ($site_field as $fname => $t) {
$value = dr_string2array($t);
if (!$value) {
continue;
}
$value['setting'] = dr_string2array($value['setting']);
\Phpcmf\Service::M('Field')->relatedid = SITE_ID;
\Phpcmf\Service::M('Field')->relatedname = 'site';
if (\Phpcmf\Service::M()->table('field')
->where('relatedid', \Phpcmf\Service::M('Field')->relatedid)
->where('relatedname', \Phpcmf\Service::M('Field')->relatedname)
->where('fieldname', $fname)->counts()
) {
continue;
}
$field = \Phpcmf\Service::L('field')->get($value['fieldtype']);
\Phpcmf\Service::M('Field')->add($value, $field);
}