📄 upgrade10.php
字号:
function runquery($query) {
global $db, $tablepre, $dbcharset;
$query = str_replace("\r", "\n", str_replace(' cdb_', ' '.$tablepre, $query));
$expquery = explode(";\n", $query);
foreach($expquery as $sql) {
$sql = trim($sql);
if($sql == '' || $sql[0] == '#') continue;
if(strtoupper(substr($sql, 0, 12)) == 'CREATE TABLE') {
$db->query(createtable($sql, $dbcharset));
} else {
$db->query($sql);
}
}
}
function upgradetable($updatesql) {
global $db, $tablepre, $dbcharset;
$successed = TRUE;
if(is_array($updatesql) && !empty($updatesql[0])) {
list($table, $action, $field, $sql) = $updatesql;
if(empty($field) && !empty($sql)) {
$query = "ALTER TABLE {$tablepre}{$table} ";
if($action == 'INDEX') {
$successed = $db->query("$query $sql", "SILENT");
} elseif ($action == 'UPDATE') {
$successed = $db->query("UPDATE {$tablepre}{$table} SET $sql", 'SILENT');
}
} elseif($tableinfo = loadtable($table)) {
$fieldexist = isset($tableinfo[$field]) ? 1 : 0;
$query = "ALTER TABLE {$tablepre}{$table} ";
if($action == 'MODIFY') {
$query .= $fieldexist ? "MODIFY $field $sql" : "ADD $field $sql";
$successed = $db->query($query, 'SILENT');
} elseif($action == 'CHANGE') {
$field2 = trim(substr($sql, 0, strpos($sql, ' ')));
$field2exist = isset($tableinfo[$field2]);
if($fieldexist && ($field == $field2 || !$field2exist)) {
$query .= "CHANGE $field $sql";
} elseif($fieldexist && $field2exist) {
$db->query("ALTER TABLE {$tablepre}{$table} DROP $field2", 'SILENT');
$query .= "CHANGE $field $sql";
} elseif(!$fieldexist && $fieldexist2) {
$db->query("ALTER TABLE {$tablepre}{$table} DROP $field2", 'SILENT');
$query .= "ADD $sql";
} elseif(!$fieldexist && !$field2exist) {
$query .= "ADD $sql";
}
$successed = $db->query($query);
} elseif($action == 'ADD') {
$query .= $fieldexist ? "CHANGE $field $field $sql" : "ADD $field $sql";
$successed = $db->query($query);
} elseif($action == 'DROP') {
if($fieldexist) {
$successed = $db->query("$query DROP $field", "SILENT");
}
$successed = TRUE;
}
} else {
$successed = 'TABLE NOT EXISTS';
}
}
return $successed;
}
function loadtable($table, $force = 0) {
global $db, $tablepre, $dbcharset;
static $tables = array();
if(!isset($tables[$table]) || $force) {
if($db->version() > '4.1') {
$query = $db->query("SHOW FULL COLUMNS FROM {$tablepre}$table", 'SILENT');
} else {
$query = $db->query("SHOW COLUMNS FROM {$tablepre}$table", 'SILENT');
}
while($field = @$db->fetch_array($query)) {
$tables[$table][$field['Field']] = $field;
}
}
return $tables[$table];
}
function upg_adminactions() {
global $db, $tablepre;
$actionarray = array(
'settings' => 'settings',
'forumsedit' => 'forums',
'forumdetail' => 'forums_edit',
'moderators' => 'forums_moderators',
'forumdelete' => 'forums_delete',
'forumsmerge' => 'forums_merge',
'forumcopy' => 'forums_copy',
'threadtypes' => 'threadtypes',
'members' => 'members',
'forumadd' => 'members_add',
'editgroups' => 'members_editgroups',
'access' => 'members_access',
'editcredits' => 'members_editcredits',
'editmedals' => 'members_editmedals',
'memberprofile' => 'members_profile',
'profilefields' => 'members_profilefields',
'ipban' => 'members_ipban',
'membersmerge' => 'members_merge',
'usergroups' => 'groups_user',
'admingroups' => 'groups_admin',
'ranks' => 'groups_ranks',
'styles' => 'styles',
'templates' => 'templates',
'tpladd' => 'templates_add',
'tpledit' => 'templates_edit',
'modmembers' => 'moderate_members',
'modthreads' => 'moderate_threads',
'modreplies' => 'moderate_replies',
'threads' => 'threads',
'prune' => 'prune',
'recyclebin' => 'recyclebin',
'announcements' => 'announcements',
'forumlinks' => 'misc_forumlinks',
'onlinelist' => 'misc_onlinelist',
'censor' => 'misc_censor',
'discuzcodes' => 'misc_discuzcodes',
'tags' => 'misc_tags',
'smilies' => 'smilies',
'icons' => 'misc_icons',
'attachtypes' => 'misc_attachtypes',
'crons' => 'misc_crons',
'adv' => 'advertisements',
'advadd' => 'advertisements_add',
'advedit' => 'advertisements_edit',
'runquery' => 'database_runquery',
'optimize' => 'database_optimize',
'export' => 'database_export',
'import' => 'database_import',
'updatecache' => 'tools_updatecache',
'fileperms' => 'tools_fileperms',
'relatedtag' => 'tools_relatedtag',
'attachments' => 'attachments',
'counter' => 'counter',
'jswizard' => 'jswizard',
'creditwizard' => 'creditwizard',
'google_config' => 'google_config',
'qihoo_config' => 'qihoo_config',
'qihoo_topics' => 'qihoo_topics',
'alipay' => 'ecommerce_alipay',
'orders' => 'ecommerce_orders',
'medals' => 'medals',
'plugins' => 'plugins',
'pluginsconfig' => 'plugins_config',
'pluginsedit' => 'plugins_edit',
'pluginhooks' => 'plugins_hooks',
'pluginvars' => 'plugins_vars',
'illegallog' => 'logs_illegal',
'ratelog' => 'logs_rate',
'modslog' => 'logs_mods',
'medalslog' => 'logs_medals',
'banlog' => 'logs_ban',
'cplog' => 'logs_cp',
'creditslog' => 'logs_credits',
'errorlog' => 'logs_error'
);
$da = array();
$query = $db->query("SELECT * FROM {$tablepre}adminactions");
while($a = $db->fetch_array($query)) {
if($a['disabledactions']) {
$da = @unserialize($a['disabledactions']);
if(is_array($da) && $da) {
foreach($da as $k => $v) {
if(isset($actionarray[$v])) {
$da[$k] = $actionarray[$v];
} else {
unset($da[$k]);
}
}
} else {
$da = array();
}
$db->query("UPDATE {$tablepre}adminactions SET disabledactions='".addslashes(serialize($da))."' WHERE admingid='$a[admingid]'");
}
}
}
function upg_insenz() {
global $db, $tablepre;
$insenz = $db->result_first("SELECT value FROM {$tablepre}settings WHERE variable='insenz'");
$insenz = $insenz ? unserialize($insenz) : array();
if($insenz) {
if($insenz['admin_masks'] && is_array($insenz['admin_masks'])) {
$insenz['admin_masks'] = array_keys($insenz['admin_masks']);
}
if($insenz['member_masks'] && is_array($insenz['member_masks'])) {
$insenz['member_masks'] = array_keys($insenz['member_masks']);
}
$db->query("REPLACE INTO {$tablepre}settings (variable, value) VALUES ('insenz', '".addslashes(serialize($insenz))."')");
}
}
function upg_js() {
global $db, $tablepre;
$request_tpl = array(
0 => '<div class=\\"box\\">
<h4>本版热门主题</h4>
<ul class=\\"textinfolist\\">
[node]<li>[{author}]{subject}</li>[/node]
</ul>
</div>',
1 => '<div class=\\"box\\">
<h4>今日热门主题</h4>
<ul class=\\"textinfolist\\">
[node]<li>[{author}]{subject}</li>[/node]
</ul>
</div>',
2 => '<div class=\\"box\\">
<h4>本版最新回复</h4>
<ul class=\\"textinfolist\\">
[node]<li>{subject} ({replies}/{views})</li>[/node]
</ul>
</div>',
3 => '<div class=\\"box\\">
<h4>活跃用户</h4>
<ul class=\\"imginfolist\\">
[node]<li>{avatarsmall}<p>{member}</p></li>[/node]
</ul>
</div>',
);
$request_data = array (
'default_hotthreads' => array (
'url' => 'function=threads&sidestatus=1&maxlength=50&fnamelength=0&messagelength=&startrow=0&picpre=&items=10&tag=&tids=&special=0&rewardstatus=&digest=0&stick=0&recommend=0&newwindow=1&threadtype=0&highlight=0&orderby=views&hours=0&jscharset=0&cachelife=900&jstemplate='.rawurlencode($request_tpl[0]),
'parameter' => array (
'jstemplate' => $request_tpl[0],
'cachelife' => '900',
'sidestatus' => '1',
'startrow' => '0',
'items' => '10',
'maxlength' => '50',
'fnamelength' => '0',
'messagelength' => '',
'picpre' => '',
'tids' => '',
'keyword' => '',
'tag' => '',
'threadtype' => '0',
'highlight' => '0',
'recommend' => '0',
'newwindow' => 1,
'orderby' => 'views',
'hours' => '',
'jscharset' => '0',
),
'comment' => '本版热门主题',
'type' => '0',
),
'default_hotthreads24hrs' => array (
'url' => 'function=threads&sidestatus=0&maxlength=50&fnamelength=0&messagelength=&startrow=0&picpre=&items=10&tag=&tids=&special=0&rewardstatus=&digest=0&stick=0&recommend=0&newwindow=1&threadtype=0&highlight=0&orderby=hourviews&hours=24&jscharset=0&jstemplate='.rawurlencode($request_tpl[1]),
'parameter' => array (
'jstemplate' => $request_tpl[1],
'cachelife' => '',
'sidestatus' => '0',
'startrow' => '0',
'items' => '10',
'maxlength' => '50',
'fnamelength' => '0',
'messagelength' => '',
'picpre' => '',
'tids' => '',
'keyword' => '',
'tag' => '',
'threadtype' => '0',
'highlight' => '0',
'recommend' => '0',
'newwindow' => 1,
'orderby' => 'hourviews',
'hours' => '24',
'jscharset' => '0',
),
'comment' => '今日热门主题',
'type' => '0',
),
'default_newreplies' => array (
'url' => 'function=threads&sidestatus=1&maxlength=50&fnamelength=0&messagelength=&startrow=0&picpre=&items=10&tag=&tids=&special=0&rewardstatus=&digest=0&stick=0&recommend=0&newwindow=1&threadtype=0&highlight=0&orderby=lastpost&hours=0&jscharset=0&cachelife=900&jstemplate='.rawurlencode($request_tpl[2]),
'parameter' => array (
'jstemplate' => $request_tpl[2],
'cachelife' => '900',
'sidestatus' => '1',
'startrow' => '0',
'items' => '10',
'maxlength' => '50',
'fnamelength' => '0',
'messagelength' => '',
'picpre' => '',
'tids' => '',
'keyword' => '',
'tag' => '',
'threadtype' => '0',
'highlight' => '0',
'recommend' => '0',
'newwindow' => 1,
'orderby' => 'lastpost',
'hours' => '',
'jscharset' => '0',
),
'comment' => '本版最新回复',
'type' => '0',
),
'default_hotmembers' => array (
'url' => 'function=memberrank&startrow=0&items=9&newwindow=1&extcredit=1&orderby=posts&hours=0&jscharset=0&cachelife=1800&jstemplate='.rawurlencode($request_tpl[3]),
'parameter' => array (
'jstemplate' => $request_tpl[3],
'cachelife' => '1800',
'startrow' => '0',
'items' => '9',
'newwindow' => 1,
'extcredit' => '1',
'orderby' => 'posts',
'hours' => '',
'jscharset' => '0',
),
'comment' => '活跃用户',
'type' => '2',
),
'边栏1' => array (
'url' => 'function=side&jscharset=&jstemplate=%5Bmodule%5Ddefault_hotthreads%5B%2Fmodule%5D%5Bmodule%5Ddefault_hotmembers%5B%2Fmodule%5D',
'parameter' => array (
'selectmodule' =>
array (
0 => 'default_hotthreads',
1 => 'default_hotmembers',
),
'cachelife' => '',
'jstemplate' => '[module]default_hotthreads[/module][module]default_hotmembers[/module]',
),
'comment' => NULL,
'type' => '-2',
),
'边栏2' => array (
'url' => 'function=side&jscharset=&jstemplate=%5Bmodule%5Ddefault_newreplies%5B%2Fmodule%5D%5Bmodule%5Ddefault_hotthreads24hrs%5B%2Fmodule%5D',
'parameter' =>
array (
'selectmodule' =>
array (
0 => 'default_newreplies',
1 => 'default_hotthreads24hrs',
),
'cachelife' => '',
'jstemplate' => '[module]default_newreplies[/module][module]default_hotthreads24hrs[/module]',
),
'comment' => NULL,
'type' => '-2',
),
);
$query = $db->query("SELECT variable, value FROM {$tablepre}settings WHERE variable like 'jswizard_%'");
while($data = $db->fetch_array($query)) {
$variable = substr($data['variable'], 9);
$value = unserialize($data['value']);
$type = $value['type'];
$value = addslashes(serialize($value));
$db->query("INSERT INTO {$tablepre}request (variable, value, type) VALUES ('$variable', '$value', '$type')");
}
foreach($request_data as $k => $v) {
$variable = $k;
$type = $v['type'];
$value = addslashes(serialize($v));
$db->query("REPLACE INTO {$tablepre}request (variable, value, type) VALUES ('$variable', '$value', '$type')");
}
$query = $db->query("DELETE FROM {$tablepre}settings WHERE variable like 'jswizard_%'");
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -