@@ -17,6 +17,24 @@ AjaxHead(); | |||||
helper('cache'); | helper('cache'); | ||||
$action = isset($action) && in_array($action, array('is_need_check_code', 'has_new_version', 'get_changed_files', 'update_backup', 'get_update_versions', 'update')) ? $action : ''; | $action = isset($action) && in_array($action, array('is_need_check_code', 'has_new_version', 'get_changed_files', 'update_backup', 'get_update_versions', 'update')) ? $action : ''; | ||||
$curDir = dirname(GetCurUrl()); //当前目录 | $curDir = dirname(GetCurUrl()); //当前目录 | ||||
/** | |||||
* 表中是否存在某个字段 | |||||
* | |||||
* @param mixed $tablename 表名称 | |||||
* @param mixed $field 字段名 | |||||
* @return void | |||||
*/ | |||||
function TableHasField($tablename,$field) | |||||
{ | |||||
global $dsql; | |||||
$dsql->GetTableFields($tablename,"tfd"); | |||||
while ($r = $dsql->GetFieldObject("tfd")) { | |||||
if ($r->name === $field) { | |||||
return true; | |||||
} | |||||
} | |||||
return false; | |||||
} | |||||
/** | /** | ||||
* 登录鉴权 | * 登录鉴权 | ||||
* | * | ||||
@@ -46,6 +64,33 @@ if ($action === 'is_need_check_code') { | |||||
)); | )); | ||||
exit; | exit; | ||||
} else if ($action === 'has_new_version') { | } else if ($action === 'has_new_version') { | ||||
//判断版本更新差异sql | |||||
$unQueryVer = array(); | |||||
if (!TableHasField("#@__tagindex", "keywords")) { | |||||
$unQueryVer[] = "6.0.2"; | |||||
} | |||||
if (!TableHasField("#@__feedback", "replycount")) { | |||||
$unQueryVer[] = "6.0.3"; | |||||
} | |||||
if (!TableHasField("#@__arctype", "litimg")) { | |||||
$unQueryVer[] = "6.1.0"; | |||||
} | |||||
if (!$dsql->IsTable("#@__statistics")) { | |||||
$unQueryVer[] = "6.1.7"; | |||||
} | |||||
if (TableHasField("#@__tagindex", "tag_pinyin")) { | |||||
$unQueryVer[] = "6.1.8"; | |||||
} | |||||
if (!TableHasField("#@__admin", "pwd_new")) { | |||||
$unQueryVer[] = "6.1.9"; | |||||
} | |||||
if (!TableHasField("#@__arctype", "cnoverview")) { | |||||
$unQueryVer[] = "6.1.10"; | |||||
} | |||||
if (!TableHasField("#@__admin", "loginerr")) { | |||||
$unQueryVer[] = "6.2.0"; | |||||
} | |||||
require_once(DEDEINC.'/libraries/dedehttpdown.class.php'); | require_once(DEDEINC.'/libraries/dedehttpdown.class.php'); | ||||
checkLogin(); | checkLogin(); | ||||
//是否存在更新版本 | //是否存在更新版本 | ||||
@@ -64,7 +109,7 @@ if ($action === 'is_need_check_code') { | |||||
} else if ($action === 'get_changed_files') { | } else if ($action === 'get_changed_files') { | ||||
require_once(DEDEINC.'/libraries/dedehttpdown.class.php'); | require_once(DEDEINC.'/libraries/dedehttpdown.class.php'); | ||||
checkLogin(); | checkLogin(); | ||||
// 获取本地更改过的文件 | |||||
//获取本地更改过的文件 | |||||
$hashUrl = DEDEBIZCDN.'/release/'.$cfg_version_detail.'.json'; | $hashUrl = DEDEBIZCDN.'/release/'.$cfg_version_detail.'.json'; | ||||
$dhd = new DedeHttpDown(); | $dhd = new DedeHttpDown(); | ||||
$dhd->OpenUrl($hashUrl); | $dhd->OpenUrl($hashUrl); | ||||
@@ -95,7 +140,7 @@ if ($action === 'is_need_check_code') { | |||||
} else if ($action === 'update_backup') { | } else if ($action === 'update_backup') { | ||||
require_once(DEDEINC.'/libraries/dedehttpdown.class.php'); | require_once(DEDEINC.'/libraries/dedehttpdown.class.php'); | ||||
checkLogin(); | checkLogin(); | ||||
// 获取本地更改过的文件 | |||||
//获取本地更改过的文件 | |||||
$hashUrl = DEDEBIZCDN.'/release/'.$cfg_version_detail.'.json'; | $hashUrl = DEDEBIZCDN.'/release/'.$cfg_version_detail.'.json'; | ||||
$dhd = new DedeHttpDown(); | $dhd = new DedeHttpDown(); | ||||
$dhd->OpenUrl($hashUrl); | $dhd->OpenUrl($hashUrl); | ||||
@@ -115,7 +160,7 @@ if ($action === 'is_need_check_code') { | |||||
foreach ($data as $file) { | foreach ($data as $file) { | ||||
$realFile = DEDEROOT.str_replace("\\", '/', $file->filename); | $realFile = DEDEROOT.str_replace("\\", '/', $file->filename); | ||||
if (file_exists($realFile) && md5_file($realFile) !== $file->hash) { | if (file_exists($realFile) && md5_file($realFile) !== $file->hash) { | ||||
// 备份文件 | |||||
//备份文件 | |||||
$dstFile = $backupPath.'/'.str_replace("\\", '/', $file->filename); | $dstFile = $backupPath.'/'.str_replace("\\", '/', $file->filename); | ||||
@mkdir(dirname($dstFile), 0777, true); | @mkdir(dirname($dstFile), 0777, true); | ||||
copy($realFile, $dstFile); | copy($realFile, $dstFile); | ||||
@@ -176,7 +176,7 @@ else if ($step==2) | |||||
if ( $dbtype == 'sqlite' ) | if ( $dbtype == 'sqlite' ) | ||||
{ | { | ||||
$query = preg_replace('/character set (.*?) /i','',$query); | $query = preg_replace('/character set (.*?) /i','',$query); | ||||
$query = str_replace('unsigned','',$query); | |||||
$query = preg_replace('/unsigned/i','',$query); | |||||
$query = str_replace('TYPE=MyISAM','',$query); | $query = str_replace('TYPE=MyISAM','',$query); | ||||
$query = preg_replace ('/TINYINT\(([\d]+)\)/i','INTEGER',$query); | $query = preg_replace ('/TINYINT\(([\d]+)\)/i','INTEGER',$query); | ||||
$query = preg_replace ('/mediumint\(([\d]+)\)/i','INTEGER',$query); | $query = preg_replace ('/mediumint\(([\d]+)\)/i','INTEGER',$query); | ||||
@@ -974,12 +974,11 @@ CREATE TABLE `#@__sysconfig` ( | |||||
DROP TABLE IF EXISTS `#@__tagindex`; | DROP TABLE IF EXISTS `#@__tagindex`; | ||||
CREATE TABLE `#@__tagindex` ( | CREATE TABLE `#@__tagindex` ( | ||||
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, | |||||
`id` INT(10) NOT NULL AUTO_INCREMENT, | |||||
`tag` CHAR(12) NOT NULL DEFAULT '', | `tag` CHAR(12) NOT NULL DEFAULT '', | ||||
`keywords` varchar(255) DEFAULT NULL, | `keywords` varchar(255) DEFAULT NULL, | ||||
`description` varchar(255) DEFAULT NULL, | `description` varchar(255) DEFAULT NULL, | ||||
`title` varchar(255) DEFAULT NULL, | `title` varchar(255) DEFAULT NULL, | ||||
`tag_pinyin` varchar(255) DEFAULT NULL, | |||||
`typeid` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0', | `typeid` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0', | ||||
`count` INT(10) UNSIGNED NOT NULL DEFAULT '0', | `count` INT(10) UNSIGNED NOT NULL DEFAULT '0', | ||||
`total` INT(10) UNSIGNED NOT NULL DEFAULT '0', | `total` INT(10) UNSIGNED NOT NULL DEFAULT '0', | ||||
@@ -22,12 +22,12 @@ CREATE TABLE `#@__feedback_goodbad` ( | |||||
`fid` INT(11) NOT NULL DEFAULT '0', | `fid` INT(11) NOT NULL DEFAULT '0', | ||||
`fgtype` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '0:good 1:bad', | `fgtype` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '0:good 1:bad', | ||||
PRIMARY KEY (`fgid`) | PRIMARY KEY (`fgid`) | ||||
) ENGINE=MyISAM; | |||||
) TYPE=MyISAM; | |||||
CREATE TABLE `#@__search_limits` ( | CREATE TABLE `#@__search_limits` ( | ||||
`ip` VARCHAR(200) NOT NULL, | `ip` VARCHAR(200) NOT NULL, | ||||
`searchtime` INT(11) NULL DEFAULT NULL, | `searchtime` INT(11) NULL DEFAULT NULL, | ||||
PRIMARY KEY (`ip`) | PRIMARY KEY (`ip`) | ||||
) ENGINE=MyISAM; | |||||
) TYPE=MyISAM; | |||||
-- 6.1.0 | -- 6.1.0 | ||||
ALTER TABLE `#@__arctype` | ALTER TABLE `#@__arctype` | ||||
@@ -46,7 +46,7 @@ CREATE TABLE `#@__statistics` ( | |||||
`ip` int DEFAULT NULL COMMENT 'IP', | `ip` int DEFAULT NULL COMMENT 'IP', | ||||
`vv` int DEFAULT NULL COMMENT 'vv', | `vv` int DEFAULT NULL COMMENT 'vv', | ||||
PRIMARY KEY (`id`) | PRIMARY KEY (`id`) | ||||
) ENGINE=MyISAM; | |||||
) TYPE=MyISAM; | |||||
CREATE TABLE `#@__statistics_detail` ( | CREATE TABLE `#@__statistics_detail` ( | ||||
`id` int NOT NULL AUTO_INCREMENT, | `id` int NOT NULL AUTO_INCREMENT, | ||||
`t` int DEFAULT NULL COMMENT 'unixtime', | `t` int DEFAULT NULL COMMENT 'unixtime', | ||||
@@ -67,7 +67,7 @@ CREATE TABLE `#@__statistics_detail` ( | |||||
KEY `idx_created_date_dduuid` (`created_date`,`dduuid`), | KEY `idx_created_date_dduuid` (`created_date`,`dduuid`), | ||||
KEY `idx_created_date_ip` (`created_date`,`ip`), | KEY `idx_created_date_ip` (`created_date`,`ip`), | ||||
KEY `idx_created_date_ssid` (`created_date`,`ssid`) | KEY `idx_created_date_ssid` (`created_date`,`ssid`) | ||||
) ENGINE=MyISAM; | |||||
) TYPE=MyISAM; | |||||
ALTER TABLE `#@__addonarticle` MODIFY COLUMN `userip` char(46) NOT NULL DEFAULT '' AFTER `templet`; | ALTER TABLE `#@__addonarticle` MODIFY COLUMN `userip` char(46) NOT NULL DEFAULT '' AFTER `templet`; | ||||
ALTER TABLE `#@__addonimages` MODIFY COLUMN `userip` char(46) NOT NULL DEFAULT '' AFTER `templet`; | ALTER TABLE `#@__addonimages` MODIFY COLUMN `userip` char(46) NOT NULL DEFAULT '' AFTER `templet`; | ||||
ALTER TABLE `#@__addoninfos` MODIFY COLUMN `userip` varchar(46) NOT NULL DEFAULT '' AFTER `litpic`; | ALTER TABLE `#@__addoninfos` MODIFY COLUMN `userip` varchar(46) NOT NULL DEFAULT '' AFTER `litpic`; | ||||
@@ -57,6 +57,7 @@ class DedeSqlite | |||||
var $isInit = false; | var $isInit = false; | ||||
var $pconnect = false; | var $pconnect = false; | ||||
var $_fixObject; | var $_fixObject; | ||||
var $_fieldIdx = 1; //这里最好是数组,对应id,但由于用的地方不多,暂时先这样处理 | |||||
//用外部定义的变量初始类,并连接数据库 | //用外部定义的变量初始类,并连接数据库 | ||||
function __construct($pconnect = FALSE, $nconnect = FALSE) | function __construct($pconnect = FALSE, $nconnect = FALSE) | ||||
{ | { | ||||
@@ -391,20 +392,27 @@ class DedeSqlite | |||||
} | } | ||||
$prefix = "#@__"; | $prefix = "#@__"; | ||||
$tbname = str_replace($prefix, $GLOBALS['cfg_dbprefix'], $tbname); | $tbname = str_replace($prefix, $GLOBALS['cfg_dbprefix'], $tbname); | ||||
$query = "SELECT * FROM {$tbname} LIMIT 0,1"; | |||||
$query = "SELECT * FROM {$tbname} LIMIT 1"; | |||||
$this->result[$id] = $this->linkID->query($query); | $this->result[$id] = $this->linkID->query($query); | ||||
} | } | ||||
//获取字段详细信息 | //获取字段详细信息 | ||||
function GetFieldObject($id = "me") | function GetFieldObject($id = "me") | ||||
{ | { | ||||
$cols = $this->result[$id]->numColumns(); | $cols = $this->result[$id]->numColumns(); | ||||
$fields = array(); | |||||
while ($row = $this->result[$id]->fetchArray()) { | |||||
for ($i = 1; $i < $cols; $i++) { | |||||
$fields[] = $this->result[$id]->columnName($i); | |||||
if ($this->_fieldIdx >= $cols) { | |||||
$this->_fieldIdx = 1; | |||||
return false; | |||||
} | |||||
for ($i = 1; $i <= $cols; $i++) { | |||||
$field = new stdClass; | |||||
$n = $this->result[$id]->columnName($i); | |||||
$field->name = $n; | |||||
if ($this->_fieldIdx === $i) { | |||||
$this->_fieldIdx++; | |||||
return $field; | |||||
} | } | ||||
} | } | ||||
return (object)$fields; | |||||
return false; | |||||
} | } | ||||
//获得查询的总记录数 | //获得查询的总记录数 | ||||
function GetTotalRow($id = "me") | function GetTotalRow($id = "me") | ||||
@@ -543,4 +551,3 @@ function CopySQLiPoint(&$ndsql) | |||||
{ | { | ||||
$GLOBALS['dsqlite'] = $ndsql; | $GLOBALS['dsqlite'] = $ndsql; | ||||
} | } | ||||
?> |