diff --git a/upload/api/db/dbbak.php b/upload/api/db/dbbak.php index 201223f4..ba36fbc9 100644 --- a/upload/api/db/dbbak.php +++ b/upload/api/db/dbbak.php @@ -515,6 +515,10 @@ function halt($message = '', $sql = '') { $get['volume'] = 0; } + if(!preg_match('/^backup_(\d+)_\w+$/', $get['sqlpath']) || !preg_match('/^\d+_\w+\-(\d+).sql$/', $get['dumpfile'])) { + api_msg('bak_file_lose', $get['dumpfile']); + } + $get['volume']++; $next_dumpfile = preg_replace('/^(\d+)\_(\w+)\-(\d+)\.sql$/', '\\1_\\2-'.$get['volume'].'.sql', $get['dumpfile']); if(!is_file(BACKUP_DIR.$get['sqlpath'].'/'.$get['dumpfile'])) { @@ -558,7 +562,7 @@ function halt($message = '', $sql = '') { $directory = dir(BACKUP_DIR); while($entry = $directory->read()) { $filename = BACKUP_DIR.$entry; - if(is_dir($filename) && preg_match('/backup_(\d+)_\w+$/', $filename, $match)) { + if(is_dir($filename) && preg_match('/^backup_(\d+)_\w+$/', $entry, $match)) { $str .= "\t\n"; $str .= "\t\t$filename\n"; $str .= "\t\t$match[1]\n"; diff --git a/upload/api/uc.php b/upload/api/uc.php index 09f01231..7c8c27b7 100644 --- a/upload/api/uc.php +++ b/upload/api/uc.php @@ -111,7 +111,10 @@ function renameuser($get, $post) { return API_RETURN_FORBIDDEN; } - + $len = strlen($get['newusername']); + if($len > 22 || $len < 3 || preg_match("/\s+|^c:\\con\\con|[%,\*\"\s\<\>\&\(\)']/is", $get['newusername'])) { + return API_RETURN_FAILED; + } $tables = array( 'common_block' => array('id' => 'uid', 'name' => 'username'), @@ -292,9 +295,10 @@ function updateapps($get, $post) { if($UC_API && is_writeable(DISCUZ_ROOT.'./config/config_ucenter.php')) { if(preg_match('/^https?:\/\//is', $UC_API)) { + require DISCUZ_ROOT.'./config/config_ucenter.php'; $configfile = trim(file_get_contents(DISCUZ_ROOT.'./config/config_ucenter.php')); $configfile = substr($configfile, -2) == '?>' ? substr($configfile, 0, -2) : $configfile; - $configfile = preg_replace("/define\('UC_API',\s*'.*?'\);/i", "define('UC_API', '".addslashes($UC_API)."');", $configfile); + $configfile = str_replace("define('UC_API', '".addslashes(UC_API)."')", "define('UC_API', '".addslashes($UC_API)."')", $configfile); if($fp = @fopen(DISCUZ_ROOT.'./config/config_ucenter.php', 'w')) { @fwrite($fp, trim($configfile)); @fclose($fp); diff --git a/upload/config/config_global_default.php b/upload/config/config_global_default.php index d182c7e5..0c2d0876 100644 --- a/upload/config/config_global_default.php +++ b/upload/config/config_global_default.php @@ -176,6 +176,7 @@ $_config['admincp']['checkip'] = 1; // 后台管理操作是否验证管理员的 IP, 1=是[安全], 0=否。仅在管理员无法登陆后台时设置 0。 $_config['admincp']['runquery'] = 0; // 是否允许后台运行 SQL 语句 1=是 0=否[安全] $_config['admincp']['dbimport'] = 1; // 是否允许后台恢复论坛数据 1=是 0=否[安全] +$_config['admincp']['mustlogin'] = 1; // 是否必须前台登录后才允许后台登录 1=是[安全] 0=否 /** * 系统远程调用功能模块 diff --git a/upload/install/include/install_function.php b/upload/install/include/install_function.php index 16389b5e..bcf94ef6 100644 --- a/upload/install/include/install_function.php +++ b/upload/install/include/install_function.php @@ -134,7 +134,7 @@ function env_check(&$env_items) { if($key == 'php') { $env_items[$key]['current'] = PHP_VERSION; } elseif($key == 'attachmentupload') { - $env_items[$key]['current'] = @ini_get('file_uploads') ? ini_get('upload_max_filesize') : 'unknow'; + $env_items[$key]['current'] = @ini_get('file_uploads') ? (min(min(ini_get('upload_max_filesize'), ini_get('post_max_size')), ini_get('memory_limit'))) : 'unknow'; } elseif($key == 'gdversion') { $tmp = function_exists('gd_info') ? gd_info() : array(); $env_items[$key]['current'] = empty($tmp['GD Version']) ? 'noext' : $tmp['GD Version']; @@ -647,7 +647,7 @@ function showmessage(message) {

$title

- Discuz!$version $install_lang $release Rev.$th_revision + Discuz!$version $install_lang $release Rev.$th_revision EOT; $step > 0 && show_step($step); @@ -799,17 +799,6 @@ function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) { } -function generate_key() { - $random = random(32); - $info = md5($_SERVER['SERVER_SOFTWARE'].$_SERVER['SERVER_NAME'].$_SERVER['SERVER_ADDR'].$_SERVER['SERVER_PORT'].$_SERVER['HTTP_USER_AGENT'].time()); - $return = array(); - for($i=0; $i<64; $i++) { - $p = intval($i/2); - $return[$i] = $i % 2 ? $random[$p] : $info[$p]; - } - return implode('', $return); -} - function show_install() { if(VIEW_OFF) return; ?> @@ -1335,14 +1324,14 @@ function save_uc_config($config, $file) { return $success; } -function _generate_key() { - $random = random(32); +function _generate_key($length = 32) { + $random = random($length); $info = md5($_SERVER['SERVER_SOFTWARE'].$_SERVER['SERVER_NAME'].$_SERVER['SERVER_ADDR'].$_SERVER['SERVER_PORT'].$_SERVER['HTTP_USER_AGENT'].time()); - $return = array(); - for($i=0; $i<32; $i++) { - $return[$i] = $random[$i].$info[$i]; + $return = ''; + for($i=0; $i<$length; $i++) { + $return .= $random[$i].$info[$i]; } - return implode('', $return); + return $return; } function uc_write_config($config, $file, $password) { @@ -1495,6 +1484,10 @@ function buildarray($array, $level = 0, $pre = '$_config') { } foreach ($array as $key => $val) { + if(!preg_match("/^[a-zA-Z0-9_\x7f-\xff]+$/", $key)) { + continue; + } + if($level == 0) { $newline = str_pad(' CONFIG '.strtoupper($key).' ', 70, '-', STR_PAD_BOTH); $return .= "\r\n// $newline //\r\n"; diff --git a/upload/robots.txt b/upload/robots.txt index 9dc71756..5e2d4beb 100644 --- a/upload/robots.txt +++ b/upload/robots.txt @@ -3,14 +3,11 @@ # User-agent: * +Allow: /data/attachment/ +Allow: /data/cache/ +Allow: /uc_server/data/avatar/ Disallow: /api/ -Disallow: /data/addonmd5/ -Disallow: /data/download/ -Disallow: /data/ipdata/ -Disallow: /data/log/ -Disallow: /data/plugindata/ -Disallow: /data/template/ -Disallow: /data/threadcache/ +Disallow: /data/ Disallow: /source/ Disallow: /install/ Disallow: /template/default/ diff --git a/upload/source/admincp/admincp_checktools.php b/upload/source/admincp/admincp_checktools.php index 58f595dc..8fbda7fb 100644 --- a/upload/source/admincp/admincp_checktools.php +++ b/upload/source/admincp/admincp_checktools.php @@ -286,6 +286,50 @@ } } +} elseif($operation == 'replacekey') { + + $step = max(1, intval($_GET['step'])); + shownav('tools', 'nav_replacekey'); + showtips('replacekey_tips'); + showsubmenusteps('nav_replacekey', array( + array('nav_replacekey_confirm', $step == 1), + array('nav_replacekey_verify', $step == 2), + array('nav_replacekey_completed', $step == 3) + )); + if($step == 1) { + cpmsg(cplang('replacekey_tips_step1'), 'action=checktools&operation=replacekey&step=2', 'form', '', FALSE); + } elseif($step == 2) { + cpmsg(cplang('replacekey_tips_step2'), "action=checktools&operation=replacekey&step=3", 'loading', '', FALSE); + } elseif($step == 3) { + if(!is_writeable('./config/config_global.php')) { + cpmsg('replacekey_must_write_config', '', 'error'); + } + + $oldauthkey = $_G['config']['security']['authkey']; + $newauthkey = generate_key(64); + + $configfile = trim(file_get_contents(DISCUZ_ROOT.'./config/config_global.php')); + $configfile = substr($configfile, -2) == '?>' ? substr($configfile, 0, -2) : $configfile; + $configfile = str_replace($oldauthkey, $newauthkey, $configfile); + + if(file_put_contents(DISCUZ_ROOT.'./config/config_global.php', trim($configfile), LOCK_EX) === false) { + cpmsg('replacekey_must_write_config', '', 'error'); + } + + $ecdata = authcode($_G['setting']['ec_contract'], 'DECODE', $oldauthkey); + $ecdata = authcode($ecdata, 'ENCODE', $newauthkey); + C::t('common_setting')->update('ec_contract', $ecdata); + + $ftpdata = $_G['setting']['ftp']; + $ftppasswd = authcode($ftpdata['password'], 'DECODE', md5($oldauthkey)); + $ftpdata['password'] = authcode($ftppasswd, 'ENCODE', md5($newauthkey)); + C::t('common_setting')->update('ftp', $ftpdata); + + updatecache('setting'); + + cpmsg('replacekey_succeed', '', 'succeed', '', FALSE); + } + } elseif($operation == 'ftpcheck') { $alertmsg = ''; @@ -631,4 +675,13 @@ function findhook($hookid, $key) { } $hooks[] = ''; } -?> \ No newline at end of file + +function generate_key($length = 32) { + $random = random($length); + $info = md5($_SERVER['SERVER_SOFTWARE'].$_SERVER['SERVER_NAME'].$_SERVER['SERVER_ADDR'].$_SERVER['SERVER_PORT'].$_SERVER['HTTP_USER_AGENT'].time()); + $return = ''; + for($i=0; $i<$length; $i++) { + $return .= $random[$i].$info[$i]; + } + return $return; +} \ No newline at end of file diff --git a/upload/source/admincp/admincp_cloudaddons.php b/upload/source/admincp/admincp_cloudaddons.php index e88380ec..83df144f 100644 --- a/upload/source/admincp/admincp_cloudaddons.php +++ b/upload/source/admincp/admincp_cloudaddons.php @@ -70,7 +70,7 @@ $md5total = ''; $md5s = array(); } - $data = cloudaddons_open('&mod=app&ac=download&rid='.$_GET['rid'].'&packnum='.$packnum, '', 999); + $data = cloudaddons_open('&mod=app&ac=download&rid='.$_GET['rid'].'&packnum='.$packnum.'&downloadts='.$_GET['timestamp'], '', 999); if(empty($data)){ cpmsg('cloudaddons_downloading', "action=cloudaddons&operation=download&addonids=$_GET[addonids]&i=$addoni&step=1&md5hash=".$_GET['md5hash'].'×tamp='.$_GET['timestamp'].'&num='.$packnum, 'loading', array('addonid' => $_GET['key'].'.'.$_GET['type']), '
', FALSE); exit; @@ -128,7 +128,7 @@ $packnum++; cpmsg('cloudaddons_downloading', "action=cloudaddons&operation=download&addonids=$_GET[addonids]&i=$addoni&step=1&md5hash=".$_GET['md5hash'].'×tamp='.$_GET['timestamp'].'&num='.$packnum, 'loading', array('addonid' => $_GET['key'].'.'.$_GET['type']), '
'.$percent.'%
', FALSE); } else { - if($md5total !== '' && md5($md5total) !== cloudaddons_md5($_GET['key'].'_'.$_GET['rid'])) { + if($md5total !== '' && md5($md5total) !== cloudaddons_md5($_GET['key'].'_'.$_GET['rid'].(!empty($array['MD5Key']) ? '_'.$array['MD5Key'] : ''))) { dir_clear($tmpdir); @unlink($md5tmp); cloudaddons_faillog($_GET['rid'], 105); diff --git a/upload/source/admincp/admincp_index.php b/upload/source/admincp/admincp_index.php index faa7e847..d6ed600c 100644 --- a/upload/source/admincp/admincp_index.php +++ b/upload/source/admincp/admincp_index.php @@ -36,6 +36,25 @@ updatecache('setting'); } +if(!empty($_GET['closesitereleasetips'])) { + C::t('common_setting')->update('sitereleasetips', 0); + $sitereleasetips = 0; + require_once libfile('function/cache'); + updatecache('setting'); +} else { + $sitereleasetips = C::t('common_setting')->fetch('sitereleasetips'); +} + +$siterelease = C::t('common_setting')->fetch('siterelease'); +$releasehash = substr(hash('sha512', $_G['config']['security']['authkey'].DISCUZ_VERSION.DISCUZ_RELEASE.$siteuniqueid), 0, 32); +if(empty($siterelease) || strcmp($siterelease, $releasehash) !== 0) { + C::t('common_setting')->update('siteversion', DISCUZ_VERSION); + C::t('common_setting')->update('siterelease', $releasehash); + C::t('common_setting')->update('sitereleasetips', 1); + $sitereleasetips = 1; + require_once libfile('function/cache'); + updatecache('setting'); +} if(submitcheck('notesubmit', 1)) { if(!empty($_GET['noteid']) && is_numeric($_GET['noteid'])) { @@ -63,7 +82,7 @@ $dbversion = helper_dbtool::dbversion(); if(@ini_get('file_uploads')) { - $fileupload = ini_get('upload_max_filesize'); + $fileupload = min(min(ini_get('upload_max_filesize'), ini_get('post_max_size')), ini_get('memory_limit')); } else { $fileupload = ''.$lang['no'].''; } @@ -259,6 +278,14 @@ } showtablefooter(); +if($sitereleasetips) { + showtableheader('version_tips', 'fixpadding'); + showtablerow('', array('', 'class="td21" style="text-align:right;"'), + ''.lang("admincp", "version_tips_msg", array('ADMINSCRIPT' => ADMINSCRIPT, 'version' => constant("DISCUZ_VERSION").' R'.constant("DISCUZ_RELEASE"))).'' + ); + showtablefooter(); +} + showtableheader('home_onlines', 'nobottom fixpadding'); echo ''.$onlines.''; showtablefooter(); diff --git a/upload/source/admincp/admincp_login.php b/upload/source/admincp/admincp_login.php index f918d5cc..5fcb7473 100644 --- a/upload/source/admincp/admincp_login.php +++ b/upload/source/admincp/admincp_login.php @@ -23,9 +23,11 @@ } -if($this->cpaccess == -3) { - echo '

'.lang('admincp_login', 'login_cp_noaccess').'

'; +if($this->cpaccess == -5) { + echo '

'.lang('admincp_login', 'login_cp_guest').'

'; +} elseif($this->cpaccess == -2) { + echo '

'.lang('admincp_login', 'login_cp_noaccess').'

'; }elseif($this->cpaccess == -1) { $ltime = $this->sessionlife - (TIMESTAMP - $this->adminsession['dateline']); @@ -107,6 +109,7 @@ function html_login_form() { $lang = lang('admincp_login'); $loginuser = $isguest ? '' : getglobal('member/username'); $sid = getglobal('sid'); + $formhash = getglobal('formhash'); $_SERVER['QUERY_STRING'] = str_replace('&', '&', dhtmlspecialchars($_SERVER['QUERY_STRING'])); $extra = ADMINSCRIPT.'?'.(getgpc('action') && getgpc('frames') ? 'frames=yes&' : '').$_SERVER['QUERY_STRING']; $forcesecques = ''; @@ -114,6 +117,7 @@ function html_login_form() {
+

$lang[login_username]:

$loginuser

$lang[login_password]:

diff --git a/upload/source/admincp/admincp_makehtml.php b/upload/source/admincp/admincp_makehtml.php index 6b876e8a..2560a4d2 100644 --- a/upload/source/admincp/admincp_makehtml.php +++ b/upload/source/admincp/admincp_makehtml.php @@ -49,7 +49,6 @@ showsubmenu('html', $_nav, ''); } if($operation == 'all') { - /*search={"nav_makehtml":"action=makehtml&operation=all"}*/ showtips('makehtml_tips_all'); showformheader('makehtml&operation=all'); @@ -137,7 +136,6 @@ function make_html_article(starttime) { EOT; showtablefooter(); showformfooter(); - /*search*/ } elseif($operation == 'index') { showtips('makehtml_tips_index'); @@ -203,7 +201,9 @@ function make_html_index() { var selectedids = []; for(var i = 0; i < category.options.length; i++) { var option = category.options[i]; - allcatids.push(option.value); + if(option.value > 0) { + allcatids.push(option.value); + } if(option.selected) { selectedids.push(option.value); } @@ -416,7 +416,6 @@ function make_html_topic(starttime) { } elseif ($operation == 'makehtmlsetting') { if(!submitcheck('makehtmlsetting')) { - /*search={"nav_makehtml":"action=makehtml","setting_functions_makehtml":"action=makehtml&operation=makehtmlsetting"}*/ $setting = $_G['setting']; showformheader("makehtml&operation=makehtmlsetting"); showtableheader('', 'nobottom', 'id="makehtml"'.($_GET['operation'] != 'makehtmlsetting' ? ' style="display: none"' : '')); @@ -436,7 +435,6 @@ function make_html_topic(starttime) { showtablefooter(); showsubmit('makehtmlsetting', 'submit'); showformfooter(); - /*search*/ } else { $settingnew = $_GET['settingnew']; if(isset($settingnew['makehtml'])) { @@ -494,7 +492,6 @@ function make_html_topic(starttime) { cpmsg('admincp_makehtml_cleanhtml_error', 'action=makehtml&operation=makehtmlsetting', 'error'); } else { if(!submitcheck('cleanhtml')) { - /*search={"nav_makehtml":"action=makehtml","makehtml_clear":"action=makehtml&operation=cleanhtml"}*/ showformheader("makehtml&operation=cleanhtml"); showtableheader(); @@ -503,7 +500,6 @@ function make_html_topic(starttime) { showtablefooter(); showsubmit('cleanhtml', 'submit'); showformfooter(); - /*search*/ } else { if(isset($_GET['cleandata'])) { $cleandata = $_GET['cleandata']; diff --git a/upload/source/admincp/admincp_members.php b/upload/source/admincp/admincp_members.php index 6817c1c0..3965eded 100644 --- a/upload/source/admincp/admincp_members.php +++ b/upload/source/admincp/admincp_members.php @@ -2098,6 +2098,9 @@ function getcrimerecord() { $addsize = intval($_GET['addsizenew']); $addfriend = intval($_GET['addfriendnew']); $status = intval($_GET['statusnew']) ? -1 : 0; + if($status == -1 && $member['groupid'] == 1) { + cpmsg('members_edit_lock', '', 'error', array('grouptitle' => $member['grouptitle'], 'uid' => $member['uid'])); + } $freeze = in_array($_GET['freezenew'], array(-1, 0, 1, 2)) ? $_GET['freezenew'] : 0; $emailstatusnew = intval($_GET['emailstatusnew']); if(!empty($_G['setting']['connect']['allow'])) { diff --git a/upload/source/admincp/admincp_menu.php b/upload/source/admincp/admincp_menu.php index 56193118..3324ceeb 100644 --- a/upload/source/admincp/admincp_menu.php +++ b/upload/source/admincp/admincp_menu.php @@ -243,6 +243,7 @@ $isfounder ? array('menu_tools_fileperms', 'tools_fileperms') : null, $isfounder ? array('menu_tools_filecheck', 'checktools_filecheck') : null, $isfounder ? array('menu_tools_hookcheck', 'checktools_hookcheck') : null, + $isfounder ? array('menu_tools_replacekey', 'checktools_replacekey') : null, ); if($isfounder) { diff --git a/upload/source/admincp/admincp_optimizer.php b/upload/source/admincp/admincp_optimizer.php index b275323a..d2d706bb 100644 --- a/upload/source/admincp/admincp_optimizer.php +++ b/upload/source/admincp/admincp_optimizer.php @@ -43,6 +43,9 @@ 'optimizer_plugin', 'optimizer_loginpwcheck', 'optimizer_loginoutofdate', + 'optimizer_dbbackup_visit', + 'optimizer_filesafe', + 'optimizer_remote', ); $serversec_option = array( diff --git a/upload/source/admincp/admincp_plugins.php b/upload/source/admincp/admincp_plugins.php index 2ca2a912..840ad619 100644 --- a/upload/source/admincp/admincp_plugins.php +++ b/upload/source/admincp/admincp_plugins.php @@ -637,7 +637,7 @@ pluginupgrade($pluginarray, $installtype); if(!empty($plugin['directory']) && !empty($pluginarray['upgradefile']) && preg_match('/^[\w\.]+$/', $pluginarray['upgradefile'])) { - dheader('location: '.ADMINSCRIPT.'?action=plugins&operation=pluginupgrade&dir='.$dir.'&installtype='.$modules['extra']['installtype'].'&fromversion='.$plugin['version']); + dheader('location: '.ADMINSCRIPT.'?action=plugins&operation=pluginupgrade&dir='.$dir.'&installtype='.$installtype.'&fromversion='.$plugin['version']); } $toversion = $pluginarray['plugin']['version']; @@ -1372,7 +1372,14 @@ function shide(obj, id) { $importtxt = @implode('', file($importfile)); $pluginarray = getimportdata('Discuz! Plugin'); } - + if(!empty($pluginarray['checkfile']) && preg_match('/^[\w\.]+$/', $pluginarray['checkfile'])) { + $filename = DISCUZ_ROOT.'./source/plugin/'.$plugin['identifier'].'/'.$pluginarray['checkfile']; + if(file_exists($filename)) { + loadcache('pluginlanguage_install'); + $installlang = $_G['cache']['pluginlanguage_install'][$plugin['identifier']]; + @include $filename; + } + } $identifier = $plugin['identifier']; C::t('common_plugin')->delete($pluginid); C::t('common_pluginvar')->delete_by_pluginid($pluginid); diff --git a/upload/source/admincp/admincp_remoderate.php b/upload/source/admincp/admincp_remoderate.php index 6d523702..0c16f024 100644 --- a/upload/source/admincp/admincp_remoderate.php +++ b/upload/source/admincp/admincp_remoderate.php @@ -28,13 +28,36 @@ foreach(C::t('forum_thread')->fetch_all_by_displayorder(0, '>=', $current, $pertask) as $thread) { $processed = 1; foreach(C::t('forum_post')->fetch_all_visiblepost_by_tid($thread['posttableid'], $thread['tid']) as $post) { - if((!empty($post['subject']) && $censor->check($post['subject'])) || (!empty($post['message']) && $censor->check($post['message']))) { - C::t('forum_post')->update($thread['posttableid'], $post['pid'], array('status' => 4), false, false, null, -2, null, 0); - if($post['first'] == 1) { - C::t('forum_thread')->update($thread['tid'], array('displayorder' => -2)); - updatemoderate('tid', $thread['tid']); + $subject = $post['subject']; + $message = $post['message']; + $subject_result = empty($subject) ? 0 : $censor->check($subject); + $message_result = (in_array($subject_result, array(1, 2)) || empty($message)) ? 0 : $censor->check($message); + if($subject_result) { + if($subject_result == 3) { + if(strcmp($post['subject'], $subject)) { + C::t('forum_post')->update($thread['posttableid'], $post['pid'], array('subject' => $subject), false, false, null, -2, null, 0); + } } else { - updatemoderate('pid', $post['pid']); + if($post['first'] == 1) { + C::t('forum_thread')->update($thread['tid'], array('displayorder' => -2)); + updatemoderate('tid', $thread['tid']); + } else { + updatemoderate('pid', $post['pid']); + } + } + } + if($message_result) { + if($message_result == 3) { + if(strcmp($post['message'], $message)) { + C::t('forum_post')->update($thread['posttableid'], $post['pid'], array('message' => $message), false, false, null, -2, null, 0); + } + } else { + if($post['first'] == 1) { + C::t('forum_thread')->update($thread['tid'], array('displayorder' => -2)); + updatemoderate('tid', $thread['tid']); + } else { + updatemoderate('pid', $post['pid']); + } } } } @@ -57,9 +80,29 @@ foreach(C::t('home_blog')->range($current, $pertask, 'ASC', 'dateline', null, 0) as $blog) { $processed = 1; $post = C::t('home_blogfield')->fetch($blog['blogid']); - if((!empty($blog['subject']) && $censor->check($blog['subject'])) || (!empty($post['message']) && $censor->check($post['message']))) { - C::t('home_blog')->update($blog['blogid'], array('status' => 1)); - updatemoderate('blogid', $blog['blogid']); + $subject = $blog['subject']; + $message = $post['message']; + $subject_result = empty($subject) ? 0 : $censor->check($subject); + $message_result = (in_array($subject_result, array(1, 2)) || empty($message)) ? 0 : $censor->check($message); + if($subject_result) { + if($subject_result == 3) { + if(strcmp($blog['subject'], $subject)) { + C::t('home_blog')->update($blog['blogid'], array('subject' => $subject)); + } + } else { + C::t('home_blog')->update($blog['blogid'], array('status' => 1)); + updatemoderate('blogid', $blog['blogid']); + } + } + if($message_result) { + if($message_result == 3) { + if(strcmp($post['message'], $message)) { + C::t('home_blogfield')->update($blog['blogid'], array('message' => $message)); + } + } else { + C::t('home_blog')->update($blog['blogid'], array('status' => 1)); + updatemoderate('blogid', $blog['blogid']); + } } } @@ -79,9 +122,17 @@ foreach(C::t('home_pic')->fetch_all_by_sql('`status` = 0', 'picid', $current, $pertask, 0, 0) as $pic) { $processed = 1; - if(!empty($pic['title']) && $censor->check($pic['title'])) { - C::t('home_pic')->update($pic['picid'], array('status' => 1)); - updatemoderate('picid', $pic['picid']); + $title = $pic['title']; + $title_result = empty($title) ? 0 : $censor->check($title); + if($title_result) { + if($title_result == 3) { + if(strcmp($pic['title'], $title)) { + C::t('home_pic')->update($pic['picid'], array('title' => $title)); + } + } else { + C::t('home_pic')->update($pic['picid'], array('status' => 1)); + updatemoderate('picid', $pic['picid']); + } } } @@ -101,9 +152,17 @@ foreach(C::t('home_doing')->fetch_all_by_status(0, $current, $pertask) as $doing) { $processed = 1; - if(!empty($doing['message']) && $censor->check($doing['message'])) { - C::t('home_doing')->update($doing['doid'], array('status' => 1)); - updatemoderate('doid', $doing['doid']); + $message = $doing['message']; + $message_result = empty($message) ? 0 : $censor->check($message); + if($message_result) { + if($message_result == 3) { + if(strcmp($doing['message'], $message)) { + C::t('home_doing')->update($doing['doid'], array('message' => $message)); + } + } else { + C::t('home_doing')->update($doing['doid'], array('status' => 1)); + updatemoderate('doid', $doing['doid']); + } } } @@ -123,9 +182,17 @@ foreach(C::t('home_share')->fetch_all_by_status(0, $current, $pertask) as $share) { $processed = 1; - if(!empty($share['body_general']) && $censor->check($share['body_general'])) { - C::t('home_share')->update($share['sid'], array('status' => 1)); - updatemoderate('sid', $share['sid']); + $sharebody = $share['body_general']; + $sharebody_result = empty($sharebody) ? 0 : $censor->check($sharebody); + if($sharebody_result) { + if($sharebody_result == 3) { + if(strcmp($share['body_general'], $sharebody)) { + C::t('home_share')->update($share['sid'], array('body_general' => $sharebody)); + } + } else { + C::t('home_share')->update($share['sid'], array('status' => 1)); + updatemoderate('sid', $share['sid']); + } } } @@ -145,9 +212,17 @@ foreach(C::t('home_comment')->fetch_all_by_status(0, $current, $pertask) as $comment) { $processed = 1; - if(!empty($comment['message']) && $censor->check($comment['message'])) { - C::t('home_comment')->update($comment['cid'], array('status' => 1)); - updatemoderate($comment['idtype'].'_cid', $comment['cid']); + $comment = $comment['message']; + $comment_result = empty($comment) ? 0 : $censor->check($comment); + if($comment_result) { + if($comment_result == 3) { + if(strcmp($comment['message'], $comment)) { + C::t('home_comment')->update($comment['cid'], array('message' => $comment)); + } + } else { + C::t('home_comment')->update($comment['cid'], array('status' => 1)); + updatemoderate($comment['idtype'].'_cid', $comment['cid']); + } } } @@ -167,17 +242,34 @@ foreach(C::t('portal_article_title')->fetch_all_by_sql('`status` = 0', '', $current, $pertask) as $article) { $processed = 1; - if(empty($post['subject']) || !$censor->check($post['subject'])) { + $subject = $article['subject']; + $subject_result = empty($subject) ? 0 : $censor->check($subject); + if($subject_result) { + if($subject_result == 3) { + if(strcmp($article['subject'], $subject)) { + C::t('portal_article_title')->update($article['aid'], array('message' => $subject)); + } + } else { + C::t('portal_article_title')->update($article['aid'], array('status' => 1)); + updatemoderate('aid', $article['aid']); + } + } + if(in_array($subject_result, array(0, 3))) { foreach(C::t('portal_article_content')->fetch_all($article['aid']) as $post) { - if(!empty($post['content']) && $censor->check($post['content'])) { - C::t('portal_article_title')->update($article['aid'], array('status' => 1)); - updatemoderate('aid', $article['aid']); - break; + $content = $post['content']; + $content_result = empty($content) ? 0 : $censor->check($content); + if($content_result) { + if($content_result == 3) { + if(strcmp($post['content'], $content)) { + C::t('portal_article_content')->update($post['cid'], array('content' => $content)); + } + } else { + C::t('portal_article_title')->update($article['aid'], array('status' => 1)); + updatemoderate('aid', $article['aid']); + break; + } } } - } else { - C::t('portal_article_title')->update($article['aid'], array('status' => 1)); - updatemoderate('aid', $article['aid']); } } @@ -197,9 +289,17 @@ foreach(C::t('portal_comment')->fetch_all_by_idtype_status('aid', 0, $current, $pertask) as $comment) { $processed = 1; - if(!empty($comment['message']) && $censor->check($comment['message'])) { - C::t('portal_comment')->update($comment['cid'], array('status' => 1)); - updatemoderate($comment['idtype'].'_cid', $comment['cid']); + $comment = $comment['message']; + $comment_result = empty($comment) ? 0 : $censor->check($comment); + if($comment_result) { + if($comment_result == 3) { + if(strcmp($comment['message'], $comment)) { + C::t('portal_comment')->update($comment['cid'], array('message' => $comment)); + } + } else { + C::t('portal_comment')->update($comment['cid'], array('status' => 1)); + updatemoderate($comment['idtype'].'_cid', $comment['cid']); + } } } @@ -219,9 +319,17 @@ foreach(C::t('portal_comment')->fetch_all_by_idtype_status('topicid', 0, $current, $pertask) as $comment) { $processed = 1; - if(!empty($comment['message']) && $censor->check($comment['message'])) { - C::t('portal_comment')->update($comment['cid'], array('status' => 1)); - updatemoderate($comment['idtype'].'_cid', $comment['cid']); + $comment = $comment['message']; + $comment_result = empty($comment) ? 0 : $censor->check($comment); + if($comment_result) { + if($comment_result == 3) { + if(strcmp($comment['message'], $comment)) { + C::t('portal_comment')->update($comment['cid'], array('message' => $comment)); + } + } else { + C::t('portal_comment')->update($comment['cid'], array('status' => 1)); + updatemoderate($comment['idtype'].'_cid', $comment['cid']); + } } } diff --git a/upload/source/admincp/admincp_specialuser.php b/upload/source/admincp/admincp_specialuser.php index b31b1bb5..b3a6fd50 100644 --- a/upload/source/admincp/admincp_specialuser.php +++ b/upload/source/admincp/admincp_specialuser.php @@ -46,9 +46,8 @@ } elseif(!submitcheck('usersubmit')) { shownav('user', 'nav_'.$op); showsubmenu('nav_'.$op, array( - array('nav_defaultuser', 'specialuser&operation=defaultuser', $operation == 'defaultuser' ? 1 : 0), - array('nav_follow', 'specialuser&operation=follow', $operation == 'follow' ? 1 : 0), - array('nav_add_'.$op, 'specialuser&operation='.$op.'&suboperation=adduser', $suboperation == 'adduser' ? 1 : 0),)); + array('nav_'.$operation, 'specialuser&operation='.$operation, 1), + array('nav_add_'.$op, 'specialuser&operation='.$op.'&suboperation=adduser', 0))); showtips('specialuser_'.$op.'_tips'); showformheader($url, '', 'userforum'); showtableheader(); @@ -103,11 +102,8 @@ shownav('user', 'nav_'.$op); showsubmenu('nav_'.$op, array( - array('nav_defaultuser', 'specialuser&operation=defaultuser', 0), - array('nav_follow', 'specialuser&operation=follow', 0), - array('nav_add_'.$op, 'specialuser&operation='.$op.'&suboperation=adduser', 1)) - ); - + array('nav_'.$operation, 'specialuser&operation='.$operation, 0), + array('nav_add_'.$op, 'specialuser&operation='.$op.'&suboperation=adduser', 1))); showtips('specialuser_defaultuser_add_tips'); showformheader('specialuser&operation='.$op.'&suboperation=adduser', '', 'userforum'); showtableheader(); diff --git a/upload/source/admincp/admincp_tools.php b/upload/source/admincp/admincp_tools.php index b2f7c930..dc97cee8 100644 --- a/upload/source/admincp/admincp_tools.php +++ b/upload/source/admincp/admincp_tools.php @@ -26,7 +26,7 @@ showtips('tools_updatecache_tips'); if($step == 1) { - cpmsg("', 'action=tools&operation=updatecache&step=2', 'form', '', FALSE); + cpmsg("', 'action=tools&operation=updatecache&step=2', 'form', '', FALSE); } elseif($step == 2) { $type = implode('_', (array)$_GET['type']); cpmsg(cplang('tools_updatecache_waiting'), "action=tools&operation=updatecache&step=3&type=$type", 'loading', '', FALSE); @@ -48,13 +48,18 @@ savecache('grids', array()); } } - if(in_array('tpl', $type) && $_G['config']['output']['tplrefresh']) { + if((in_array('tpl', $type) && $_G['config']['output']['tplrefresh']) || in_array('csscache', $type)) { cleartemplatecache(); } if(in_array('blockclass', $type)) { include_once libfile('function/block'); blockclass_cache(); } + if(in_array('csscache', $type)) { + updatecache(array('setting', 'styles')); + loadcache('style_default', true); + updatecache('updatediytemplate'); + } cpmsg('update_cache_succeed', '', 'succeed', '', FALSE); } diff --git a/upload/source/admincp/discuzfiles.md5 b/upload/source/admincp/discuzfiles.md5 index fa786bf5..e5585807 100644 --- a/upload/source/admincp/discuzfiles.md5 +++ b/upload/source/admincp/discuzfiles.md5 @@ -18,14 +18,14 @@ f1e900c4bdc2488da6413144d9d95faf *./member.php 72efa223372415e3e642c3f6732e64dc *./misc.php 0a207c219c883bb7d68115eda80aac8d *./plugin.php 1c4878830bc020d29ba117f4c7d7bdf8 *./portal.php -e64df1e200bf29d9c0475a968d740e2d *./robots.txt +5e3df25b67f0eb76375bfc7fd5e52e08 *./robots.txt f71d20f81e943da1731e6f21f7b87b93 *./search.php 08066574cc9c9cfa186b8e1a7ba35b5c *./source 209f7da3fb816679a3bb26c62daaaa74 *./static b9b6db2a5893eb3f77d3243f7bbda747 *./template 37a55b38a5583c8e15ef1857df3fce4e *./uc_client 738de81bece8761e42d0590c2423208e *./uc_server -016d524feba187dbd30ca70925654279 *config/config_global_default.php +97bcea06d0a043bf1f7e60a18540dc42 *config/config_global_default.php f5b7198f12766f6e6c047f01898a4bc5 *config/config_ucenter_default.php 7215ee9c7d9dc229d2921a40e899ec5f *config/index.htm d41d8cd98f00b204e9800998ecf8427e *data/index.htm @@ -99,7 +99,7 @@ cc984985c522d73f18e25911c4e28469 *template/default/forum/ajax_imagelist.htm cf964b82454465210a8b389c5f634f6b *template/default/forum/ajax_secondgroup.htm b7701f303153450ac0934b0ddbd6e02c *template/default/forum/ajax_threadlist.htm d28c051c6e8669340f1058d2f4b5fac2 *template/default/forum/announcement.htm -e644b0f67dbdc874becc8595b87a0e6a *template/default/forum/attachpay.htm +3a14c050d8ce8348dce0569a2b7ac75c *template/default/forum/attachpay.htm be4123cd59cff8dc8db3bf668df7312c *template/default/forum/attachpay_view.htm 0c0f362b9d43efbf42c10e5d9a6b1ae6 *template/default/forum/collection_add.htm dc71fb8629e26360fd74adb6a1e9d989 *template/default/forum/collection_all.htm @@ -129,7 +129,7 @@ da788356bc3bf1d33c263dcbb492b1ff *template/default/forum/forumdisplay_fastpost.h 8e3a24898257c4afac88594c8f411e1a *template/default/forum/forumdisplay_pay.htm bd55f788f5954a153a69497971d0e841 *template/default/forum/forumdisplay_sort.htm 6b226a0197b30d5ea628f7df57b2b182 *template/default/forum/forumdisplay_subforum.htm -8878362243021a93fcf05d3b13676ec6 *template/default/forum/guide.htm +1d890cf48dc60c85d0437bad77bd7d2f *template/default/forum/guide.htm 8f34f90145510799afa84a65df057ebc *template/default/forum/guide_list_row.htm 5fc89c347d01826e27850867948bf2c8 *template/default/forum/hiderecover.htm 7215ee9c7d9dc229d2921a40e899ec5f *template/default/forum/index.htm @@ -149,7 +149,7 @@ bfe3e7810cd1a92c4d12de5c7c5d2be8 *template/default/forum/modcp_recyclebin.htm 79253139b0efa9264727a6c076e0ad65 *template/default/forum/modcp_recyclebinpost.htm f188dc940a97ff2649b6e13c064e80fa *template/default/forum/modcp_report.htm aef49c77b3d3f8a69508ef2c88bb9232 *template/default/forum/modcp_thread.htm -8e7b7f3ee76d8e8844836104b6156d27 *template/default/forum/pay.htm +bb8f2a65428223366515f3da0fe97536 *template/default/forum/pay.htm a8850175239aac989ec77f6c4a0e8950 *template/default/forum/pay_view.htm b8738c1ef3ea1f22c532ab44c817b867 *template/default/forum/post.htm b2330bde173fc5469a976f824d64a485 *template/default/forum/postappend.htm @@ -190,7 +190,7 @@ de65a64c1cf31c59bcac4e2a1d28ef0c *template/default/forum/trade_displayorder.htm 80f17147dff1f144b6ccea422c7b3f2a *template/default/forum/usertag.htm 1c23cab2676059d53ec2661ccec32cc9 *template/default/forum/viewthread.htm a965c5bc0a221e19a471c878b78cb6b5 *template/default/forum/viewthread_activity.htm -f72d39bd02596051cf2241e15566d748 *template/default/forum/viewthread_album.htm +5bd7c6408041fe5b90baf3dfd97a439b *template/default/forum/viewthread_album.htm 8715e7faf2fafecc5972cc8e06a3c962 *template/default/forum/viewthread_debate.htm 6fecd3b135e9f8862fed96923d14cb83 *template/default/forum/viewthread_fastpost.htm bc0c6a59e995a81e693803bf4bc44f0f *template/default/forum/viewthread_from_node.htm @@ -202,7 +202,7 @@ cb157ea840609cdfb21442902a2dae98 *template/default/forum/viewthread_poll.htm 531d1b15f0fc510bf592bfc6ceba8bd8 *template/default/forum/viewthread_poll_voter.htm 122655ab97b8da643eff1edbfb2981d4 *template/default/forum/viewthread_portal.htm 0337052c895e76684b0d137e1d07ec74 *template/default/forum/viewthread_preview.htm -505caa58a4c5ac5084fee336b07dc799 *template/default/forum/viewthread_preview_node.htm +1b5c1bdd9f379d63fade8e4f6d9f20a1 *template/default/forum/viewthread_preview_node.htm 112fb1b917c8456c6879496e73dda7c7 *template/default/forum/viewthread_printable.htm 0db7f94967f562ed51334f03de1d95ed *template/default/forum/viewthread_profile_node.htm a0485aafee462eeaefd54ec3ad577d41 *template/default/forum/viewthread_reward.htm @@ -245,7 +245,7 @@ f779540374fdebce5ac6d3d30000cebc *template/default/home/spacecp_blog.htm ba5dd21681d916d53a6e92db12275f3b *template/default/home/spacecp_class.htm 6c6f7c62e245db11742e4608b56577a7 *template/default/home/spacecp_click.htm 5d7aa028b152dcd15c9b87330730d412 *template/default/home/spacecp_comment.htm -ad7117a238b7e94613649264c5e0342e *template/default/home/spacecp_common.htm +2ff5d954b3f913bc56093b5ae789a66a *template/default/home/spacecp_common.htm e1528f71cbd64f31311aa24422099ec2 *template/default/home/spacecp_credit_action.htm 7f0312f909b40baaede89faa200f3e40 *template/default/home/spacecp_credit_base.htm 9ff6d2baa907ef22e8615cb26bd31c77 *template/default/home/spacecp_credit_header.htm @@ -255,7 +255,7 @@ e1528f71cbd64f31311aa24422099ec2 *template/default/home/spacecp_credit_action.ht de720f9649909092eb56db83e94ee0b0 *template/default/home/spacecp_ec_explain.htm 82fe0d6d4249e721a927ff7d1e4c7db7 *template/default/home/spacecp_ec_list.htm 8168c6f5efb28165b9400efc9ec445c4 *template/default/home/spacecp_ec_rate.htm -f2fa729a8849559ee54c3f5c0b0bddda *template/default/home/spacecp_favorite.htm +0d270700dd619fa1c6f8d4dd89334709 *template/default/home/spacecp_favorite.htm b9eac625d6accd8de193e93b2a2eb9bc *template/default/home/spacecp_feed.htm 47498f4cfa424832d03bcdf407d7f800 *template/default/home/spacecp_follow.htm 824b3c84b2f4f1be195fc45b4296a5ac *template/default/home/spacecp_footer.htm @@ -283,7 +283,7 @@ d7c6e2cd964f758d5e8904a39fc2717f *template/default/home/spacecp_usergroup.htm 3c467ef9914518be03d6cb944ec67d52 *template/default/home/spacecp_videophoto.htm 610b2637365ea72649bbd816d6aaaad7 *template/default/home/space_activity.htm 68a599308ef3a3dd1e8f70e436d8816e *template/default/home/space_album_list.htm -d1a52d7bb45ce632f4b38e601ac06de9 *template/default/home/space_album_pic.htm +05e9f93eddf6f69c7bab4a9ffd394074 *template/default/home/space_album_pic.htm 8c74d129d08a09b02ca5812b6590762e *template/default/home/space_album_view.htm b17a0bc94675017bd4c54dd6a57a6af9 *template/default/home/space_blog_list.htm 0bf9fa2ae8f478ada0e9e12b4332823f *template/default/home/space_blog_view.htm @@ -314,9 +314,9 @@ f889751eb9e455fed31d782272af3003 *template/default/home/space_magic_mybox_opreat 7b355659442b804ffabf298677efd9a4 *template/default/home/space_medal.htm 8cffbf8acc65ea4fc78a9c9441d54f85 *template/default/home/space_medal_float.htm 4490e2e9d7a55f691662916ba6de7a56 *template/default/home/space_menu.htm -a46f5ecacbcde4da8ea18907818c1848 *template/default/home/space_notice.htm +7e7138f1b3c22bd6b8671ae0b7988a20 *template/default/home/space_notice.htm f29ffdea85f26b61e694574ed7f633e1 *template/default/home/space_plugin.htm -60d4e72964f3343c5ae2c7a7955c07e3 *template/default/home/space_pm.htm +3e17716045cb7e2ad2718d881550eab1 *template/default/home/space_pm.htm c1f3ed0d23e80ed3cfd33afda9433625 *template/default/home/space_pm_node.htm cbfb462a1269283ac208c9c8fcd83bdc *template/default/home/space_poll.htm 9d05a9fbfc5dccf9615267a2a147b61c *template/default/home/space_privacy.htm @@ -333,8 +333,8 @@ f11705f9f30d402dc14dca5d908a6198 *template/default/home/space_status.htm db9b21c491b406291b33f5ec399b5955 *template/default/home/space_task_detail.htm 78a25ca9f00dfce67c545e1c543d35bc *template/default/home/space_task_list.htm 9ce3c04869aca7db916acd472ddbe2af *template/default/home/space_task_parter.htm -41da86abbb543353a339ed3b68f8cb48 *template/default/home/space_thread.htm -cb32aff57eb5436ad080f2ded396a13d *template/default/home/space_thread_nav.htm +4eea24462f9581526a2286f7f33f6983 *template/default/home/space_thread.htm +d3e91d7bc001f3ee7f0c48ad0fc45333 *template/default/home/space_thread_nav.htm 3574221056da3399dc7ff2774103e79d *template/default/home/space_trade.htm cbbdfc99b13b78bb124c58c93ccf6b94 *template/default/home/space_userabout.htm 4d6e6f1ce253b7a51d9f827f5f4b9d8b *template/default/home/space_videophoto.htm @@ -471,7 +471,7 @@ bccc22258e6fdf3b6125191a2ed4aca1 *template/default/m/toplist.htm f394c231919ab6411cc6a4dbb06ca91a *template/default/member/getpasswd.htm d41d8cd98f00b204e9800998ecf8427e *template/default/member/index.htm a20d9f104f2f11a391a69eeea5ceb51a *template/default/member/login.htm -046c9c0eb183428fdcf48bfd7b08f7f1 *template/default/member/login_simple.htm +b79575920d22b1d75d896b5fca625ffe *template/default/member/login_simple.htm 26cb5ca9b5c4a670b01a17a82897862e *template/default/member/register.htm 2a179b9334f8cb84cb4d0d6970ff57b6 *template/default/mobile/common/footer.htm 85f77e7f6323c93db0a78d9681dfe4a0 *template/default/mobile/common/header.htm @@ -688,8 +688,8 @@ d41d8cd98f00b204e9800998ecf8427e *template/default/touch/forum/index.htm 5f8c09a7f6691cbcca41cf9f3301889f *template/default/touch/forum/modcp.htm ff4c1729e4f7919d45676f185c07d83c *template/default/touch/forum/modcp_login.htm 1dbda5c2c5db5baa8b2884957070e5eb *template/default/touch/forum/modcp_member.htm -66778891d779059ff80cb4d3c2f01591 *template/default/touch/forum/pay.htm -a0a5d30c728b3cf5f1223e3de0ef129e *template/default/touch/forum/post.htm +612e2ea34994b212d9fd187059e7232c *template/default/touch/forum/pay.htm +27d13c459e6edd57752d672075f79393 *template/default/touch/forum/post.htm 64fed2750a252e37df88d6b377ba08bf *template/default/touch/forum/post_editor_attribute.htm a8aa894029d40650aa514c474796c30d *template/default/touch/forum/topicadmin.htm 4f536e3552c37d67cc956bca23d71dfe *template/default/touch/forum/topicadmin_action.htm @@ -742,7 +742,7 @@ b823337680526406af4471db0c89644b *api/addons/zendcheck52.php 32e1277439930433e7205f3d3b711226 *api/addons/zendcheck53.php 7215ee9c7d9dc229d2921a40e899ec5f *api/connect/index.htm d41d8cd98f00b204e9800998ecf8427e *api/connect/like.php -ccfad6b4ce39e31dfa1cb91a1f03a3c6 *api/db/dbbak.php +7e359b68953b33ed22320a5c05f41bfe *api/db/dbbak.php d41d8cd98f00b204e9800998ecf8427e *api/db/index.htm 7215ee9c7d9dc229d2921a40e899ec5f *api/index.htm b8ffc3a164a636060e034ecd5ebcb28b *api/javascript/advertisement.php @@ -760,9 +760,9 @@ d41d8cd98f00b204e9800998ecf8427e *api/trade/index.htm aab6115d6da094789d9fab9920c0848d *api/trade/notify_credit.php 9f8cdad894a67ca729e3f36a27121f3a *api/trade/notify_invite.php a014963f4ea09d3a9389b9100f9512e8 *api/trade/notify_trade.php -d4eab86918808b578d08edaab073ac8e *api/uc.php +2ae72f0466958345897318ac063bae84 *api/uc.php fa24c93c4e4751d52e3e8b9e8e2e6fea *m/index.php -fc96a9c3bb30d9ab1abcab2c61b992c2 *source/discuz_version.php +6d371663df3e3fb2404dfc8901c433c5 *source/discuz_version.php 7215ee9c7d9dc229d2921a40e899ec5f *source/index.htm 0a7896849dd83bbf64a31ccf11e58a17 *source/admincp/admincp_admingroup.php d4644aa3ec2ad361b9cd1d2e1ca544e5 *source/admincp/admincp_adv.php @@ -778,9 +778,9 @@ c8e7e418f2d33f4adce9bfb1223cfaa6 *source/admincp/admincp_attach.php dda34ea9edc3f37fb7f3c8bae9d587e0 *source/admincp/admincp_blogcategory.php 20479a5ebcc8c8de3dac7a61764af979 *source/admincp/admincp_blogrecyclebin.php ac14d324de325ee9485caca992f796c1 *source/admincp/admincp_card.php -3a2f31095673104dbeacdbcb371f80ba *source/admincp/admincp_checktools.php +597c42c5802116e83ed3bc51fcfce4d6 *source/admincp/admincp_checktools.php b40bc52669c410d5fbedaaf37550fb01 *source/admincp/admincp_click.php -67893871bf760e8a2d11f132a8f5c964 *source/admincp/admincp_cloudaddons.php +808a228842cd1b97e42deaf23d8e864f *source/admincp/admincp_cloudaddons.php d18aad8908273cdaa7a76cc318aa74af *source/admincp/admincp_collection.php 93c0cd010c921640c9bc5c06aa6c9394 *source/admincp/admincp_comment.php be84f1b321231cc06f60bc3ec35318b4 *source/admincp/admincp_counter.php @@ -797,23 +797,23 @@ c7483c592fc23bc72d9e4eb69f0cf03c *source/admincp/admincp_forums.php e5ce8f7047641aee21bf81313dc74d5e *source/admincp/admincp_founder.php 9100bd5f83e6bffb1d80750b17a608da *source/admincp/admincp_grid.php 9962e6fb5bacb7c212e10c8d641b68f0 *source/admincp/admincp_group.php -b64cef91f741df95d9a5c4812281dbb1 *source/admincp/admincp_index.php -06252d6952f357372292be65a3ecd7a8 *source/admincp/admincp_login.php +42f6a0af95898de9b7b6dad9853c5e2f *source/admincp/admincp_index.php +bdab975c1976d3f413f427facb6edb3e *source/admincp/admincp_login.php 066fcd25828eb07d0a5f2d22e3aa2d70 *source/admincp/admincp_logs.php 1bb4886383e494b58807893cdd465f70 *source/admincp/admincp_magics.php 54483c3ed9b0f7bf8c388e339a188b8d *source/admincp/admincp_main.php -12c4f9edb5c4f7cd77b024cff894d2b4 *source/admincp/admincp_makehtml.php +dcf3344e1ff26051c51fb5b913b3c64a *source/admincp/admincp_makehtml.php 6fd1423244114e83e0ad29a895ca97f9 *source/admincp/admincp_medals.php -062e0010e467f1356ad2ce41c3383641 *source/admincp/admincp_members.php +8ef08b4d59385426f849b94190f8186d *source/admincp/admincp_members.php d84ce153a40a5d5a23791a759f12369a *source/admincp/admincp_membersplit.php -b3e6790237b1d6f4e76fd8f49a9067a9 *source/admincp/admincp_menu.php +9e10be63a8863d4b02e2f24df28d3154 *source/admincp/admincp_menu.php 434c58c867539395ce7e42245df4421c *source/admincp/admincp_misc.php 11232ab0bb6a9c90e69a218cf8496a58 *source/admincp/admincp_moderate.php 6deae1398f5c95ce2c93e7014ed2879e *source/admincp/admincp_nav.php -21606cee451f3b1fdd96c3216755418d *source/admincp/admincp_optimizer.php +a0ee6af6e5f6d28f04667b50dee1418f *source/admincp/admincp_optimizer.php 1f3c59f706eb00a835546445e535836b *source/admincp/admincp_perm.php bd23c59350b74e3443721d34fd8d0b59 *source/admincp/admincp_pic.php -a0ae461ba0bdb3474e948e59adab1944 *source/admincp/admincp_plugins.php +286734783d3318263a11250937ac399f *source/admincp/admincp_plugins.php c86e3f25f9abb4293d0f6588b564691d *source/admincp/admincp_portalcategory.php 969afc1130dccb5d8ff826e4206b6d2a *source/admincp/admincp_portalpermission.php 917a2d1d146988b21834f13e8aaae898 *source/admincp/admincp_postcomment.php @@ -822,13 +822,13 @@ ce933a5125e40603d639e0699ad6f11d *source/admincp/admincp_postsplit.php 05f8a7fdbc5d1ae3d6982d01fbbccc64 *source/admincp/admincp_quickquery.php 5dcf4442b5b9bcf42ef779844dd0778f *source/admincp/admincp_recyclebin.php d78b5fa0a0d8c1207ff7273bfee88029 *source/admincp/admincp_recyclebinpost.php -cd00baf2f12c792e6139924bdc4e6a2f *source/admincp/admincp_remoderate.php +6224f5d93cf368a7e056220fd0d0ba5e *source/admincp/admincp_remoderate.php 693cf16a043646e6a1c1d885c1ede9a0 *source/admincp/admincp_report.php 515969363b1f35bf2523b4db88447ab8 *source/admincp/admincp_search.php 29da15cee27537ac863505db4ae62f4d *source/admincp/admincp_setting.php 99faaf0fbd0645ac3baf1889629787bd *source/admincp/admincp_share.php c5bcf7715bc4bc3a614574152e41120f *source/admincp/admincp_smilies.php -007a086e911f690b1ae821a31bf53eaf *source/admincp/admincp_specialuser.php +b53cfc8920aaa66527040aa3fbaa9da2 *source/admincp/admincp_specialuser.php 8adcb29555b834f13f647a82f4399a5b *source/admincp/admincp_styles.php 7d8bffef6b6b5e7530b0a5d8e82a74c3 *source/admincp/admincp_tag.php 3ed5b843570848bfdb0a93329edc7cf4 *source/admincp/admincp_tasks.php @@ -836,7 +836,7 @@ c5bcf7715bc4bc3a614574152e41120f *source/admincp/admincp_smilies.php 621446be00b3fbf50dffcb80c32d6d4d *source/admincp/admincp_threads.php 1bb43a8680ccfbb3d94b1453d2b18ef9 *source/admincp/admincp_threadsplit.php dae99ec3f19c1577d17d10ef599a49fa *source/admincp/admincp_threadtypes.php -f2338cf2c849a7e7ab3a7390f987f258 *source/admincp/admincp_tools.php +53ae77c613cd401a01e37cf24397438a *source/admincp/admincp_tools.php cb659766c1ca2ad229ed094a7b4a2187 *source/admincp/admincp_topic.php d44745dad9ecd4a464394605476ad4f2 *source/admincp/admincp_tradelog.php 9af8dd9ead43f4d9deda57729ffd2e02 *source/admincp/admincp_usergroups.php @@ -856,7 +856,7 @@ b9a7cbe8c910ba822646fb1e04063538 *source/admincp/moderate/moderate_portalcomment 9efacbb68d20f4c9e5d7f69950308191 *source/admincp/moderate/moderate_reply.php 80a918eda876b0ac2b28f93d897d9e9d *source/admincp/moderate/moderate_share.php c07c4b20d08cbd15394e6c3936a88e38 *source/admincp/moderate/moderate_thread.php -a1e8be1999226e65128ee9376180b8c3 *source/admincp/robots.txt +c7d5031d22889c680af8f87028787484 *source/admincp/robots.txt f134cd176dc876fbc23a395f4772c115 *source/archiver/common/footer.php 9b17399dce8be4a59de9d1b68a06940c *source/archiver/common/header.php d41d8cd98f00b204e9800998ecf8427e *source/archiver/common/index.htm @@ -888,7 +888,7 @@ dead7602f03bf4fa852b4e2e38fef795 *source/class/block/forum/blockclass.php 2f1942d99739b677c708b8a67ed900b4 *source/class/block/forum/block_activitycity.php 4de7da26892c15edfebb192b1c7a379d *source/class/block/forum/block_activitynew.php 55fa2cf021d9e4fec8d97171b28c0cda *source/class/block/forum/block_forum.php -6feefd61dc77cf4c544085efbc24cbfa *source/class/block/forum/block_thread.php +6cace6f909fccb0c06f18c79d772f041 *source/class/block/forum/block_thread.php 5721182d8dffefc67fbbb7637bf7f4ac *source/class/block/forum/block_threaddigest.php b47ce91e47654bad42f25e8abe0b1c91 *source/class/block/forum/block_threadhot.php f382f7a936454e338073588c12726821 *source/class/block/forum/block_threadnew.php @@ -1006,7 +1006,7 @@ d88304bc1703e8a96375c5da0e30018f *source/class/db/db_driver_mysqli.php fb05c4f082d4098a9e567b2d56cb8344 *source/class/db/db_driver_mysqli_slave.php e28eb546c80966c63d5cca19063b7d53 *source/class/db/db_driver_mysql_slave.php d41d8cd98f00b204e9800998ecf8427e *source/class/db/index.htm -669d659178bf3a85a791deabbbb8d311 *source/class/discuz/discuz_admincp.php +c69e5cd80de838ccbb71e5b61662e358 *source/class/discuz/discuz_admincp.php c516d2b7f54e45883e6d2dcbdb858b81 *source/class/discuz/discuz_application.php 5bb1ba4480bcfd862809bf5f5951d5cf *source/class/discuz/discuz_base.php b0b7df7926c2cdd89957cca31ba54c41 *source/class/discuz/discuz_block.php @@ -1015,7 +1015,7 @@ e4b42ae2732c2dba007cd29c0a139de4 *source/class/discuz/discuz_container.php 2afe7f21611c1ddb08750c68e29426ca *source/class/discuz/discuz_core.php 4beda424464c4de67cedaba60b306124 *source/class/discuz/discuz_cron.php 286bb58841ea6dbdc8c1e155491ae53a *source/class/discuz/discuz_database.php -ccaa801c86ad04375aa0b0f283167762 *source/class/discuz/discuz_error.php +01415ed6bb132f92db50b112ed63ac06 *source/class/discuz/discuz_error.php 770b5620f235ec9e7bbd0950f524e3d9 *source/class/discuz/discuz_extend.php d2343fb3bea0e16b574a1ea601a9f871 *source/class/discuz/discuz_ftp.php 973863153112815a0059cdd6919307a6 *source/class/discuz/discuz_memory.php @@ -1040,12 +1040,12 @@ ca7a561187dc9f012ac92a40faa4fdc2 *source/class/extend/extend_thread_allowat.php c3a93d216b782304490537a191073562 *source/class/extend/extend_thread_image.php 9f9f40d592ef8f571f77a800fbb41176 *source/class/extend/extend_thread_poll.php 0317ddde00e5a2dc025ea9347d36a621 *source/class/extend/extend_thread_replycredit.php -e4cb512304671187651c5aef0093ca48 *source/class/extend/extend_thread_reward.php +d87591fb9482bc2d9271a5b8fff61da9 *source/class/extend/extend_thread_reward.php 8ef6276349f810a76e29d82f953fa41d *source/class/extend/extend_thread_rushreply.php 20edf28f09b2dd87b928fac6e884c9a9 *source/class/extend/extend_thread_sort.php 831bb966aec558cf52bd4b939d33b392 *source/class/extend/extend_thread_trade.php d41d8cd98f00b204e9800998ecf8427e *source/class/extend/index.htm -86c7ddc10fd03ed8a352e45f759a1428 *source/class/forum/forum_upload.php +b2c852e657aff4691b6901b924a53da8 *source/class/forum/forum_upload.php d41d8cd98f00b204e9800998ecf8427e *source/class/forum/index.htm 6b28f204ff769711574ada68e6c7a901 *source/class/helper/helper_access.php 79feb45e4626dbba96e19ea147fff3e2 *source/class/helper/helper_antitheft.php @@ -1060,7 +1060,7 @@ f467fbd2185aaf87818699c642a09a9a *source/class/helper/helper_mobile.php 8090fead8659eca5695321f03aa31391 *source/class/helper/helper_notification.php fbecf04eacbdce0e05d105c45e66051b *source/class/helper/helper_output.php a2f2d9d076697b1c25eea29e8a57f36e *source/class/helper/helper_page.php -fabc124614f30c6dccbf7371ec2f3d60 *source/class/helper/helper_pm.php +7dd253716a8c640542b69bae75e16a84 *source/class/helper/helper_pm.php 11d3e9b1bd8da6c86f3b8706e47a9997 *source/class/helper/helper_seccheck.php b8eaa904d338d1c953032877d06748f4 *source/class/helper/helper_seo.php 702716085abbe7156e78d080fec3bfa6 *source/class/helper/helper_sysmessage.php @@ -1114,10 +1114,12 @@ bbb7b9348becfc1bda0b510faf533948 *source/class/optimizer/optimizer_aggid.php 9fce3e9b01008cca2b841b6b439ba86f *source/class/optimizer/optimizer_attachrefcheck.php 5205232550520170c438d21461eff292 *source/class/optimizer/optimizer_dbbackup.php d89478f52c55b4bef37b4e7d4e74d3bf *source/class/optimizer/optimizer_dbbackup_clean.php +ad39f98a9b07902f2866b1173da1d074 *source/class/optimizer/optimizer_dbbackup_visit.php 26336cf1c4a314d0a2de74a0eeae2eff *source/class/optimizer/optimizer_dos8p3.php 21146601b3c3cdc9c96903535d13f249 *source/class/optimizer/optimizer_editperdel.php 8f8cd7d59ed7f118862ff67906effd4c *source/class/optimizer/optimizer_emailregister.php 2b7831dc19515b007fae5c6fa575ef02 *source/class/optimizer/optimizer_filecheck.php +6b8c60a2b0f0f00a6f0fe9828a06da3f *source/class/optimizer/optimizer_filesafe.php 7fe2cf8e749bf2fa4c18528167ef56f8 *source/class/optimizer/optimizer_forumstatus.php 29d92d6498b3fde3276efef44f907322 *source/class/optimizer/optimizer_httphost.php d329a53c7a7b1971d8226ba9bc793014 *source/class/optimizer/optimizer_inviteregister.php @@ -1133,6 +1135,7 @@ c71b1dbf28424b0cf9b465ce9d5a1906 *source/class/optimizer/optimizer_postqqonly.ph c8497456427c3fb365f6a61ab32cdb52 *source/class/optimizer/optimizer_pwlength.php 510ac61ffedd610afbb125044d57bc2d *source/class/optimizer/optimizer_recyclebin.php 3ba90ea8b884eca78df3cdf12f9777cf *source/class/optimizer/optimizer_regmaildomain.php +df6ca9f9d56ef295dbd25d378a35543e *source/class/optimizer/optimizer_remote.php 8ccc302b4da7ac3d40467e13f721246e *source/class/optimizer/optimizer_security_daily.php 6876f0067abae39e0991fbc91cfad098 *source/class/optimizer/optimizer_seo.php 05224f156023e0cefd1586c34055acfe *source/class/optimizer/optimizer_setting.php @@ -1452,15 +1455,15 @@ d41d8cd98f00b204e9800998ecf8427e *source/function/cache/index.htm 1d2671923a38125e914db5173eede0c0 *source/function/function_admincp.php 84da63dfc3f854f43b0a73dc51d0ea1a *source/function/function_attachment.php 579f4ce43abe7a920ba173fbcdf7bbf4 *source/function/function_block.php -0846557fec0225ed09a8c5647a58665b *source/function/function_blog.php +6273f76afcac3b3ec06cfd03eaf6d644 *source/function/function_blog.php 10152e216afcc2730c7961778fd2d36a *source/function/function_cache.php 56d2e09f9a98e1e34eb6bdebcf2059be *source/function/function_cloudaddons.php 77f06f33b827d1155c5c3c2f28bc7909 *source/function/function_collection.php c7085897146b34fa0c94d3c08f77f2a9 *source/function/function_comment.php -f45845c5d558bf050a0f9ad401060049 *source/function/function_core.php +731f8910a56d7e10905dc8665fa5288d *source/function/function_core.php 9bc78bc4596f7711cd5d338a791bc9be *source/function/function_credit.php 2ed08c1bd7126db70dd6059ec43dffb4 *source/function/function_delete.php -f0f2b1832ba0fd83a6cbbe90487533a7 *source/function/function_discuzcode.php +c9be13688c9c6d218b422459c7814fe9 *source/function/function_discuzcode.php 9270deaa36c685a3f408bb9cee2db317 *source/function/function_domain.php 30b1bdd6288e8703448aebcefef24b3f *source/function/function_ec_credit.php 5dbc9a2336c42c0d6b4eed80aa6f100e *source/function/function_editor.php @@ -1468,8 +1471,8 @@ ed60f1ffa5730c849ff679cf8fd5efcb *source/function/function_exif.php d487c20fb68db6b9948a3e3396b4ab05 *source/function/function_feed.php 0194bc7995bdad2cf85b572dd93b84b3 *source/function/function_filesock.php e6c6bc0b0bfdf973cde830b2020ec9e0 *source/function/function_followcode.php -caaf5b123dd9293f331109da4dd83bd0 *source/function/function_forum.php -95cc4b28fdce7b3394b252a9d6d4dd9f *source/function/function_forumlist.php +cbd6dfd41741a183aad79ddb276888a9 *source/function/function_forum.php +1066cc7529f9814681f905aa4f36953e *source/function/function_forumlist.php 10758d44f84170af87ed5d0a4f15d657 *source/function/function_friend.php 29f2fd5faa1137daf5cbee96a21bcde6 *source/function/function_group.php abe3f94e960d66f15bb08ec6195c029f *source/function/function_grouplog.php @@ -1480,35 +1483,35 @@ ab0eb76dbff9097ab70c9460dc50ad25 *source/function/function_mail.php 8ad7c04cf85fe6a59b3917b0bf1ec3ab *source/function/function_member.php 40ee75482ffa0542df601d1e6184e940 *source/function/function_message.php 7bec80063cf1cb941651ec05059d25f6 *source/function/function_misc.php -174de03a2e083616324be9347f0ac3dd *source/function/function_plugin.php +d9d16b981b7a56b1087a84dab65196bb *source/function/function_plugin.php 4a53087b86b6d059e1d3fb7c38eb279d *source/function/function_portal.php 3db7bf5c8d30e9b5f566c71d4e84ecbc *source/function/function_portalcp.php b030eec0a0920fac9d01c6cb16f9f64b *source/function/function_post.php da11dcd0d3d07491aca87e16effbd524 *source/function/function_preg.php -edb4c08f1225573b5051d9e9fabd6f1c *source/function/function_profile.php +2af91fe42d7f3891a3edde6778c0617e *source/function/function_profile.php 1af32e0738148efe6d6f6ef7c6fec714 *source/function/function_search.php bceebf4fa1aeb10668424fe88dcca4b8 *source/function/function_share.php 670a4498c0ccba1eeac0c3b91337558f *source/function/function_space.php -4ef0717a76c46e57b71c0f94b5332183 *source/function/function_spacecp.php +2242ac6e2d49de4a0e5b29b2eaf49e6f *source/function/function_spacecp.php 8b8fc621a0f24e3fab045d20d6c23dcb *source/function/function_stat.php 3e6747e8f8140ac94263a0c8ee145390 *source/function/function_threadsort.php c270132d0780cb2682b431cd47897e9c *source/function/function_trade.php -405ba354a201677e9cd76cf0e2314a44 *source/function/function_upload.php +742be580e914f53e900a4536ced18cfa *source/function/function_upload.php d41d8cd98f00b204e9800998ecf8427e *source/function/index.htm d41d8cd98f00b204e9800998ecf8427e *source/function/media/index.htm -dbf1ae5e22496740c26a9f0d5b11de9d *source/function/media/media_56.php +bced245d8b7463e9b4946469fb3ca109 *source/function/media/media_56.php 86352baae10e0ae033a15c32bad0b045 *source/function/media/media_acfun.php 8ee1482a98edb5fff23ae528644a74f2 *source/function/media/media_bilibili.php 82e3a711eb6a70cbab558ccde9260776 *source/function/media/media_ixigua.php -faaade06b97700dc9eae748321b647dc *source/function/media/media_ku6.php +23ce8c12fa94968a22c44ce89c628b7e *source/function/media/media_ku6.php 04bb0e6a2efb70f6a1444309c948a29d *source/function/media/media_mgtv.php 5b7387ec6fd5e0e395cd9d45d72f3c15 *source/function/media/media_qq.php -3ad5a70e973b0a822530cef55f1682f8 *source/function/media/media_sina.php -196bd2fa34ad901f4a86564434183166 *source/function/media/media_sohu.php -ca7112b3ca1360418bfacbcc067b4f88 *source/function/media/media_tudou.php +c13fd9a3b0128fa711a2801d72acfa7d *source/function/media/media_sina.php +44ced64deff2a4bd9030eb2584d5d276 *source/function/media/media_sohu.php +246ee7694136d49386e790dc920e668e *source/function/media/media_tudou.php 07782c6c51233ffaa4008447fa589ed4 *source/function/media/media_wasu.php -e16c51f5d1964856c494e2f56338c0ce *source/function/media/media_youku.php -730ef77b07c612ec08679e7f533e480b *source/function/media/media_youtube.php +f386cb709239943774b7ff37568e1287 *source/function/media/media_youku.php +2aca937667d38b78a638f2f88f059181 *source/function/media/media_youtube.php 8ed1be38bb3de1aa5a1fee832e2dae22 *source/include/collection/collection_comment.php 3708e215a1f193e93b0c0e94a9610ea4 *source/include/collection/collection_edit.php ce22900c4f828025ddec6f2e30351faf *source/include/collection/collection_follow.php @@ -1538,7 +1541,7 @@ e5dc3d211acd2a3a0a1c033c9fc0244d *source/include/cron/cron_todayviews_daily.php 7215ee9c7d9dc229d2921a40e899ec5f *source/include/cron/index.htm 7215ee9c7d9dc229d2921a40e899ec5f *source/include/index.htm d41d8cd98f00b204e9800998ecf8427e *source/include/misc/index.htm -ca8176d4de2937c07397936bfc2598b5 *source/include/misc/misc_ajax.php +6704ba50844ecb34857466767976ae33 *source/include/misc/misc_ajax.php 5cb97268c5a813871bad43794fa46dc7 *source/include/misc/misc_category.php a227cfdfc85fd2a54257cde6bfb51ff4 *source/include/misc/misc_emailcheck.php 7f06ba0572dc4769f9ee863cc5b21f7e *source/include/misc/misc_forumselect.php @@ -1556,7 +1559,7 @@ d09e1b7d03e908c9f0cd1b2f902b6336 *source/include/misc/misc_ranklist_picture.php a12524d985f2e6e8c560002e5145d046 *source/include/misc/misc_security.php 3f2fb687c6fa491e17bafe6df652250d *source/include/misc/misc_sendmail.php 04b60d27a4cc8fea57310fccefd1ee48 *source/include/misc/misc_stat.php -01c5b8901bfaeb86ed42be16014d859c *source/include/misc/misc_swfupload.php +8d2f36bf8309079ea970307bf4d73691 *source/include/misc/misc_swfupload.php d41d8cd98f00b204e9800998ecf8427e *source/include/modcp/index.htm f03bc0599f2a79111931b352f10b319b *source/include/modcp/modcp_announcement.php f56a1f879c2930be194bf6a9bea45386 *source/include/modcp/modcp_forum.php @@ -1586,13 +1589,13 @@ bd16ae279c30f14453afaa125afebff1 *source/include/portalcp/portalcp_related.php 0db243c045d0f5ef59e9bc0b7f3a9ef5 *source/include/portalcp/portalcp_upload.php d41d8cd98f00b204e9800998ecf8427e *source/include/post/index.htm f629df076baef2c3bce97b9fbdcb0da6 *source/include/post/post_albumphoto.php -d23410cf5da852f1087d746b82e62326 *source/include/post/post_editpost.php +a2d20eeda78bb7dd7ce7367bc206e790 *source/include/post/post_editpost.php 13dd56bb993da5fc583c4f58307ea4bc *source/include/post/post_newreply.php d19649e4bb1b9e66aa78ebcef01c24cf *source/include/post/post_newthread.php c5841c1b8c2d7ce308b860ef757b7caf *source/include/post/post_threadsorts.php d41d8cd98f00b204e9800998ecf8427e *source/include/space/index.htm c8e9a4fecc10c207f932a0b5dfb0fdbb *source/include/space/space_activity.php -c84bd46344292eaabac1e68f61b66ab0 *source/include/space/space_album.php +de0130e374ab75c7330082d8e6391176 *source/include/space/space_album.php 47a2c1120af12178acf4d7465fc0ae1a *source/include/space/space_blog.php 0a33e7e7101bc66c22883afebd2595a6 *source/include/space/space_debate.php 9b5713ca88b018434c6dfb82312ab801 *source/include/space/space_doing.php @@ -1618,7 +1621,7 @@ bf58234ecefe504191b5e577a0a0bd74 *source/include/spacecp/spacecp_album.php b6708bb5967b1a2f54d4e100d20d5d77 *source/include/spacecp/spacecp_class.php 32020ed41ef904e1967ea652d115862c *source/include/spacecp/spacecp_click.php 855c21d84033b5d69cfa9e6d8ff4627a *source/include/spacecp/spacecp_comment.php -baf98006c94bbcca5a49fe2871a9c270 *source/include/spacecp/spacecp_common.php +79b223ad80cdb08cfd1a7facb9a03877 *source/include/spacecp/spacecp_common.php 8c4f0628f538f3266305b3e5f1779e1c *source/include/spacecp/spacecp_credit.php d19945359b41085f4857a967a38807f2 *source/include/spacecp/spacecp_credit_base.php 721c69630a50e9d5f25d710e45e5eb7b *source/include/spacecp/spacecp_credit_log.php @@ -1652,7 +1655,7 @@ e914c1c998605c629042698c546d9b84 *source/include/table/gb-unicode.table 7215ee9c7d9dc229d2921a40e899ec5f *source/include/table/index.htm d41d8cd98f00b204e9800998ecf8427e *source/include/thread/index.htm 911ae914817bb4010593d948a5fcbb9e *source/include/thread/thread_activity.php -89f51d5f445d2cc1c9f7980ed5bffd2f *source/include/thread/thread_album.php +dffee268b9f9f16dc63c9f5406a4647f *source/include/thread/thread_album.php f1615259427a0732f053dd10f9f6b2ee *source/include/thread/thread_debate.php 2707ee0fddee31ff71dc1b033e759e01 *source/include/thread/thread_pay.php 56f452d8d1c8ba3b3d4ef122f516dc72 *source/include/thread/thread_poll.php @@ -1735,7 +1738,7 @@ a1d75db37fe74228fd7b1d46dd3d331f *source/language/block/lang_sortlist.php 426e13e3166fc9ba1b398298c206cf00 *source/language/forum/lang_misc.php 8385a7f24d033ac169dbc7247cfea2ad *source/language/forum/lang_modaction.php 9b1ac410c9af29ce9ae1e5d93e932f21 *source/language/forum/lang_swfupload.php -3d259e8a16ea60d9584be69ce43f3ea9 *source/language/forum/lang_template.php +1eb48e70d26680aaeff38bf415824578 *source/language/forum/lang_template.php 868ede0d8b6e38621fd3d1cf0e27dfa9 *source/language/forum/lang_thread.php d41d8cd98f00b204e9800998ecf8427e *source/language/group/index.htm 3ecbd0c431f1448362377425340dbc46 *source/language/group/lang_misc.php @@ -1746,11 +1749,11 @@ d41d8cd98f00b204e9800998ecf8427e *source/language/group/index.htm aa5afac8d3be08eb2eeee0cbcaee5d68 *source/language/home/lang_template.php d41d8cd98f00b204e9800998ecf8427e *source/language/index.htm c912d218c2e9bb4c313190fc0f4a7339 *source/language/lang_action.php -c4653226b48baff4778d30892e1bf49e *source/language/lang_admincp.php -bb079def9d0446b4938108c706c529dd *source/language/lang_admincp_login.php -40fd9d1bec40b807273bef83c67c9ab6 *source/language/lang_admincp_menu.php -2e81ddbb58da84105a5f6b91b4ebb730 *source/language/lang_admincp_msg.php -7f1c9c8219c1b8c19966f678e6443914 *source/language/lang_admincp_searchindex.php +ee8df3a4d51c8a5f459055d24a02d00b *source/language/lang_admincp.php +dd472a676352e1e3791ccf5f04f0b678 *source/language/lang_admincp_login.php +4d939474c326cbee1afd5bc98a65ee91 *source/language/lang_admincp_menu.php +bf33314e595be7d0b2932e1b0da9df2e *source/language/lang_admincp_msg.php +e694516d6b2c916c3ca8dabedd6d4815 *source/language/lang_admincp_searchindex.php 85b48ebd58cbbca013cf830d7890506e *source/language/lang_blockclass.php 6bfd66db7ef1ddb8c49326f92f2ed710 *source/language/lang_cloud_register.php e5b436255efb459618e87c5780c3fb13 *source/language/lang_core.php @@ -1761,7 +1764,7 @@ ac434839cd9a6049134f647d2ea0d849 *source/language/lang_error.php f1e320d5eceb22226759968178a75491 *source/language/lang_friend.php 4facc666c2968142be056442b2bc26b3 *source/language/lang_message.php 5c40419a2194878bd43014f1e8e2ae9e *source/language/lang_notification.php -c51c27628c378b986ffd947e90a2f909 *source/language/lang_optimizer.php +c39ee46128701359ea33de0213e93d15 *source/language/lang_optimizer.php b22dda0c98c10eaec346b3c70b30059d *source/language/lang_portalcp.php 6aacd40bbd48bc31cdf081dd610f0c26 *source/language/lang_seccode.php b81203d2936bc280891894a3f179ead7 *source/language/lang_security.php @@ -1796,7 +1799,7 @@ ccc52613d036399e1375c9be81b3ffd3 *source/language/magic/lang_updateline.php 7215ee9c7d9dc229d2921a40e899ec5f *source/language/member/index.htm f925f5d0640f8fff47f05f6b21de3ca3 *source/language/member/lang_template.php d41d8cd98f00b204e9800998ecf8427e *source/language/mobile/index.htm -04682997db788b34ee4953f17b494a98 *source/language/mobile/lang_template.php +027fdf3435d809ed56992e8823147436 *source/language/mobile/lang_template.php d41d8cd98f00b204e9800998ecf8427e *source/language/portal/index.htm 7c68bf1fcf6eee090a04e8a888616fa4 *source/language/portal/lang_template.php d41d8cd98f00b204e9800998ecf8427e *source/language/ranklist/index.htm @@ -1832,7 +1835,7 @@ debde176c0cc05091fb08ccf600a1695 *source/module/forum/forum_forumdisplay.php 671496bee811316ce8f92bb9c10cb763 *source/module/forum/forum_guide.php 044aabe6823ceff3bd01b082776d5fe5 *source/module/forum/forum_image.php b41090f03399f98295e676bcb2a10c08 *source/module/forum/forum_index.php -3363c5d02ff01485afd65057c8fd2990 *source/module/forum/forum_misc.php +d4b9ff27f6259c9380cda03329ac959b *source/module/forum/forum_misc.php 9b0d2691ae50d95fb2776f1e21635f64 *source/module/forum/forum_modcp.php 4db3a2fafd977300469b9ae6a63fed38 *source/module/forum/forum_post.php 856837c63d08a8920978342ebae1a39b *source/module/forum/forum_redirect.php @@ -1840,7 +1843,7 @@ b41090f03399f98295e676bcb2a10c08 *source/module/forum/forum_index.php 9eacb72a42d21156d35b2a8956cc0fdc *source/module/forum/forum_tag.php 571fc4f66dc650cdf4548ff0d8d60e40 *source/module/forum/forum_topicadmin.php e7d4e8fed8d979a928cd8960eec25f2d *source/module/forum/forum_trade.php -27d558e1c42daa4c662fb031d2a64f07 *source/module/forum/forum_viewthread.php +e5a2a59cbe2c7034f2f7579a9f73a909 *source/module/forum/forum_viewthread.php d41d8cd98f00b204e9800998ecf8427e *source/module/forum/index.htm 6ac2bc80c87d24ef37a87e02cf9f31cd *source/module/group/group_attentiongroup.php 8263a15c6d7dc0246cf7426d16cd9195 *source/module/group/group_index.php @@ -1859,11 +1862,9 @@ d38279e933463817cdd76b0ca2dda388 *source/module/home/home_space.php d41d8cd98f00b204e9800998ecf8427e *source/module/home/index.htm d41d8cd98f00b204e9800998ecf8427e *source/module/index.htm d41d8cd98f00b204e9800998ecf8427e *source/module/member/index.htm -87181baef8a5a7af9f1df690697e78b5 *source/module/member/member_activate.php 89c209c281e838821cc608ce8d5b3ae0 *source/module/member/member_connect.php 59e0ba82c6ad9650f61f39ade4455700 *source/module/member/member_connect_logging.php 637d3555272236936a737383402657bd *source/module/member/member_connect_register.php -27156c83fd2b23d44d0189c290936dbb *source/module/member/member_emailverify.php 3da31e0ac9d115a1ac84b9f666d8fcbe *source/module/member/member_getpasswd.php 4d0493b135a09ca80bef9e1bcff70175 *source/module/member/member_logging.php 4c6cfc302beac1734a13441275410ef7 *source/module/member/member_lostpasswd.php @@ -3216,9 +3217,9 @@ d41d8cd98f00b204e9800998ecf8427e *static/js/echarts/index.htm acb49f3a33a469c6b8bfaf3760d6c71b *static/js/fileprogress.js 9d76dfd7539cdbf0a4e46a43e576427b *static/js/forum.js 5aee4c7ec15aabbd43740d6e820ed72f *static/js/forum_moderate.js -ce08a6e355e414ce847b2150b3b41655 *static/js/forum_post.js +7cbcfb0069a4ab041346a663f913bc08 *static/js/forum_post.js 1aeb752a8520cda30ff548af24a035d8 *static/js/forum_slide.js -014152c8d52455ed772cfa94c52164ea *static/js/forum_viewthread.js +68a88aff20096c1138b71b59dbd38072 *static/js/forum_viewthread.js 20aee0898556697d56e037ba761ceb43 *static/js/google.js 2f1a9096c97a60108d4faf907cb9f545 *static/js/handlers.js 5321ab2760f06625be6ee25071bf112e *static/js/home.js @@ -3253,7 +3254,6 @@ d41d8cd98f00b204e9800998ecf8427e *static/js/player/index.htm b39f66a96b624ea5e6a80499f0118bcb *static/js/portal_diy.js c0bd9e7908e90daafab46fca8216f4d3 *static/js/portal_diy_data.js a199c05d7af8f06ed95151b9131edde2 *static/js/portal_upload.js -85d2e0d31f59bb19009b50b1b9f6a4d7 *static/js/qshare.js 5c6d69df3fa5d32a42ad8a1f3433c190 *static/js/redef.js 1aa6346ec2c19dec83253a5c25b6ce25 *static/js/register.js c2816a3c0136b30f2672183ad6344287 *static/js/seditor.js @@ -3409,7 +3409,7 @@ a775225b2830eb63f4a7f08b9ea3f262 *uc_client/client.php 7215ee9c7d9dc229d2921a40e899ec5f *uc_client/index.htm d41d8cd98f00b204e9800998ecf8427e *uc_client/data/cache/index.htm d41d8cd98f00b204e9800998ecf8427e *uc_client/data/index.htm -5109765cecdab58d611e0751656059f4 *uc_client/control/app.php +34811069c6d20639d45f267d0e282887 *uc_client/control/app.php 902a8c8deb80ef03eacc2bec3e9d5ee9 *uc_client/control/cache.php aba07c0e38ad0875a303ef418658afc2 *uc_client/control/domain.php 42a0f7a167224fbcba01a9a6dc561493 *uc_client/control/feed.php @@ -3441,7 +3441,7 @@ dd8f21e6948c6c12ae073a59fcea5895 *uc_client/lib/xml.class.php e62c9ce003fec1e6c66d0eff0f7a5036 *uc_server/avatar.php 29c98250b07e4079f3906de984a27ef6 *uc_server/crossdomain.xml d959e011617005de6672c0046cdbfc1c *uc_server/index.php -15dde9868cbc402f19261bd376496d38 *uc_server/robots.txt +daadebe24cc397eaedb16c5aef40a306 *uc_server/robots.txt 7215ee9c7d9dc229d2921a40e899ec5f *uc_server/data/avatar/index.htm 7215ee9c7d9dc229d2921a40e899ec5f *uc_server/data/backup/index.htm d41d8cd98f00b204e9800998ecf8427e *uc_server/data/cache/index.htm @@ -3449,17 +3449,17 @@ d41d8cd98f00b204e9800998ecf8427e *uc_server/data/cache/index.htm 7215ee9c7d9dc229d2921a40e899ec5f *uc_server/data/logs/index.htm d41d8cd98f00b204e9800998ecf8427e *uc_server/data/tmp/index.htm d41d8cd98f00b204e9800998ecf8427e *uc_server/data/view/index.htm -3c85f10655ccd54a2e5905046966a422 *uc_server/api/dbbak.php +1849c6dbe449093eb1bec893b35b09da *uc_server/api/dbbak.php d41d8cd98f00b204e9800998ecf8427e *uc_server/api/index.htm -90b101dd0e881816c7587f04df2c3db0 *uc_server/control/admin/admin.php -7aa86ce6075f58f5afdd5b119cd662c9 *uc_server/control/admin/app.php +09bc093a87ad22670b181836788d2349 *uc_server/control/admin/admin.php +d79eb0c260ac74f61c2b4842d23cedee *uc_server/control/admin/app.php bb19aa03231cb8ffa29cbdb41449dfdf *uc_server/control/admin/badword.php 72a4339c80c4a1dea4a2e644fa783e53 *uc_server/control/admin/cache.php b5b55c54eb4d74731c01e4c8982042cd *uc_server/control/admin/credit.php c0c8cbc576cb72e129274c887a24676c *uc_server/control/admin/db.php f53e0119b7e5a24c2ac6dfa68913d631 *uc_server/control/admin/domain.php 9139008dd986bca1b8f9f203de4fde81 *uc_server/control/admin/feed.php -f697e0fec08c84c27f84f22c019d2fae *uc_server/control/admin/frame.php +9f729d309b4b4882b9445c5a04684ba8 *uc_server/control/admin/frame.php d41d8cd98f00b204e9800998ecf8427e *uc_server/control/admin/index.htm 6970e00023140a42a8101f88c9da08b3 *uc_server/control/admin/log.php 85b0228e317d1c458cace7a3478b6426 *uc_server/control/admin/mail.php @@ -3468,9 +3468,9 @@ dea62a81dcb69b255a4deaac38602e0d *uc_server/control/admin/plugin.php 9b0a32b21c13acbccdf36087e5dad5bc *uc_server/control/admin/pm.php 0e9c93d9204b5f232eea6617ca594979 *uc_server/control/admin/seccode.php 95add7a1e35b9abde44db45d5c95fc8d *uc_server/control/admin/setting.php -33123ac0a4edabf240b51033ce1bb3df *uc_server/control/admin/ucfiles.md5 +bdfb88541a2b86851f406425098951e8 *uc_server/control/admin/ucfiles.md5 d7b3b665ae3fe33c1cfa906df9d3ebac *uc_server/control/admin/user.php -73848d3c004bbf8341138005fc58865f *uc_server/control/app.php +d9a01e68a40776159820300c196acf2e *uc_server/control/app.php 45f65148d59e61a608d57af8544ff5e5 *uc_server/control/credit.php aba07c0e38ad0875a303ef418658afc2 *uc_server/control/domain.php 42a0f7a167224fbcba01a9a6dc561493 *uc_server/control/feed.php @@ -3485,7 +3485,7 @@ fa6e51baef21c1104e6a9c9bea515b93 *uc_server/control/version.php 97352f61eb1eb3a1528e0c6d752a8591 *uc_server/model/admin.php 4a0b4c85f1e53dd995b9785f8811846a *uc_server/model/app.php 5cbfa5b5ff6bf0bfd4aee2419bdc72c4 *uc_server/model/badword.php -9de96acc884c8fc05be8f236161f4d2e *uc_server/model/base.php +d92bb06788889c6896c73037760f4810 *uc_server/model/base.php f715376b3450807e6a9382c1314107c1 *uc_server/model/cache.php d4fde3d32ba28d296f8b7b069bff016c *uc_server/model/cron.php 74b4e3c17a429bfba12edee20d4e13ba *uc_server/model/domain.php @@ -3515,9 +3515,10 @@ d41d8cd98f00b204e9800998ecf8427e *uc_server/plugin/filecheck/index.htm c46605109aaaccfd8fc1665bd45cfb40 *uc_server/plugin/filecheck/plugin.xml 5259f76ce41387e0218eb54c38a616c9 *uc_server/plugin/filecheck/plugin_filecheck.htm d41d8cd98f00b204e9800998ecf8427e *uc_server/plugin/index.htm -d41d8cd98f00b204e9800998ecf8427e *uc_server/upgrade/index.htm -9d3ba8344868d0f6e58871621c03ddcb *uc_server/upgrade/upgrade2.php -26c906c69296743b2fdf9a128799c52b *uc_server/upgrade/upgrade3.php +d41d8cd98f00b204e9800998ecf8427e *uc_server/plugin/replacemykey/index.htm +7ee707d30e4ded10991b3d7138bf4f29 *uc_server/plugin/replacemykey/plugin.php +65c11c1d3215e1a78490c8d237157b1c *uc_server/plugin/replacemykey/plugin.xml +d48eef5264297ddcd31685562f11d607 *uc_server/plugin/replacemykey/plugin_replacemykey.htm 33b23d0c676f17d2b76a35ce0f0a2391 *uc_server/images/admincp.css d3af6beed6f4c5941d8474d8c30de6ab *uc_server/images/bg_login.gif 4fbf05bd615747043ff441b3be626935 *uc_server/images/bg_repno.gif @@ -3613,22 +3614,15 @@ c8323955b8b6a4393372de9e122853a3 *uc_server/js/calendar.js 0e8249b8c83ab93350d6864e106da182 *uc_server/js/common.js 7215ee9c7d9dc229d2921a40e899ec5f *uc_server/js/index.htm 904fbd9ee2c415bbee0fa4f9ccce4f83 *uc_server/js/pm_editor.js -d41d8cd98f00b204e9800998ecf8427e *uc_server/release/20080429/control/index.htm -558a63b8f3215be4dd5f922d69c4e7b2 *uc_server/release/20080429/control/pm.php -d41d8cd98f00b204e9800998ecf8427e *uc_server/release/20080429/index.htm -d41d8cd98f00b204e9800998ecf8427e *uc_server/release/20080429/lib/index.htm -da658b223bf8d5f0d09129a29727671d *uc_server/release/20080429/lib/xml.class.php -d41d8cd98f00b204e9800998ecf8427e *uc_server/release/20080429/model/index.htm -8c0cc77da2f07314561f8270599d59b5 *uc_server/release/20080429/model/pm.php d41d8cd98f00b204e9800998ecf8427e *uc_server/release/index.htm 0ab45bb9ded2cfd294563e3724b8f0be *uc_server/release/release.php 45ceb71c18375a9b987e05a02feae578 *uc_server/view/default/admin.lang.php -f878f37931d5d3035d19a3b594cafac8 *uc_server/view/default/admin_admin.htm -d71241f811ae76e0defb2193d17d8ddf *uc_server/view/default/admin_app.htm +69fd09d092f61d05e4b31e8e6ad09dbd *uc_server/view/default/admin_admin.htm +c535ef1e2e66bf778a7f45ef38f07b5b *uc_server/view/default/admin_app.htm 8c2c7c164be3d2e880fc34ae29de11fe *uc_server/view/default/admin_badword.htm e7c9d9336c808d322ddd304d583d8523 *uc_server/view/default/admin_cache.htm 9c0247562c6e7c19fa499862d387ada2 *uc_server/view/default/admin_credit.htm -7113e801ffc5ad601399a5b59eed6142 *uc_server/view/default/admin_db.htm +79dac3dd3a49bc1c1cfdeb7b493416bd *uc_server/view/default/admin_db.htm 80fe9acb37c5416736e0d59f992c3e82 *uc_server/view/default/admin_domain.htm 602038f1ec76c304dc5730597357fdce *uc_server/view/default/admin_feed.htm 30dae5e21c3ac339675069db37efefc0 *uc_server/view/default/admin_frame_header.htm @@ -3653,7 +3647,7 @@ d76bda70ef15b7bfc3956868c87be639 *uc_server/view/default/header_client.htm 7215ee9c7d9dc229d2921a40e899ec5f *uc_server/view/default/index.htm 9c946066e1ce02aff43ef7997e486e1f *uc_server/view/default/main.lang.php 998b620c83be4e7caff9311f767327ae *uc_server/view/default/message.htm -18569b8a5e15512ec644a05d4cdb00b0 *uc_server/view/default/messages.lang.php +40ed0a56b9017c9fe47abb08e41edf15 *uc_server/view/default/messages.lang.php 7819252a557b50879b0e80396013683d *uc_server/view/default/message_client.htm 21d15220756918b854defbd846c8aaa9 *uc_server/view/default/plugin_footer.htm 095dca5a72759647bedd89afde4ac738 *uc_server/view/default/plugin_header.htm @@ -3664,6 +3658,6 @@ cfcf3bb6aeff9a878f5bf8061f19a707 *uc_server/view/default/pm_blackls.htm 78cfbfb3fadc76e11e449f2a0ffbf8c0 *uc_server/view/default/pm_nav.htm 2c71a1f8a58da016cb293ef68ce5a4c0 *uc_server/view/default/pm_send.htm 1dcfb1c220e5381901fa44b300b234bd *uc_server/view/default/pm_view.htm -6c4db529a5b53e16f0bad22e9db6751a *uc_server/view/default/templates.lang.php +e4d5f228b2e4c9e2f83003332cb28416 *uc_server/view/default/templates.lang.php 42fa0f40e601b24e3dbdd91ac05ce696 *uc_server/view/default/user_avatar.htm 7215ee9c7d9dc229d2921a40e899ec5f *uc_server/view/index.htm diff --git a/upload/source/admincp/robots.txt b/upload/source/admincp/robots.txt index 816d4fb0..db2a47f5 100644 --- a/upload/source/admincp/robots.txt +++ b/upload/source/admincp/robots.txt @@ -3,14 +3,11 @@ # User-agent: * +Allow: {path}data/attachment/ +Allow: {path}data/cache/ +Allow: {path}uc_server/data/avatar/ Disallow: {path}api/ -Disallow: {path}data/addonmd5/ -Disallow: {path}data/download/ -Disallow: {path}data/ipdata/ -Disallow: {path}data/log/ -Disallow: {path}data/plugindata/ -Disallow: {path}data/template/ -Disallow: {path}data/threadcache/ +Disallow: {path}data/ Disallow: {path}source/ Disallow: {path}install/ Disallow: {path}template/default/ diff --git a/upload/source/class/block/forum/block_thread.php b/upload/source/class/block/forum/block_thread.php index ad2ef1f0..51244db4 100644 --- a/upload/source/class/block/forum/block_thread.php +++ b/upload/source/class/block/forum/block_thread.php @@ -290,6 +290,7 @@ function getdata($style, $parameter) { require_once libfile('function/post'); require_once libfile('function/search'); + require_once libfile('function/discuzcode'); $datalist = $list = $listtids = $pictids = $pics = $threadtids = $threadtypeids = $tagids = array(); $keyword = $keyword ? searchkey($keyword, "t.subject LIKE '%{text}%'") : ''; @@ -400,10 +401,10 @@ function getdata($style, $parameter) { 'replies' => $data['replies'], 'forumurl' => 'forum.php?mod=forumdisplay&fid='.$data['fid'], 'forumname' => $_G['cache']['forums'][$data['fid']]['name'], - 'typename' => $threadtypes[$data['typeid']]['name'], + 'typename' => discuzcode($threadtypes[$data['typeid']]['name'], 0, 0, 0, 1, 1, 0, 0, 0, 0, 0), 'typeicon' => $threadtypes[$data['typeid']]['icon'], 'typeurl' => 'forum.php?mod=forumdisplay&fid='.$data['fid'].'&filter=typeid&typeid='.$data['typeid'], - 'sortname' => $threadsorts[$data['sortid']]['name'], + 'sortname' => discuzcode($threadsorts[$data['sortid']]['name'], 0, 0, 0, 1, 1, 0, 0, 0, 0, 0), 'sorturl' => 'forum.php?mod=forumdisplay&fid='.$data['fid'].'&filter=sortid&sortid='.$data['sortid'], 'views' => $data['views'], 'heats' => $data['heats'], diff --git a/upload/source/class/discuz/discuz_admincp.php b/upload/source/class/discuz/discuz_admincp.php index bb4163c6..97e9f849 100644 --- a/upload/source/class/discuz/discuz_admincp.php +++ b/upload/source/class/discuz/discuz_admincp.php @@ -74,7 +74,7 @@ function check_cpaccess() { $session = array(); if(!$this->adminuser['uid']) { - $this->cpaccess = 0; + $this->cpaccess = getglobal('config/admincp/mustlogin') ? -5 : 0; } else { if(!$this->isfounder) { diff --git a/upload/source/class/discuz/discuz_error.php b/upload/source/class/discuz/discuz_error.php index d614a14c..01cbe743 100644 --- a/upload/source/class/discuz/discuz_error.php +++ b/upload/source/class/discuz/discuz_error.php @@ -73,8 +73,7 @@ public static function debug_backtrace() { $error[line] = sprintf('%04d', $error['line']); $show .= "
  • [Line: $error[line]]".$file."($func)
  • "; - $log .= (!empty($log) ? ' -> ' : '').$file.':'.$error['line']; - $log .= $file.':'.$error['line']; + $logmsg .= '
    '.addslashes($file).'#'.addslashes($func).':'.$error['line']; } return array($show, $log); } @@ -139,6 +138,7 @@ public static function exception_error($exception) { krsort($trace); $trace[] = array('file'=>$exception->getFile(), 'line'=>$exception->getLine(), 'function'=> 'break'); + $logmsg = ''; $phpmsg = array(); foreach ($trace as $error) { if(!empty($error['function'])) { @@ -174,8 +174,17 @@ public static function exception_error($exception) { 'line' => $error['line'], 'function' => $error['function'], ); + $file = str_replace(array(DISCUZ_ROOT, '\\'), array('', '/'), $error['file']); + $func = isset($error['class']) ? $error['class'] : ''; + $func .= isset($error['type']) ? $error['type'] : ''; + $func .= isset($error['function']) ? $error['function'] : ''; + $line = sprintf('%04d', $error['line']); + $logmsg .= '
    '.addslashes($file).'#'.addslashes($func).':'.$line; } + $messagesave = ''.$errormsg.'
    PHP:'.$logmsg; + self::write_error_log($messagesave); + self::show_error($type, $errormsg, $phpmsg); exit(); diff --git a/upload/source/class/extend/extend_thread_reward.php b/upload/source/class/extend/extend_thread_reward.php index 5f87b581..a19ce01d 100644 --- a/upload/source/class/extend/extend_thread_reward.php +++ b/upload/source/class/extend/extend_thread_reward.php @@ -90,10 +90,10 @@ public function before_editpost($parameters) { } elseif($addprice > getuserprofile('extcredits'.$this->setting['creditstransextra'][2])) { showmessage('reward_credits_shortage'); } - $realprice = ceil($this->thread['price'] + $this->thread['price'] * $this->setting['creditstax']); + $realprice = ceil($rewardprice + $rewardprice * $this->setting['creditstax']); updatemembercount($this->thread['authorid'], array($this->setting['creditstransextra'][2] => -$addprice)); - C::t('common_credit_log')->update_by_uid_operation_relatedid($this->thread['authorid'], 'RTC', $this->thread['tid'], array('extcredits'.$this->setting['creditstransextra'][2] => $realprice)); + C::t('common_credit_log')->update_by_uid_operation_relatedid($this->thread['authorid'], 'RTC', $this->thread['tid'], array('extcredits'.$this->setting['creditstransextra'][2] => -$realprice)); } if(!$this->forum['ismoderator']) { diff --git a/upload/source/class/forum/forum_upload.php b/upload/source/class/forum/forum_upload.php index 655fbcc3..48602fb4 100644 --- a/upload/source/class/forum/forum_upload.php +++ b/upload/source/class/forum/forum_upload.php @@ -84,21 +84,41 @@ function forum_upload($getaid = 0) { return $this->uploadmsg(11); } } - updatemembercount($_G['uid'], array('todayattachs' => 1, 'todayattachsize' => $upload->attach['size'])); + + $filename = censor($upload->attach['name'], NULL, TRUE); + if(is_array($filename)) { + return $this->uploadmsg(12); + } else { + $filename = dhtmlspecialchars($filename); + } + + if(isset($_GET['type']) && $_GET['type'] == 'image' && !$upload->attach['isimage']) { + return $this->uploadmsg(7); + } + + if($upload->attach['isimage']) { + $imageinfo = @getimagesize($upload->attach['tmp_name']); + list($width, $height, $type) = !empty($imageinfo) ? $imageinfo : array(0, 0, 0); + $size = $width * $height; + if((!getglobal('setting/imagelib') && $size > (getglobal('setting/gdlimit') ? getglobal('setting/gdlimit') : 16777216)) || $size < 16 ) { + return $this->uploadmsg(13); + } + if(!in_array($type, array(1, 2, 3, 6, 13)) || ($upload->attach['ext'] == 'swf' && $type != 4 && $type != 13)) { + return $this->uploadmsg(7); + } + } + $upload->save(); if($upload->error() == -103) { return $this->uploadmsg(8); } elseif($upload->error()) { return $this->uploadmsg(9); } + + updatemembercount($_G['uid'], array('todayattachs' => 1, 'todayattachsize' => $upload->attach['size'])); + $thumb = $remote = $width = 0; - if($_GET['type'] == 'image' && !$upload->attach['isimage']) { - return $this->uploadmsg(7); - } if($upload->attach['isimage']) { - if(!in_array($upload->attach['imageinfo']['2'], array(1,2,3,6))) { - return $this->uploadmsg(7); - } if($_G['setting']['showexif']) { require_once libfile('function/attachment'); $exif = getattachexif(0, $upload->attach['target']); @@ -127,7 +147,7 @@ function forum_upload($getaid = 0) { $insert = array( 'aid' => $aid, 'dateline' => $_G['timestamp'], - 'filename' => dhtmlspecialchars(censor($upload->attach['name'])), + 'filename' => $filename, 'filesize' => $upload->attach['size'], 'attachment' => $upload->attach['attachment'], 'isimage' => $upload->attach['isimage'], diff --git a/upload/source/class/helper/helper_pm.php b/upload/source/class/helper/helper_pm.php index b457359b..a8150bf6 100644 --- a/upload/source/class/helper/helper_pm.php +++ b/upload/source/class/helper/helper_pm.php @@ -19,14 +19,11 @@ public static function sendpm($toid, $subject, $message, $fromid = '', $replypmi if($fromid === '') { $fromid = $_G['uid']; } - $author = ''; if($fromid) { if($fromid == $_G['uid']) { $sendpmmaxnum = $_G['group']['allowsendpmmaxnum']; - $author = $_G['username']; } else { $user = getuserbyuid($fromid); - $author = $user['username']; loadcache('usergroup_'.$user['groupid']); $sendpmmaxnum = $_G['cache']['usergroup_'.$user['groupid']]['allowsendpmmaxnum']; } @@ -40,7 +37,7 @@ public static function sendpm($toid, $subject, $message, $fromid = '', $replypmi $return = uc_pm_send($fromid, $toid, addslashes($subject), addslashes($message), 1, $replypmid, $isusername, $type); if($return > 0 && $fromid) { foreach(explode(',', $fromid) as $v) { - useractionlog($fromid, 'pmid'); + useractionlog($v, 'pmid'); } } diff --git a/upload/source/class/optimizer/optimizer_dbbackup_visit.php b/upload/source/class/optimizer/optimizer_dbbackup_visit.php new file mode 100644 index 00000000..49971f22 --- /dev/null +++ b/upload/source/class/optimizer/optimizer_dbbackup_visit.php @@ -0,0 +1,102 @@ +check_exportfile($exportlog, $exportziplog, $exportsize, $filecount); + if(!$filecount) { + $return = array('status' => 0, 'type' => 'none', 'lang' => lang('optimizer', 'optimizer_dbbackup_visit_safe')); + } else { + $return = array('status' => 1, 'type' => 'notice', 'lang' => lang('optimizer', 'optimizer_dbbackup_visit_delete', array('filecount' => $filecount))); + } + return $return; + } + + function get_backup_dir() { + + $backupdirs = array(); + $dir = dir(DISCUZ_ROOT.'./data'); + while(($file = $dir->read()) !== FALSE) { + if(filetype(DISCUZ_ROOT.'./data/'.$file) == 'dir' && preg_match('/^backup_\w+/', $file)) { + $backupdirs[] = $file; + } + } + $dir->close(); + return $backupdirs; + } + + function check_exportfile(&$exportlog, &$exportziplog, &$exportsize, &$filecount) { + + $backupdirs = $this->get_backup_dir(); + if(empty($backupdirs)) { + return; + } + + $filecount = 0; + foreach($backupdirs as $backupdir) { + $dir = dir(DISCUZ_ROOT.'./data/'.$backupdir); + while($entry = $dir->read()) { + $entry = './data/'.$backupdir.'/'.$entry; + if(is_file($entry)) { + if(preg_match("/\.sql$/i", $entry)) { + $filesize = filesize($entry); + $fp = fopen($entry, 'rb'); + $identify = explode(',', base64_decode(preg_replace("/^# Identify:\s*(\w+).*/s", "\\1", fgets($fp, 256)))); + fclose($fp); + $key = preg_replace('/^(.+?)(\-\d+)\.sql$/i', '\\1', basename($entry)); + $exportlog[$key][$identify[4]] = array( + 'version' => $identify[1], + 'type' => $identify[2], + 'method' => $identify[3], + 'volume' => $identify[4], + 'tablepre' => $identify[5], + 'dbcharset' => $identify[6], + 'filename' => $entry, + 'dateline' => filemtime($entry), + 'size' => $filesize + ); + $testurl = str_replace('./data/', getglobal('siteurl').'data/', $entry); + $content = dfsockopen($testurl); + if(!empty($content)) { + $filecount++; + $exportsize[$key] += $filesize; + } + } elseif(preg_match("/\.zip$/i", $entry)) { + $key = preg_replace('/^(.+?)(\-\d+)\.zip$/i', '\\1', basename($entry)); + $filesize = filesize($entry); + $exportziplog[$key][] = array( + 'type' => 'zip', + 'filename' => $entry, + 'size' => filesize($entry), + 'dateline' => filemtime($entry) + ); + $testurl = str_replace('./data/', getglobal('siteurl').'data/', $entry); + $content = dfsockopen($testurl); + if(!empty($content)) { + $filecount++; + } + } + } + } + $dir->close(); + } + } +} \ No newline at end of file diff --git a/upload/source/class/optimizer/optimizer_filesafe.php b/upload/source/class/optimizer/optimizer_filesafe.php new file mode 100644 index 00000000..03b59163 --- /dev/null +++ b/upload/source/class/optimizer/optimizer_filesafe.php @@ -0,0 +1,46 @@ + 1, 'type' =>'header', 'lang' => lang('optimizer', 'optimizer_filesafe_need')); + } else { + $return = array('status' => 0, 'type' =>'none', 'lang' => lang('optimizer', 'optimizer_filesafe_no_need')); + } + return $return; + } + + public function optimizer() { + @unlink(DISCUZ_ROOT.'/install/index.php'); + @unlink(DISCUZ_ROOT.'/uc_server/install/index.php'); + @unlink(DISCUZ_ROOT.'/ucenter/install/index.php'); + @unlink(DISCUZ_ROOT.'/data/restore.php'); + if(strcmp(ADMINSCRIPT, 'admin.php') !== 0 && file_exists(DISCUZ_ROOT.'/admin.php')) { + @unlink(DISCUZ_ROOT.'/admin.php'); + } + cpmsg('optimizer_filesafe_optimizer', '', 'error'); + } +} \ No newline at end of file diff --git a/upload/source/class/optimizer/optimizer_remote.php b/upload/source/class/optimizer/optimizer_remote.php new file mode 100644 index 00000000..d5c64730 --- /dev/null +++ b/upload/source/class/optimizer/optimizer_remote.php @@ -0,0 +1,33 @@ + 1, 'type' =>'header', 'lang' => lang('optimizer', 'optimizer_remote_need')); + } else { + $return = array('status' => 0, 'type' =>'none', 'lang' => lang('optimizer', 'optimizer_remote_no_need')); + } + return $return; + } + + public function optimizer() { + cpmsg('optimizer_remote_optimizer', '', 'error'); + } +} \ No newline at end of file diff --git a/upload/source/discuz_version.php b/upload/source/discuz_version.php index 88038cb1..9cd9ad77 100644 --- a/upload/source/discuz_version.php +++ b/upload/source/discuz_version.php @@ -13,9 +13,9 @@ if(!defined('DISCUZ_VERSION')) { define('DISCUZ_VERSION', 'X3.4'); - define('DISCUZ_RELEASE', '20211124'); + define('DISCUZ_RELEASE', '20220131'); define('DISCUZ_FIXBUG', '34000000'); - define('DISCUZ_TH_REVISION', '71'); /*jaideejung007*/ + define('DISCUZ_TH_REVISION', '72'); /*jaideejung007*/ } ?> \ No newline at end of file diff --git a/upload/source/function/function_blog.php b/upload/source/function/function_blog.php index b2a54497..3cac6b4a 100644 --- a/upload/source/function/function_blog.php +++ b/upload/source/function/function_blog.php @@ -327,6 +327,6 @@ function blog_flash($url, $type='') { } $type = fileext($url); $randomid = random(3); - return ''; + return ''; } ?> \ No newline at end of file diff --git a/upload/source/function/function_core.php b/upload/source/function/function_core.php index 1c41ecea..cd7b8ddb 100644 --- a/upload/source/function/function_core.php +++ b/upload/source/function/function_core.php @@ -465,10 +465,11 @@ function lang($file, $langvar = null, $vars = array(), $default = null) { } } $returnvalue = & $_G['cache']['pluginlanguage_script']; + !is_array($returnvalue) && $returnvalue = array(); $key = &$file; } - $return = $langvar !== null ? (isset($returnvalue[$key][$langvar]) ? $returnvalue[$key][$langvar] : null) : $returnvalue[$key]; - $return = $return === null ? ($default !== null ? $default : $langvar) : $return; + $return = $langvar !== null ? (isset($returnvalue[$key][$langvar]) ? $returnvalue[$key][$langvar] : null) : (is_array($returnvalue[$key]) ? $returnvalue[$key] : array()); + $return = $return === null ? ($default !== null ? $default : ($path != 'plugin' ? '' : $file . ':') . $langvar) : $return; $searchs = $replaces = array(); if($vars && is_array($vars)) { foreach($vars as $k => $v) { diff --git a/upload/source/function/function_discuzcode.php b/upload/source/function/function_discuzcode.php index ff758dc7..ba8bdab3 100644 --- a/upload/source/function/function_discuzcode.php +++ b/upload/source/function/function_discuzcode.php @@ -449,7 +449,7 @@ function parseaudio($url, $width = 400) { } $type = fileext($url); $randomid = random(3); - return ''; + return ''; } function parsemedia($params, $url) { @@ -491,7 +491,7 @@ function parsemedia($params, $url) { return parseaudio($url, $width); } else if (in_array($type, $video)) { $randomid = random(3); - return ''; + return ''; } else { return ''.$url.''; } @@ -563,7 +563,7 @@ function parseflv($url, $width = 0, $height = 0) { $player_iframe = $iframe ? "\"\"" : ''; $player_flv = $flv ? "AC_FL_RunContent('width', '$width', 'height', '$height', 'allowNetworking', 'internal', 'allowScriptAccess', 'never', 'src', '$flv', 'quality', 'high', 'bgcolor', '#ffffff', 'wmode', 'transparent', 'allowfullscreen', 'true')" : ''; $player = (!empty($player_iframe) && !empty($player_flv)) ? "detectHtml5Support() ? $player_iframe : $player_flv" : (empty($player_iframe) ? $player_flv : $player_iframe); - return ''; + return ''; } } else { return FALSE; diff --git a/upload/source/function/function_forum.php b/upload/source/function/function_forum.php index e68d52f1..5b36e3db 100644 --- a/upload/source/function/function_forum.php +++ b/upload/source/function/function_forum.php @@ -902,6 +902,7 @@ function threadpubsave($tid, $passapproval = false) { $displayorder = -2; $modworksql = 1; $return = -1; + C::t('forum_post')->update_by_tid('tid:'.$tid, $tid, array('dateline' => $dateline), false, false, 1); } else { C::t('forum_post')->update_by_tid('tid:'.$tid, $tid, array('dateline' => $dateline, 'invisible' => '0'), false, false, 1); } diff --git a/upload/source/function/function_forumlist.php b/upload/source/function/function_forumlist.php index 19ebe48c..ab5199b3 100644 --- a/upload/source/function/function_forumlist.php +++ b/upload/source/function/function_forumlist.php @@ -184,7 +184,6 @@ function replace_formhash($timestamp, $input) { $temp_md5 = md5(substr($timestamp, 0, -3).substr($_G['config']['security']['authkey'], 3, -3)); $temp_formhash = substr($temp_md5, 8, 8); $input = preg_replace('/(name=[\'|\"]formhash[\'|\"] value=[\'\"]|formhash=)'.$temp_formhash.'/ismU', '${1}'.constant("FORMHASH"), $input); - //避免siteurl伪造被缓存 $temp_siteurl = 'siteurl_'.substr($temp_md5, 16, 8); $input = preg_replace('/("|\')'.$temp_siteurl.'/ismU', '${1}'.$_G['siteurl'], $input); return $input; @@ -395,14 +394,14 @@ function forumleftside() { return $leftside; } -function threadclasscount($fid, $id = 0, $idtype = '', $count = 0) { +function threadclasscount($fid, $id = 0, $idtype = '', $count = null) { if(!$fid) { return false; } $typeflag = ($id && $idtype && in_array($idtype, array('typeid', 'sortid'))); $threadclasscount = C::t('common_cache')->fetch('threadclasscount_'.$fid); $threadclasscount = dunserialize($threadclasscount['cachevalue']); - if($count) { + if($count !== null) { if($typeflag) { $threadclasscount[$idtype][$id] = $count; C::t('common_cache')->insert(array( diff --git a/upload/source/function/function_plugin.php b/upload/source/function/function_plugin.php index bccabf29..104c9ae7 100644 --- a/upload/source/function/function_plugin.php +++ b/upload/source/function/function_plugin.php @@ -163,7 +163,17 @@ function pluginupgrade($pluginarray, $installtype) { } $pluginarray['plugin']['modules'] = serialize($pluginarray['plugin']['modules']); - C::t('common_plugin')->update($plugin['pluginid'], array('version' => $pluginarray['plugin']['version'], 'modules' => $pluginarray['plugin']['modules'])); + $data = array(); + foreach($pluginarray['plugin'] as $key => $val) { + if($key == 'directory') { + $val .= (!empty($val) && substr($val, -1) != '/') ? '/' : ''; + } elseif($key == 'available') { + continue; + } + $data[$key] = $val; + } + + C::t('common_plugin')->update($plugin['pluginid'], $data); cloudaddons_installlog($pluginarray['plugin']['identifier'].'.plugin'); cron_create($pluginarray['plugin']['identifier']); @@ -184,11 +194,11 @@ function updatepluginlanguage($pluginarray) { } foreach(array('script', 'template', 'install', 'system') as $type) { loadcache('pluginlanguage_'.$type, 1); - if(empty($_G['cache']['pluginlanguage_'.$type])) { - $_G['cache']['pluginlanguage_'.$type] = array(); + if(empty($_G['cache']['pluginlanguage_'.$type])) { + $_G['cache']['pluginlanguage_'.$type] = array(); } if($type != 'system') { - if(!empty($pluginarray['language'][$type.'lang'])) { + if(!empty($pluginarray['language'][$type.'lang'])) { $_G['cache']['pluginlanguage_'.$type][$pluginarray['plugin']['identifier']] = $pluginarray['language'][$type.'lang']; } } else { diff --git a/upload/source/function/function_profile.php b/upload/source/function/function_profile.php index 6429157a..da8da340 100644 --- a/upload/source/function/function_profile.php +++ b/upload/source/function/function_profile.php @@ -324,7 +324,7 @@ function profile_show($fieldid, $space=array(), $getalone = false) { $url = str_replace('"', '\\"', $space[$fieldid]); return "$url"; } elseif($fieldid == 'position') { - return nl2br($space['office'] ? $space['office'] : $space['position']); + return nl2br($space['office'] ? : ($space['field_position']?:$space['position'])); } elseif($fieldid == 'qq') { return 'QQ'; } elseif($fieldid == 'qqnumber') { diff --git a/upload/source/function/function_spacecp.php b/upload/source/function/function_spacecp.php index 0eb58267..757f743d 100644 --- a/upload/source/function/function_spacecp.php +++ b/upload/source/function/function_spacecp.php @@ -224,7 +224,10 @@ function pic_save($FILE, $albumid, $title, $iswatermark = true, $catid = 0) { } $title = getstr($title, 200); - $title = censor($title, NULL, FALSE, FALSE); + $title = censor($title, NULL, TRUE, FALSE); + if(is_array($title)) { + return lang('message', 'word_banned'); + } if(censormod($title) || $_G['group']['allowuploadmod']) { $pic_status = 1; } else { @@ -339,7 +342,10 @@ function stream_save($strdata, $albumid = 0, $fileext = 'jpg', $name='', $title= $filename = $name ? $name : substr(strrchr($filepath, '/'), 1); $title = getstr($title, 200); - $title = censor($title, NULL, FALSE, FALSE); + $title = censor($title, NULL, TRUE, FALSE); + if(is_array($title)) { + return lang('message', 'word_banned'); + } if(censormod($title) || $_G['group']['allowuploadmod']) { $pic_status = 1; } else { diff --git a/upload/source/function/function_upload.php b/upload/source/function/function_upload.php index c8718756..830d96d2 100644 --- a/upload/source/function/function_upload.php +++ b/upload/source/function/function_upload.php @@ -70,7 +70,7 @@ function getuploadconfig($uid=0, $fid=0, $limit=true) { if(!empty($_G['group']['maxattachsize'])) { $config['max'] = intval($_G['group']['maxattachsize']); } else { - $config['max'] = @ini_get(upload_max_filesize); + $config['max'] = min(min(ini_get('upload_max_filesize'), ini_get('post_max_size')), ini_get('memory_limit')); $unit = strtolower(substr($config['max'], -1, 1)); $config['max'] = intval($config['max']); if($unit == 'k') { diff --git a/upload/source/function/media/media_56.php b/upload/source/function/media/media_56.php index 9f31befa..9698b066 100644 --- a/upload/source/function/media/media_56.php +++ b/upload/source/function/media/media_56.php @@ -15,7 +15,7 @@ function media_56($url, $width, $height) { } if(!$width && !$height && !empty($matches[1])) { $api = 'http://vxml.56.com/json/'.str_replace('v_', '', $matches[1]).'/?src=out'; - $str = file_get_contents($api, false, $ctx); + $str = dfsockopen($api); if(!empty($str) && preg_match("/\"img\":\"(.+?)\"/i", $str, $image)) { $imgurl = trim($image[1]); } diff --git a/upload/source/function/media/media_ku6.php b/upload/source/function/media/media_ku6.php index 5f6c502a..630ee57b 100644 --- a/upload/source/function/media/media_ku6.php +++ b/upload/source/function/media/media_ku6.php @@ -6,12 +6,12 @@ $checkurl = array('v.ku6.com/show/', 'v.ku6.com/special/show_'); -function media_ku6($url, $width, $height) { +function media_ku6($url, $width, $height) { if(preg_match("/^http:\/\/v.ku6.com\/show\/([^\/]+).html/i", $url, $matches)) { $flv = 'http://player.ku6.com/refer/'.$matches[1].'/v.swf'; if(!$width && !$height) { $api = 'http://vo.ku6.com/fetchVideo4Player/1/'.$matches[1].'.html'; - $str = file_get_contents($api, false, $ctx); + $str = dfsockopen($api); if(!empty($str) && preg_match("/\"picpath\":\"(.+?)\"/i", $str, $image)) { $imgurl = str_replace(array('\u003a', '\u002e'), array(':', '.'), $image[1]); } @@ -20,7 +20,7 @@ function media_ku6($url, $width, $height) { $flv = 'http://player.ku6.com/refer/'.$matches[1].'/v.swf'; if(!$width && !$height) { $api = 'http://vo.ku6.com/fetchVideo4Player/1/'.$matches[1].'.html'; - $str = file_get_contents($api, false, $ctx); + $str = dfsockopen($api); if(!empty($str) && preg_match("/\"picpath\":\"(.+?)\"/i", $str, $image)) { $imgurl = str_replace(array('\u003a', '\u002e'), array(':', '.'), $image[1]); } diff --git a/upload/source/function/media/media_sina.php b/upload/source/function/media/media_sina.php index fcb86322..b1f0ca95 100644 --- a/upload/source/function/media/media_sina.php +++ b/upload/source/function/media/media_sina.php @@ -11,7 +11,7 @@ function media_sina($url, $width, $height) { $flv = 'http://vhead.blog.sina.com.cn/player/outer_player.swf?vid='.$matches[1]; if(!$width && !$height) { $api = 'http://interface.video.sina.com.cn/interface/common/getVideoImage.php?vid='.$matches[1]; - $str = file_get_contents($api, false, $ctx); + $str = dfsockopen($api); if(!empty($str)) { $imgurl = str_replace('imgurl=', '', trim($str)); } @@ -20,7 +20,7 @@ function media_sina($url, $width, $height) { $flv = 'http://vhead.blog.sina.com.cn/player/outer_player.swf?vid='.$matches[1]; if(!$width && !$height) { $api = 'http://interface.video.sina.com.cn/interface/common/getVideoImage.php?vid='.$matches[1]; - $str = file_get_contents($api, false, $ctx); + $str = dfsockopen($api); if(!empty($str)) { $imgurl = str_replace('imgurl=', '', trim($str)); } diff --git a/upload/source/function/media/media_sohu.php b/upload/source/function/media/media_sohu.php index 86020e88..7d86ce5e 100644 --- a/upload/source/function/media/media_sohu.php +++ b/upload/source/function/media/media_sohu.php @@ -11,7 +11,7 @@ function media_sohu($url, $width, $height) { $flv = 'http://v.blog.sohu.com/fo/v4/'.$matches[1]; if(!$width && !$height) { $api = 'http://v.blog.sohu.com/videinfo.jhtml?m=view&id='.$matches[1].'&outType=3'; - $str = file_get_contents($api, false, $ctx); + $str = dfsockopen($api); if(!empty($str) && preg_match("/\"cutCoverURL\":\"(.+?)\"/i", $str, $image)) { $imgurl = str_replace(array('\u003a', '\u002e'), array(':', '.'), $image[1]); } @@ -20,7 +20,7 @@ function media_sohu($url, $width, $height) { $flv = 'http://v.blog.sohu.com/fo/v4/'.$matches[1]; if(!$width && !$height) { $api = 'http://v.blog.sohu.com/videinfo.jhtml?m=view&id='.$matches[1].'&outType=3'; - $str = file_get_contents($api, false, $ctx); + $str = dfsockopen($api); if(!empty($str) && preg_match("/\"cutCoverURL\":\"(.+?)\"/i", $str, $image)) { $imgurl = str_replace(array('\u003a', '\u002e'), array(':', '.'), $image[1]); } diff --git a/upload/source/function/media/media_tudou.php b/upload/source/function/media/media_tudou.php index dde9d274..709f6ae0 100644 --- a/upload/source/function/media/media_tudou.php +++ b/upload/source/function/media/media_tudou.php @@ -6,12 +6,12 @@ $checkurl = array('tudou.com/programs/view/'); -function media_tudou($url, $width, $height) { +function media_tudou($url, $width, $height) { if(preg_match("/^http:\/\/(www.)?tudou.com\/programs\/view\/([^\/]+)/i", $url, $matches)) { $flv = 'http://www.tudou.com/v/'.$matches[2]; $iframe = 'http://www.tudou.com/programs/view/html5embed.action?code='.$matches[2]; if(!$width && !$height) { - $str = file_get_contents($url, false); + $str = dfsockopen($api); if(!empty($str) && preg_match("/(.+?)<\/span>/i", $str, $image)) { $imgurl = trim($image[1]); } diff --git a/upload/source/function/media/media_youku.php b/upload/source/function/media/media_youku.php index 8a98cbb4..db63f5da 100644 --- a/upload/source/function/media/media_youku.php +++ b/upload/source/function/media/media_youku.php @@ -6,7 +6,7 @@ $checkurl = array('v.youku.com/v_show/'); -function media_youku($url, $width, $height) { +function media_youku($url, $width, $height) { $ctx = stream_context_create(array('http' => array('timeout' => 10))); if(preg_match("/^https?:\/\/v.youku.com\/v_show\/id_([^\/]+)(.html|)/i", $url, $matches)) { $params = explode('.', $matches[1]); @@ -14,7 +14,7 @@ function media_youku($url, $width, $height) { $iframe = 'https://player.youku.com/embed/'.$params[0]; if(!$width && !$height) { $api = 'http://v.youku.com/player/getPlayList/VideoIDS/'.$params[0]; - $str = stripslashes(file_get_contents($api, false, $ctx)); + $str = stripslashes(dfsockopen($api)); if(!empty($str) && preg_match("/\"logo\":\"(.+?)\"/i", $str, $image)) { $url = substr($image[1], 0, strrpos($image[1], '/')+1); $filename = substr($image[1], strrpos($image[1], '/')+2); diff --git a/upload/source/function/media/media_youtube.php b/upload/source/function/media/media_youtube.php index f66647fc..4ef5c171 100644 --- a/upload/source/function/media/media_youtube.php +++ b/upload/source/function/media/media_youtube.php @@ -11,7 +11,7 @@ function media_youtube($url, $width, $height) { $flv = 'https://www.youtube.com/v/'.$matches[1].'&fs=1'; $iframe = 'https://www.youtube.com/embed/'.$matches[1]; if(!$width && !$height) { - $str = file_get_contents($url, false); + $str = dfsockopen($url); if(!empty($str) && preg_match("/'VIDEO_HQ_THUMB':\s'(.+?)'/i", $str, $image)) { $url = substr($image[1], 0, strrpos($image[1], '/')+1); $filename = substr($image[1], strrpos($image[1], '/')+3); diff --git a/upload/source/include/misc/misc_ajax.php b/upload/source/include/misc/misc_ajax.php index fc59a2a3..d5f6a6a3 100644 --- a/upload/source/include/misc/misc_ajax.php +++ b/upload/source/include/misc/misc_ajax.php @@ -143,7 +143,7 @@ } $id = intval($_GET['id']); if($id) { - C::t('home_notification')->delete_by_id_uid($id, $uid); + C::t('home_notification')->delete_by_id_uid($id, $_G['uid']); } showmessage('do_success'); diff --git a/upload/source/include/misc/misc_swfupload.php b/upload/source/include/misc/misc_swfupload.php index 23f59aa5..b31d9296 100644 --- a/upload/source/include/misc/misc_swfupload.php +++ b/upload/source/include/misc/misc_swfupload.php @@ -88,7 +88,7 @@ if(!empty($_G['group']['maximagesize'])) { $max = intval($_G['group']['maximagesize']); } else { - $max = @ini_get(upload_max_filesize); + $max = min(min(ini_get('upload_max_filesize'), ini_get('post_max_size')), ini_get('memory_limit')); $unit = strtolower(substr($max, -1, 1)); if($unit == 'k') { $max = intval($max)*1024; diff --git a/upload/source/include/post/post_editpost.php b/upload/source/include/post/post_editpost.php index 030a9bb3..5f42cb00 100644 --- a/upload/source/include/post/post_editpost.php +++ b/upload/source/include/post/post_editpost.php @@ -88,7 +88,7 @@ } if($htmloncheck) { $editor['editormode'] = 0; - $editor['allowswitcheditor'] = 0; +/*jaideejung007*/ $editor['allowswitcheditor'] = 1; } $showthreadsorts = ($thread['sortid'] || !empty($sortid)) && $isfirstpost; $sortid = empty($sortid) ? $thread['sortid'] : $sortid; diff --git a/upload/source/include/space/space_album.php b/upload/source/include/space/space_album.php index 45ca87cb..ba12c1d4 100644 --- a/upload/source/include/space/space_album.php +++ b/upload/source/include/space/space_album.php @@ -262,7 +262,7 @@ $navtitle = $pic['title'].' - '.$navtitle; } $metakeywords = $pic['title'] ? $pic['title'] : $album['albumname']; - $metadescription = $pic['title'] ? $pic['title'] : $albumname['albumname']; + $metadescription = $pic['title'] ? $pic['title'] : $album['albumname']; include_once template("diy:home/space_album_pic"); diff --git a/upload/source/include/spacecp/spacecp_common.php b/upload/source/include/spacecp/spacecp_common.php index 207e3ef8..fc07b16f 100644 --- a/upload/source/include/spacecp/spacecp_common.php +++ b/upload/source/include/spacecp/spacecp_common.php @@ -16,6 +16,7 @@ if($op == 'ignore') { $type = empty($_GET['type'])?'':preg_replace("/[^0-9a-zA-Z\_\-\.]/", '', $_GET['type']); + $id = empty($_GET['id']) ? 0 : intval($_GET['id']); if(submitcheck('ignoresubmit')) { $authorid = empty($_POST['authorid']) ? 0 : intval($_POST['authorid']); if($type) { @@ -26,7 +27,7 @@ $space['privacy']['filter_note'][$type_uid] = $type_uid; privacy_update(); } - showmessage('do_success', dreferer(), array(), array('showdialog'=>1, 'showmsg' => true, 'closetime' => true)); + showmessage('do_success', dreferer(), array('id' => $id ,'type' => $type ,'uid' => $authorid), array('showdialog'=>1, 'showmsg' => true, 'closetime' => true)); } $formid = random(8); diff --git a/upload/source/include/thread/thread_album.php b/upload/source/include/thread/thread_album.php index d68ef2de..fd30506e 100644 --- a/upload/source/include/thread/thread_album.php +++ b/upload/source/include/thread/thread_album.php @@ -11,8 +11,17 @@ exit('Access Denied'); } require_once libfile('function/attachment'); -$imglist = $albumpayaids = $attachmentlist = array(); +$imglist = $albumpayaids = $attachmentlist = $freeattachids = array(); +if($_G['forum_threadpay'] && $_G['thread']['freemessage']) { + preg_match_all('/id="aimg_(\d+)"/i', $_G['thread']['freemessage'], $matches); + if(!empty($matches[1]) && is_array($matches[1])) { + $freeattachids = $matches[1]; + } +} foreach(C::t('forum_attachment_n')->fetch_all_by_id('tid:'.$_G['tid'], 'tid', $_G['tid'], 'aid') as $attach) { + if($_G['forum_threadpay'] && !in_array($attach['aid'], $freeattachids)) { + continue; + } if($attach['uid'] != $_G['forum_thread']['authorid'] && IN_MOBILE != 2) { continue; } diff --git a/upload/source/language/forum/lang_template.php b/upload/source/language/forum/lang_template.php index 7743ad21..fbfe9620 100644 --- a/upload/source/language/forum/lang_template.php +++ b/upload/source/language/forum/lang_template.php @@ -1187,9 +1187,6 @@ 'viewthread_left_sendpm' => 'ส่ง PM', 'viewthread_left_tospace' => 'โปรไฟล์', 'viewthread_share_to' => 'แชร์', - 'viewthread_share_to_qzone' => 'โซน QQ', - 'viewthread_share_to_t' => 'เทนเซนต์ไมโครบล็อกกิ้ง', - 'viewthread_share_to_pengyou' => 'เพื่อนในเทนเซนต์', 'warn_get' => 'ได้รับการเตือน', 'admin_message_banned' => 'หมายเหตุ: ผู้โพสต์ถูกแบนหรือถูกลบ กระทู้นี้ถูกล็อคโดยอัตโนมัติ สามารถมองเห็นเฉพาะผู้ดูแลระบบเท่านั้น', 'admin_message_single_banned' => 'หมายเหตุ: กระทู้นี้ถูกแบนห้ามไม่ให้เผยแพร่ต่อสาธารณะ สามารถมองเห็นเฉพาะผู้ดูแลระบบเท่านั้น', diff --git a/upload/source/language/lang_admincp.php b/upload/source/language/lang_admincp.php index 930b3570..323fbdec 100644 --- a/upload/source/language/lang_admincp.php +++ b/upload/source/language/lang_admincp.php @@ -505,6 +505,11 @@ 'nav_hookcheck_verify' => 'ตรวจสอบ', 'nav_hookcheck_completed' => 'รายงานผล', + 'nav_replacekey' => 'อัปเดตคีย์เว็บไซต์ใหม่', + 'nav_replacekey_confirm' => 'ยืนยันการเริ่มต้น', + 'nav_replacekey_verify' => 'เริ่มต้นการอัปเดตคีย์', + 'nav_replacekey_completed' => 'ผลลัพธ์การตรวจสอบ', + 'nav_updatecache' => 'อัปเดตแคช', 'nav_updatecache_confirm' => 'เริ่มต้น', 'nav_updatecache_verify' => 'ตรวจสอบ', @@ -2320,7 +2325,7 @@ 'setting_attach_basic_multi' => 'อัปโหลดผ่านโปรแกรมแฟลช', 'setting_attach_basic_simple' => 'อัปโหลดแบบธรรมดา', 'setting_attach_basic_allowattachurl' => 'ที่อยู่ URL ไฟล์แนบ เล่นสื่อไฟล์แนบ', - 'setting_attach_basic_allowattachurl_comment' => 'After opening the attachment URL address, the address of the uploaded attachment can be quoted in any post by means of "attach://aid", and supports direct playback of media attachments. This setting needs to be set in User Group - The user group is allowed to use multimedia codes in the post, and ensure that the local file reading mode configured by config_global.php is 1 or 4 before it takes effect.', + 'setting_attach_basic_allowattachurl_comment' => 'After opening the attachment URL address, the address of the uploaded attachment can be quoted in any post by means of "attach://aid.ext", and supports direct playback of media attachments. This setting needs to be set in User Group - The user group is allowed to use multimedia codes in the post, and ensure that the local file reading mode configured by config_global.php is 1 or 4 before it takes effect.', 'setting_attach_basic_swfupload_comment' => 'การอัปโหลดผ่านโปรแกรมแฟลช Flash สามารถเลือกไฟล์และอัปโหลดพร้อมกันได้ครั้งละจำนวนมาก และยังแสดงความคืบหน้าของการอัปโหลด จะเปิดใช้งานทั้งสองอย่างเลยก็ได้ ถ้าเปิดใช้งานการอัปโหลดผ่านโปรแกรมแฟลชอย่างเดียว เบราเซอร์ของผู้ใช้งานบางคนอาจจะมีปัญหาโปรแกรมแฟลชอาจจะทำงานผิดพลาด จะได้ใช้การอัปโหลดแบบธรรมดาแทน', 'setting_attach_forumattach' => 'ไฟล์แนบของบอร์ด', @@ -5119,16 +5124,16 @@ 'misc_cron_edit_filename' => 'Task Script', 'misc_cron_edit_filename_comment' => 'Set the task execution script file name. Do not include the file path. Cron scripts stored in source/include/cron/ directory. The plug-in scheduled task is located in the source/plugin/your_plugin_name/cron/ directory.', - 'misc_censor' => 'Bad Word Filter', + 'misc_censor' => 'Sensitive Word Filter', 'misc_censor_tips' => '
  • For replacement of the contents an {x} qualifier can be used to ignore of two adjacent characters of text, where x is a number of characters ignored. I.e. the mask "a{1}s{2}s" (without quotation marks) can filter "ass", "axsxs" and "axsxxs" and so on.
  • For not decrease the process efficiency, do not set too many bad word masks to filter the content.
  • This setting valid only to verify the forum content.
  • If you are not the forum administrator, you can edit/add/delete only your own items.
  • If the bad word started and finished with "/" (without quotation marks), it treats as a regular expression, and then the replaced content available as "(n)" as a reference to the found sub-value, such as "/1\d{10}([^\d]+|$)/" may be replaced i.e. to "mobile phone (1)."
  • ', - 'misc_censor_word' => 'Bad Word', + 'misc_censor_word' => 'Sensitive Word', 'misc_censor_replacement' => 'Replacement', 'misc_censor_type' => 'Word Type', 'misc_censor_postlimit' => 'Post limit', 'misc_censor_wordtype_edit' => 'Edit the word type', 'misc_censor_wordtype_tips' => '
  • The default type is a built-in type. When you delete a group category, the word filter will be automatically incorporated into the default category.
  • ', 'misc_censor_batch_add' => 'Bulk Add', - 'misc_censor_batch_add_tips' => '
  • Enter one censor rule per line, separate bad word and replaced words with "=".
  • For disable publication of a text contains a bad word, rather than replace it by a filter, use {BANNED} as a replacement word. For not display published by a user text contained, and mark the post for manuak verification, use the {MOD} instead of replacement word (verification take effect only at the forum).
  • If you want only to replace a bad word with a default **, you can enter only the bad word.
  • Example:
    toobad
    nobad
    badword=goodword
    sexword={BANNED}
    hackword={MOD}
  • ', + 'misc_censor_batch_add_tips' => '
  • A group of filter words in each line, use "=" to separate sensitive words and replacement words;
  • For disable publication of a text contains a bad word, rather than replace it by a filter, use {BANNED} as a replacement word. For not display published by a user text contained, and mark the post for manuak verification, use the {MOD} instead of replacement word (verification take effect only at the forum).
  • If you want only to replace a bad word with a default **, you can enter only the bad word.
  • Example:
    toobad
    nobad
    badword=goodword
    sexword={BANNED}
    hackword={MOD}
  • ', 'misc_censor_batch_add_clear' => 'After emptying the current vocabulary of new words, this action can not be restored, so make a backup first by Export bad words table.
    ', 'misc_censor_batch_add_overwrite' => 'New settings override existing words', 'misc_censor_batch_add_no_overwrite' => 'Do not overwrite existing words', @@ -5992,6 +5997,10 @@ 'hookcheck_discuzhook' => 'Original Hook', 'hookcheck_delhook' => 'Lost Hook', + 'replacekey_tips' => '
  • คุณควรพิจารณาการอัปเดตที่สำคัญได้ที่นี่เมื่อไซต์ถูกโจมตี เพื่อหลีกเลี่ยงไม่ให้แฮกเกอร์เข้าควบคุมเว็บไซต์ได้ กรณีที่เกิดเหตุการณ์คีย์ AUTHKEY หลุดออกไปข้างนอก
  • ปลั๊กอินบางตัวจะใช้คีย์ของเว็บไซต์เพื่อบันทึกข้อมูล เป็นไปได้ว่า เมื่อคีย์ถูกรีเซ็ตแล้วข้อมูลที่เกี่ยวข้องจะสูญหายและไม่สามารถกู้คืนได้ โปรดตระหนักและสำรองฐานข้อมูลและไฟล์ของเว็บไซต์ก่อนอัปเดต
  • ', + 'replacekey_tips_step1' => 'ก่อนดำเนินการ ขอแนะนำให้เลือกการทำงานช่วงที่มีผู้ใช้งานน้อยหรือปิดเว็บไซต์ไว้ชั่วคราวก่อน และทำการสำรองข้อมูลและไฟล์ให้เรียบร้อย เมื่อพร้อมแล้วให้คลิกปุ่มด้านล่างเพื่อเริ่มการเปลี่ยนคีย์', + 'replacekey_tips_step2' => 'กำลังอัปเดตคีย์ กรุณารอสักครู่......', + 'imagepreview_imagesize_source' => 'Original image size', 'imagepreview_imagesize_target' => 'Processed Image Size', @@ -6069,7 +6078,7 @@ 'db_volume' => 'จำนวนพาร์ท', 'db_export_tips_nouc' => '
  • การสำรองข้อมูลของคุณจะไม่รวมไปถึงข้อมูลของ UCenter ซึ่งจะมีผลกระทบต่อข้อมูลสมาชิกได้ กรุณาคลิกที่นี่ เพื่อสำรองข้อมูลของ UCenter แยกออกต่างหาก
  • การสำรองข้อมูลทั้งหมดของดิสคัสนั้น อาจจะใช้ฟังก์ชัน "การกู้คืนข้อมูล" หรือนำเข้าข้อมูลด้วย phpMyAdmin ได้เช่นกัน
  • ', 'db_export_tips_uc' => '
  • การสำรองข้อมูลของคุณ จะไม่รวมไปถึงข้อมูลของ UCenter ด้วย ซึ่งอาจจะได้รับผลกระทบต่อข้อมูลสมาชิกได้ ให้คุณคลิกที่นี่ เพื่อสำรองข้อมูล UCenter ด้วยตนเองและแยกออกต่างหาก
  • ', - 'db_export_tips' => '
  • ตัวเลือกการสำรองข้อมูล คือ การสำรองข้อมูลทั้งหมดในเว็บบอร์ด posts/data ไฟล์ส่งออกข้อมูลนั้น สามารถนำเข้าได้ด้วยเครื่องมือ "กู้คืนข้อมูล" หรือ phpMyAdmin
  • การสำรองข้อมูลแบบเต็มนั้น จะไม่ได้รวมไปถึงการสำรองไฟล์เทมเพลต/รูปแบบสไตล์ หรือไฟล์แนบในกระทู้แต่อย่างใด ซึ่งไฟล์ดังกล่าวนั้น สามารถสำรองได้โดยการใช้งานผ่านการโอนถ่ายข้อมูลด้วยโปรแกรม FTP ของคุณ สามารถดาวน์โหลดได้จากโฟลเดอร์ "template/" และ "data/attachment/" ได้ โปรดทราบไว้ว่า ดิสคัสจะไม่มีการสำรองข้อมูลแบบแยกประเภทแต่อย่างใด
  • Standard MySQL Dump is much faster than the Discuz! Sub-volume backup, but requires the server support Shell related rights, and because the compatibility of MySQL itself, usually for backup and recovery server should have the same or similar version number, so it must be carried out smoothly. So MySQL Dump is at risk: If a backup or restore operations is failed and you have no shell access, or the import process failed because of version incompatibility, you will not be able to use MySQL Dump backup for restore from the backup data. Discuz! Sub-volume backup do not have this restriction.
  • ตัวเลือกการสำรองข้อมูลเพิ่มเติมนั้น จะเหมาะสำหรับผู้ใช้งานขั้นสูงและผู้เชี่ยวชาญแล้วเท่านั้น ถ้าหากคุณไม่รู้การทำงานที่แท้จริงหรือไม่เข้าใจการทำงานของฐานข้อมูลนี้เลย กรุณาใช้ค่ามาตรฐานจากระบบที่ตั้งไว้ให้ก่อนหน้านี้จะดีที่สุด มิฉะนั้น ข้อมูลที่สำรองไว้อาจได้รับความเสียหาย จนใช้งานไม่ได้ในที่สุด
  • เพื่อให้การสำรองข้อมูลมีความปลอดภัยและลดการสูญเสียของข้อมูล แนะนำให้ใช้ฟังก์ชันการสำรองแบบเลขฐานสิบหก (Hexadecimal) แต่สำหรับกรณีนี้อาจจะใช้พื้นที่ในเก็บข้อมูลเยอะมากกว่าเดิมได้
  • การบีบอัดไฟล์สำรองข้อมูล จะช่วยประหยัดพื้นที่เว็บไซต์ของคุณได้เป็นอย่างดี
  • ', + 'db_export_tips' => '
  • ด้วยเหตุผลด้านความปลอดภัย หลังจากดาวน์โหลดไฟล์สำรองฐานข้อมูลหรือตั้งค่าไฟล์สำรองฐานข้อมูล เราขอแนะนำให้คุณลบไฟล์สำรองฐานข้อมูลในหน้าการกู้คืนออกทุกครั้ง เพื่อให้มั่นใจในความปลอดภัยของเว็บไซต์และไม่สามารถเข้าถึงไฟล์ดังกล่าวผ่าน URL ได้
  • ตัวเลือกการสำรองข้อมูล คือ การสำรองข้อมูลทั้งหมดในเว็บบอร์ด posts/data ไฟล์ส่งออกข้อมูลนั้น สามารถนำเข้าได้ด้วยเครื่องมือ "กู้คืนข้อมูล" หรือ phpMyAdmin
  • การสำรองข้อมูลแบบเต็มนั้น จะไม่ได้รวมไปถึงการสำรองไฟล์เทมเพลต/รูปแบบสไตล์ หรือไฟล์แนบในกระทู้แต่อย่างใด ซึ่งไฟล์ดังกล่าวนั้น สามารถสำรองได้โดยการใช้งานผ่านการโอนถ่ายข้อมูลด้วยโปรแกรม FTP ของคุณ สามารถดาวน์โหลดได้จากโฟลเดอร์ "template/" และ "data/attachment/" ได้ โปรดทราบไว้ว่า ดิสคัสจะไม่มีการสำรองข้อมูลแบบแยกประเภทแต่อย่างใด
  • Standard MySQL Dump is much faster than the Discuz! Sub-volume backup, but requires the server support Shell related rights, and because the compatibility of MySQL itself, usually for backup and recovery server should have the same or similar version number, so it must be carried out smoothly. So MySQL Dump is at risk: If a backup or restore operations is failed and you have no shell access, or the import process failed because of version incompatibility, you will not be able to use MySQL Dump backup for restore from the backup data. Discuz! Sub-volume backup do not have this restriction.
  • ตัวเลือกการสำรองข้อมูลเพิ่มเติมนั้น จะเหมาะสำหรับผู้ใช้งานขั้นสูงและผู้เชี่ยวชาญแล้วเท่านั้น ถ้าหากคุณไม่รู้การทำงานที่แท้จริงหรือไม่เข้าใจการทำงานของฐานข้อมูลนี้เลย กรุณาใช้ค่ามาตรฐานจากระบบที่ตั้งไว้ให้ก่อนหน้านี้จะดีที่สุด มิฉะนั้น ข้อมูลที่สำรองไว้อาจได้รับความเสียหาย จนใช้งานไม่ได้ในที่สุด
  • เพื่อให้การสำรองข้อมูลมีความปลอดภัยและลดการสูญเสียของข้อมูล แนะนำให้ใช้ฟังก์ชันการสำรองแบบเลขฐานสิบหก (Hexadecimal) แต่สำหรับกรณีนี้อาจจะใช้พื้นที่ในเก็บข้อมูลเยอะมากกว่าเดิมได้
  • การบีบอัดไฟล์สำรองข้อมูล จะช่วยประหยัดพื้นที่เว็บไซต์ของคุณได้เป็นอย่างดี
  • ', 'db_export_type' => 'รูปแบบการสำรองข้อมูล', 'db_export_discuz' => 'ข้อมูลเว็บไซต์ทั้งหมด', 'db_export_discuz_uc' => 'ข้อมูลของ Discuz! และ UCenter', @@ -6098,7 +6107,7 @@ 'db_import_confirm' => 'การนำเข้าไฟล์ข้อมูลของดิสคัสที่ต่างเวอร์ชันกัน อาจจะทำให้ข้อมูลไม่สมบูรณ์ได้', 'db_import_confirm_sql' => 'คุณแน่ใจว่าจะนำเข้าข้อมูล SQL?', 'db_import_confirm_zip' => 'คุณแน่ใจว่าจะคลายไฟล์บีบอัด?', - 'db_import_tips' => '
  • ฟังก์ชันนี้จะทำการนำเข้าฐานข้อมูลจากการสำรองไว้ก่อนหน้านี้ ฐานข้อมูลที่มีอยู่ทั้งหมดจะถูกนำเข้าทับค่าเดิมโดยอัตโนมัติ ต้องมั่นใจว่าได้ทำการปิดการใช้งานเว็บไซต์ชั่วคราวแล้ว และหลังจากที่การนำเข้าเสร็จสมบูรณ์แล้ว ให้ทำการอัปเดตไฟล์แคชทันที แล้วค่อยเปิดการใช้งานเว็บไซต์ต่อไปได้
  • การนำเข้าฐานข้อมูลนั้น จะนำเข้าได้เฉพาะเวอร์ชันของ Discuz! ที่เหมือนกันเท่านั้น ไม่สามารถนำเข้าฐานข้อมูลต่างเวอร์ชันได้ ซึ่งอาจจะส่งผลกระทบต่อประสิทธิภาพการใช้งานเว็บไซต์
  • ถ้าคุณต้องการที่จะนำเข้าฐานข้อมูลจากเครื่องคอมพิวเตอร์ของคุณ ต้องมั่นใจว่าเซิร์ฟเวอร์หรือโฮสต์ของคุณอนุญาตให้มีการอัปโหลดไฟล์ขนาดใหญ่ได้ หรือวิธีแนะนำ ใช้การนำเข้าจากโฟลเดอร์ backup ของระบบดิสคัสในเซิร์ฟเวอร์ของคุณได้
  • ถ้าคุณนำเข้าไฟล์ฐานข้อมูลแบบแบ่งส่วน (part) จากการสำรองของระบบดิสคัสนั้น ระบบจะนำเข้าให้โดยอัตโนมัติ
  • ', + 'db_import_tips' => '
  • ฟังก์ชันนี้จะทำการนำเข้าฐานข้อมูลจากการสำรองไว้ก่อนหน้านี้ ฐานข้อมูลที่มีอยู่ทั้งหมดจะถูกนำเข้าทับค่าเดิมโดยอัตโนมัติ ต้องมั่นใจว่าได้ทำการปิดการใช้งานเว็บไซต์ชั่วคราวแล้ว และหลังจากที่การนำเข้าเสร็จสมบูรณ์แล้ว ให้ทำการอัปเดตไฟล์แคชทันที แล้วค่อยเปิดการใช้งานเว็บไซต์ต่อไปได้
  • ด้วยเหตุผลด้านความปลอดภัย หลังจากดาวน์โหลดไฟล์สำรองฐานข้อมูลหรือตั้งค่าไฟล์สำรองฐานข้อมูล เราขอแนะนำให้คุณลบไฟล์สำรองฐานข้อมูลในหน้าการกู้คืนออกทุกครั้ง เพื่อให้มั่นใจในความปลอดภัยของเว็บไซต์และไม่สามารถเข้าถึงไฟล์ดังกล่าวผ่าน URL ได้
  • การนำเข้าฐานข้อมูลนั้น จะนำเข้าได้เฉพาะเวอร์ชันของ Discuz! ที่เหมือนกันเท่านั้น ไม่สามารถนำเข้าฐานข้อมูลต่างเวอร์ชันได้ ซึ่งอาจจะส่งผลกระทบต่อประสิทธิภาพการใช้งานเว็บไซต์
  • ถ้าคุณต้องการที่จะนำเข้าฐานข้อมูลจากเครื่องคอมพิวเตอร์ของคุณ ต้องมั่นใจว่าเซิร์ฟเวอร์หรือโฮสต์ของคุณอนุญาตให้มีการอัปโหลดไฟล์ขนาดใหญ่ได้ หรือวิธีแนะนำ ใช้การนำเข้าจากโฟลเดอร์ backup ของระบบดิสคัสในเซิร์ฟเวอร์ของคุณได้
  • ถ้าคุณนำเข้าไฟล์ฐานข้อมูลแบบแบ่งส่วน (part) จากการสำรองของระบบดิสคัสนั้น ระบบจะนำเข้าให้โดยอัตโนมัติ
  • ', 'do_import_option' => 'เข้าถึงไฟล์ restore.php ที่มาจากโฟลเดอร์ utility/ โดยอัปโหลดไฟล์ดังกล่าวไปยัง data/ และจากนั้นให้เริ่มการนำเข้าข้อมูลจากลิงก์ดังต่อไปนี้ {restore_url}', 'db_import_from_server' => 'จากเซิร์ฟเวอร์ (กรอกชื่อไฟล์หรือ URL)', 'db_import_from_local' => 'จากคอมพิวเตอร์', @@ -6943,6 +6952,7 @@ 'optimizer_check_unit_optimizer_log' => 'Check if the log table can be optimized and cleaned', 'optimizer_check_unit_optimizer_seo' => 'Check if the SEO settings can be optimized', 'optimizer_check_unit_optimizer_dbbackup_clean' => 'Check if the backup files are deleted', + 'optimizer_check_unit_optimizer_dbbackup_visit' => 'ตรวจสอบว่ามีไฟล์สำรองฐานข้อมูลที่สามารถเข้าถึงได้หรือไม่', 'optimizer_check_unit_optimizer_inviteregister' => 'Check if a registration invite exists', 'optimizer_check_unit_optimizer_emailregister' => 'Check if registered Email exists', 'optimizer_check_unit_optimizer_pwlength' => 'Check for minimum password length', @@ -6966,6 +6976,8 @@ 'optimizer_check_unit_optimizer_security_daily' => 'Check for Waterproof wall daily optimization task is enabled', 'optimizer_check_unit_optimizer_postqqonly' => 'Check for the bind QQ account before posting is turned on', 'optimizer_check_unit_optimizer_aggid' => 'Check for bind QQ account is turned on for Admins, Supermoderators & Moderators', + 'optimizer_check_unit_optimizer_filesafe' => 'ตรวจสอบว่ามีไฟล์ที่หลงเหลือจากการอัปเกรดหรือการติดตั้งหรือไม่', + 'optimizer_check_unit_optimizer_remote' => 'ตรวจสอบว่าเปิดใช้งานการรีโมทระยะไกลหรือไม่', 'optimizer_check_unit_optimizer_dos8p3' => 'ตรวจสอบว่าเปิดใช้งานการรองรับชื่อไฟล์ DOS 8.3 หรือไม่', 'optimizer_check_unit_optimizer_httphost' => 'ตรวจสอบว่าเปิดการเข้าถึง HOST หรือไม่', @@ -7050,21 +7062,8 @@ 'setting_manyou_search_manage' => 'Application Search Management', 'connect_menu_setting' => 'ตั้งค่าพื้นฐาน', - 'connect_menu_stat' => 'Statistics', 'connect_setting_allow' => 'Allow QQ binding for Registration/Login Service', 'connect_setting_allow_comment' => 'If QQ binding enabled, a user can login the site with QQ account, And do some more related operations with QQ', - 'connect_setting_siteid' => 'QQ site ID binding', - 'connect_setting_sitekey' => 'QQ site key binding', - 'connect_setting_feed_allow' => 'Push QQ space news', - 'connect_setting_feed_fids' => 'Allow to Push the forum board', - 'connect_setting_feed_fids_comment' => 'Set in what forum board can be pushed to express the theme of spatial dynamics of QQ, you can hold down the CTRL multiple choice', - 'connect_setting_feed_group' => 'Groups are allowed to push', - 'connect_setting_feed_group_comment' => 'Set whether the subject published in the group can be pushed to the QQ space', - 'connect_setting_t_allow' => 'Push to Tencent Microblogging', - 'connect_setting_t_fids' => 'Allow Push to the forum board', - 'connect_setting_t_fids_comment' => 'Set in what forum board can be pushed to the subject published Tencent to it, and you can hold down the CTRL multiple choice', - 'connect_setting_t_group' => 'Groups are allowed to push', - 'connect_setting_t_group_comment' => 'Set whether the subject published in the group can push Tencent microblogging', 'connect_member_info' => 'User Information', 'connect_member_bindlog' => 'QQ bind log', 'connect_member_bindlog_type' => 'Operation', @@ -7150,6 +7149,8 @@ ', 'detect_environment' => 'ตรวจสอบความพร้อมของทรัพยากรเซิร์ฟเวอร์', + 'version_tips' => 'คำแนะนำสำหรับเวอร์ชันนี้', + 'version_tips_msg' => 'ขอขอบคุณที่เลือก Discuz! {version} คุณสามารถตรวจสอบบันทึกประจำรุ่นสำหรับการอัปเดตในเวอร์ชันนี้ เราขอแนะนำให้คุณทำการตรวจสอบความปลอดภัยและตรวจสอบความปลอดภัยที่เกี่ยวข้องโดยเร็วที่สุดเพื่อให้ระบบปลอดภัยจากการคุกคามโดยผู้ไม่ประสงค์ดี ฉันทราบแล้ว', 'contributors' => 'Discuz! Open source contributor', 'contributors_see' => 'Click Here To See Them', 'detect_environment_error' => 'เซิร์ฟเวอร์ของคุณตรวจไม่พบเวอร์ชันใหม่ กรุณาคลิกเพื่อดูเวอร์ชันใหม่', diff --git a/upload/source/language/lang_admincp_login.php b/upload/source/language/lang_admincp_login.php index 318d45bc..f7b9edab 100644 --- a/upload/source/language/lang_admincp_login.php +++ b/upload/source/language/lang_admincp_login.php @@ -33,6 +33,7 @@ 'login_tips' => 'Discuz! ใช้ภาษา PHP และ MySQL รวมไปถึงโซลูชันอื่นๆ ในการพัฒนา เพื่อให้ระบบคอมมูนิวตี้ของคุณทรงประสิทธิภาพ พร้อมเป็นตัวเลือกอันดับแรกในการสร้างแบรนด์ให้กับเว็บไซต์ของคุณได้', 'login_nosecques' => 'คุณยังไม่ได้ตั้งค่าคำถามความปลอดภัยในการลงชื่อเข้าใช้ คุณสามารถตั้งค่าคำถามความปลอดภัยได้ที่ข้อมูลส่วนตัวหรือเมนูสมาชิก หรือ คลิกที่นี่เพื่อ เพื่อตั้งค่าคำถามความปลอดภัยของคุณ', + 'login_cp_guest' => 'คำขอนี้ถูกปฏิเสธเนื่องจากคุณไม่ได้เข้าสู่ระบบ

    กรุณาเข้าสู่ระบบและลองอีกครั้ง', 'login_cplock' => 'การลงชื่อเข้าใช้การจัดการของคุณถูกล็อก!
    กรุณารอ อีก {ltime} วินาที แล้วค่อยลองใหม่อีกครั้ง', 'login_user_lock' => 'คุณใส่รหัสผ่านผิดหลายครั้งเกินไป การร้องขอการลงชื่อเข้าใช้นี้ถูกปฏิเสธ กรุณาลองอีกครั้งหลังจาก 15 นาที', 'login_cp_noaccess' => 'คุณไม่ได้รับอนุญาตให้เข้าใช้งาน

    ระบบได้บันทึกการกระทำของคุณไว้แล้ว ดังนั้นอย่าพยายามทำผิดกฎ', diff --git a/upload/source/language/lang_admincp_menu.php b/upload/source/language/lang_admincp_menu.php index 2a61cb8f..0fad0dff 100644 --- a/upload/source/language/lang_admincp_menu.php +++ b/upload/source/language/lang_admincp_menu.php @@ -41,7 +41,7 @@ 'menu_home_clearhistorymenus' => 'ล้างประวัติการดำเนิน', 'menu_setting_basic' => 'ข้อมูลเว็บไซต์', - 'menu_setting_access' => 'สิทธิ์/ลงทะเบียน', + 'menu_setting_access' => 'ลงทะเบียน/การเข้าถึง', 'menu_setting_customnav' => 'จัดการเมนูหลัก', 'menu_setting_styles' => 'จัดการรูปแบบ', 'menu_setting_optimize' => 'ตั้งค่าแคชกระทู้', @@ -50,7 +50,7 @@ 'menu_setting_domain' => 'ตั้งค่าโดเมน', 'menu_setting_user' => 'ตั้งค่าสมาชิก', 'menu_setting_credits' => 'ตั้งค่าเครดิต', - 'menu_setting_mail' => 'จัดการ/ตั้งค่าอีเมล', + 'menu_setting_mail' => 'ตั้งค่าอีเมล', 'menu_setting_sec' => 'ตั้งค่าความปลอดภัย', 'menu_setting_datetime' => 'ตั้งค่ารูปแบบเวลา', 'menu_setting_attachments' => 'ตั้งค่าไฟล์แนบ', @@ -173,14 +173,14 @@ 'menu_tools_fileperms' => 'ตรวจสอบสิทธิ์ไฟล์', 'menu_tools_hookcheck' => 'ตรวจสอบ Hooks', 'menu_tools_filecheck' => 'ตรวจสอบไฟล์', - 'menu_forum_scheme' => 'จัดการโปรแกรม', + 'menu_tools_replacekey' => 'อัปเดตคีย์เว็บไซต์', 'menu_db' => 'จัดการฐานข้อมูล', 'menu_postsplit' => 'จัดการแยกโพสต์', 'menu_threadsplit' => 'จัดการแยกกระทู้', 'menu_membersplit' => 'จัดการแยกผู้ใช้', 'menu_logs' => 'บันทึกของระบบ', - 'menu_custommenu_manage' => 'การดำเนินการทั่วไป', - 'menu_misc_cron' => 'แผนงานระบบ', + 'menu_custommenu_manage' => 'เมนูกำหนดเอง', + 'menu_misc_cron' => 'ตารางกำหนดการระบบ', 'menu_article' => 'จัดการบทความ', 'menu_portalcategory' => 'หมวดหมู่บทความ', diff --git a/upload/source/language/lang_admincp_msg.php b/upload/source/language/lang_admincp_msg.php index 642541f5..767c3389 100644 --- a/upload/source/language/lang_admincp_msg.php +++ b/upload/source/language/lang_admincp_msg.php @@ -23,14 +23,16 @@ 'blogcategory_move_category_failed' => 'บล็อกไม่สามารถย้ายมายังหมวดหมู่ดังกล่าวได้', 'blogcategory_delete_succeed' => 'ลบหมวดหมู่บล็อกสำเร็จ ', 'filecheck_nofound_md5file' => 'ไม่พบไฟล์ในการตรวจสอบ ไม่สามารถดำเนินการได้ {upgradeurl}', + 'replacekey_must_write_config' => 'config_global.php ไม่สามารถเขียนได้ การดำเนินการนี้ยังไม่เสร็จสมบูรณ์', + 'replacekey_succeed' => 'อัปเดตคีย์สำเร็จแล้ว กรุณาลงชื่อเข้าใช้เว็บไซต์อีกครั้งและอัปเดตแคชให้เรียบร้อย', 'cloudaddons_download_error' => 'ดาวน์โหลดข้อมูลผิดพลาด ({ErrorCode}), คลิกที่นี่เพื่อดูวิธีแก้ไขปัญหา', 'cloudaddons_downloading' => 'กำลังดาวน์โหลด {addonid} โปรดรอสักครู่ ......', 'collection_admin_updated' => 'จัดการดำเนินการคลังกระทู้เรียบร้อยแล้ว', 'counter_member_succeed' => 'จำนวนโพสต์ของสมาชิกถูกสร้างขึ้นใหม่แล้ว', 'credits_update_succeed' => 'อัปเดตนโยบายเครดิตสำเร็จ ', 'noaccess_isfounder' => 'คุณไม่มีสิทธิ์ในการเข้าถึงการตั้งค่า, เนื่องจากเหตุผลด้านความปลอดภัยจะใช้งานได้เฉพาะผู้ก่อตั้งไซต์เท่านั้น, กรุณาตรวจสอบไฟล์ config/config_global.php เกี่ยวกับการกำหนดผู้ก่อตั้ง', - 'database_export_multivol_succeed' => 'ยินดีด้วย, สร้างไฟล์ข้อมูลสำรอง {volume} ไฟล์เรียบร้อยแล้ว, การสำรองเสร็จสิ้น
    {filelist}', - 'database_export_zip_succeed' => 'เสร็จสิ้นการสำรองและบีบอัดข้อมูลไปยัง {filename} แล้ว', + 'database_export_multivol_succeed' => 'ขอแสดงความยินดี สร้างไฟล์สำรองฐานข้อมูลจำนวน {volume} รายการสำเร็จทั้งหมดแล้ว

    ด้วยเหตุผลด้านความปลอดภัย หลังจากดาวน์โหลดไฟล์สำรองฐานข้อมูลหรือตั้งค่าไฟล์สำรองฐานข้อมูล เราขอแนะนำให้คุณลบไฟล์สำรองฐานข้อมูลในหน้าการกู้คืนออกทุกครั้ง เพื่อให้มั่นใจในความปลอดภัยของเว็บไซต์และไม่สามารถเข้าถึงไฟล์ดังกล่าวผ่าน URL ได้

    {filelist}', + 'database_export_zip_succeed' => 'สำรองข้อมูลและบีบอัดข้อมูลไฟล์ {filename} ในเซิร์ฟเวอร์เรียบร้อยแล้ว

    ด้วยเหตุผลด้านความปลอดภัย หลังจากดาวน์โหลดไฟล์สำรองฐานข้อมูลหรือตั้งค่าไฟล์สำรองฐานข้อมูล เราขอแนะนำให้คุณลบไฟล์สำรองฐานข้อมูลในหน้าการกู้คืนออกทุกครั้ง เพื่อให้มั่นใจในความปลอดภัยของเว็บไซต์และไม่สามารถเข้าถึงไฟล์ดังกล่าวผ่าน URL ได้', 'setting_update_succeed' => 'อัปเดตการตั้งค่าปัจจุบันเรียบร้อยแล้ว ', 'setting_domain_http_error' => 'กรุณากรอกชื่อโดเมนที่ถูกต้องตามหลักสากล ข้อผิดพลาดทั่วไปที่พบเจอ มักขึ้นต้นด้วย "http://", "." หรือลงท้ายด้วย "/", "/index.php", "." หรือชื่อโดเมนที่เป็นภาษาไทย ที่ยังไม่ถูกแปลงเป็นชื่อโดเมนตามหลัก Punycode เป็นต้น', 'orders_validate_succeed' => 'รายการสำหรับตรวจสอบดำเนินการเรียบร้อยแล้ว ', @@ -223,7 +225,7 @@ 'database_export_custom_invalid' => 'คุณต้องเลือกอย่างน้อยหนึ่งตารางข้อมูลเพื่อทำการสำรอง', 'database_export_file_invalid' => 'ไฟล์ข้อมูลไม่สามารถบันทึกไปยังเซิร์ฟเวอร์, ตรวจสอบคุณสมบัติของโฟลเดอร์', 'database_export_multivol_redirect' => 'การสำรองแบบแบ่ง: สร้างไฟล์ข้อมูล #{volume} สำเร็จ, โปรแกรมจะดำเนินการต่ออัตโนมัติ', - 'database_export_succeed' => 'ข้อมูลได้ถูกบันทึกไปยังเซิร์ฟเวอร์เรียบร้อย ทั้งสิ้น {filename} ไฟล์', + 'database_export_succeed' => 'สำรองข้อมูลไฟล์ {filename} ไปยังเซิร์ฟเวอร์เรียบร้อยแล้ว

    ด้วยเหตุผลด้านความปลอดภัย หลังจากดาวน์โหลดไฟล์สำรองฐานข้อมูลหรือตั้งค่าไฟล์สำรองฐานข้อมูล เราขอแนะนำให้คุณลบไฟล์สำรองฐานข้อมูลในหน้าการกู้คืนออกทุกครั้ง เพื่อให้มั่นใจในความปลอดภัยของเว็บไซต์และไม่สามารถเข้าถึงไฟล์ดังกล่าวผ่าน URL ได้', 'database_shell_fail' => 'Shell access ถูกปิดใช้งานหรือไม่รองรับโดยเซิร์ฟเวอร์, ไม่สามารถสำรองหรือกู้คืนข้อมูลโดยใช้ MySQL Dump ได้', 'database_export_dest_invalid' => 'ไม่พบโฟลเดอร์หรือไม่สามารถเข้าถึงได้, ตรวจสอบโฟลเดอร์ ./data/', 'database_file_delete_succeed' => 'ไฟล์ข้อมูลสำรองที่ระบุได้ถูกลบเรียบร้อย ', @@ -346,6 +348,7 @@ 'members_edit_credits_failure' => 'การเพิ่มประสิทธิภาพตารางข้อมูลสมาชิกทำให้ไม่สามารถแก้ไขเครดิตได้ ', 'members_edit_credits_succeed' => 'แก้ไขเครดิตของสมาชิกเรียบร้อยแล้ว ', 'members_edit_medals_succeed' => 'เหรียญรางวัลของสมาชิกได้รับการแก้ไขเรียบร้อยแล้ว ', + 'members_edit_lock' => 'คุณไม่สามารถล็อคผู้ใช้รายนี้โดยตรง กรุณาแก้ไขและลบข้อมูลออกจาก “{grouptitle}” ก่อน', 'members_edit_illegal' => 'You cannot directly prohibit the user, Please Edit Remove the "{grouptitle}" Identity', 'members_edit_illegal_portal' => 'You cannot directly prohibit the user, please query the portal permissions and remove', 'members_edit_reason_invalid' => 'คุณยังไม่ได้กรอกเหตุผลในการเปลี่ยนแปลงครั้งนี้', @@ -657,6 +660,8 @@ 'attach_readmod_error' => 'ขออภัย โหมดการอ่านไฟล์สื่อภายในเว็บไซต์ปัจจุบันจะทำให้การเล่นวิดีโอผิดปกติในบางเบราว์เซอร์ หากคุณต้องการเปิดใช้งานการเล่นไฟล์สื่อประเภทที่ไฟล์แนบลงในเว็บนี้หรือไฟล์สื่อที่เป็น URL กรุณาแก้ไขโหมดการอ่านไฟล์ในเว็บของคุณเป็น 1 หรือ 4 ได้ที่ไฟล์ config_global.php จากนั้นลองอีกครั้ง', 'optimizer_dos8p3_optimizer' => 'Please choose the correct technical route and solution according to your underlying situation, and close the DOS 8.3 file name support through the correct configuration of the underlying.', 'optimizer_httphost_optimizer' => 'Please choose the correct technical route and solution according to your underlying situation, and close the empty HOST header support through the correct configuration of the underlying.', + 'optimizer_filesafe_optimizer' => 'เราได้พยายามลบโปรแกรมช่วยการติดตั้ง โปรแกรมช่วยกู้คืนข้อมูล และไฟล์ชั่วคราวต่าง ๆ ที่อยู่ระบบหลังบานให้กับคุณเรียบร้อยแล้ว หากการตรวจสอบยังคงผิดปกติ คุณต้องตรวจสอบด้วยตนเองว่ามีไฟล์/ไดเรกทอรีที่เกี่ยวข้องอยู่หรือไม่ โดยเฉพาะอย่างยิ่งว่าไดเรกทอรี old และไดเรกทอรี utility ถูกลบออกเรียบร้อยแล้ว', + 'optimizer_remote_optimizer' => 'คุณยังไม่ได้เปิดใช้งานฟังก์ชันนี้ กรุณาปิดใช้งานฟังก์ชันการรีโมทระยะไกลในไฟล์ config_global.php และแก้ไขคีย์รีโมทระยะไกลให้ถูกต้อง', ); ?> diff --git a/upload/source/language/lang_admincp_searchindex.php b/upload/source/language/lang_admincp_searchindex.php index fb4b885c..64575636 100644 --- a/upload/source/language/lang_admincp_searchindex.php +++ b/upload/source/language/lang_admincp_searchindex.php @@ -4,6857 +4,6738 @@ * [Discuz!] (C)2001-2099 Comsenz Inc. * This is NOT a freeware, use is subject to license terms * - * $Id: lang_admincp_searchindex.php by Valery Votintsev, codersclub.org + * $Id: adminsearchindex2.php 26203 2011-12-05 10:07:49Z monkey $ * * This file is automatically generate */ -$lang = array ( - 0 => - array ( - 'index' => - array ( - 'Admin Center Home' => 'action=index', - ), - 'text' => - array ( - 0 => 'Admin Center Home',//'管理中心首页', - ), - ), - 1 => - array ( - 'index' => - array ( - 'Custom Menu Management' => 'action=misc&operation=custommenu', - ), - 'text' => - array ( - 0 => 'Custom Menu Management',//'常用操作管理', - ), - ), - 2 => - array ( - 'index' => - array ( - '' => 'action=', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 3 => - array ( - 'index' => - array ( - 'Site Info' => 'action=setting&operation=basic', - ), - 'text' => - array ( - 0 => 'Site Info', - ), - ), - 4 => - array ( - 'index' => - array ( - 'Access control' => 'action=setting&operation=access', - ), - 'text' => - array ( - 0 => 'Access control',//'注册与访问', - ), - ), - 5 => - array ( - 'index' => - array ( - 'Site features' => 'action=setting&operation=functions', - ), - 'text' => - array ( - 0 => 'Site modules',//'站点功能', - ), - ), - 6 => - array ( - 'index' => - array ( - 'Performance Optimization' => 'action=setting&operation=cachethread', - ), - 'text' => - array ( - 0 => 'Performance Optimization',//'性能优化', - ), - ), - 7 => - array ( - 'index' => - array ( - 'SEO settings' => 'action=setting&operation=seo', - ), - 'text' => - array ( - 0 => 'SEO settings',//'SEO设置', - ), - ), - 8 => - array ( - 'index' => - array ( - 'Domain settings' => 'action=domain', - ), - 'text' => - array ( - 0 => 'Domain settings',//'域名设置', - ), - ), - 9 => - array ( - 'index' => - array ( - 'Follow settings' => 'action=setting&operation=follow',//'广播设置' - ), - 'text' => - array ( - 0 => 'Follow settings',//'广播设置', - ), - ), - 10 => - array ( - 'index' => - array ( - 'Space settings' => 'action=setting&operation=home', - ), - 'text' => - array ( - 0 => 'Space settings',//'空间设置', - ), - ), - 11 => - array ( - 'index' => - array ( - 'User Permissions' => 'action=setting&operation=permissions', - ), - 'text' => - array ( - 0 => 'User Permissions',//'用户权限', - ), - ), - 12 => - array ( - 'index' => - array ( - 'Credits Setttings' => 'action=setting&operation=credits', - ), - 'text' => - array ( - 0 => 'Money Setttings',//'积分设置', - ), - ), - 13 => - array ( - 'index' => - array ( - 'Anti-spam settings' => 'action=setting&operation=sec', - ), - 'text' => - array ( - 0 => 'Anti-spam settings',//'防灌水设置', - ), - ), - 14 => - array ( - 'index' => - array ( - 'Time settings' => 'action=setting&operation=datetime', - ), - 'text' => - array ( - 0 => 'Time settings',//'时间设置', - ), - ), - 15 => - array ( - 'index' => - array ( - 'Upload Settings' => 'action=setting&operation=attach', - ), - 'text' => - array ( - 0 => 'Attachment Settings',//'上传设置', - ), - ), - 16 => - array ( - 'index' => - array ( - 'Watermark' => 'action=setting&operation=imgwater', - ), - 'text' => - array ( - 0 => 'Watermark',//'水印设置', - ), - ), - 17 => - array ( - 'index' => - array ( - 'Attachment size' => 'action=misc&operation=attachtype', - ), - 'text' => - array ( - 0 => 'Attachment size',//'附件类型尺寸', - ), - ), - 18 => - array ( - 'index' => - array ( - 'Search Settings' => 'action=setting&operation=search', - ), - 'text' => - array ( - 0 => 'Search Settings',//'搜索设置', - ), - ), - 19 => - array ( - 'index' => - array ( - 'Region settings',// => 'action=district', - ), - 'text' => - array ( - 0 => 'Region settings',//'地区设置', - ), - ), - 20 => - array ( - 'index' => - array ( - 'Rank List',// => 'action=setting&operation=ranklist', - ), - 'text' => - array ( - 0 => 'Rank List',//'排行榜设置', - ), - ), - 21 => - array ( - 'index' => - array ( - 'Mobile Access settings' => 'action=setting&operation=mobile', - ), - 'text' => - array ( - 0 => 'Mobile Access settings',//'手机版访问设置', - ), - ), - 22 => - array ( - 'index' => - array ( - 'Anti grab settings' => 'action=setting&operation=antitheft',//'防采集设置' - ), - 'text' => - array ( - 0 => 'Anti grab settings',//'防采集设置', - ), - ), - 23 => - array ( - 'index' => - array ( - 'Navigation settings' => 'action=nav', - ), - 'text' => - array ( - 0 => 'Navigation settings',//'导航设置', - ), - ), - 24 => - array ( - 'index' => - array ( - 'Style settings' => 'action=setting&operation=styles', - ), - 'text' => - array ( - 0 => 'Style settings',//'界面设置', - ), - ), - 25 => - array ( - 'index' => - array ( - 'Style Management' => 'action=styles', - ), - 'text' => - array ( - 0 => 'Style Management',//'风格管理', - ), - ), - 26 => - array ( - 'index' => - array ( - 'Template Management' => 'action=templates', - ), - 'text' => - array ( - 0 => 'Template Management',//'模板管理', - ), - ), - 27 => - array ( - 'index' => - array ( - 'Smile management' => 'action=smilies', - ), - 'text' => - array ( - 0 => 'Smile management',//'表情管理', - ), - ), - 28 => - array ( - 'index' => - array ( - 'Rate management' => 'action=click', - ), - 'text' => - array ( - 0 => 'Rate management',//'表态动作', - ), - ), - 29 => - array ( - 'index' => - array ( - 'Thread icons' => 'action=misc&operation=stamp', - ), - 'text' => - array ( - 0 => 'Thread icons',//'主题鉴定', - ), - ), - 30 => - array ( - 'index' => - array ( - 'Editor Settings' => 'action=setting&operation=editor', - ), - 'text' => - array ( - 0 => 'Editor Settings',//'编辑器设置', - ), - ), - 31 => - array ( - 'index' => - array ( - 'Online List icons' => 'action=misc&operation=onlinelist', - ), - 'text' => - array ( - 0 => 'Online List icons',//'在线列表图标', - ), - ), - 32 => - array ( - 'index' => - array ( - 'Moderate' => 'action=moderate', - ), - 'text' => - array ( - 0 => 'Moderate',//'内容审核', - ), - ), - 33 => - array ( - 'index' => - array ( - 'Bad Word Filter' => 'action=misc&operation=censor', - ), - 'text' => - array ( - 0 => 'Bad Word Filter',//'词语过滤', - ), - ), - 34 => - array ( - 'index' => - array ( - 'User Reports' => 'action=report', - ), - 'text' => - array ( - 0 => 'User Reports',//'用户举报', - ), - ), - 35 => - array ( - 'index' => - array ( - 'Tag Management' => 'action=tag', - ), - 'text' => - array ( - 0 => 'Tag Management',//'标签管理', - ), - ), - 36 => - array ( - 'index' => - array ( - 'Collections' => 'action=collection',//'淘帖管理' - ), - 'text' => - array ( - 0 => 'Collections',//'淘帖管理', - ), - ), - 37 => - array ( - 'index' => - array ( - '' => 'action=', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 38 => - array ( - 'index' => - array ( - 'Forum Thread Management' => 'action=threads', - ), - 'text' => - array ( - 0 => 'Forum Thread Management',//'论坛主题管理', - ), - ), - 39 => - array ( - 'index' => - array ( - 'Bulk post delete' => 'action=prune', - ), - 'text' => - array ( - 0 => 'Bulk post delete',//'论坛批量删帖', - ), - ), - 40 => - array ( - 'index' => - array ( - 'Attachment Management' => 'action=attach', - ), - 'text' => - array ( - 0 => 'Attachment Management',//'论坛附件管理', - ), - ), - 41 => - array ( - 'index' => - array ( - '' => 'action=', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 42 => - array ( - 'index' => - array ( - '' => 'action=', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 43 => - array ( - 'index' => - array ( - 'Group Thread Management' => 'action=threads&operation=group', - ), - 'text' => - array ( - 0 => 'Group Thread Management',//'群组主题管理', - ), - ), - 44 => - array ( - 'index' => - array ( - 'Group Posts Batch delete' => 'action=prune&operation=group', - ), - 'text' => - array ( - 0 => 'Group Posts Batch delete',//'群组批量删帖', - ), - ), - 45 => - array ( - 'index' => - array ( - 'Group Attachment Management' => 'action=attach&operation=group', - ), - 'text' => - array ( - 0 => 'Group Attachment Management',//'群组附件管理', - ), - ), - 46 => - array ( - 'index' => - array ( - '' => 'action=', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 47 => - array ( - 'index' => - array ( - '' => 'action=', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 48 => - array ( - 'index' => - array ( - 'Recycle Bin Management' => 'action=recyclebin', - ), - 'text' => - array ( - 0 => 'Recycle Bin Management',//'主题回收站', - ), - ), - 49 => - array ( - 'index' => - array ( - 'Replies Recycle Bin' => 'action=recyclebinpost', - ), - 'text' => - array ( - 0 => 'Replies Recycle Bin',//'回帖回收站', - ), - ), - 50 => - array ( - 'index' => - array ( - 'Forum/Group Top' => 'action=threads&operation=forumstick', - ), - 'text' => - array ( - 0 => 'Forum/Group Top',//'版块/群组置顶', - ), - ), - 51 => - array ( - 'index' => - array ( - 'Post Comment Management' => 'action=postcomment', - ), - 'text' => - array ( - 0 => 'Post Comment Management',//'帖子点评管理', - ), - ), - 52 => - array ( - 'index' => - array ( - '' => 'action=', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 53 => - array ( - 'index' => - array ( - '' => 'action=', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 54 => - array ( - 'index' => - array ( - 'Doings Management' => 'action=doing', - ), - 'text' => - array ( - 0 => 'Doings Management',//'记录管理', - ), - ), - 55 => - array ( - 'index' => - array ( - 'Blogs Management' => 'action=blog', - ), - 'text' => - array ( - 0 => 'Blogs Management',//'日志管理', - ), - ), - 56 => - array ( - 'index' => - array ( - 'Blog Recycle Bin' => 'action=blogrecyclebin',//'日志回收站', - ), - 'text' => - array ( - 0 => 'Blog Recycle Bin',//'日志回收站', - ), - ), - 57 => - array ( - 'index' => - array ( - 'Feed management' => 'action=feed', - ), - 'text' => - array ( - 0 => 'Feed management',//'动态管理', - ), - ), - 58 => - array ( - 'index' => - array ( - 'Albums manage' => 'action=album', - ), - 'text' => - array ( - 0 => 'Albums manage',//'相册管理', - ), - ), - 59 => - array ( - 'index' => - array ( - 'Images Management' => 'action=pic', - ), - 'text' => - array ( - 0 => 'Images Management',//'图片管理', - ), - ), - 60 => - array ( - 'index' => - array ( - 'Comments/Messages Management' => 'action=comment', - ), - 'text' => - array ( - 0 => 'Comments/Messages Management',//'评论/留言管理', - ), - ), - 61 => - array ( - 'index' => - array ( - 'Share Management' => 'action=share', - ), - 'text' => - array ( - 0 => 'Share Management',//'分享管理', - ), - ), - 62 => - array ( - 'index' => - array ( - '' => 'action=', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 63 => - array ( - 'index' => - array ( - 'User Management' => 'action=members&operation=search', - ), - 'text' => - array ( - 0 => 'User Management',//'用户管理', - ), - ), - 64 => - array ( - 'index' => - array ( - 'Add User' => 'action=members&operation=add', - ), - 'text' => - array ( - 0 => 'Add User',//'添加用户', - ), - ), - 65 => - array ( - 'index' => - array ( - 'User profile' => 'action=members&operation=profile', - ), - 'text' => - array ( - 0 => 'User profile',//'用户栏目', - ), - ), - 66 => - array ( - 'index' => - array ( - 'Statistics' => 'action=members&operation=stat', - ), - 'text' => - array ( - 0 => 'Statistics',//'资料统计', - ), - ), - 67 => - array ( - 'index' => - array ( - 'Send notification' => 'action=members&operation=newsletter', - ), - 'text' => - array ( - 0 => 'Send notification',//'发送通知', - ), - ), - 68 => - array ( - 'index' => - array ( - 'Mobile notification' => 'action=members&operation=newsletter&do=mobile',//'发送手机通知' - ), - 'text' => - array ( - 0 => 'Mobile notification',//'发送手机通知', - ), - ), - 69 => - array ( - 'index' => - array ( - 'User Tags' => 'action=usertag',//'用户标签' - ), - 'text' => - array ( - 0 => 'User Tags',//'用户标签' - ), - ), - 70 => - array ( - 'index' => - array ( - 'Ban users' => 'action=members&operation=ban', - ), - 'text' => - array ( - 0 => 'Ban users',//'禁止用户', - ), - ), - 71 => - array ( - 'index' => - array ( - 'Ban IP' => 'action=members&operation=ipban', - ), - 'text' => - array ( - 0 => 'Ban IP',//'禁止 IP', - ), - ), - 72 => - array ( - 'index' => - array ( - 'Reward points' => 'action=members&operation=reward', - ), - 'text' => - array ( - 0 => 'Reward points',//'积分奖惩', - ), - ), - 73 => - array ( - 'index' => - array ( - 'Review new users' => 'action=moderate&operation=members', - ), - 'text' => - array ( - 0 => 'Review new users',//'审核新用户', - ), - ), - 74 => - array ( - 'index' => - array ( - 'Group Management' => 'action=admingroup', - ), - 'text' => - array ( - 0 => 'Group Management',//'管理组', - ), - ), - 75 => - array ( - 'index' => - array ( - 'User Groups' => 'action=usergroups', - ), - 'text' => - array ( - 0 => 'User Groups',//'用户组', - ), - ), - 76 => - array ( - 'index' => - array ( - 'Follows' => 'action=specialuser&operation=follow',//'推荐关注' - ), - 'text' => - array ( - 0 => 'Follows',//'推荐关注', - ), - ), - 77 => - array ( - 'index' => - array ( - 'Default friends' => 'action=specialuser&operation=defaultuser', - ), - 'text' => - array ( - 0 => 'Default friends',//'推荐好友', - ), - ), - 78 => - array ( - 'index' => - array ( - '' => 'action=verify&operation=verify', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 79 => - array ( - 'index' => - array ( - 'Verification settings' => 'action=verify', - ), - 'text' => - array ( - 0 => 'Verification settings',//'认证设置', - ), - ), - 80 => - array ( - 'index' => - array ( - '' => 'action=verify&operation=verify&do=1', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 81 => - array ( - 'index' => - array ( - '' => 'action=verify&operation=verify&do=2', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 82 => - array ( - 'index' => - array ( - '' => 'action=verify&operation=verify&do=3', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 83 => - array ( - 'index' => - array ( - 'Portal Categories' => 'action=portalcategory', - ), - 'text' => - array ( - 0 => 'Portal Categories',//'频道栏目', - ), - ), - 84 => - array ( - 'index' => - array ( - 'Article management' => 'action=article', - ), - 'text' => - array ( - 0 => 'Article management',//'文章管理', - ), - ), - 85 => - array ( - 'index' => - array ( - 'Topic management' => 'action=topic', - ), - 'text' => - array ( - 0 => 'Topic management',//'专题管理', - ), - ), - 86 => - array ( - 'index' => - array ( - 'HTML管理' => 'action=makehtml', - ), - 'text' => - array ( - 0 => 'HTML管理', - ), - ), - 87 => - array ( - 'index' => - array ( - 'Layout Management' => 'action=diytemplate', - ), - 'text' => - array ( - 0 => 'Layout Management',//'页面管理', - ), - ), - 88 => - array ( - 'index' => - array ( - 'Block Management' => 'action=block', - ), - 'text' => - array ( - 0 => 'Block Management',//'模块管理', - ), - ), - 89 => - array ( - 'index' => - array ( - 'Block styles' => 'action=blockstyle', - ), - 'text' => - array ( - 0 => 'Block styles',//'模块模板', - ), - ), - 90 => - array ( - 'index' => - array ( - 'Third-party blocks' => 'action=blockxml', - ), - 'text' => - array ( - 0 => 'Third-party blocks',//'第三方模块', - ), - ), - 91 => - array ( - 'index' => - array ( - 'Portal permissions' => 'action=portalpermission', - ), - 'text' => - array ( - 0 => 'Portal permissions',//'权限列表', - ), - ), - 92 => - array ( - 'index' => - array ( - 'Blog Categories' => 'action=blogcategory', - ), - 'text' => - array ( - 0 => 'Blog Categories',//'日志分类', - ), - ), - 93 => - array ( - 'index' => - array ( - 'Album Categories' => 'action=albumcategory', - ), - 'text' => - array ( - 0 => 'Album Categories',//'相册分类', - ), - ), - 94 => - array ( - 'index' => - array ( - 'Forum Management' => 'action=forums', - ), - 'text' => - array ( - 0 => 'Forum Management',//'版块管理', - ), - ), - 95 => - array ( - 'index' => - array ( - 'Forum merge' => 'action=forums&operation=merge', - ), - 'text' => - array ( - 0 => 'Forum merge',//'版块合并', - ), - ), - 96 => - array ( - 'index' => - array ( - 'Thread types' => 'action=threadtypes', - ), - 'text' => - array ( - 0 => 'Thread types',//'分类信息', - ), - ), - 97 => - array ( - 'index' => - array ( - 'Home grid' => 'action=grid',//'首页四格', - ), - 'text' => - array ( - 0 => 'Home grid',//'首页四格', - ), - ), - 98 => - array ( - 'index' => - array ( - 'Group settings' => 'action=group&operation=setting', - ), - 'text' => - array ( - 0 => 'Group settings',//'群组设置', - ), - ), - 99 => - array ( - 'index' => - array ( - 'Group categories' => 'action=group&operation=type', - ), - 'text' => - array ( - 0 => 'Group categories',//'群组分类', - ), - ), - 100 => - array ( - 'index' => - array ( - 'Group Management' => 'action=group&operation=manage', - ), - 'text' => - array ( - 0 => 'Group Management',//'群组管理', - ), - ), - 101 => - array ( - 'index' => - array ( - 'Main group permissions' => 'action=group&operation=userperm', - ), - 'text' => - array ( - 0 => 'Main group permissions',//'群主权限', - ), - ), - 102 => - array ( - 'index' => - array ( - 'Group level' => 'action=group&operation=level', - ), - 'text' => - array ( - 0 => 'Group level',//'群组等级', - ), - ), - 103 => - array ( - 'index' => - array ( - 'Group moderation' => 'action=group&operation=mod', - ), - 'text' => - array ( - 0 => 'Group moderation',//'审核群组', - ), - ), - 104 => - array ( - 'index' => - array ( - 'Site Announce' => 'action=announce', - ), - 'text' => - array ( - 0 => 'Site Announce',//'站点公告', - ), - ), - 105 => - array ( - 'index' => - array ( - 'Site Advertising' => 'action=adv', - ), - 'text' => - array ( - 0 => 'Site Advertising',//'站点广告', - ), - ), - 106 => - array ( - 'index' => - array ( - 'Site Tasks' => 'action=tasks', - ), - 'text' => - array ( - 0 => 'Site Tasks',//'站点任务', - ), - ), - 107 => - array ( - 'index' => - array ( - 'Magic Center' => 'action=magics', - ), - 'text' => - array ( - 0 => 'Magic Center',//'道具中心', - ), - ), - 108 => - array ( - 'index' => - array ( - 'Medal Center' => 'action=medals', - ), - 'text' => - array ( - 0 => 'Medal Center',//'勋章中心', - ), - ), - 109 => - array ( - 'index' => - array ( - 'Site Help' => 'action=faq', - ), - 'text' => - array ( - 0 => 'Site Help',//'站点帮助', - ), - ), - 110 => - array ( - 'index' => - array ( - 'E-commerce' => 'action=setting&operation=ec', - ), - 'text' => - array ( - 0 => 'E-Commerce',//'电子商务', - ), - ), - 111 => - array ( - 'index' => - array ( - 'Friend Links' => 'action=misc&operation=link', - ), - 'text' => - array ( - 0 => 'Friend Links',//'友情链接', - ), - ), - 112 => - array ( - 'index' => - array ( - 'Webmaster Recommended' => 'action=misc&operation=focus', - ), - 'text' => - array ( - 0 => 'Webmaster Recommended',//'站长推荐', - ), - ), - 113 => - array ( - 'index' => - array ( - 'Related Links' => 'action=misc&operation=relatedlink', - ), - 'text' => - array ( - 0 => 'Related Links',//'关联链接', - ), - ), - 114 => - array ( - 'index' => - array ( - 'Recharge card secret' => 'action=card', - ), - 'text' => - array ( - 0 => 'Recharge card secret',//'充值卡密', - ), - ), - 115 => - array ( - 'index' => - array ( - '' => 'action=check&operation=index', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 116 => - array ( - 'index' => - array ( - '' => 'action=check&operation=basic', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 117 => - array ( - 'index' => - array ( - '' => 'action=check&operation=check', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 118 => - array ( - 'index' => - array ( - '' => 'action=check&operation=post', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 119 => - array ( - 'index' => - array ( - '' => 'action=http://www.kuozhan.net/check.php?do=setting', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 120 => - array ( - 'index' => - array ( - '' => 'action=cloud&operation=applist', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 121 => - array ( - 'index' => - array ( - '' => 'action=cloud&operation=siteinfo', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 122 => - array ( - 'index' => - array ( - '' => 'action=cloud&operation=doctor', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 123 => - array ( - 'index' => - array ( - '' => 'action=cloud&operation=connect', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 124 => - array ( - 'index' => - array ( - '' => 'action=cloud&operation=manyou', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 125 => - array ( - 'index' => - array ( - '' => 'action=vip&operation=info', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 126 => - array ( - 'index' => - array ( - '' => 'action=vip&operation=safeguard', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 127 => - array ( - 'index' => - array ( - '' => 'action=vip&operation=payment', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 128 => - array ( - 'index' => - array ( - '' => 'action=vip&operation=updater', - ), - 'text' => - array ( - 0 => NULL, - ), - ), - 129 => - array ( - 'index' => - array ( - 'Application Center' => 'action=cloudaddons',//'应用中心' - ), - 'text' => - array ( - 0 => 'Application Center',//'应用中心', - ), - ), - 130 => - array ( - 'index' => - array ( - 'Plugins' => 'action=plugins',//'插件' - ), - 'text' => - array ( - 0 => 'Plugins',//'插件', - ), - ), - 131 => - array ( - 'index' => - array ( - 'Update cache' => 'action=tools&operation=updatecache', - ), - 'text' => - array ( - 0 => 'Update cache',//'更新缓存', - ), - ), - 132 => - array ( - 'index' => - array ( - 'Update statistics' => 'action=counter', - ), - 'text' => - array ( - 0 => 'Update statistics',//'更新统计', - ), - ), - 133 => - array ( - 'index' => - array ( - 'Operation log' => 'action=logs', - ), - 'text' => - array ( - 0 => 'Operation log',//'运行记录', - ), - ), - 134 => - array ( - 'index' => - array ( - 'Scheduled Tasks' => 'action=misc&operation=cron', - ), - 'text' => - array ( - 0 => 'Scheduled Tasks',//'计划任务', - ), - ), - 135 => - array ( - 'index' => - array ( - 'Check file permissions' => 'action=tools&operation=fileperms', - ), - 'text' => - array ( - 0 => 'Check file permissions',//'文件权限检查', - ), - ), - 136 => - array ( - 'index' => - array ( - 'File Checksum' => 'action=checktools&operation=filecheck', - ), - 'text' => - array ( - 0 => 'File Checksum',//'文件校验', - ), - ), - 137 => - array ( - 'index' => - array ( - 'Hook ckeck' => 'action=checktools&operation=hookcheck', - ), - 'text' => - array ( - 0 => 'Check Hooks',//'嵌入点校验', - ), - ), - 138 => - array ( - 'index' => - array ( - 'Admin Team' => 'action=founder&operation=perm', - ), - 'text' => - array ( - 0 => 'Admin Team',//'后台管理团队', - ), - ), - 139 => - array ( - 'index' => - array ( - 'Mail Settings' => 'action=setting&operation=mail', - ), - 'text' => - array ( - 0 => 'Mail Settings',//'邮件设置', - ), - ), - 140 => - array ( - 'index' => - array ( - 'Security Center' => 'action=patch', - ), - 'text' => - array ( - 0 => 'Security Center',//'安全中心', - ), - ), - 141 => - array ( - 'index' => - array ( - 'UCenter Settings' => 'action=setting&operation=uc', - ), - 'text' => - array ( - 0 => 'UCenter Settings',//'UCenter 设置', - ), - ), - 142 => - array ( - 'index' => - array ( - 'Database' => 'action=db&operation=export', - ), - 'text' => - array ( - 0 => 'Database',//'数据库', - ), - ), - 143 => - array ( - 'index' => - array ( - 'Optimize user table' => 'action=membersplit&operation=check', - ), - 'text' => - array ( - 0 => 'Optimize user table',//'用户表优化', - ), - ), - 144 => - array ( - 'index' => - array ( - 'Split posts' => 'action=postsplit&operation=manage', - ), - 'text' => - array ( - 0 => 'Split posts',//'帖子分表', - ), - ), - 145 => - array ( - 'index' => - array ( - 'Split thread' => 'action=threadsplit&operation=manage', - ), - 'text' => - array ( - 0 => 'Split thread',//'主题分表', - ), - ), - 146 => - array ( - 'index' => - array ( - 'Online Upgrade' => 'action=upgrade', - ), - 'text' => - array ( - 0 => 'Online Upgrade',//'在线升级', - ), - ), - 147 => - array ( - 'index' => - array ( - 'Optimizer' => 'action=optimizer',//'优化大师', - ), - 'text' => - array ( - 0 => 'Optimizer',//'优化大师', - ), - ), - 148 => - array ( - 'index' => - array ( - 'Group Management' => 'action=admingroup',//'管理组' - 'Thread permision management' => 'action=admingroup&operation=edit&anchor=threadperm',//'主题管理权限' - ), - 'text' => - array ( - 0 => 'Group Management » Thread permision management',//'管理组 » 主题管理权限', - 1 => 'admingroup_edit_threadperm', - 2 => 'Thread permision management',//'主题管理权限', - 3 => 'admingroup_edit_stick_thread', - 4 => 'Allow to Stick Thread',//'允许置顶主题', - 5 => 'Set whether to allow to Stick topics. If you enable Stick feature, Top III will be the site Top, and Top II within the current category',//'设置是否允许置顶管理范围内主题的级别。如果打开全局置顶的功能,置顶 III 将全站置顶,置顶 II 将在当前分类置顶', - 6 => 'admingroup_edit_digest_thread', - 7 => 'Allow Edit Digest',//'允许精华主题', - 8 => 'Set whether to allow to edit the thread Digest level',//'设置是否允许精华管理范围内主题的级别', - 9 => 'admingroup_edit_bump_thread', - 10 => 'Allow to bump thread',//'允许提升主题', - 11 => 'Set whether to allow manageme of bump threads',//'设置是否允许提升管理范围内的主题', - 12 => 'admingroup_edit_highlight_thread', - 13 => 'Allow highlight thread',//'允许高亮主题', - 14 => 'Set whether to allow highligh threads',//'设置是否允许高亮管理范围内的主题', - 15 => 'admingroup_edit_live_thread', - 16 => 'Allow Live Threads',//'允许直播主题', - 17 => 'Set whether to allow to manage of live topics',//'设置是否允许直播管理范围内的主题', - 18 => 'admingroup_edit_recommend_thread', - 19 => 'Allow to recommend thread',//'允许推荐主题', - 20 => 'Set whether to allow the Recommend thread management (Set the Recommend feature in the appropriate forum settings)',//'设置是否允许推荐管理范围内的主题 (要在相应版块的扩展设置里开启推荐主题功能)', - 21 => 'admingroup_edit_stamp_thread', - 22 => 'Allows to add thread stamp',//'允许添加主题图章', - 23 => 'Set whether to allow to add stamps to the thread',//'设置是否允许给主题在帖子内容页添加图章', - 24 => 'admingroup_edit_stamp_list', - 25 => 'Allows to add thread icon',//'允许添加主题图标', - 26 => 'Set whether to allow to add icon to a thread in the thread list',//'设置是否允许给主题在帖子列表页添加图标', - 27 => 'admingroup_edit_close_thread', - 28 => 'Allow to Close thread',//'允许关闭主题', - 29 => 'Set whether to allow to Close threads',//'设置是否允许关闭管理范围内的主题', - 30 => 'admingroup_edit_move_thread', - 31 => 'Allow to move threads',//'允许移动主题', - 32 => 'Set whether to allow to move threads',//'设置是否允许移动管理范围内的主题', - 33 => 'admingroup_edit_edittype_thread', - 34 => 'Allow to edit thread type',//'允许编辑主题分类', - 35 => 'Set whether to allow editing of the thread type',//'设置是否允许编辑管理范围内主题的分类', - 36 => 'admingroup_edit_copy_thread', - 37 => 'Allow to copy threads',//'允许复制主题', - 38 => 'Set whether to allow the the thread replication',//'设置是否允许复制管理范围内的主题', - 39 => 'admingroup_edit_merge_thread', - 40 => 'Allow to merge threads',//'允许合并主题', - 41 => 'Set whether to allow the thread merging',//'设置是否允许合并管理范围内的主题', - 42 => 'admingroup_edit_split_thread', - 43 => 'Allow to split thread',//'允许分割主题', - 44 => 'Set whether to allow to split threads',//'设置是否允许分割管理范围内的主题', - 45 => 'admingroup_edit_repair_thread', - 46 => 'Allow to repair threads',//'允许修复主题', - 47 => 'Set whether to allow the thread repair',//'设置是否允许修复管理范围内的主题', - 48 => 'admingroup_edit_refund', - 49 => 'Allow to edit refund',//'允许强制退款', - 50 => 'Allow to terminate the thread fees, and eturn the author benefit to buyers. When refund, the topic will no longer be chargeable, until the author arising own points by a transaction',//'允许将作者发布的收费主题终止,并将作者所获得收益退还给购买者。退款后,该主题将不能再被设置为收费主题,同时作者将自行承担积分交易而产生的损失', - 51 => 'admingroup_edit_edit_poll', - 52 => 'Allow edit Poll',//'允许编辑投票', - 53 => 'Whether to allow edit poll options',//'设置是否允许编辑管理范围内投票主题的选项', - 54 => 'admingroup_edit_remove_reward', - 55 => 'Allow to remove rewards',//'允许移除悬赏', - 56 => 'Whether to allow to remove the reward within the thread reward amount',//'设置是否允许移除管理范围内悬赏主题的悬赏金额', - 57 => 'admingroup_edit_edit_activity', - 58 => 'Allow to manage event members',//'允许管理活动报名者', - 59 => 'Whether to allow the management of an event members',//'设置是否允许管理范围内活动主题的报名者', - 60 => 'admingroup_edit_edit_trade', - 61 => 'Allow edit products',//'允许编辑商品', - 62 => 'Whether to allow edit products',//'设置是否允许编辑管理范围内商品主题的商品', - 63 => 'admingroup_edit_usertag', - 64 => 'Allow users to add tags',//'允许添加用户标签', - 65 => 'Set whether to allow users to edit/manage thread tags',//'设置是否允许编辑管理范围内主题的用户标签', - ), - ), - 149 => - array ( - 'index' => - array ( - 'Group Management' => 'action=admingroup',//'管理组' - 'Post management privileges' => 'action=admingroup&operation=edit&anchor=postperm',//'帖子管理权限' - ), - 'text' => - array ( - 0 => 'Group Management » Post management privileges',//'管理组 » 帖子管理权限', - 1 => 'admingroup_edit_postperm', - 2 => 'Post management privileges',//'帖子管理权限', - 3 => 'admingroup_edit_edit_post', - 4 => 'Allow to edit posts',//'允许编辑帖子', - 5 => 'Whether to allow edit posts of others',//'设置是否允许编辑管理范围内的帖子', - 6 => 'admingroup_edit_warn_post', - 7 => 'Allow warn users',//'允许警告帖子', - 8 => 'Whether to allow warn users',//'设置是否允许警告管理范围内的帖子', - 9 => 'admingroup_edit_ban_post', - 10 => 'Allow to ban Posts',//'允许屏蔽帖子', - 11 => 'Whether to allow to ban posts',//'设置是否允许屏蔽管理范围内的帖子', - 12 => 'admingroup_edit_del_post', - 13 => 'Allow to delete posts',//'允许删除帖子', - 14 => 'Whether to allow to delete posts',//'设置是否允许删除管理范围内的帖子', - 15 => 'admingroup_edit_stick_post', - 16 => 'Allow to stick post',//'允许置顶回帖', - 17 => 'Whether to allow to stick posts within a thread',//'设置是否允许置顶管理范围内的回帖', - 18 => 'admingroup_edit_manage_tag', - 19 => 'Allow Tag Management',//'允许管理标签', - 20 => 'Set whether to allow to manage tags',//'设置是否允许管理管理范围内的标签', - ), - ), - 150 => - array ( - 'index' => - array ( - 'Group Management' => 'action=admingroup',//'管理组' - 'Moderator panel privileges' => 'action=admingroup&operation=edit&anchor=modcpperm',//'管理面板权限' - ), - 'text' => - array ( - 0 => 'Group Management » Moderator panel privileges',//'管理组 » 管理面板权限', - 1 => 'admingroup_edit_modcpperm', - 2 => 'Moderator panel privileges',//'管理面板权限', - 3 => 'admingroup_edit_mod_post', - 4 => 'Allow to verify Posts',//'允许审核帖子', - 5 => 'Whether to allow to verify users posts (only when a premoderation enabled in the site settings)',//'设置是否允许审核用户发表的帖子,只在站点设置需要审核时有效', - 6 => 'admingroup_edit_mod_user', - 7 => 'Allow to verify registrations',//'允许审核用户', - 8 => 'Whether to allow verify new registered users. Required only if a manuall verification enabled in the site setttings.',//'设置是否允许审核新注册用户,只在站点设置需要人工审核新用户时有效', - 9 => 'admingroup_edit_ban_user', - 10 => 'Allows to prohibit users to speak',//'允许禁止用户发言', - 11 => 'Set whether to allow to prohibit users to speak',//'设置是否允许禁止用户发言', - 12 => 'admingroup_edit_ban_user_visit', - 13 => 'Allow to ban users',//'允许禁止用户访问', - 14 => 'Set whether to allow to prohibit users to access',//'设置是否允许禁止用户访问', - 15 => 'admingroup_edit_ban_ip', - 16 => 'Allow ban IP',//'允许禁止 IP', - 17 => 'Whether to allow to ban IP or modify the IP settings',//'设置是否允许添加或修改禁止 IP 设置', - 18 => 'admingroup_edit_edit_user', - 19 => 'Allow to edit users',//'允许编辑用户', - 20 => 'Whether to allow to edit the user information',//'设置是否允许编辑用户资料', - 21 => 'admingroup_edit_mass_prune', - 22 => 'Allow batch delete posts',//'允许批量删帖', - 23 => 'Whether to allow to batch delete posts through the moderator panel. Moderator can mass delete posts in range of 1 week, Super moderator can delete posts in range of 2 weeks, Administrator have no limits.',//'设置是否允许通过管理面板批量删帖,版主在面板中批量删帖的范围是 1 周内,超级版主删帖范围是 2 周内, 管理员无限制', - 24 => 'admingroup_edit_edit_forum', - 25 => 'Allow to edit Forum',//'允许编辑版块', - 26 => 'Whether to allow edit forum information',//'设置是否允许编辑管理范围内的版块的资料', - 27 => 'admingroup_edit_post_announce', - 28 => 'Allow Announcement',//'允许发布公告', - 29 => 'Whether to allow publish the site announces',//'设置是否允许发布站点公告', - 30 => 'admingroup_edit_clear_recycle', - 31 => 'Allow to delete posts to the Recycle Bin',//'允许删除回收站的帖子', - 32 => 'Set whether to allow to delete posts by the "Front -> Admin Panel -> Thread Trash"',//'设置是否允在“前台->管理面板->主题回收站”中删除主题', - 33 => 'admingroup_edit_view_log', - 34 => 'Allow to view management logs',//'允许查看管理日志', - 35 => 'Whether to allow to view the management log',//'设置是否允许查看管理日志', - ), - ), - 151 => - array ( - 'index' => - array ( - 'Group Management' => 'action=admingroup',//'管理组' - 'Space management privileges' => 'action=admingroup&operation=edit&anchor=spaceperm',//'空间管理权限' - ), - 'text' => - array ( - 0 => 'Group Management » Space management privileges',//'管理组 » 空间管理权限', - 1 => 'admingroup_edit_spaceperm', - 2 => 'Space management privileges',//'空间管理权限', - 3 => 'admingroup_edit_manage_feed', - 4 => 'Allow to manage feeds',//'允许管理动态(feed)', - 5 => 'admingroup_edit_manage_doing', - 6 => 'Allow to manage doings',//'允许管理记录', - 7 => 'admingroup_edit_manage_share', - 8 => 'Allow to manage shares',//'允许管理分享', - 9 => 'admingroup_edit_manage_blog', - 10 => 'Allow to manage blogs',//'允许管理日志', - 11 => 'admingroup_edit_manage_album', - 12 => 'Allow to manage albums',//'允许管理相册', - 13 => 'admingroup_edit_manage_comment', - 14 => 'Allow to Manage comments',//'允许管理评论', - 15 => 'admingroup_edit_manage_magiclog', - 16 => 'Allow to manage magic records',//'允许管理道具记录', - 17 => 'admingroup_edit_manage_report', - 18 => 'Allow to manage reports',//'允许管理举报', - 19 => 'admingroup_edit_manage_hotuser', - 20 => 'Allow to manage members hot value',//'允许管理推荐成员', - 21 => 'admingroup_edit_manage_defaultuser', - 22 => 'Allow to manage defaulr Friends',//'允许管理推荐好友', - 23 => 'admingroup_edit_manage_videophoto', - 24 => 'Allow to manage video verification',//'允许管理视频认证', - 25 => 'admingroup_edit_manage_magic', - 26 => 'Allow to manage magic',//'允许管理道具', - 27 => 'admingroup_edit_manage_click', - 28 => 'Allow to manage rate actions',//'允许管理表态动作', - ), - ), - 152 => - array ( - 'index' => - array ( - 'Group Management' => 'action=admingroup',//'管理组' - 'Other privileges' => 'action=admingroup&operation=edit&anchor=otherperm',//'其他权限' - ), - 'text' => - array ( - 0 => 'Group Management » Other privileges',//'管理组 » 其他权限', - 1 => 'admingroup_edit_otherperm', - 2 => 'Other privileges',//'其他权限', - 3 => 'admingroup_edit_view_ip', - 4 => 'Allow to View IP',//'允许查看 IP', - 5 => 'Whether to allow to view user IP',//'设置是否允许查看用户 IP', - 6 => 'admingroup_edit_manage_collection', - 7 => 'Allow collection management',//'允许管理淘专辑', - 8 => 'Set whether to allow collection management',//'设置是否允许管理淘专辑', - 9 => 'admingroup_edit_allow_make_html', - 10 => 'Allow to generate HTML files',//'允许生成HTML文件', - 11 => 'Set whether to allow the HTML files generation',//'设置是否允许生成HTML文件', - ), - ), - 153 => - array ( - 'index' => - array ( - 'Group Management' => 'action=admingroup',//'管理组' - 'Portal management privileges' => 'action=admingroup&operation=edit&anchor=portalperm',//'门户管理权限' - ), - 'text' => - array ( - 0 => 'Group Management » Portal management privileges',//'管理组 » 门户管理权限', - 1 => 'admingroup_edit_portalperm', - 2 => 'Portal management privileges',//'门户管理权限', - 3 => 'admingroup_edit_manage_article', - 4 => 'Allow to manage articles',//'允许管理所有文章', - 5 => 'Select "Yes" to allow for this management group members to edit and delete articles in all the portal categories',//'选择“是”则允许此管理组成员管理编辑删除所有频道栏目文章', - 6 => 'admingroup_edit_add_topic', - 7 => 'Allow to create topic',//'允许创建专题', - 8 => 'Set whether to allow the topics creation',//'设置是否允许创建专题', - 9 => 'admingroup_edit_manage_topic', - 10 => 'Allow to manage topics',//'允许管理专题', - 11 => 'Set whether to allow editing of all topics',//'设置是否允许编辑所有专题', - 12 => 'admingroup_edit_diy', - 13 => 'Allow DIY',//'允许 DIY', - 14 => 'Set whether to allow the DIY in forum, articles, space, forum other pages',//'设置是否允许 DIY 论坛,文章,空间,论坛等页面', - ), - ), - 154 => - array ( - 'index' => - array ( - 'Site Advertising' => 'action=adv',//'站点广告' - 'Advertising space' => 'action=adv&operation=list',//'广告位' - ), - 'text' => - array ( - 0 => 'Site Advertising » Advertising space',//'站点广告 » 广告位', - 1 => 'adv_list_tip', - 2 => 'You can use the "custom Advertising space" anywhere on the page to add Advertising space. When install the new Advertising space, Advertising space script will be uploaded to the source/class/adv/ directory, then you can use the following list. Plug-in developers, before design a new Advertising space be sure to read the content of "Discuz! Technical Library".',//'你可以使用“自定义广告位”在页面的任意位置添加广告位。安装新的广告位,需将广告位脚本程序上传到 source/class/adv/ 目录,然后即可在以下列表中使用了。插件开发人员在设计新的广告位前请务必仔细阅读《Discuz! 技术文库》中的内容。', - ), - ), - 155 => - array ( - 'index' => - array ( - 'Album Management' => 'action=album',//'相册管理', - 'Recent list' => 'action=album',//'最新列表', - ), - 'text' => - array ( - 0 => 'Albums Management » Recent list',//'相册管理 » 最新列表', - 1 => 'album_tips', - 2 => 'Batch management is used to delete an album. Album Deleted together with inside pictures to remind: click on the search results page, the Delete button will delete the information directly!',//'批量相册管理用于删除相册使用。连图片一同删除提醒:点击搜索结果页的删除按钮,将会直接删除相关信息!', - ), - ), - 156 => - array ( - 'index' => - array ( - 'Albums Management' => 'action=album',//'相册管理', - 'Search' => 'action=album&search=true',//'搜索', - ), - 'text' => - array ( - 0 => 'Albums Management » Search',//'相册管理 » 搜索', - 1 => 'album_search_detail', - 2 => 'Show detailed album list',//'显示详细相册列表', - 3 => 'album_search_perpage', - 4 => 'Items per page',//'每页显示数', - 5 => 'resultsort', - 6 => 'Sort results',//'结果排序', - 7 => 'album_search_albumname', - 8 => 'Album name',//'相册名', - 9 => 'album_search_albumid', - 10 => 'Album ID',//'相册 ID', - 11 => 'Separate multiple Album IDs with a comma ","',//'多相册 ID 中间请用半角逗号 "," 隔开', - 12 => 'album_search_uid', - 13 => 'User UID',//'用户 UID', - 14 => 'Separate multiple user IDs with a comma ","',//'多 UID 中间请用半角逗号 "," 隔开', - 15 => 'album_search_user', - 16 => 'Album author',//'创建相册用户名', - 17 => 'Separate multiple user names with a comma ","',//'多用户名中间请用半角逗号 "," 隔开', - 18 => 'blog_search_friend', - 19 => 'View Permissions',//'查看权限', - 20 => 'album_search_time', - 21 => 'Updated time range',//'更新时间范围', - 22 => 'Format is yyyy-mm-dd',//'格式 yyyy-mm-dd', - ), - ), - 157 => - array ( - 'index' => - array ( - 'Album Categories' => 'action=albumcategory',//'相册分类', - ), - 'text' => - array ( - 0 => 'Album Categories',//'相册分类', - 1 => 'system_category_stat', - 2 => 'Enable system Categories',//'开启系统分类', - 3 => 'system_category_required', - 4 => 'System Categories required',//'系统分类必填', - ), - ), - 158 => - array ( - 'index' => - array ( - 'Site Announces' => 'action=announce',//'站点公告', - ), - 'text' => - array ( - 0 => 'Site Announces',//'站点公告', - 1 => 'announce_edit', - 2 => 'Edit Site Announce',//'站点公告编辑', - 3 => 'start_time', - 4 => 'Start time',//'起始时间', - 5 => 'end_time', - 6 => 'End time',//'终止时间', - 7 => 'announce_type', - 8 => 'Announce type',//'公告类型', - 9 => 'announce_message', - 10 => 'Message',//'内容', - 11 => 'Announce text: Announce content support BBCode
    URL link: Please enter the announce link such as: http://xxx.xxx.xxx',//'文字公告: 直接输入公告内容,支持 Discuz! 代码网址链接: 请输入公告的链接地址如某个主题地址: http://xxx.xxx.xxx', - ), - ), - 159 => - array ( - 'index' => - array ( - 'Third-party blocks' => 'action=blockxml',//'第三方模块', - 'Search' => 'action=blockxml&operation=add',//'搜索', - ), - 'text' => - array ( - 0 => 'Third-party blocks » Search',//'第三方模块 » 搜索', - 1 => 'blockxml_tips', - 2 => 'Plug-in developers, before design a new Advertising space be sure to read the content of "Discuz! Technical Library".',//'插件开发人员在设计新的第三方模块前请务必仔细阅读《Discuz! 技术文库》中的内容。', - 3 => 'blockxml_add', - 4 => 'Add third-party block',//'添加 第三方模块', - 5 => 'blockxml_xmlurl', - 6 => 'Third-party URL',//'第三方地址', - 7 => 'Enter the third-party block URL. Third-party must return the content in XML block format',//'输入 第三方模块的 URL 地址,第三方返回的内容必须 XML 模块的格式', - 8 => 'blockxml_clientid', - 9 => 'Client ID',//'客户端ID', - 10 => 'This ID is provided by the data source',//'此ID由数据源方提供', - 11 => 'blockxml_signtype', - 12 => 'Signature encryption',//'签名加密方式', - 13 => 'Currently supported MD5 encryption method, you can not use a signature, provided by the data source',//'目前支持MD5加密方式,也可以不使用签名,由数据源方提供', - 14 => 'blockxml_xmlkey', - 15 => 'Communication key',//'通信密钥', - 16 => 'URL address to obtain the data key from. Leave empty if the data source does not require key. This key is provided by the data source',//'从 URL 地址获得数据时的密钥,如果数据源不需要密钥可以为空。此密钥由数据源方提供', - ), - ), - 160 => - array ( - 'index' => - array ( - 'Blogs Management' => 'action=blog',//'日志管理', - 'Recent blogs' => 'action=blog',//'最新列表', - ), - 'text' => - array ( - 0 => 'Blogs Management » ',//'日志管理 » 最新列表', - 1 => 'blog_tips', - 2 => 'Batch management is used to remove the blogs together with all it replies. The {x} keyword qualifier can be used to ignored some text between two adjacent characters, for example if you use "a{1}s{2}s" mask (without the quotes), you can find the "ass" and "axsxs" and "axsxxs" and so on. Warning: When you click on the Delete button in the search results page, the information will be deleted directly!',//'批量日志信息管理用于删除日志使用,并且连同对应的回复一同删除。关键字可以使用限定符 {x} 以限定相邻两字符间可忽略的文字,x 是忽略字符的个数,如 "a{1}s{2}s"(不含引号) 可以搜索到 "ass" 也可搜索到 "axsxs" 和 "axsxxs" 等等。提醒:点击搜索结果页的删除按钮,将会直接删除相关信息!', - ), - ), - 161 => - array ( - 'index' => - array ( - 'Blogs Management' => 'action=blog',//'日志管理', - 'Search' => 'action=blog&search=true',//'搜索', - ), - 'text' => - array ( - 0 => 'Blogs Management » Search',//'日志管理 » 搜索', - 1 => 'blog_search_detail', - 2 => 'Show detailed blog list',//'显示详细日志列表', - 3 => 'blog_search_perpage', - 4 => 'Items per page',//'每页显示数', - 5 => 'resultsort', - 6 => 'Sort results',//'结果排序', - 7 => 'blog_search_uid', - 8 => 'User UID',//'用户 UID', - 9 => 'Separate multiple UID with a comma ","',//'多 UID 中间请用半角逗号 "," 隔开', - 10 => 'blog_search_blogid', - 11 => 'Blog ID',//'日志 ID', - 12 => 'Separate multiple blog ID with a comma ","',//'多日志 ID 中间请用半角逗号 "," 隔开', - 13 => 'blog_search_user', - 14 => 'Blog author user name',//'发表日志用户名', - 15 => 'Separate multiple user names with a comma ","',//'多用户名中间请用半角逗号 "," 隔开', - 16 => 'blog_search_keyword', - 17 => 'Title or Keyword',//'标题或内容关键字', - 18 => 'Separate multiple keywords with a comma ",". Keyword qualifier {x} can be used.',//'多关键字中间请用半角逗号 "," 隔开,关键词可以用限定符 {x}', - 19 => 'blog_search_friend', - 20 => 'View Permissions',//'查看权限', - 21 => 'blog_search_ip', - 22 => 'Posted IP',//'发布IP', - 23 => 'Wildcard "*" may be used, i.e. "127.0 .*.*" (without quotes), use with caution!!!',//'通配符 "*" 如 "127.0.*.*"(不含引号),慎用!!!', - 24 => 'blog_search_lengthlimit', - 25 => 'Minimal content length',//'内容最小长度', - 26 => 'This feature will add the server loading',//'本功能会加重服务器负担', - 27 => 'blog_search_view', - 28 => 'Views',//'查看数', - 29 => 'blog_search_reply', - 30 => 'Replies',//'回复数', - 31 => 'blog_search_hot', - 32 => 'Hot',//'热度', - 33 => 'blog_search_time', - 34 => 'Post Time range',//'发表时间范围', - 35 => 'Format is yyyy-mm-dd',//'格式 yyyy-mm-dd', - ), - ), - 162 => - array ( - 'index' => - array ( - 'Blog Categories' => 'action=blogcategory',//'日志分类', - ), - 'text' => - array ( - 0 => 'Blog Categories',//'日志分类', - 1 => 'system_category_stat', - 2 => 'Enable system Categories',//'开启系统分类', - 3 => 'system_category_required', - 4 => 'System Categories required',//'系统分类必填', - ), - ), - 163 => - array ( - 'index' => - array ( - 'Blog Recycle Bin' => 'action=blogrecyclebin',//'日志回收站', - 'Blog List' => 'action=blogrecyclebin',//'日志列表', - ), - 'text' => - array ( - 0 => 'Blog Recycle Bin » Blog List',//'日志回收站 » 日志列表', - 1 => 'blog_tips', - 2 => 'Batch blog management used for delete blogs together with the corresponding replies. Keywords qualifier {x} can be used to define some number of characters, where "x" is a number of ignored characters. I.e. "a{1}s{2}s" (without the quotes) can search "ass" or "axsxs" or "axsxxs" and so on. Warning: Click on the Delete button at the search results page will remove directly all the relevant items!',//'批量日志信息管理用于删除日志使用,并且连同对应的回复一同删除。关键字可以使用限定符 {x} 以限定相邻两字符间可忽略的文字,x 是忽略字符的个数,如 "a{1}s{2}s"(不含引号) 可以搜索到 "ass" 也可搜索到 "axsxs" 和 "axsxxs" 等等。提醒:点击搜索结果页的删除按钮,将会直接删除相关信息!', - ), - ), - 164 => - array ( - 'index' => - array ( - 'Blog Management' => 'action=blog',//'日志管理', - 'Search' => 'action=blog&search=true',//'搜索', - ), - 'text' => - array ( - 0 => 'Blog Management » Search',//'日志管理 » 搜索', - 1 => 'blog_search_detail', - 2 => 'Show Blog List',//'显示详细日志列表', - 3 => 'blog_search_perpage', - 4 => 'Number of lines per page',//'每页显示数', - 5 => 'resultsort', - 6 => 'Sort order',//'结果排序', - 7 => 'blog_search_uid', - 8 => 'User UID',//'用户 UID', - 9 => 'Separate multiple UIDs with a comma',//'多 UID 中间请用半角逗号 "," 隔开', - 10 => 'blog_search_blogid', - 11 => 'Blog ID',//'日志 ID', - 12 => 'Separate multiple blog IDs with a comma',//'多日志 ID 中间请用半角逗号 "," 隔开', - 13 => 'blog_search_user', - 14 => 'Blog author name',//'发表日志用户名', - 15 => 'Separate multiple names with a comma',//'多用户名中间请用半角逗号 "," 隔开', - 16 => 'blog_search_keyword', - 17 => 'Title or content keywords',//'标题或内容关键字', - 18 => 'Separate multiple keywords with a comma. {x} qualifier may be used.',//'多关键字中间请用半角逗号 "," 隔开,关键词可以用限定符 {x}', - 19 => 'blog_search_friend', - 20 => 'View Permissions',//'查看权限', - 21 => 'blog_search_ip', - 22 => 'Posting IP',//'发布IP', - 23 => 'Wildcard "*" can be used, i.e "127.0.*.*" (w/o quotemarks). Use with caution!!!',//'通配符 "*" 如 "127.0.*.*"(不含引号),慎用!!!', - 24 => 'blog_search_lengthlimit', - 25 => 'Content minimum length',//'内容最小长度', - 26 => 'This feature will increase the server loading',//'本功能会加重服务器负担', - 27 => 'blog_search_view', - 28 => 'Views number',//'查看数', - 29 => 'blog_search_reply', - 30 => 'Reply number',//'回复数', - 31 => 'blog_search_hot', - 32 => 'Heat',//'热度', - 33 => 'blog_search_time', - 34 => 'Post time range',//'发表时间范围', - 35 => 'Format: yyyy-mm-dd',//'格式 yyyy-mm-dd', - ), - ), - 165 => - array ( - 'index' => - array ( - 'Allow recharge reception' => 'action=card',//'允许前台充值', - ), - 'text' => - array ( - 0 => 'Allow recharge reception',//'允许前台充值', - 1 => 'card_config_open', - 2 => 'Allow recharge reception',//'允许前台充值', - 3 => 'Set whether to allow the recharge reception. If reception of recharge is disabled, the background generation of the secret verification code for recharge will affect: Global -> Spam protection settings -> Set verification code',//'设置是否允许前台充值,关闭前台充值功能,不影响后台卡密的生成充值卡密验证码开关:全局->防灌水设置->验证码设置', - ), - ), - 166 => - array ( - 'index' => - array ( - 'Export recharge card supports export up to 10,000 secret data. For open XlS files use any available tools such as EXCEL.' => 'action=card&operation=manage',//'导出充值卡密最多支持 10000 条数据,导出的 .xls 文件可用 EXCEL 等工具打开。', - ), - 'text' => - array ( - 0 => 'Export recharge card supports export up to 10000 secret data. For open XlS files use any available tools such as EXCEL.',//'导出充值卡密最多支持 10000 条数据,导出的 .xls 文件可用 EXCEL 等工具打开。', - 1 => 'card_manage_tips', - 2 => 'Export recharge card supports export up to 10000 secret data. For open XlS files use any available tools such as EXCEL.',//'导出充值卡密最多支持 10000 条数据,导出的 .xls 文件可用 EXCEL 等工具打开。', - ), - ), - 167 => - array ( - 'index' => - array ( - 'If a card secret category removed, all the cards under it will be automatically included in the "Default Category"' => 'action=card&operation=type',//'卡密分类删除时,其下所有卡片将自动纳入“默认分类”', - ), - 'text' => - array ( - 0 => 'If a card secret category removed, all the cards under it will be automatically included in the "Default Category"',//'卡密分类删除时,其下所有卡片将自动纳入“默认分类”', - 1 => 'card_type_tips', - 2 => 'If a card secret category removed, all the cards under it will be automatically included in the "Default Category"',//'卡密分类删除时,其下所有卡片将自动纳入“默认分类”', - ), - ), - 168 => - array ( - 'index' => - array ( - 'When the card secret is generated, simple rules or small number of sheets to generate may cause actual generated number of sheets will less than the default number of sheets.' => 'admin.php?action=card&operation=make',//'生成卡密时,简单的规则或较小的生成张数可能导致实际生成张数小于预设生成张数。', - ), - 'text' => - array ( - 0 => 'When the card secret is generated, simple rules or small number of sheets to generate may cause actual generated number of sheets will less than the default number of sheets.',//'生成卡密时,简单的规则或较小的生成张数可能导致实际生成张数小于预设生成张数。', - 1 => 'card_make_tips', - 2 => 'When the card secret is generated, simple rules or small number of sheets to generate may cause actual generated number of sheets will less than the default number of sheets.',//'生成卡密时,简单的规则或较小的生成张数可能导致实际生成张数小于预设生成张数。', - 3 => 'card_make_rule', - 4 => 'Card secret generation rules',//'卡密生成规则', - 5 => '"@" represents any random characters in English, "#" Represents any random number, "*" stands for any English character or a digit. Card secret sample rules: "DZ2011@@@@#####*****". Note: I a rule is too small, it will cause the card secret security will be low or the secrets generated may be repeated. Too hard secret may result in duplicate cards or the generation failed. In order to avoid duplication of card, do not use any Chinese or other special characters in the Rules. The best is to use random digits, but not less than 8 digits.',//'"@"代表任意随机英文字符,"#"代表任意随机数字,"*"代表任意英文或数字卡密规则样本:"DZ2011@@@@@#####*****"注意:规则位数过小会造成卡密生成重复概率增大,过多的重复卡密会造成卡密生成终止卡密规则中不能带有中文及其他特殊符号为了避免卡密重复,随机位数最好不要少于8位', - 6 => 'card_type', - 7 => 'Cards secret type',//'卡密分类', - 8 => 'card_make_num', - 9 => 'Generate the number of sheets',//'生成张数', - 10 => 'Set the resulting number of card secret sheets',//'设置本次生成的卡密张数', - 11 => 'card_make_extcredits', - 12 => 'Credits amount and type',//'积分数额及类型', - 13 => 'Set the amount and type of points to generate secret recharge card',//'设置本次生成充值卡密可充得的积分数额与类型', - 14 => 'card_make_price', - 15 => 'The actual card price',//'实际面值', - 16 => 'Currency unit (USD), the actual price printed on the card, used to inform the user about the card real cost',//'单位(元),实际面值常用在卡片印刷,用作告知用户面值以衡量卡密价值', - 17 => 'card_make_cleardateline', - 18 => 'Valid until',//'有效期至', - 19 => 'By default the card is valid for one year. When a card valid time is set of 24:00 failed, the card status changed to "expired".',//'默认有效期为一年卡密会在设定时间的24:00失效,状态变更为“已过期”', - 20 => 'card_make_description', - 21 => 'Description',//'备注', - 22 => 'When the card description entered, it will appear in the "Build Log"',//'为本次生成的卡密添加备注说明,备注将显示在“生成记录”中', - ), - ), - 169 => - array ( - 'index' => - array ( - 'Rating management' => 'action=click',//'表态管理', - ), - 'text' => - array ( - 0 => 'Rating management',//'表态管理', - 1 => 'click_edit_tips', - 2 => 'This function is used to set the blog/images/articles rate actions. Please fill out the rating name and image file name, and the corresponding image files uploaded to the static/image/click/directory. Warning: The site operation for some times, way to change the icon order will affect the results of each type position before opening up to eight actions.',//'本功能用于设置日志/图片/文章表态动作,动作图片中请填写图片文件名,并将相应图片文件上传到 static/image/click/ 目录中。警告:站点运营一段时间后,中途改变各表情的顺序将会影响之前的表态结果每个类型最多启用8个动作', - ), - ), - 170 => - array ( - 'index' => - array ( - 'Collections' => 'action=collection',//'淘帖管理' - ), - 'text' => - array ( - 0 => 'Collections',//'淘帖管理', - 1 => 'collection_ctid', - 2 => 'Collection ID',//'淘专辑 ID', - 3 => 'collection_comment_message', - 4 => 'Comment text',//'评论内容', - 5 => 'collection_comment_cid', - 6 => 'Comment ID',//'评论 ID', - 7 => 'collection_comment_username', - 8 => 'Comment poster name',//'评论人用户名', - 9 => 'collection_comment_uid', - 10 => 'Comment poster UID',//'评论人 UID', - 11 => 'collection_comment_rate', - 12 => 'Rating is greater than',//'评分大于', - 13 => 'collection_comment_useip', - 14 => 'IP address',//'IP 地址', - 15 => 'threads_search_time', - 16 => 'Post Time range',//'发表时间范围', - 17 => 'Format is yyyy-mm-dd. Set to 0 for no restrictions',//'格式 yyyy-mm-dd,不限制请输入 0', - 18 => 'feed_search_perpage', - 19 => 'Threads per page',//'每页显示数', - 20 => 'collection_name', - 21 => 'Collection name',//'淘专辑名称', - 22 => 'collection_ctid', - 23 => 'Collection ID',//'淘专辑 ID', - 24 => 'collection_username', - 25 => 'Collection author',//'淘专辑作者', - 26 => 'collection_uid', - 27 => 'Collection author UID',//'淘专辑作者 UID', - 28 => 'feed_search_perpage', - 29 => 'Items per page',//'每页显示数', - 30 => 'collection_recommend_index_autonumber', - 31 => 'Number of recommended at Home',//'首页推荐数量', - 32 => 'If set, then this number of collections will be displayed at the Homepage. Set to "0" to disable recommended collections at the Homepage. When the manualy set amount of recommended collections does not meet the set quantities, the system will automatically recommend the collection.',//'设置后,会在首页推荐指定数量的热门专辑,设为“0”则关闭推荐功能。当手动推荐数量未达到设置的数量时,系统会自动推荐专辑。', - ), - ), - 171 => - array ( - 'index' => - array ( - 'Comment Management' => 'action=comment',//'留言管理', - 'Comments/Feedback' => 'action=comment',//'评论/留言', - ), - 'text' => - array ( - 0 => 'Comment Management » Comments/Feedback',//'留言管理 » 评论/留言', - 1 => 'comment_tips', - 2 => 'Batch message management is used to delete messages. Warning: When you click the Delete button in the search results page, the information will deletet directly!',//'批量留言管理用于删除留言使用。提醒:点击搜索结果页的删除按钮,将会直接删除相关信息!', - 3 => 'comment_search_detail', - 4 => 'Show detailed comment list',//'显示详细留言列表', - 5 => 'comment_search_perpage', - 6 => 'Items per page',//'每页显示数', - 7 => 'comment_idtype', - 8 => 'Comment Type',//'评论类型', - 9 => 'comment_search_id', - 10 => 'Comment ID',//'留言 ID', - 11 => 'Separate multiple comment ID by a comma ","',//'多留言 ID 中间请用半角逗号 "," 隔开', - 12 => 'comment_search_author', - 13 => 'Author name',//'评论者', - 14 => 'Separate multiple authors by comma ",".',//'多评论者名中间请用半角逗号 "," 隔开', - 15 => 'comment_search_authorid', - 16 => 'Author ID',//'评论者 ID', - 17 => 'Separate multiple UID with a comma ","',//'多评论者 ID 中间请用半角逗号 "," 隔开', - 18 => 'comment_search_uid', - 19 => 'Comment author UID',//'被评论者 UID', - 20 => 'Separate multiple UID with a comma ","',//'多 UID 中间请用半角逗号 "," 隔开', - 21 => 'comment_search_message', - 22 => 'Comment text',//'评论内容', - 23 => 'comment_search_ip', - 24 => 'Posted IP',//'发布IP', - 25 => 'Wildcard "*" may be used, i.e. "127.0 .*.*" (without quotes), use with caution!!!',//'通配符 "*" 如 "127.0.*.*"(不含引号),慎用!!!', - 26 => 'comment_search_time', - 27 => 'Comment time range',//'评论时间范围', - 28 => 'Format is yyyy-mm-dd',//'格式 yyyy-mm-dd', - ), - ), - 172 => - array ( - 'index' => - array ( - 'Comment Management' => 'action=comment',//'留言管理', - 'Article Comments' => 'action=comment&operation=article',//'文章评论' - 'Topic comments' => 'action=comment&operation=topic',//'专题评论' - ), - 'text' => - array ( - 0 => 'Comment Management » 文章评论 » 专题评论', - 1 => 'comment_', - 2 => '', - 3 => 'comment_search_perpage', - 4 => 'Items per page',//'每页显示数', - 5 => 'comment_search_message', - 6 => 'Comment text',//'评论内容', - 7 => 'comment_search_author', - 8 => 'Author name',//'评论者', - 9 => 'Separate multiple authors by comma ",".',//'多评论者名中间请用半角逗号 "," 隔开', - 10 => 'comment_search_authorid', - 11 => 'Author ID',//'评论者 ID', - 12 => 'Separate multiple UID with a comma ","',//'多评论者 ID 中间请用半角逗号 "," 隔开', - 13 => 'comment_search_time', - 14 => 'Comment time range',//'评论时间范围', - 15 => 'Format is yyyy-mm-dd',//'格式 yyyy-mm-dd', - ), - ), - 173 => - array ( - 'index' => - array ( - 'Update Statistics' => 'action=counter',//'更新统计' - ), - 'text' => - array ( - 0 => 'Update Statistics',//'更新统计', - 1 => 'counter_tips', - 2 => 'The following data is not normal. You can use this function to update the data to correct state. Please try to avoid the peak time of members access. - Each cycle update the number: Set the value in a reasonable range. Must be not too large, Otherwise it increase the server load pressure - ', - ), - ), - 174 => - array ( - 'index' => - array ( - 'Database' => 'action=db&operation=export',//'数据库', - 'Backup' => 'action=db&operation=export',//'备份', - ), - 'text' => - array ( - 0 => 'Database » Backup',//'数据库 » 备份', - 1 => 'db_export_type', - 2 => 'Backup type',//'数据备份类型', - 3 => 'db_export_method', - 4 => 'Backup Method',//'数据备份方式', - 5 => 'db_export_options', - 6 => 'Backup Options',//'数据备份选项', - 7 => 'db_export_options_extended_insert', - 8 => 'Use Extended Insert mode',//'使用扩展插入(Extended Insert)方式', - 9 => 'db_export_options_sql_compatible', - 10 => 'Add "Create table" statement',//'建表语句格式', - 11 => 'db_export_options_charset', - 12 => 'Force character set',//'强制字符集', - 13 => 'db_export_usehex', - 14 => 'Hexadecimal format',//'十六进制方式', - 15 => 'db_export_usezip', - 16 => 'Compress Backup file',//'压缩备份文件', - 17 => 'db_export_filename', - 18 => 'Backup file name',//'备份文件名', - 19 => 'db_import_tips', - 20 => 'When this function restored the data from backup, it will REWRITE all the curent data in a database. Before the recovery it is recommended to shut down the forum, and open the forum after completion of the restore. For restore data of the Discuz! version less than X2, go to the utility installation directory to find the restore.php file, and then upload file restore.php to the program folder under the data directory. For security reason, please be sure to remove the restore.php file after the successful data recovery. You can view the data backup at the backup log file details, delete outdated backups, and import the necessary backup.',//'本功能在恢复备份数据的同时,将全部覆盖原有数据,请确定恢复前已将论坛关闭,恢复全部完成后可以将论坛重新开放。恢复数据前请在Discuz! X2安装文件目录下utility文件夹内找到 restore.php 文件,然后将 restore.php 文件上传到程序文件夹data目录下。为了您站点的安全,成功恢复数据后请务必及时删除 restore.php 文件。您可以在数据备份记录处查看站点的备份文件的详细信息,删除过期的备份,并导入需要的备份。', - 21 => 'db_import', - 22 => 'Data Recovery',//'数据恢复', - ), - ), - 175 => - array ( - 'index' => - array ( - 'Database' => 'action=db&operation=export',//'数据库', - 'Upgrade' => 'action=db&operation=runquery',//'升级' - ), - 'text' => - array ( - 0 => 'Database » Upgrade',//'数据库 » 升级', - 1 => 'db_runquery_tips', - 2 => 'You can modify the /source/admincp/admincp_quickquery.php to add a functionality to expand common SQL operations. For security reasons, the Discuz! Backoffice by default disabled SQL statements executing directly, and you can only use the common SQL queries. If you wish to upgrade to write free custom SQL statements, you need to edit the config/config_global.php and set the $_config[admincp][runquery] variable to 1.',//'你可以通过修改 /source/admincp/admincp_quickquery.php 来添加常用 SQL 操作进行功能扩充。出于安全考虑,Discuz! 后台默认情况下禁止 SQL 语句直接执行,只能使用常用 SQL 当中的内容,如果你想自己随意书写 SQL 升级语句,需要将 config/config_global.php 当中的 $_config[admincp][runquery] 设置修改为 1。', - 3 => 'db_runquery_simply', - 4 => 'Upgrade common SQL statement',//'常用 SQL 升级语句', - 5 => 'db_runquery_sql', - 6 => 'Discuz! Database upgrade - Please paste in the following database upgrade statement',//'Discuz! 数据库升级 - 请将数据库升级语句粘贴在下面', - ), - ), - 176 => - array ( - 'index' => - array ( - 'Database' => 'action=db&operation=export',//'数据库', - 'Optimization' => 'action=db&operation=optimize',//'优化', - ), - 'text' => - array ( - 0 => 'Database » Optimization',//'数据库 » 优化', - 1 => 'db_optimize_tips', - 2 => 'Database optimization can remove the data file fragmentation, tightly packed records, and so improve reading and writing speed.',//'数据表优化可以去除数据文件中的碎片,使记录排列紧密,提高读写速度。', - ), - ), - 177 => - array ( - 'index' => - array ( - 'Region settings' => 'action=district',//'地区设置', - ), - 'text' => - array ( - 0 => 'Region settings',//'地区设置', - 1 => 'district_tips', - 2 => 'You can edit ar add the regional data. Edit or delete operation need to click "submit" button for take effect.',//'你可以自己编辑地区数据添加,编辑或删除操作后需要点击“提交”按钮才生效', - ), - ), - 178 => - array ( - 'index' => - array ( - 'Doings Management' => 'action=doing',//'记录管理' - ), - 'text' => - array ( - 0 => 'Doings Management',//'记录管理', - 1 => 'doing_tips', - 2 => 'Batch doing management is used to delete doings along with the corresponding replies. Keyword qualifier {x} can be used to ignored text between two adjacent characters, here "x" is a number of ignored characters. I.e. "a{1}s{2}s" (without the quotes) can search for "ass" and "axsxs" and "axsxxs" and so on. Warning: Click on the Delete button in the search results will delete the information directly!',//'批量记录信息管理用于删除记录使用,并且连同对应的回复一同删除。关键字可以使用限定符 {x} 以限定相邻两字符间可忽略的文字,x 是忽略字符的个数,如 "a{1}s{2}s"(不含引号) 可以搜索到 "ass" 也可搜索到 "axsxs" 和 "axsxxs" 等等。提醒:点击搜索结果页的删除按钮,将会直接删除相关信息!', - ), - ), - 179 => - array ( - 'index' => - array ( - 'Doings Management' => 'action=doing',//'记录管理', - 'Search' => 'action=doing&search=true',//'搜索', - ), - 'text' => - array ( - 0 => 'Doings Management » Search',//'记录管理 » 搜索', - 1 => 'doing_search_detail', - 2 => 'Show detailed doing list',//'显示详细记录列表', - 3 => 'doing_search_perpage', - 4 => 'Items per page',//'每页显示数', - 5 => 'doing_search_user', - 6 => 'Doing author name',//'发表记录用户名', - 7 => 'Separate multiple user names by a comma ","',//'多用户名中间请用半角逗号 "," 隔开', - 8 => 'doing_search_ip', - 9 => 'Published doing IP ',//'发表记录 IP ', - 10 => 'Wildcard "*" may be used, i.e. "127.0 .*.*" (without quotes), use with caution!!!',//'通配符 "*" 如 "127.0.*.*"(不含引号),慎用!!!', - 11 => 'doing_search_keyword', - 12 => 'Keywords',//'内容关键字', - 13 => 'Separate multiple keywords with a comma ",", keywords qualifier {x} can be used.',//'多关键字中间请用半角逗号 "," 隔开,关键词可以用限定符 {x}', - 14 => 'doing_search_lengthlimit', - 15 => 'Minimal content length',//'内容最小长度', - 16 => 'This feature will add the server loading',//'本功能会加重服务器负担', - 17 => 'doing_search_time', - 18 => 'Post Time range',//'发表时间范围', - 19 => 'Format is yyyy-mm-dd',//'格式 yyyy-mm-dd', - ), - ), - 180 => - array ( - 'index' => - array ( - 'Domain settings' => 'action=domain',//'域名设置', - 'Application Domain' => 'domain&operation=app',//'应用域名', - ), - 'text' => - array ( - 0 => 'Domain settings » Application Domain',//'域名设置 » 应用域名', - 1 => 'setting_domain_app_tips', - 2 => 'Respective binding domain can not be the same, Domain not need to add "http:// at the beginning and "/" at the end, For example: portal.comsenz.com can be opened as a domain name, Need to configure the default domain name, Otherwise it will create more problems when opening the entrance when the multi-domain. Please Modify the cookiedomain value in config/config_global.php to set the cookie scope.',//'各自绑定的域名不能相同,域名不需要添加“http://”,也不要以“/”结尾,例如:portal.comsenz.com任意开启一项域名,需要配置默认域名,否则会造成多入口问题当开启多域名时,请在 config/config_global.php 中修改 cookiedomain 值来设置 cookie 作用域', - ), - ), - 181 => - array ( - 'index' => - array ( - 'Domain settings' => 'action=domain',//'域名设置', - 'Set the root domain name' => 'domain&operation=root',//'根域名设置', - ), - 'text' => - array ( - 0 => 'Domain settings » Set the root domain name',//'域名设置 » 根域名设置', - 1 => 'setting_domain_root_tips', - 2 => 'For personal space, Group, forum, topic, portal can be set a subdomain from the root domain name. Example: for the user application at XXX.comsenz.com, Fill the root domain: comsenz.com for personal space, groups After setting the two domain, the root after, Also need to open the basic settings in the corresponding subdomain switch, Users can apply the appropriate place to bind to subdomain name, Also limited by the length of the user group category enable subdomain name if it is bound to the category, Need to configure their own in the environment bind operation related to the different way is not recommended to change the root domain to the same root domain',//'可以为个人空间、群组、版块、专题、频道设置一个二级域名的根域名。例:用户申请XXX.comsenz.com,根域名填:comsenz.com个人空间、群组设置完二级域名的根后,还需要在基本设置中开启相应的二级域名开关,用户才能在相应的地方申请绑定二级域名,同时受限于用户组的二级域名长度频道启用二级域名如果是绑定目录的,需要自已在环境中配置相关的绑定操作不建议中途将不同的根域变更为相同的根域', - ), - ), - 182 => - array ( - 'index' => - array ( - 'Domain settings' => 'action=domain',//'域名设置', - 'Basic settings' => 'domain&operation=base',//'基本设置', - ), - 'text' => - array ( - 0 => 'Domain settings » Base settings',//'域名设置 » 基本设置', - 1 => 'setting_domain_base_tips', - 2 => 'After the subdomain name is reserved, no one can use this subdomain name for application or personal space. After the group set to subdomain name Need to set the group root domain settings, Home of the root domain',//'保留二级域名设置后所有人都无法申请或使用该域名个人空间、群组的二级域名开启后需要到根域名设置中设置群组、家园的根域名', - 3 => 'setting_domain_allow_space', - 4 => 'Allow Space on subdomain name',//'开启个人空间二级域名', - 5 => 'If is turned on, you need to set the root domain name, subdomain name and user group open only after the length of domain name applications',//'开启后需在设置根域名、以及用户组域名长度后方能开启域名申请', - 6 => 'setting_domain_allow_group', - 7 => 'Enable group in subdomain names',//'开启群组二级域名', - 8 => 'If is turned on, youneed to set the root domain name, subdomain name and user group open only after the length of domain name applications',//'开启后需在设置根域名、以及用户组域名长度后方能开启域名申请', - 9 => 'setting_domain_hold_domain', - 10 => 'Reserved subdomain names',//'保留二级域名', - 11 => 'Separate multiple subdomains by "|", you can use the wildcard "*".',//'多个之间用 | 隔开,可以使用通配符* ', - ), - ), - 183 => - array ( - 'index' => - array ( - 'E-Commerce Settings' => 'action=setting&operation=ec',//'电子商务', - 'Alipay' => 'action=ec&operation=alipay',//'支付宝', - ), - 'text' => - array ( - 0 => 'E-Commerce » Alipay',//'电子商务 » 支付宝', - 1 => 'ec_alipay_tips', - 2 => '"Alipay" (http://www.alipay.com) is China leading online payment platform, the world best creation of Alibaba B2B companies for Discuz! Offer credits to purchase and forums B2C, C2C trading platform. You only need a simple setup, you can make the forum content and popularity, in addition to advertising revenue really become an important source of profits outside, in order to achieve large-scale operation forum. As it involves cash transactions, in order to avoid improper operation caused financial losses, please use Alipay points at the beginning of the transaction function (does not include Alipay button function), be sure to carefully read the "user manual" in the e-commerce part of when fully understood and accepted by the relevant recognition processes and then use the relevant settings. You can set up to allow users to pay by way of cash online, recharge their account transaction points for the purchase of post content, the user group permission to purchase, transfer points or groups of users to upgrade capabilities. Alipay points transaction capabilities, need to "set points" in the opening trade integration, and sets the corresponding integral strategy to meet the needs of different occasions. Be sure to set your collection Alipay account, otherwise payment will result in the user real-time integration can not be credited into account, resulting in a large number of required manual processing of order information. In addition Discuz! Official website or official notice outside the forum, Discuz! Provide Alipay 1.5% service charge per transaction fee. Please notice the latest business-related concerns, policies, or process changes, adjustments to Discuz! Official Forum website or the information shall prevail. You use Alipay service is built on a completely voluntary basis, in addition Discuz! Malicious due to the subjective factors other than capital losses, Beijing Sing-ups Technology Co., Ltd. does not use this feature for any loss resulting from liability. Email Alipay business consulting for the 6688@taobao.com; Alipay customer service telephone number is +86-0571-88156688.',//'“支付宝”(http://www.alipay.com)是中国领先的网上支付平台,由全球最佳 B2B 公司阿里巴巴公司创建,为 Discuz! 用户提供积分购买及论坛 B2C、C2C 交易平台。你只需进行简单的设置,即可使论坛内容和人气,真成为除广告收入外的重要利润来源,从而实现论坛的规模化经营。由于涉及现金交易,为避免因操作不当而造成的资金损失,请在开始使用支付宝积分交易功能(不包含支付宝按钮功能)前,务必仔细阅读《用户使用说明书》中有关电子商务的部分,当确认完全理解和接受相关流程及使用方法后再进行相关设置。你可以设置允许用户通过现金在线支付的方式,为其交易积分账户充值,用于购买帖子内容、购买用户组权限、积分转账或用户组升级等功能。支付宝积分交易功能,需在“积分设置”中启用交易积分,并同时设置相应的积分策略以满足不同场合的需要。请务必正确设置你的收款支付宝账号,否则将造成用户付款后积分无法实时到账,造成大量需要人工处理的订单信息。除 Discuz! 官方网站或官方论坛另行通知以外,Discuz! 提供的支付宝支付服务每笔交易收取 1.5% 的手续费。请及时关注相关业务的最新通知,各项政策或流程的变更、调整,以 Discuz! 官方网站或官方论坛提供的信息为准。你使用支付宝服务是建立在完全自愿的基础上,除 Discuz! 因主观恶意的因素造成的资金损失以外,北京康盛新创科技有限责任公司不对因使用此功能造成的任何损失承担责任。支付宝业务咨询 Email 为 6688@taobao.com;支付宝客户服务电话为 +86-0571-88156688。', - 3 => 'ec_alipay', - 4 => 'Alipay settings',//'支付宝设置', - 5 => 'ec_alipay_account', - 6 => 'Alipay account receivable',//'收款支付宝账号', - 7 => 'If you open a conversion or transaction capabilities, please fill out a real and effective Alipay account for the user to receive cash payments related to exchange transactions in points. Such as account number is invalid or incorrect security code, will result in the user not properly paid for their accounts automatically recharge points, or points of its normal trading account automatically recharge, or carry out normal transactions. If you do not Alipay account, please click here to register',//'如果开启兑换或交易功能,请填写真实有效的支付宝账号,用于收取用户以现金兑换交易积分的相关款项。如账号无效或安全码有误,将导致用户支付后无法正确对其积分账户自动充值,或进行正常的交易对其积分账户自动充值,或进行正常的交易。如你没有支付宝帐号,请点击这里注册', - 8 => 'ec_alipay_check', - 9 => 'Payment test',//'支付测试', - 10 => 'This test will simulate 0.01 yuan order submitted for testing, if the payment occurs after the submission of a successful, interface shows your site Alipay function properly',//'本测试将模拟提交 1 元人民币的订单进行测试,如果提交后成功出现付款界面,说明你站点的支付宝功能可以正常使用', - 11 => 'ec_contract', - 12 => 'Alipay subscriber settings',//'支付宝签约用户设置', - 13 => 'ec_alipay_partner', - 14 => 'Partner id (PID)',//'合作者身份 (PID)', - 15 => 'Alipay Subscriber Please fill in here your Alipay partner assigned to the identity of the subscriber fee paid by you and treasure the official signing agreement shall prevail. If you have not yet signed, please click here to sign; when signing the contract if the template in the conflict, please consult 0571-88158090',//'支付宝签约用户请在此处填写支付宝分配给您的合作者身份,签约用户的手续费按照您与支付宝官方的签约协议为准。如果您还未签约,请点击这里签约;如果已签约,请点击这里获取PID、Key;如果在签约时出现合同模板冲突,请咨询0571-88158090', - 16 => 'ec_alipay_securitycode', - 17 => 'Transaction security check code (key)',//'交易安全校验码 (key)', - 18 => 'Alipay Users can sign here assigned to completing your transaction security Alipay check code, this code you can check to pay for treasure at the official check business services',//'支付宝签约用户可以在此处填写支付宝分配给你的交易安全校验码,此校验码你可以到支付宝官方的商家服务功能处查看', - 19 => 'ec_alipay_creditdirectpay', - 20 => 'With a direct real-time payment interfaces',//'使用纯即时到帐接口', - 21 => 'If you sign the agreement contains pure instant arrive interface (not the standard dual-interface) can choose this, so that integration can only recharge Instant Credit Payment',//'如果你的签约协议中包含纯即时到帐接口(不是标准双接口)可以选择此项,让积分充值只能使用即时到账方式付款', - ), - ), - 184 => - array ( - 'index' => - array ( - 'E-Commerce Settings' => 'action=setting&operation=ec',//'电子商务', - 'Tenpay' => 'action=ec&operation=tenpay',//'财付通' - ), - 'text' => - array ( - 0 => 'E-Commerce » TenPay',//'电子商务 » 财付通', - 1 => 'ec_tenpay_tips', - 2 => '"TenPay" (http://www.tenpay.com) is the founder of leading in China Tencent online payment platform, Discuz! Offer credits to purchase trading platform. To enable integration recharge Prompt arrival, please use the TenPay Instant Credit Enterprise Edition and open trade; otherwise, only need to open an "intermediary secured transactions" button. As it involves cash transactions, in order to avoid improper operation caused financial losses, please use the start transaction function TenPay points (does not include money paid through the button function), be sure to read the "user manual" in the e-commerce part, when fully understood and accepted by the relevant recognition processes and then use the relevant settings. You can set up to allow users to pay by way of cash online, recharge their account transaction points for the purchase of post content, the user group permission to purchase, transfer points or groups of users to upgrade capabilities. TenPay integral transaction capabilities, need to "set points" in the opening trade integration, and sets the corresponding integral strategy to meet the needs of different occasions. Be sure to set your collection TenPay account, otherwise payment will result in the user real-time integration can not be credited into account, resulting in a large number of required manual processing of order information. In addition Discuz! Official website or official notice outside the forum, Discuz! Provided TenPay payment service charge of 1% per transaction fee. Please notice the latest business-related concerns, policies, or process changes, adjustments to Discuz! Official Forum website or the information shall prevail. TenPay service you use is based entirely on a voluntary basis, in addition Discuz! Because of subjective bad faith of the financial losses caused by factors outside the Beijing Sing-ups Technology Co., Ltd. does not use this feature for any loss resulting from liability. TenPay Service Hotline :0755 -83762288-2 (24 hour service hotline)',//'“财付通”(http://www.tenpay.com)是腾讯公司创办的中国领先的在线支付平台,为 Discuz! 用户提供积分购买交易平台。如需启用积分充值即时到账,请使用财付通企业版并开通即时到账交易;否则,只需要开通“中介担保交易”即可。 -//由于涉及现金交易,为避免因操作不当而造成的资金损失,请在开始使用财付通积分交易功能(不包含财付通按钮功能)前,务必仔细阅读《用户使用说明书》中有关电子商务的部分,当确认完全理解和接受相关流程及使用方法后再进行相关设置。你可以设置允许用户通过现金在线支付的方式,为其交易积分账户充值,用于购买帖子内容、购买用户组权限、积分转账或用户组升级等功能。财付通积分交易功能,需在“积分设置”中启用交易积分,并同时设置相应的积分策略以满足不同场合的需要。请务必正确设置你的收款财付通账号,否则将造成用户付款后积分无法实时到账,造成大量需要人工处理的订单信息。除 Discuz! 官方网站或官方论坛另行通知以外,Discuz! 提供的财付通支付服务每笔交易收取 1% 的手续费。请及时关注相关业务的最新通知,各项政策或流程的变更、调整,以 Discuz! 官方网站或官方论坛提供的信息为准。你使用财付通服务是建立在完全自愿的基础上,除 Discuz! 因主观恶意的因素造成的资金损失以外,北京康盛新创科技有限责任公司不对因使用此功能造成的任何损失承担责任。财付通服务热线:0755-83762288-2(全天24小时服务热线)', - 3 => 'ec_tenpay_opentrans', - 4 => 'Secured transactions settings',//'担保交易设置', - 5 => 'ec_tenpay_opentrans_chnid', - 6 => 'Secured transactions receivable Account',//'担保交易收款账号', - 7 => 'Opened a secured transaction rights TenPay account, if you do not have permission to open secured transactions, please click here to apply',//'开通了担保交易权限的财付通账号,如你没有开通担保交易权限,请点击这里申请', - 8 => 'ec_tenpay_opentrans_key', - 9 => 'Secured transaction account key',//'担保交易账号密钥', - 10 => 'ec_tenpay', - 11 => 'Prompt arrival settings',//'即时到账设置', - 12 => 'ec_tenpay_bargainor', - 13 => 'TenPay Instant Credit Merchant No.',//'财付通即时到账商户号', - 14 => 'If you open the Exchange functionality, please fill out a real and effective TenPay Enterprise account for the user to receive cash payments related to exchange transactions in points. Such as account number is invalid or the wrong key will result in the user not properly paid for their points account automatically recharge. If you do not TenPay account, please click here to register',//'如果开启兑换功能,请填写真实有效的财付通企业版账号,用于收取用户以现金兑换交易积分的相关款项。如账号无效或密钥有误,将导致用户支付后无法正确对其积分账户自动充值。如你没有财付通帐号,请点击这里注册', - 15 => 'ec_tenpay_key', - 16 => 'Instant Credit Key',//'即时到账密钥', - 17 => 'The corresponding number key with the business, from a length of 32 uppercase and lowercase letters, numbers, can get back in TenPay',//'与商户号对应的密钥,由长度为32的大小写字母、数字组成,可在财付通后台获取', - 18 => 'ec_tenpay_check', - 19 => 'Payment test',//'支付测试', - 20 => 'This test will simulate one yuan of orders submitted for testing, if the payment occurs after the submission of a successful interface shows your site TenPay function properly',//'本测试将模拟提交 1 元人民币的订单进行测试,如果提交后成功出现付款界面,说明你站点的财付通功能可以正常使用', - ), - ), - 185 => - array ( - 'index' => - array ( - 'E-Commerce Settings' => 'action=setting&operation=ec',//'电子商务', - 'Points recharge orders' => 'action=ec&operation=orders',//'积分充值订单', - ), - 'text' => - array ( - 0 => 'E-Commerce » Points recharge orders',//'电子商务 » 积分充值订单', - 1 => 'ec_orders_tips', - 2 => 'Please start using Alipay integral transaction order management functionality (not included Alipay button function), be sure to read the "user manual" in the part on e-commerce, when fully understood and accepted by the relevant recognition processes and then to use related operations. If your users are not automatically reflected in their online payment accounts recharge points, probably due to your PayPal account to pay the notification interface is set incorrectly, or your website can not be Alipay notice due to normal system access. You can log Alipay transaction management interface, by comparing the details of the transactions related to manually confirm order. Order Information for 60 days, so you can check and manage the orders within 60 days of information, information on more than 60 days will be automatically deleted.',//'请在开始使用支付宝积分交易订单管理功能(不包含支付宝按钮功能)前,务必仔细阅读《用户使用说明书》中有关电子商务的部分,当确认完全理解和接受相关流程及使用方法后再进行相关操作。如果你的用户反映在线支付后无法自动为其积分账户充值,可能是由于你的支付宝账户的通知接口设置有误,或你的网站无法被支付宝通知系统正常访问所致。你可以登录支付宝交易管理界面,通过比对交易详情人工确认相关订单。订单信息保留 60 天,因此你只能查询和管理 60 天之内的订单信息,超过 60 天的信息将被自动删除。', - 3 => 'ec_orders_search', - 4 => 'Points recharge order search',//'积分充值订单搜索', - 5 => 'ec_orders_search_status', - 6 => 'Order Status',//'订单状态', - 7 => 'ec_orders_search_id', - 8 => 'order No.',//'订单号', - 9 => 'ec_orders_search_users', - 10 => 'Payment username (separete multiple user names with a comma ",")',//'付款用户名(多个用户名间请用半角逗号 "," 隔开)', - 11 => 'ec_orders_search_buyer', - 12 => 'Payment User Alipay account',//'付款用户的支付宝账号', - 13 => 'ec_orders_search_admin', - 14 => 'Manually fill one administrator',//'人工补单管理员', - 15 => 'ec_orders_search_submit_date', - 16 => 'Order submission time range (yyyy-mm-dd)',//'订单提交时间范围(yyyy-mm-dd)', - 17 => 'ec_orders_search_confirm_date', - 18 => 'Order confirmation time range (format yyyy-mm-dd)',//'订单确认时间范围(格式 yyyy-mm-dd)', - ), - ), - 186 => - array ( - 'index' => - array ( - 'E-Commerce Settings' => 'action=setting&operation=ec',//'电子商务', - 'Credit Rules' => 'action=ec&operation=credit',//'诚信规则', - ), - 'text' => - array ( - 0 => 'E-Commerce » Credit Rules',//'电子商务 » 诚信规则', - 1 => 'ec_credit_tips', - 2 => 'You can modify images in static/image/traderank/ directory, and design yourr own site style icon',//'你可以修改 static/image/traderank/ 目录下的图片,设计适合自己站点风格的图标', - 3 => 'ec_credit', - 4 => 'Credit Rules',//'诚信规则', - 5 => 'ec_credit_maxcreditspermonth', - 6 => 'Maximum points per month between buyers and sellers of the same evaluation',//'每个自然月中,相同买家和卖家之间的评价计分最大值', - 7 => 'At the transaction create time calculation, beyond the points scope of the rules of the evaluation will not be points',//'以交易创建的时间计算,超出计分规则范围的评价将不计分', - ), - ), - 187 => - array ( - 'index' => - array ( - 'Feed Management' => 'action=feed',//'动态管理', - ), - 'text' => - array ( - 0 => 'Feed Management',//'动态管理', - 1 => 'feed_global_title', - 2 => 'Feed title',//'动态标题', - 3 => 'Html supported, such as: <b>bold</b> and <font color=red>color</font>',//'支持html,例如:加粗<b></b>,变色 <font color=red></font>', - 4 => 'feed_global_body_general', - 5 => 'Feed content',//'动态备注', - 6 => 'Html supported',//'支持html', - 7 => 'feed_global_image_1', - 8 => 'Image 1 address',//''第1张图片地址', - 9 => 'feed_global_image_1_link', - 10 => 'Image 1 link URL',//'第1张图片链接', - 11 => 'feed_global_image_2', - 12 => 'Image 2 address',//'第2张图片地址', - 13 => 'feed_global_image_2_link', - 14 => 'Image 2 link URL',//'第2张图片链接', - 15 => 'feed_global_image_3', - 16 => 'Image 3 address',//'第3张图片地址', - 17 => 'feed_global_image_3_link', - 18 => 'Image 3 link URL',//'第3张图片链接', - 19 => 'feed_global_image_4', - 20 => 'Image 4 address',//'第4张图片地址', - 21 => 'feed_global_image_4_link', - 22 => 'Image 4 link URL',//'第4张图片链接', - 23 => 'feed_global_dateline', - 24 => 'Publish time',//'发布时间', - 25 => '(Format: yyyy-mm-dd H: i) You can fill out a future date and time, then this dynamic in the future before the arrival date, has been shown in the first',//'(格式:yyyy-mm-dd H:i)你可以填写一个将来的日期和时间,那么这条动态会在这个将来的日期到来之前,一直显示在第一位', - 26 => 'feed_global_hot', - 27 => 'Feed Hot value',//'动态热度', - ), - ), - 188 => - array ( - 'index' => - array ( - 'Forums' => 'action=forums',//'版块管理', - 'Edit Forum' => 'action=forums&operation=edit',//'编辑版块', - ), - 'text' => - array ( - 0 => 'Forums » Edit Forum',//'版块管理 » 编辑版块', - 1 => 'forums_edit_basic_cat_name', - 2 => 'Category name',//'分区名称', - 3 => 'forums_edit_basic_cat_name_color', - 4 => 'Category Name Color',//'分区名称颜色', - 5 => 'forums_edit_basic_cat_style', - 6 => 'Category style scheme (will affect under the category sub-forums)',//'分区风格方案(会影响该分区下的子版块)', - 7 => 'Use the style scheme for visits into the forum category and sub-Forums (sub-forums can have a different from the category style, and can be set separately)',//'访问者进入分区版块及子版块(子版块不同于分区风格,可单独设置)所使用的风格方案', - 8 => 'forums_edit_extend_forum_horizontal', - 9 => 'Forum Index Lower horizontal sub-forums',//'论坛首页下级子版块横排', - 10 => 'When Forum Home set into the horizontal and number of lower sub-forums per line set to 0, the arranged according to the normal scheme',//'设置进入论坛首页时下级子版块横排时每行版块数量,如果设置为 0,则按正常方式排列', - 11 => 'forums_edit_extend_cat_sub_horizontal', - 12 => 'Show Category lower sub-forums horizontally',//'分区下级子版块横排', - 13 => 'When the category horizontal number of lower sub-forums per line set to 0, the category arranged according to the normal scheme',//'设置进入分区时,下级子版块横排时每行版块数量,如果设置为 0,则按正常方式排列', - 14 => 'forums_edit_extend_domain', - 15 => 'Forum parked domain',//'绑定域名', - 16 => 'After setting the root domain, where domain bound to take effect, set the root domain name',//'根域名设置完后,此处域名绑定才能生效,设置根域名', - 17 => 'forums_edit_extend_domain', - 18 => 'Forum parked domain',//'绑定域名', - 19 => 'After setting the root domain, where domain bound to take effect, set the root domain name',//'根域名设置完后,此处域名绑定才能生效,设置根域名', - 20 => 'forums_cat_display', - 21 => 'Display category',//'显示分区', - 22 => 'If select "No", the category will be temporarily hidden, but users can still access this area through the Forum URL',//'选择“否”将暂时将分区隐藏不显示,但分区内容仍将保留,且用户仍可通过 URL 访问到此分区及其版块', - 23 => 'forums_edit_basic_shownav', - 24 => 'Show in the navigation',//'在导航显示', - 25 => 'Choose whether to display in the main navigation',//'选择是否在主导航中显示', - 26 => 'setting_seo_forum_tips', - 27 => '{bbname} = Site Name (Applications: All positions); {forum} = current forum name (Application: In addition to home); {fup} = parent forum name (Application: Sub-forum Topic List page and post content page); {fgroup} = Category name (Application: In addition to outside home); {subject} = Topic title (Application: post content pages); {summary} = Topic summary (Application: post content pages); {tags} = Topic tags (Application: post content pages); {page} = Sub page (Application: Topic List pages, post contents pages)',//'站点名称 {bbname}(应用范围:所有位置)当前版块名称 {forum}(应用范围:除首页以外)一级版块名称 {fup}(应用范围:子版块主题列表页和帖子内容页)分区名称 {fgroup}(应用范围:除首页以外)帖子标题 {subject}(应用范围:帖子内容页)主题摘要 {summary}(应用范围:帖子内容页)主题标签 {tags}(应用范围:帖子内容页)分页数 {page}(应用范围:主题列表页、帖子内容页)', - 28 => 'forums_edit_basic_seotitle', - 29 => 'title', - 30 => 'forums_edit_basic_keyword', - 31 => 'keywords', - 29 => 'SEO keywords used in the meta keyword tag. Separate multiple keywords with a comma ","',//'keywords用于搜索引擎优化,放在 meta 的 keyword 标签中,多个关键字间请用半角逗号 "," 隔开', - 33 => 'forums_edit_basic_seodescription', - 34 => 'description', - 35 => 'SEO description used in meta description tag.',//'description用于搜索引擎优化,放在 meta 的 description 标签中', - ), - ), - 189 => - array ( - 'index' => - array ( - 'Forums' => 'action=forums',//'版块管理' - 'Basic settings' => 'action=forums&operation=edit&anchor=basic',//'基本设置' - ), - 'text' => - array ( - 0 => 'Forums » Base settings',//'版块管理 » 基本设置', - 1 => 'forums_edit_tips', - 2 => 'The following settings are not inherited, that is effective only to the current forum will not impact on the lower sub-forums.',//'以下设置没有继承性,即仅对当前版块有效,不会对下级子版块产生影响。', - 3 => 'forums_edit_basic', - 4 => 'Basic settings',//'基本设置', - 5 => 'forums_edit_basic_name', - 6 => 'Forum Name',//'版块名称', - 7 => 'forums_edit_base_name_color', - 8 => 'Forum name color',//'版块名称颜色', - 9 => 'forums_edit_basic_icon', - 10 => 'Forum Icon',//'版块图标', - 11 => 'forums_edit_basic_icon_width', - 12 => 'Icon width, px',//'图标宽度 (单位: px)', - 13 => 'forums_edit_basic_banner', - 14 => 'Top banner',//'顶部图片', - 15 => 'forums_edit_basic_display', - 16 => 'Display Forum',//'显示版块', - 17 => 'Select the "invisible" for temporarily hide the forum in the list, but the forum content will remain, and the user can still directly access to this forum by the URL with a fid',//'选择“不显示”将暂时将版块隐藏不显示,但版块内容仍将保留,且用户仍可通过直接提供带有 fid 的 URL 访问到此版块', - 18 => 'forums_edit_basic_shownav', - 19 => 'Show in the navigation',//'在导航显示', - 20 => 'Choose whether to display in the main navigation',//'选择是否在主导航中显示', - 21 => 'forums_edit_basic_up', - 22 => 'Parent forum',//'上级版块', - 23 => 'Parent Forum or category for this Forum ',//'本版块的上级版块或分类', - 24 => 'forums_edit_basic_redirect', - 25 => 'Forum redirect URL',//'版块转向 URL', - 26 => 'If you set this URL (such as http://www.discuz.com), the user click to the Forum will be redirected to this URL. For not use this feature left it blank.',//'如果设置转向 URL(例如 http://www.discuz.com),用户点击本分版块将进入转向中设置的 URL。一旦设定将无法进入版块页面,请确认是否需要使用此功能,留空为不设置转向 URL', - 27 => 'forums_edit_basic_description', - 28 => 'Forum description',//'版块简介', - 29 => 'Enter a brief description of the Forum, that will be shown below the forum name.
    BB-Code supported.',//'将显示于版块名称的下面,提供对本版块的简短描述支持内置的 Discuz! 代码', - 30 => 'forums_edit_basic_rules', - 31 => 'Forum Rules',//'本版块规则', - 32 => 'Show a list of pages related to the current Forum rules, leave blank to not show, BB-Code supported.',//'显示于主题列表页的当前版块规则,留空为不显示支持内置的 Discuz! 代码', - 33 => 'forums_edit_basic_keys', - 34 => 'Forum Alias',//'绑定别名', - 35 => 'When the site is used static URL, the forum alias can be used to access this forum. I.e. Ii an alias set to "developer", then the forum URL will changed to "http://127.0.0.1/Discuz!X/tools/language_template/forum-developer-1.html". Note: The alias can contain only letters or numbers, and can not be pure digital.',//'绑定后当站点开启 URL 静态化后可通过别名访问此版块,如设置别名为“developer”那么版块的 URL 将变为“http://127.0.0.1/Discuz!X/tools/language_template/forum-developer-1.html”。注意:别名中只能包含字母或数字,且不能是纯数字', - 36 => 'forums_edit_extend_domain', - 37 => 'Forum parked domain',//'绑定域名', - 38 => 'After setting the root domain, where domain bound to take effect, set the root domain name',//'根域名设置完后,此处域名绑定才能生效,设置根域名', - 39 => 'forums_edit_extend_domain', - 40 => 'Forum parked domain',//'绑定域名', - 41 => 'After setting the root domain, where domain bound to take effect, set the root domain name',//'根域名设置完后,此处域名绑定才能生效,设置根域名', - 42 => 'setting_seo_forum_tips', - 43 => '{bbname} = Site Name (Applications: All positions); {forum} = current forum name (Application: In addition to home); {fup} = parent forum name (Application: Sub-forum Topic List page and post content page); {fgroup} = Category name (Application: In addition to outside home); {subject} = Topic title (Application: post content pages); {summary} = Topic summary (Application: post content pages); {tags} = Topic tags (Application: post content pages); {page} = Sub page (Application: Topic List pages, post contents pages)',//'站点名称 {bbname}(应用范围:所有位置)当前版块名称 {forum}(应用范围:除首页以外)一级版块名称 {fup}(应用范围:子版块主题列表页和帖子内容页)分区名称 {fgroup}(应用范围:除首页以外)帖子标题 {subject}(应用范围:帖子内容页)主题摘要 {summary}(应用范围:帖子内容页)主题标签 {tags}(应用范围:帖子内容页)分页数 {page}(应用范围:主题列表页、帖子内容页)', - 44 => 'forums_edit_basic_seotitle', - 45 => 'title', - 46 => 'forums_edit_basic_keyword', - 47 => 'keywords', - 48 => 'SEO keywords used in the meta keyword tag. Separate multiple keywords with a comma ","',//'keywords用于搜索引擎优化,放在 meta 的 keyword 标签中,多个关键字间请用半角逗号 "," 隔开', - 49 => 'forums_edit_basic_seodescription', - 50 => 'description', - 51 => 'SEO description used in meta description tag.',//'description用于搜索引擎优化,放在 meta 的 description 标签中', - ), - ), - 190 => - array ( - 'index' => - array ( - 'Forums' => 'action=forums',//'版块管理', - 'Extended settings' => 'action=forums&operation=edit&anchor=extend',//'扩展设置', - ), - 'text' => - array ( - 0 => 'Forums » Extended settings',//'版块管理 » 扩展设置', - 1 => 'forums_edit_tips', - 2 => 'The following settings are not inherited, that is effective only to the current forum will not impact on the lower sub-forums.',//'以下设置没有继承性,即仅对当前版块有效,不会对下级子版块产生影响。', - 3 => 'forums_edit_extend', - 4 => 'Extended settings',//'扩展设置', - 5 => 'forums_edit_extend_style', - 6 => 'Forum style',//'风格方案', - 7 => 'Enter the style used by visitors in this Forum',//'访问者进入本版块所使用的风格方案', - 8 => 'forums_edit_extend_sub_horizontal', - 9 => 'Show lower sub-forums horizontally',//'论坛版块下级子版块横排', - 10 => 'When the forum horizontal number of lower sub-forums per line set to 0, the category arranged according to the normal scheme',//'设置进入论坛版块时下级子版块横排时每行版块数量,如果设置为 0,则按正常方式排列', - 11 => 'forums_edit_extend_subforumsindex', - 12 => 'Show sub-Forums in the Forum Home',//'本版块在首页显示下级子版块', - 13 => 'Forum Home at the bottom of the list shows the forum name and the lower sub-Forum links (if present). Note: This feature does not consider the child forums permissions for a visitor. Select "Default" to use global settings.',//'首页版块列表中在版块简介下方显示下级子版块名字和链接(如果存在的话)。注意: 本功能不考虑子版块特殊浏览权限的情况,只要存在即会被显示出来。选择“默认”,将使用全局设置', - 14 => 'forums_edit_extend_simple', - 15 => 'Show only lower-level sub-Forums',//'只显示下级子版块', - 16 => 'Select "Yes" for show forums similar to categories, without post buttons and so on.',//'选择“是”将不显示本版块的主题列表、发帖按钮等等,类似于一个分类', - 17 => 'forums_edit_extend_sub_horizontal', - 18 => 'Show lower sub-forums horizontally',//'论坛版块下级子版块横排', - 19 => 'When the forum horizontal number of lower sub-forums per line set to 0, the category arranged according to the normal scheme',//'设置进入论坛版块时下级子版块横排时每行版块数量,如果设置为 0,则按正常方式排列', - 20 => 'forums_edit_extend_subforumsindex', - 21 => 'Show sub-Forums in the Forum Home',//'本版块在首页显示下级子版块', - 22 => 'Forum Home at the bottom of the list shows the forum name and the lower sub-Forum links (if present). Note: This feature does not consider the child forums permissions for a visitor. Select "Default" to use global settings.',//'首页版块列表中在版块简介下方显示下级子版块名字和链接(如果存在的话)。注意: 本功能不考虑子版块特殊浏览权限的情况,只要存在即会被显示出来。选择“默认”,将使用全局设置', - 23 => 'forums_edit_extend_simple', - 24 => 'Show only lower-level sub-Forums',//'只显示下级子版块', - 25 => 'Select "Yes" for show forums similar to categories, without post buttons and so on.',//'选择“是”将不显示本版块的主题列表、发帖按钮等等,类似于一个分类', - 26 => 'forums_edit_extend_widthauto', - 27 => 'Width style for this forum',//'本版块宽窄风格', - 28 => 'If you set the forum display style (wide version or narrow version), users will not be able to switch the forum width style. This setting inherits the default global settings.',//'设置本版块的显示风格是宽版还是窄版,设置后用户将无法自由切换宽窄风格。默认表示继承全局设置', - 29 => 'forums_edit_extend_picstyle', - 30 => 'Enable the image list mode',//'开启图片列表模式', - 31 => 'Images will displayed in a topis list. Topic cover can be set to unified width and height',//'主题列表将以图片方式显示,主题封面可统一设置宽高', - 32 => 'forums_edit_extend_allowside', - 33 => 'Show Sidebar',//'显示边栏', - 34 => 'Select "Yes" for show the sidebar section contents at Home.',//'选择“是”版块首页侧边将显示聚合本版内容的信息', - 35 => 'forums_edit_extend_recommend_top', - 36 => 'Allow global stick',//'显示全局置顶和分类置顶的主题', - 37 => 'Marked as Sticked threads will be displayed in the global top and sub-forum top',//'是否在本版显示全局置顶和分版置顶', - 38 => 'forums_edit_extend_defaultorderfield', - 39 => 'Thread default sort field',//'主题默认排序字段', - 40 => 'Set the list of default sort fields. The default is "Reply time". Any addition of sort fields will increase the server loading.',//'设置版块的主题列表默认按照哪个字段进行排序显示。默认为“回复时间”,除默认设置外其他排序方式会加重服务器负担', - 41 => 'forums_edit_extend_defaultorder', - 42 => 'Thread default sort order',//'主题默认排序方式', - 43 => 'Set the threads default sort order. The default is "Descending". Any addition to default will increase the server loading.',//'设置版块的主题列表默认排序的方式。默认为“按降序排列”,除默认设置外其他排序方式会加重服务器负担', - 44 => 'forums_edit_extend_reply_background', - 45 => 'Quick reply box background image',//'快捷回复框背景图片', - 46 => 'Set the background image for the quick reply box',//'设置后将在快速回复框中展现该图片', - 47 => 'forums_edit_extend_threadcache', - 48 => 'Thread Cache',//'页面缓存系数', - 49 => 'This feature is usefull for decrease the loading of large servers with a lot of guest visits by using a temporary cache. The cache coefficient ranges from 0 to 100, the proposed value is from 20 to 40. Set to 0 to turn off caching. In the case of disk space allowed, the appropriate factor to increase the cache, the cache can improve the effectiveness. Note: Go to the forum settings: Global -> Optimization settings -> Cache settings, and adjust the buffer time.',//'此功能可以将游客经常访问的主题临时缓存起来,缓解大型服务器压力。系数范围 0~100,建议数值 20 ~ 40,0 为关闭缓存。在磁盘空间允许的情况下,适当调高缓存系数,可以提高缓存效果注:版块设置完毕后请到 全局 -> 优化设置 -> 站点页面缓存设置,调整其缓存时间', - 50 => 'forums_edit_extend_relatedgroup', - 51 => 'Related Groups/Forums',//'关联群组/版块', - 52 => 'Fill in the associated group/forum fids, separated by a comma ",". Forum page will display a list of topics related with the group/forum.',//'填写被关联群组/版块的fid,以半角逗号 "," 隔开。版块的主题列表页将显示被关联群组/版块的主题', - 53 => 'forums_edit_extend_edit_rules', - 54 => 'Allow moderators to edit this Forum rules',//'允许版主修改本版块规则', - 55 => 'This settings allowed edit the forum rules to Super Moderators and Moderators',//'设置是否允许超级版主和版主修改本版规则', - 56 => 'forums_edit_extend_disablecollect', - 57 => 'Disable Collections',//'禁止淘帖', - 58 => 'Select "Yes" to prevent users from using collections',//'选择“是”将禁止用户淘帖本版主题', - 59 => 'forums_edit_extend_recommend', - 60 => 'Enable to recommend threads',//'是否开启推荐主题功能', - 61 => 'This setting enable/disable the "recommend" function',//'设置是否开启推荐主题功能', - 62 => 'forums_edit_extend_recommend_sort', - 63 => 'Moderator Recommended method',//'版主推荐主题方式', - 64 => 'Automatic: recommended topics list generated in accordance with topics recommended level.
    Manuall: recommended list generated by the moderator manually.
    Semi-automatic: similar to manual method, when a list of articles generate manually, and than displayed a specified number of articles, it will automatically fill in accordance with the rules recommended by the theme Number of rates.',//'自动生成则按照推荐主题规则设定生成推荐列表。手动生成则由版主自行推荐生成推荐列表。半自动生成则和手动方式类似,当手动生成的列表条数不足设置的显示条数时,将按照推荐主题规则自动补足相差条数', - 65 => 'forums_edit_extend_recommend_orderby', - 66 => 'Order recommended threads by',//'推荐主题规则', - 67 => 'This ordering is eefective only for automatic and semi-automatic mode of recommended threads generation. Used only Descending order allways.',//'推荐主题规则,只对自动和半自动生成推荐主题列表有效,此规则均为降序排列', - 68 => 'forums_edit_extend_recommend_num', - 69 => 'Number of recommended topics to show',//'推荐主题显示数量', - 70 => 'Set a number of recommended threads displayed. Default is 10, not more than 20.',//'推荐主题显示的数量,默认为 10 条,建议不要超过 20 条', - 71 => 'forums_edit_extend_recommend_imagenum', - 72 => 'Number of attachment icons for Recommended Threads',//'推荐主题图片附件显示数量', - 73 => 'How many attachment icons to show for a thread marked as Recommended. Default is 5. Set to 0 for disble recommended icons. Do not use more than 10.',//'推荐主题中图片附件显示的数量,默认为 5 条。设置为 0 则不显示,建议不要超过 10 条', - 74 => 'forums_edit_extend_recommend_imagesize', - 75 => 'Recommended icon size',//'推荐主题图片附件显示大小', - 76 => 'Recommended size for a topic attached images, the default is 300 x 250 px.',//'推荐主题中图片附件显示的大小,默认为 300 x 250', - 77 => 'forums_edit_extend_recommend_maxlength', - 78 => 'Title length',//'标题最大字节数', - 79 => 'Set the title max length, if a title is longer than this valuse, it will be cutted automatically, 0 is disable',//'设置当标题长度超过本设定时,是否将标题自动缩减到本设定中的字节数,0 为不自动缩减', - 80 => 'forums_edit_extend_recommend_cachelife', - 81 => 'Cache time (seconds)',//'数据缓存时间(秒)', - 82 => 'As some sort of retrieval operation is relatively expensive, it is recommended to set the value to 900',//'由于一些排序检索操作比较耗费资源,建议设置为 900 的数值', - 83 => 'forums_edit_extend_recommend_dateline', - 84 => 'Recommended live time',//'推荐主题时间段', - 85 => 'Set the time period from this moment for automatically generate a list of recommended topics in hours. Set to 0 for all the time',//'按照设置的排序方式,取从访问推荐主题列表这一刻往前推送时间段内的主题,自动生成推荐主题列表,单位为小时,设置成0为所有时段', - ), - ), - 191 => - array ( - 'index' => - array ( - 'Forums' => 'action=forums',//'版块管理', - 'Post options' => 'action=forums&operation=edit&anchor=posts',//'帖子选项', - ), - 'text' => - array ( - 0 => 'Forums » Post options',//'版块管理 » 帖子选项', - 1 => 'forums_edit_tips', - 2 => 'The following settings are not inherited, that is effective only to the current forum will not impact on the lower sub-forums.',//'以下设置没有继承性,即仅对当前版块有效,不会对下级子版块产生影响。', - 3 => 'forums_edit_posts', - 4 => 'Post options',//'帖子选项', - 5 => 'forums_edit_posts_modposts', - 6 => 'Post premoderation',//'发帖审核', - 7 => 'If selected "Yes", it will require to all new users post must be reviewed by moderators or administrators before the post is shown. After turn on this feature, you can set the user group which posts must be audited, and also management groups, which can perform the auditing',//'选择“是”将使用户在本版发表的帖子待版主或管理员审查通过后才显示出来,打开此功能后,你可以在用户组中设定哪些组发帖可不经审核,也可以在管理组中设定哪些组可以审核别人的帖子', - 8 => 'forums_edit_posts_alloweditpost', - 9 => 'Allow to edit posts',//'允许编辑帖子', - 10 => 'Select "Yes" for allow users to edit their own posts',//'选择“是”将允许用户编辑本版发表的帖子', - 11 => 'forums_edit_posts_recyclebin', - 12 => 'Recycle Bin',//'回收站', - 13 => 'If the Recycle Bin function is enabled, all deleted topics and replies will be moved into the recycle bin, and will not be directly deleted',//'是否在本版启用回收站功能,打开此功能后,所有被删除主题和回帖将被放在回收站中,而不会被直接删除', - 14 => 'forums_edit_posts_html', - 15 => 'Allow to use HTML code',//'允许使用 HTML 代码', - 16 => 'NOTE: If this enabled, it will bring serious security risks. Please use with caution!',//'注意: 选择“是”将不屏蔽帖子中的任何代码,将带来严重的安全隐患,请慎用', - 17 => 'forums_edit_posts_bbcode', - 18 => 'Allow to use BB-Code',//'允许使用 Discuz! 代码', - 19 => 'BB-Code is a simplified and safe code for content formatting',//'Discuz! 代码是一种简化和安全的页面格式代码', - 20 => 'forums_edit_posts_imgcode', - 21 => 'Allow to use [img] Code',//'允许使用 [img] 代码', - 22 => 'The [img] code enable users to post images from other sites',//'允许 [img] 代码作者将可以在帖子插入其他网站的图片并显示', - 23 => 'forums_edit_posts_mediacode', - 24 => 'Allow to use multimedia code',//'允许使用多媒体代码', - 25 => 'Allow to use [audio] [media] [flash] and other multimedia codes, authors will be able to insert multimedia files in the post and display it',//'允许 [audio] [media] [flash] 等多媒体代码后,作者将可以在帖子插入多媒体文件并显示', - 26 => 'forums_edit_posts_smilies', - 27 => 'Allow to use smiles',//'允许使用表情', - 28 => 'This feature enable to convert textual emoticons, such as ":)" to smile images.',//'表情提供对表情符号,如“:)”的解析,使之作为图片显示', - 29 => 'forums_edit_posts_jammer', - 30 => 'Enable content jammer',//'启用内容干扰码', - 31 => 'Select "Yes" for add a disturbance random string into the post content, so the visitor can not copy the original content. Note: This feature will slightly increase the server loading.',//'选择“是”将在帖子内容中增加随机的干扰字串,使得访问者无法复制原始内容。注意: 本功能会轻微加重服务器负担', - 32 => 'forums_edit_posts_anonymous', - 33 => 'Allow anonymous posting',//'允许匿名发帖', - 34 => 'Whether to allow users to publish threads and replies as anonymous. Anonymous posting is different from the guests posted, anonymous users need to log in before posting, and moderators and administrators can view the real author.',//'是否允许用户在本版匿名发表主题和回复,只要用户组或本版块允许,用户均可使用匿名发帖功能。匿名发帖不同于游客发帖,用户需要登录后才可使用,版主和管理员可以查看真实作者', - 35 => 'forums_edit_posts_disablethumb', - 36 => 'Disable to create the attached images thumbnails',//'禁用图片附件添加缩略图', - 37 => 'Select "Yes" will not create auto-generated thumbnails in this forum, even if the global settings enable this feature. Select "No" for use the system default settings to decide whether to add a thumbnail or not',//'选择“是”将不对本版块上传的图片附件自动缩略图,即便全局设置中开启了此项功能。选择“否”为按照系统默认设置决定是否添加缩略图', - 38 => 'forums_edit_posts_disablewatermark', - 39 => 'Disable watermark',//'禁用图片附件添加水印', - 40 => 'Select "Yes" for disable automatical creating of watrmark for uploaded to this forum images, even if the global settings enable this feature. Select "No" to follow the system default settings to decide whether to add a watermark or not',//'选择“是”将不对本版块上传的图片附件自动添加水印,即便全局设置中开启了此项功能。选择“否”为按照系统默认设置决定是否添加水印', - 41 => 'forums_edit_posts_allowpostspecial', - 42 => 'Allow to post special threads',//'允许发布的特殊主题', - 43 => 'forums_edit_posts_threadplugin', - 44 => 'Plugin for allow to publish special threads',//'允许发布的扩展特殊主题', - 45 => 'Set the extension to allow publish special threads',//'设置本版允许发布哪些其他扩展的特殊主题', - 46 => 'forums_edit_posts_allowspecialonly', - 47 => 'Allow to publish only special threads',//'只允许发布特殊类型主题', - 48 => 'This settings disable to publish other threads than special',//'设置本版是否只允许发布特殊类型主题', - 49 => 'forums_edit_posts_autoclose', - 50 => 'Thread auto close',//'主题自动关闭', - 51 => 'Set if the thread can be automatically closed after a certain time, to prohibit ordinary users replies.',//'设置主题是否在某时间后自动关闭,禁止普通用户回复', - 52 => 'forums_edit_posts_autoclose_time', - 53 => 'Auto-close time (days)',//'自动关闭时间(天)', - 54 => 'Enter a number of days after creating or last reply when a thread will closed automatically for ordinary users (they can not reply). This setting take effect only when the "Auto-close" feature enabled.',//'本设定必须在“主题自动关闭”功能打开时才生效,主题依据自动关闭的设定: 在发表后若干天、或被最后回复后若干天被自动转入关闭状态,从而使普通用户无法回复', - 55 => 'forums_edit_posts_attach_ext', - 56 => 'Enabled attachment type',//'允许附件类型', - 57 => 'Fill in the enabled to upload attachment extensions, separate multiple extensions by comma ",". This setting takes precedence over the user group settings. Leave it blank to allow for the attachment types in accordance with the user group settings.',//'设置允许上传的附件扩展名,多个扩展名之间用半角逗号 "," 隔开。本设置的优先级高于用户组,留空为按照用户组允许的附件类型设定', - 58 => 'forums_edit_posts_allowfeed', - 59 => 'Enable broadcast & feeds',//'允许发送广播和动态', - 60 => 'If is turned on, this allows users to send broadcast and feeds by default. Broadcast whether to send the user can remove the posting. For Privacy Forum it recommended to set to No.',//'开启后默认允许用户发送广播和动态,广播是否发送用户可以在发帖时去掉,隐私版块建议设为否。', - 61 => 'forums_edit_posts_commentitem', - 62 => 'Preset the General Comment List',//'普通主题点评预置观点', - 63 => 'Enter one comment per line. If an empty line presents in a list, it will be displayed an empty item in a bottom of the drop-down menu as an alternative point of view. This setting take effect only if comments enabled at all. If empty, the global setting "Common thread preset Comments" will be used.',//'每个观点一行。如存在空行,空行下方的内容将显示在下拉菜单中作为备选观点。只有开启帖子点评功能后本设置才生效,如留空表示使用全局的“普通主题点评预置观点”设置', - 64 => 'forums_edit_posts_noantitheft', - 65 => 'Disable Anti-capture',//'关闭防采集', - 66 => 'Anti-capture function will slightly enlarge the server loading. Recommended do turn off this feature for forums with a large of spam activity.',//'关闭防采集功能可节省少量服务器资源,建议灌水类版块关闭防采集功能。', - 67 => 'forums_edit_posts_noforumhidewater', - 68 => 'Disable to hide the meaningless posts',//'关闭隐藏水帖', - 69 => 'You can turn off this feature for some spammed forums manually.',//'可单独关闭本版的隐藏水帖功能,适用于灌水类版块。', - 70 => 'forums_edit_posts_noforumrecommend', - 71 => 'Disable to recommend replies',//'关闭推荐回复', - 72 => 'You can turn off this feature for some spammed forums manually.',//'可单独关闭本版的推荐回复功能,适用于灌水类版块。', - ), - ), - 192 => - array ( - 'index' => - array ( - 'Forum Management' => 'action=forums',//'版块管理' - 'Attach type' => 'action=forums&operation=edit&anchor=attachtype',//'附件类型' - ), - 'text' => - array ( - 0 => 'Forum Management » Attachment types',//'版块管理 » 附件类型', - 1 => 'forums_edit_attachtype_tips', - 2 => 'This feature can limit the maximum size of specified type attachments at the forum. When the set of size less than the maximum size allowed for the user group, the attachment size limit of the specified type will prevail this settting. You can set the maximum size of certain types of attachments, set to 0 for disable uploading of some attachment type. Leave empty to use the global attachment type size setting.',//'本功能可限定本版块某特定类型附件的最大尺寸,当这里设定的尺寸小于用户组允许的最大尺寸时,指定类型的附件尺寸限制将按本设定为准。你可以设置某类附件最大尺寸为 0 以整体禁止这类附件被上传。此处设置留空则使用全局的“附件类型尺寸”设置。', - ), - ), - 193 => - array ( - 'index' => - array ( - 'Forums' => 'action=forums',//'版块管理', - 'Extended credits exchange strategy' => 'action=forums&operation=edit&anchor=credits',//'扩展积分增减策略', - ), - 'text' => - array ( - 0 => 'Forums » Extended points exchange strategy',//'版块管理 » 扩展积分增减策略', - 1 => 'forums_edit_tips', - 2 => 'The following settings are not inherited, that is effective only to the current forum will not impact on the lower sub-forums.',//'以下设置没有继承性,即仅对当前版块有效,不会对下级子版块产生影响。', - 3 => 'forums_edit_credits_policy', - 4 => 'Extended points exchange strategy',//'扩展积分增减策略', - ), - ), - 194 => - array ( - 'index' => - array ( - 'Forums' => 'action=forums',//'版块管理', - 'Thread types config' => 'action=forums&operation=edit&anchor=threadtypes',//'主题分类', - ), - 'text' => - array ( - 0 => 'Forums » Thread types config',//'版块管理 » 主题分类', - 1 => 'forums_edit_tips', - 2 => 'The following settings are not inherited, that is effective only to the current forum will not impact on the lower sub-forums.',//'以下设置没有继承性,即仅对当前版块有效,不会对下级子版块产生影响。', - 3 => 'forums_edit_threadtypes_config', - 4 => 'Thread types config',//'主题分类', - 5 => 'forums_edit_threadtypes_status', - 6 => 'Enable thread types',//'启用主题分类', - 7 => 'Set enabled in this forum topic types. You need to set the appropriate types options to enable this feature',//'设置是否在本版块启用主题分类功能,你需要同时设定相应的分类选项,才能启用本功能', - 8 => 'forums_edit_threadtypes_required', - 9 => 'Thread category Required',//'发帖必须归类', - 10 => 'Whether to force user to choose a category when a new thread published.',//'是否强制用户发表新主题时必须选择分类', - 11 => 'forums_edit_threadtypes_listable', - 12 => 'Allow Browse by category',//'允许按类别浏览', - 13 => 'Users can browse content by thread Category Filter',//'用户是否可以按照主题分类筛选浏览内容', - 14 => 'forums_edit_threadtypes_prefix', - 15 => 'Category Prefix',//'类别前缀', - 16 => 'This prefix is displayed before the category name',//'是否在主题前面显示分类的名称', - 17 => 'forums_edit_threadtypes', - 18 => 'Thread types',//'主题分类', - 19 => 'You can enable an existing types or add a new topic type to use in the forum. In case of many types, we recommend to use only important types using the "flat panel display" mode, but additional types may use the "Drop down" approach',//'你可以启用已有的主题分类或添加新主题分类应用于本版块,在分类很多的情况下,建议只有重要的分类使用“平板显示”方式,更多的分类使用“下拉显示”方式', - ), - ), - 195 => - array ( - 'index' => - array ( - 'Forums' => 'action=forums',//'版块管理', - 'Thread categories' => 'action=forums&operation=edit&anchor=threadsorts',//'分类信息', - ), - 'text' => - array ( - 0 => 'Forums » Thread categories',//'版块管理 » 分类信息', - 1 => 'forums_edit_tips', - 2 => 'The following settings are not inherited, that is effective only to the current forum will not impact on the lower sub-forums.',//'以下设置没有继承性,即仅对当前版块有效,不会对下级子版块产生影响。', - 3 => 'forums_edit_threadsorts', - 4 => 'Thread categories',//'分类信息', - 5 => 'forums_edit_threadsorts_status', - 6 => 'Enable forum categories',//'启用分类信息', - 7 => 'forums_edit_threadtypes_required', - 8 => 'Thread category Required',//'发帖必须归类', - 9 => 'Whether to force a user to choose category when a new thread published.',//'是否强制用户发表新主题时必须选择分类', - 10 => 'forums_edit_threadtypes_prefix', - 11 => 'Category Prefix',//'类别前缀', - 12 => 'This prefix is displayed before the category name',//'是否在主题前面显示分类的名称', - 13 => 'forums_edit_threadsorts_default', - 14 => 'Enable to show default categories',//'启用默认显示分类', - 15 => 'If enabled choose the categories below',//'是否启用默认显示分类,如果启用请在下面的分类信息里面选择', - ), - ), - 196 => - array ( - 'index' => - array ( - 'Forums' => 'action=forums',//'版块管理', - 'Forum permissions' => 'action=forums&operation=edit&anchor=perm',//'版块权限', - ), - 'text' => - array ( - 0 => 'Forums » Forum permissions',//'版块管理 » 版块权限', - 1 => 'forums_edit_tips', - 2 => 'The following settings are not inherited, that is effective only to the current forum will not impact on the lower sub-forums.',//'以下设置没有继承性,即仅对当前版块有效,不会对下级子版块产生影响。', - 3 => 'forums_edit_perm_forum', - 4 => 'Forum permissions',//'版块权限', - 5 => 'If not all permissions selected, the following meanings: View pages, all user group has permission to browse the forum posts; New topics, in addition to browse the user group have posting permission; Leave a response, in addition to browse, the user group have permissions to reply; View attachments, all the user groups have permissions to download/view attachments; Upload attachments, in addition to browse, the user group has permission to upload attachments; Upload images, in addition to browse, the user group has permission to upload images.',//'某权限如果全部未选则表示如下含义:  浏览版块,全部用户组具有浏览版块帖子权限;发新话题,除游客以外的用户组具有发帖权限;发表回复,除游客以外的用户组具有回复权限;查看附件,全部用户组具有下载/查看附件权限;上传附件,除游客以外的用户组具有上传附件权限;上传图片,除游客以外的用户组具有上传图片权限', - 6 => 'forums_edit_perm_passwd', - 7 => 'Access Password',//'访问密码', - 8 => 'When you set a password, the user must enter password to access this forum',//'当你设置密码后,用户必须输入密码才可以访问到此版块', - 9 => 'forums_edit_perm_users', - 10 => 'Access for specified users',//'访问用户', - 11 => 'Enable acces only for specified users. Enter one user name per line',//'限定只有列表中的用户可以访问本版块,每行填写一个用户名', - 12 => 'forums_edit_perm_medal', - 13 => 'Access for medal having',//'拥有勋章', - 14 => 'For access this Forum a user must have a specified medal',//'用户必须拥有指定的勋章才可访问此版块', - 15 => 'forums_edit_perm_forum', - 16 => 'Forum permissions',//'版块权限', - 17 => 'If not all permissions selected, the following meanings: View pages, all user group has permission to browse the forum posts; New topics, in addition to browse the user group have posting permission; Leave a response, in addition to browse, the user group have permissions to reply; View attachments, all the user groups have permissions to download/view attachments; Upload attachments, in addition to browse, the user group has permission to upload attachments; Upload images, in addition to browse, the user group has permission to upload images.',//'某权限如果全部未选则表示如下含义:  浏览版块,全部用户组具有浏览版块帖子权限;发新话题,除游客以外的用户组具有发帖权限;发表回复,除游客以外的用户组具有回复权限;查看附件,全部用户组具有下载/查看附件权限;上传附件,除游客以外的用户组具有上传附件权限;上传图片,除游客以外的用户组具有上传图片权限', - 18 => 'forums_edit_perm_formula', - 19 => 'Permissions formula',//'权限表达式设置', - 20 => 'When you set the permission formula, only calculated with this expression members can browse the forum. For example, "posts > 100 and extcredits1 > 10" means "Number of User Posts > 100 and User Prestige > 10". Date format is "{YMD}", such as "{2009-10-1}". IP format: "{xxxx}", you can enter the full address, or only the IP beginning, such as "{10.0.0.1 }", "{ 192.168.0}"',//'当你设定了权限表达式后,只有符合此表达式的会员才可以浏览本版块。如 "posts > 100 and extcredits1 > 10" 表示 "发帖数 > 100 并且 威望 > 10"日期格式 "{Y-M-D}",如 "{2009-10-1}"。IP 格式 "{x.x.x.x}",既可输入完整地址,也可只输入 IP 开头,如 "{10.0.0.1}"、"{192.168.0}"', - 21 => 'forums_edit_perm_spview', - 22 => 'Unlimited user groups',//'不受限制的用户组', - 23 => 'forums_edit_perm_formulapermmessage', - 24 => 'No permission prompt',//'无权限访问时的提示信息', - 25 => 'Custom prompt about no rights to access the information. If permissions not enough, a formula expression will be displayed',//'自定义无权限时的提示信息,如不填写则无权限时将显示权限表达式的公式', - ), - ), - 197 => - array ( - 'index' => - array ( - 'Admin Team' => 'action=founder',//'后台管理团队', - ), - 'text' => - array ( - 0 => 'Admin Team permissions',//'后台管理团队', - 1 => 'home_security_founder', - 2 => 'You can create a variety of team roles assigned to your job site management team. For each member, let them manage of different sitese affairs, for example "deputy chief" can perform all the background permissions, excluding the "founder (webmaster)" competence.',//'你可以制定多种团队职务分配给你网站管理团队的各个成员,让他们管理网站的不同事务“副站长”拥有除“创始人(站长)”专有权限以外的所有后台权限,仅次于“创始人(站长)”', - ), - ), - 198 => - array ( - 'index' => - array ( - 'Group Settings' => 'action=group&operation=setting',//'群组设置', - ), - 'text' => - array ( - 0 => 'Group Settings',//'群组设置', - 1 => 'groups_setting_basic', - 2 => 'Basic settings',//'基本设置', - 3 => 'groups_setting_basic_status', - 4 => 'Disable Group Functions',//'是否开启群组功能', - 5 => 'groups_setting_basic_mod', - 6 => 'Premoderate new groups',//'审核新群组', - 7 => 'If Administrator need to audit new created groups',//'管理员建立群组时不需要审核', - 8 => 'groups_setting_basic_iconsize', - 9 => 'Group icon file size (in KB)',//'群组图标文件大小(单位:KB)', - 10 => 'Set the maximum size of a group icon file, Set to 0 or leave blank for not limit',//'设置群组图标文件的最大尺寸,0 或留空为不限制', - 11 => 'groups_setting_basic_recommend', - 12 => 'Recommended Groups',//'推荐群组', - 13 => 'Fill in group ID to recommend at the home page, separated with a comma ",". Maximum 8 groups, such as less than the most points will automatically add the group. Example: "23,56,983"',//'填写要推荐到群组首页的群组 ID,以半角逗号 "," 隔开,最多显示 8 个,如不足会自动补充积分最高的群组。例:“23,56,983”', - 14 => 'groups_setting_admingroup', - 15 => 'Select the User Group Manager (this user will have administrative privileges in the group and corresponding forum)',//'选择管理用户组(在群组中具有与论坛中相对应的管理权限)', - 16 => 'forums_edit_posts_allowfeed', - 17 => 'Enable broadcast & feeds',//'允许发送广播和动态', - 18 => 'If is turned on, this allows users to send broadcast and feeds by default. Broadcast whether to send the user can remove the posting. For Privacy Forum it recommended to set to No.',//'开启后默认允许用户发送广播和动态,广播是否发送用户可以在发帖时去掉,隐私版块建议设为否。', - ), - ), - 199 => - array ( - 'index' => - array ( - 'newgroup_userperm' => 'action=group&operation=userperm', - ), - 'text' => - array ( - 0 => 'newgroup_userperm', - 1 => 'admingroup_edit_threadperm', - 2 => 'Thread management permissions',//'主题管理权限', - 3 => 'admingroup_edit_digest_thread', - 4 => 'Allow thread digest',//'允许精华主题', - 5 => 'Set allowed digest type',//'设置是否允许精华管理范围内主题的级别', - 6 => 'admingroup_edit_postperm', - 7 => 'Post management privileges',//'帖子管理权限', - 8 => 'admingroup_edit_modcpperm', - 9 => 'Moderator panel privileges',//'管理面板权限', - 10 => 'group_userperm_others', - 11 => 'Other permissions',//'其它权限', - ), - ), - 200 => - array ( - 'index' => - array ( - 'Group Level' => 'action=group&operation=level',//'群组等级', - ), - 'text' => - array ( - 0 => 'Group Level',//'群组等级', - 1 => 'group_level_tips', - 2 => 'Do not add a lot of Group levels. When a group is allowed to post but the user has no enough points, such user will see a caution, possible because of the group main brush points. Default level icon size is 25 X 25 px.',//'群组等级不宜设置过多。当允许群组内发帖等操作影响用户积分时应谨慎,有可能通过群主刷积分。默认等级图标大小是25 X 25像素。', - ), - ), - 201 => - array ( - 'index' => - array ( - 'Group Management' => 'action=group&operation=manage',//'群组管理', - ), - 'text' => - array ( - 0 => 'Group Management',//'群组管理', - 1 => 'groups_manage_name', - 2 => 'Title',//'群组名称', - 3 => 'groups_manage_id', - 4 => 'Group ID',//'群组 ID', - 5 => 'groups_editgroup_category', - 6 => 'Group Category',//'群组分类', - 7 => 'groups_manage_membercount', - 8 => 'Number of Members',//'成员数', - 9 => 'groups_manage_threadcount', - 10 => 'Number of Threads',//'主题数', - 11 => 'groups_manage_replycount', - 12 => 'Replies',//'回复数', - 13 => 'groups_manage_createtime', - 14 => 'Publish time',//'创建时间', - 15 => 'groups_manage_updatetime', - 16 => 'Update time',//'最后更新时间', - 17 => 'groups_manage_founder', - 18 => 'Owner',//'创建者', - 19 => 'groups_manage_founder_uid', - 20 => 'Owner UID',//'创建者 UID', - ), - ), - 202 => - array ( - 'index' => - array ( - 'Magics' => 'action=magics',//'道具中心', - ), - 'text' => - array ( - 0 => 'Magics',//'道具中心', - 1 => 'magics_tips', - 2 => 'For install a new magic, the magic script must be uploaded to source/class/magic/ directory, and then you can use it in the following list. Before designing of new magic Plug-in developers have to read the "Discuz! Technical Library" content.',//'安装新的道具,需将道具脚本程序上传到 source/class/magic/ 目录,然后即可在以下列表中使用了。插件开发人员在设计新的道具前请务必仔细阅读《Discuz! 技术文库》中的内容。', - 3 => 'magics_config_open', - 4 => 'Enable Magic center',//'是否打开道具中心', - 5 => 'Whether to allow the Magic Center functions',//'是否开启道具中心功能', - 6 => 'magics_config_discount', - 7 => 'Magic return discount',//'道具回收价格折扣', - 8 => 'Set the magic return to system price with a discount, as a percentage of original price. For example, if the value is 85, then the system will set the return price to 85% of original magic price. It is recommended not to exceed 100, to effectively prevent points brush. Blank or 0 indicates that the magic return function is disabled.',//'设置道具系统回收价格折扣,此值为百分比,例如如果此值为 85,则系统将以道具原价 85% 的价格回收,建议不超过 100,有效防止刷积分。留空或者 0 表示不开启道具回收功能', - ), - ), - 203 => - array ( - 'index' => - array ( - 'Generate all' => 'action=makehtml&operation=all',//'生成全部', - ), - 'text' => - array ( - 0 => 'Generate all',//'生成全部', - 1 => 'makehtml_tips_all', - 2 => 'Generate HTML files for articles published after the specified time, together wit the article categories and portal home HTML files.',//'生成指定起始时间以后发布的文章的HTML文件生成指定起始时间以后发布过文章的频道HTML文件生成门户首页的HTML文件', - 3 => 'start_time', - 4 => 'Start Time',//'起始时间', - ), - ), - 204 => - array ( - 'index' => - array ( - 'html' => 'action=makehtml&operation=makehtmlsetting', - '生成HTML' => 'action=makehtml&operation=makehtmlsetting', - ), - 'text' => - array ( - 0 => 'html » Generate HTML',//'html » 生成HTML', - 1 => 'setting_functions_makehtml', - 2 => 'Generate HTML',//'生成HTML', - 3 => 'setting_functions_makehtml_extendname', - 4 => 'Static file extension',//'静态文件扩展名', - 5 => 'Set the extension for all static files, default is html',//'所有静态文件的扩展名,默认为html', - 6 => 'setting_functions_makehtml_articlehtmldir', - 7 => 'Directory for store article HTML',//'文章HTML存放根目录', - 8 => 'Set a subfolder name in the current category folder for store article static files, starting from the site root directory, without ending slash /. If this subfolder name is empty, then static files will be stored in the current category folder.',//'文章静态文件存放的根目录,子目录与频道目录相同,从网站的根目录开始,结尾不需要添加/,为空则存放在当前频道的文件夹下', - 9 => 'setting_functions_makehtml_htmldirformat', - 10 => 'Directory format',//'目录结构', - 11 => 'Set the static file storage directory/sub-directory structure, 0:/Ym/, 1:/Ym/d/, 2:/Y/m/, 3:/Y/m/d/',//'静态文件文件存放目录的下级目录结构, 0:/Ym/, 1:/Ym/d/, 2:/Y/m/, 3:/Y/m/d/', - 12 => 'setting_functions_makehtml_topichtmldir', - 13 => 'Topics HTML store directory',//'专题HTML存放目录', - 14 => 'Topic static files stored in a subfolder starting from the site root directory, without ending slash /. If empty, then topic HTML files not generated.',//'专题HTML文件存放目录,从网站的根目录开始,结尾不需要添加/,为空则不生成专题HTML文件', - 15 => 'setting_functions_makehtml_indexname', - 16 => 'Portal Home static file name',//'门户首页静态文件名', - 17 => 'Generate static page file name for portal home, without extension. Default is "index"',//'生成门户首页的静态文件名,默认为index,不带扩展名', - ), - ), - 205 => - array ( - 'index' => - array ( - ), - 'text' => - array ( - 0 => 'setting_functions_makehtml_cleanhtml', - 1 => 'No need to clean the HTML',//'需要清理的HTML', - 2 => 'Need to clean up HTML',//'选择需要要清理的HTML', - ), - ), - 206 => - array ( - 'index' => - array ( - 'Medals' => 'action=medals',//'勋章中心', - ), - 'text' => - array ( - 0 => 'Medals',//'勋章中心', - 1 => 'medals_tips', - 2 => 'This feature can be used to set the medals information awarded by users. Please fill out the Medal image file name, and upload the corresponding image file to the static/image/common/ directory.',//'本功能用于设置可以颁发给用户的勋章信息,勋章图片中请填写图片文件名,并将相应图片文件上传到 static/image/common/ 目录中。', - ), - ), - 207 => - array ( - 'index' => - array ( - 'Aliases' => 'action=members&operation=repeat',//'马甲', - ), - 'text' => - array ( - 0 => 'Aliases',//'马甲', - 1 => 'members_search_repeatuser', - 2 => 'User name',//'用户名', - 3 => 'members_search_uid', - 4 => 'User UID',//'用户 UID', - 5 => 'members_search_repeatip', - 6 => 'IP address',//'IP 地址', - ), - ), - 208 => - array ( - 'index' => - array ( - 'Add User' => 'action=members&operation=add',//'添加用户', - ), - 'text' => - array ( - 0 => 'Add User',//'添加用户', - 1 => 'username', - 2 => 'User name',//'用户名', - 3 => 'password', - 4 => 'Password',//'密 码', - 5 => 'email', - 6 => 'Email', - 7 => 'usergroup', - 8 => 'User Group',//'用户组', - 9 => 'members_add_email_notify', - 10 => 'Send notification to the above address',//'发送通知到上述地址', - ), - ), - 209 => - array ( - 'index' => - array ( - 'Edit user group members' => 'action=members&operation=group',//'编辑会员用户组', - ), - 'text' => - array ( - 0 => 'Edit user group members',//'编辑会员用户组', - 1 => 'usergroup', - 2 => 'User Group',//'用户组', - 3 => 'members_group_group', - 4 => 'Respective user group',//'所属用户组', - 5 => 'members_group_related_adminid', - 6 => 'Respective management groups',//'所属管理组', - 7 => 'members_group_validity', - 8 => 'User group expiration',//'用户组有效期', - 9 => 'For setting the expiration of the current user group, enter the user group deadline. Leave it blank for no date restrictions',//'如需设定当前用户组的有效期,请输入用户组截止日期,留空为不做过期限制', - 10 => 'members_group_orig_adminid', - 11 => 'After expired change the user group to',//'过期后用户组变为', - 12 => 'members_group_orig_groupid', - 13 => 'After expired change the management group to',//'过期后管理组变为', - 14 => 'members_group_extended', - 15 => 'Extended user group',//'扩展用户组', - 16 => 'Note: valid format is yyyy-mm-dd. If left blank, the default user group does not expired automatically',//'注意: 有效期格式 yyyy-mm-dd,如果留空,则默认该扩展用户组不自动过期', - 17 => 'members_edit_reason', - 18 => 'Edit reason',//'变更理由', - 19 => 'members_group_ban_reason', - 20 => 'Ban reason',//'禁止/解禁用户的理由', - 21 => 'If you enter the operation reason when banned a user group or a user, the system will record this reason into the log for later viewing',//'如果你通过用户组设定禁止或解除禁止该用户,请输入操作理由,系统将把理由记录在用户禁止记录中,以供日后查看', - ), - ), - 210 => - array ( - 'index' => - array ( - 'Edit User points' => 'action=members&operation=credit',//'编辑用户积分', - ), - 'text' => - array ( - 0 => 'Edit User points',//'编辑用户积分', - 1 => 'members_credit_tips', - 2 => 'Discuz! have eight kinds of extended user points settings, and enabled to edit only in the integration. Modifying the user points will result in changing the user total score and the normal user level. So please set the points carefully.',//'Discuz! 支持对用户 8 种扩展积分的设置,只有被启用的积分才允许你进行编辑。修改用户的某项积分会造成该用户总积分的变化,从引起普通会员等级的变化,因此请仔细设置各项积分。', - 3 => 'members_edit_reason', - 4 => 'Edit reason',//'变更理由', - 5 => 'members_credit_reason', - 6 => 'Modify user points reason',//'修改用户积分的理由', - 7 => 'If you modified the user points, please enter the operation reason, the system will save the reason recorded in a log for later viewing',//'如果你修改了用户的积分资料,请输入操作理由,系统将把理由记录在用户评分记录中,以供日后查看', - ), - ), - 211 => - array ( - 'index' => - array ( - 'Edit User Permissions' => 'action=members&operation=access',//'编辑用户权限', - ), - 'text' => - array ( - 0 => 'Edit User Permissions',//'编辑用户权限', - 1 => 'members_access_tips', - 2 => 'Users access rights in the forum are based on the user permissions and the forum permissions. If you set a non-default state, the user group will not set limits. For remove a user privileges in a board setting, you only need to his permissions in this forum in all settings to default a user can modify the permissions in this forum, you only need to add his permissions settings',//'用户在版块中的权限是基于用户和站点间的权限设定,如果设置为非默认状态,将不受用户组的设定限制。删除某个用户在某版块的特殊权限设置,你只需要将他在这个版块中的权限全部设置为默认即可修改某个用户在这个版块的权限,你只需要重新添加他的权限设置即可', - 3 => 'members_access_add_forum', - 4 => 'Select Forum',//'选择版块', - 5 => 'Select a Forum to set permissions. The following permission settings affects the user permissions only in this Forum',//'请选择要设置的版块。以下权限设置仅仅影响该用户在此版块的权限', - 6 => 'members_access_add_', - 7 => '', - ), - ), - 212 => - array ( - 'index' => - array ( - 'Edit User' => 'action=members&operation=edit',//'编辑用户', - ), - 'text' => - array ( - 0 => 'Edit User',//'编辑用户', - 1 => 'members_edit_username', - 2 => 'User name',//'用户名', - 3 => 'members_edit_avatar', - 4 => 'Avatar',//'头像', - 5 => 'members_edit_statistics', - 6 => 'Statistics',//'统计信息', - 7 => 'members_edit_password', - 8 => 'New password',//'新密码', - 9 => 'Leave blank, if you do not want to change the current password',//'如果不更改密码此处请留空', - 10 => 'members_edit_unbind', - 11 => 'Remove QQ account binding',//'解除QQ帐号绑定状态', - 12 => 'If the current user QQ account is lost or stolen, you can remove here the QQ account binding',//'如当前用户的QQ帐号丢失或者被盗,可以在这里解除QQ帐号的绑定', - 13 => 'members_edit_uinblack', - 14 => 'Ban QQ account',//'封禁QQ帐号', - 15 => 'When the current user QQ account is banned, the banned QQ account can not be used for login to this site',//'把当前用户的QQ帐号封锁,封禁后此QQ帐号无法再登录本站点', - 16 => 'members_edit_clearquestion', - 17 => 'Remove user security question',//'清除用户安全提问', - 18 => 'Select "Yes" to clear the user security questions, so the user will not need to answer security questions when login. Select "No" for not change the user security question settings',//'选择“是”将清除用户安全提问,该用户将不需要回答安全提问即可登录;选择“否”为不改变用户的安全提问设置', - 19 => 'members_edit_status', - 20 => 'Lock the current user',//'锁定当前用户', - 21 => 'members_edit_email', - 22 => 'Email', - 23 => 'members_edit_email_emailstatus', - 24 => 'Mailbox activated status',//'邮箱激活状态', - 25 => 'members_edit_posts', - 26 => 'Post number',//'发帖数', - 27 => 'members_edit_digestposts', - 28 => 'Digests',//'精华帖数', - 29 => 'members_edit_regip', - 30 => 'Reg IP',//'注册 IP', - 31 => 'members_edit_regdate', - 32 => 'Registration date',//'注册时间', - 33 => 'members_edit_lastvisit', - 34 => 'Last Visit',//'上次访问', - 35 => 'members_edit_lastip', - 36 => 'Last IP',//'上次访问 IP', - 37 => 'members_edit_addsize', - 38 => 'Add extra space capacity',//'额外附件容量', - 39 => 'members_edit_addfriend', - 40 => 'Number of additional friends',//'额外好友数', - 41 => 'members_edit_timeoffset', - 42 => 'Time Offset',//'时差设定', - 43 => 'User local time offset from GMT. Set 9999 to use the default time offset setting.',//'用户本地时间与 GMT 标准的时间差,设置 9999 即为默认时差,和站点设置保持一致', - 44 => 'members_edit_invisible', - 45 => 'Enable invisible mode',//'隐身登录', - 46 => 'members_edit_option', - 47 => 'Forum Options',//'论坛选项', - 48 => 'members_edit_cstatus', - 49 => 'Custom status',//'自定义头衔', - 50 => 'members_edit_signature', - 51 => 'Signature',//'签名', - 52 => 'members_profile', - 53 => 'User profile fields',//'用户栏目', - ), - ), - 213 => - array ( - 'index' => - array ( - 'Search Members' => 'action=members&operation=search',//'用户管理', - ), - 'text' => - array ( - 0 => 'Search Members',//'用户管理', - 1 => 'members_search_table', - 2 => 'User table',//'用户表', - 3 => 'When the user data updated, User-related data in the archive table is not updated',//'更新用户数据时,存档表中的用户相关数据不会更新', - 4 => 'members_search_user', - 5 => 'User name',//'用户名', - 6 => 'You can use the wildcard *. Separate multiple user names with a comma ","',//'可使用通配符 *,多个用户名用半角逗号 "," 隔开', - 7 => 'members_search_uid', - 8 => 'User UID',//'用户 UID', - 9 => 'members_search_group', - 10 => 'Main user group',//'主用户组', - 11 => 'This setting allow the user groups involved in the search, you can hold down the CTRL key for multiple choice',//'设置允许参与搜索的用户组,可以按住 CTRL 多选', - 12 => 'members_search_medal', - 13 => 'Medals',//'勋章', - 14 => 'Set the specified Medal that users have. Hold down the CTRL for multiple choice',//'设置拥有指定勋章的用户,可以按住 CTRL 多选', - 15 => 'members_search_usertag', - 16 => 'User Tags',//'用户标签', - 17 => 'Set specified user tags. Hold down the CTRL for multiple choice',//'设置指定标签的用户,可以按住 CTRL 多选', - 18 => 'members_search_conisbind', - 19 => 'is QQ bound',//'是否绑定QQ', - 20 => 'members_search_uinblacklist', - 21 => 'is QQ blocked',//'QQ帐号是否被封', - 22 => 'members_search_online', - 23 => 'is online',//'是否在线', - 24 => 'members_search_lockstatus', - 25 => 'is banned',//'是否锁定', - 26 => 'members_search_emailstatus', - 27 => 'is Email verified',//'是否通过Email认证', - 28 => 'members_search_avatarstatus', - 29 => 'is Avatar uploaded',//'是否有头像', - 30 => 'members_search_email', - 31 => 'Email', - 32 => 'You can use the wildcard *',//'可使用通配符 *', - 33 => 'members_search_friendsrange', - 34 => 'Number of friends range',//'好友数介于', - 35 => 'members_search_postsrange', - 36 => 'Posts range',//'发帖数介于', - 37 => 'members_search_regip', - 38 => 'Register IP begin with',//'注册 IP 开始于', - 39 => 'Such as 192.168, the wildcard * can be used',//'如 192.168,可使用通配符 *', - 40 => 'members_search_lastip', - 41 => 'Last visit IP begin with',//'上次访问 IP 开始于', - 42 => 'Such as 192.168, the wildcard * can be used',//'如 192.168,可使用通配符 *', - 43 => 'members_search_oltimerange', - 44 => 'User online time (hours)',//'用户在线时间(单位小时)', - 45 => 'members_search_regdaterange', - 46 => 'Registration date range',//'注册日期介于', - 47 => 'members_search_lastvisitrange', - 48 => 'Last visit time range',//'最后访问时间介于', - 49 => 'members_search_lastpostrange', - 50 => 'Last post time range',//'最后发帖时间介于', - 51 => 'members_search_group_fid', - 52 => 'Group ID (separate multiple group ID by commas)',//'群组 ID(多个群组逗号分隔)', - 53 => 'members_search_verify', - 54 => 'Approve',//'认证', - 55 => 'members_search_birthday', - 56 => 'Birthday',//'用户生日', - ), - ), - 214 => - array ( - 'index' => - array ( - 'User sub-table' => 'action=membersplit&operation=check',//'用户分表' - ), - 'text' => - array ( - 0 => 'User sub-table',//'用户分表', - 1 => 'membersplit_check_tips', - 2 => 'Using the user optimization can significantly improve the site performance. Because of the physical examination operation is slow, the results of the physical examination is cached once per day',//'通过用户优化可以大幅度提高网站的性能。因体检操作较慢,所以体检的结果会缓存一天的时间', - ), - ), - 215 => - array ( - 'index' => - array ( - 'User sub-table' => 'action=membersplit&operation=check',//'用户分表' - ), - 'text' => - array ( - 0 => 'User sub-table',//'用户分表', - 1 => 'membersplit_tips', - 2 => 'Using the user optimization can significantly improve the site performance. When the number of users is large, the optimizing can improve performance more than 30%, we strongly recommend to perform user table optimization. Depending on server performance, Appropriate adjustments to single-step optimization of the number. It is recommended to close the site before optimization!',//'通过用户优化可以大幅度提高网站的性能。当可优化用户数大于30%以上时,我们强烈建议进行用户表优化操作请根据服务器性能,适当调整单步优化数。建议在关闭站点下进行优化操作。', - ), - ), - 216 => - array ( - 'index' => - array ( - 'Online List icons' => 'action=misc&operation=onlinelist',//'在线列表图标', - ), - 'text' => - array ( - 0 => 'Online List icons',//'在线列表图标', - 1 => 'misc_onlinelist_tips', - 2 => 'This function is used to customize the members online legend. It is effective only if a online list function is enabled. Legend at the blank for the user group does not distinguish between the group of users, all user groups did not distinguish between the uniform included the first line of "ordinary users" item. Please fill in the user group legend image file name, and upload the corresponding image file to the static/image/common/ directory.',//'本功能用于自定义首页及主题列表页显示的在线会员分组及图例,只在在线列表功能打开时有效。用户组图例处空白为不区分该组用户,所有未区分的用户组将统一归入第一行的“普通用户”项。用户组图例中请填写图片文件名,并将相应图片文件上传到 static/image/common/ 目录中。', - ), - ), - 217 => - array ( - 'index' => - array ( - 'Links' => 'action=misc&operation=link',//'友情链接', - ), - 'text' => - array ( - 0 => 'Links',//'友情链接', - 1 => 'misc_link_tips', - 2 => 'If you do not want to show links at the forum home page, you can turn off the "interface settings". If the link text description is not completed, it will be displayed in a compact form. Friend Links grouped and displayed only in DIY block.',//'如果你不想在论坛首页显示友情链接,可以在“界面设置”中关闭。未填写文字说明的项目将以紧凑型显示。 -// 友情链接分组只供 DIY 的展示类模块使用。', - ), - ), - 218 => - array ( - 'index' => - array ( - 'Related Links' => 'action=misc&operation=relatedlink',//'关联链接', - ), - 'text' => - array ( - 0 => 'Related Links',//'关联链接', - 1 => 'misc_relatedlink_tips', - 2 => 'Displayed automatically in a specified range of related content.',//'在指定范围内出现的相关文字自动加上链接。', - ), - ), - 219 => - array ( - 'index' => - array ( - 'Editor Settings' => 'action=setting&operation=editor',//'编辑器设置', - 'BB-Code' => 'action=setting&operation=bbcode',//'Discuz! 代码', - ), - 'text' => - array ( - 0 => 'Editor Settings » BB-Code',//'编辑器设置 » Discuz! 代码', - 1 => 'misc_bbcode_edit_tips', - 2 => 'Custom BB-Code button is available in posting only if the icon file is set, and a corresopnding user group have a permission "Allow to use custom BB-Code".',//'只有在自定义 Discuz! 代码可用并设置了图标文件时,具有“允许使用自定义 Discuz! 代码”权限的用户组在发帖时才会看到相应自定义 Discuz! 代码按钮。', - ), - ), - 220 => - array ( - 'index' => - array ( - 'Bad Word Filter' => 'action=misc&operation=censor',//'词语过滤', - ), - 'text' => - array ( - 0 => 'Bad Word Filter',//'词语过滤', - 1 => 'misc_censor_tips', - 2 => 'Keyword qualifier {x} can be used to ignored text between two adjacent characters, here "x" is a number of ignored characters. I.e. "a{1}s{2}s" (without the quotes) can search for "ass" and "axsxs" and "axsxxs" and so on. For Chinese characters of GBK or Big-5 encofing each Chinese character is equivalent to 2 bytes; For UTF-8 encoding each Chinese character is equivalent to 3 bytes. If yo do not want to decrease the efficiency of the program, please do not set too much to filter content. If you want to effectively review and verify the forum contents, you can edit or delete or add your own items to the filter. If a bad word starts and finished with "/" (without quotes), it is means that it is a regular expression format, and so the reference to "(n)" may be used for replace the content to the sub-patterns, such as a pattern "/1\\d{10}([^\\d]+|$)/" may be replaced with "Mobile phone: (1)".',//'替换前的内容可以使用限定符 {x} 以限定相邻两字符间可忽略的文字,x 是忽略的字节数。如 "a{1}s{2}s"(不含引号) 可以过滤 "ass" 也可过滤 "axsxs" 和 "axsxxs" 等等。对于中文字符,若使用 GBK、Big-5 版本,每个中文字符相当于 2 个字节;若使用 UTF-8 版本,每个中文字符相当于 3 个字节。为不影响程序效率,请不要设置过多不需要的过滤内容。审核只对论坛中的内容有效如果你不是论坛管理员,你将只能对自己添加的项目进行编辑或删除。不良词语如果以"/"(不含引号)开头和结尾则表示格式为正则表达式,这时替换内容可用"(n)"引用正则中的子模式,如"/1\\d{10}([^\\d]+|$)/"替换为"手机(1)"。', - 3 => 'misc_censor_batch_add_tips', - 4 => 'Each line represents a one filter rule, bad word and replacement words separated by the "=" between; For disable some text without any replacement, replace the corresponding content with {BANNED}; If some words in a post require the post will not directly shown but must be flagged for manual preview by a moderator, replace the corresponding content to {MOD}. If you just want to directly replacea word with **, you can only enter this words; For example: toobadnobadbadword=goodsexword={BANNED}; For support Export/import of words into a category, you can not choose to specify import category. The default category is not automatically included',//'每行一组过滤词语,不良词语和替换词语之间使用“=”进行分割;如需禁止发布包含某个词语的文字,而不是替换过滤,请将其对应的替换内容设置为{BANNED}即可;如需当用户发布包含某个词语的文字时,自动标记为需要人工审核,而不直接显示或替换过滤,请将其对应的替换内容设置为{MOD}即可(审核只对论坛中的内容有效)。如果只是想将某个词语直接替换成 **,则只输入词语即可;例如:toobadnobadbadword=goodsexword={BANNED}导出/导入时支持词语分类导入,导入时不带有分类则可以通过选择指定导入分类。没有分类时自动归入默认分类', - 5 => 'misc_censor_wordtype_tips', - 6 => 'By default the filter is built-in into the default category. When you remove a category, the word filter will be automatically incorporated into the default category.',//'默认分类为内置分类,当删除一组分类时,词语过滤将会自动编入默认分类中。', - ), - ), - 221 => - array ( - 'index' => - array ( - 'Thread stamps' => 'action=misc&operation=stamp',//'主题鉴定', - 'Stamp List' => 'action=misc&operation=stamp&anchor=list',//'图章', - ), - 'text' => - array ( - 0 => 'Thread stamps » Stamp List',//'主题鉴定 » 图章', - 1 => 'misc_stamp_listtips', - 2 => 'Identification stamp displayed on the post content page and on the thread list page. The system reserves 100 positions for the thread identification images, for the image ID from 0 to 99 respectively. Do not modify the image ID!, it will cause a disordering of the stamped threads. When a stamp associated with the operation set, the stamp will automatically perform the corresponding action for the thread; When a stamp is associated with the icon, the icon will be automatically shown when the stamp is added to the thread. The same stamp icon can not be associated with more than one operation.',//'鉴定图章显示在帖子内容页,鉴定图标显示在主题列表页。系统预留了 100 个主题鉴定图片位置,分别为图片 ID 0 至 99。不要随意修改图片 ID,否则将会导致主题中已使用的图章、图标错乱。当图章设置了关联操作后,图章会在执行相应操作时被自动添加到主题中;当图章设置了关联图标后,图标会在添加图章时自动添加到主题列表中。关联操作不可与关联图标同时设置。', - ), - ), - 222 => - array ( - 'index' => - array ( - 'Thread stamps' => 'action=misc&operation=stamp',//'主题鉴定', - 'Icons' => 'action=misc&operation=stamp&anchor=llist',//'图标', - ), - 'text' => - array ( - 0 => 'Thread stamps » Icons',//'主题鉴定 » 图标', - 1 => 'misc_stamp_listtips', - 2 => 'Identification stamp displayed on the post content page and on the thread list page. The system reserves 100 positions for the thread identification images, for the image ID from 0 to 99 respectively. Do not modify the image ID!, it will cause a disordering of the stamped threads. When a stamp associated with the operation set, the stamp will automatically perform the corresponding action for the thread; When a stamp is associated with the icon, the icon will be automatically shown when the stamp is added to the thread. The same stamp icon can not be associated with more than one operation.',//'鉴定图章显示在帖子内容页,鉴定图标显示在主题列表页。系统预留了 100 个主题鉴定图片位置,分别为图片 ID 0 至 99。不要随意修改图片 ID,否则将会导致主题中已使用的图章、图标错乱。当图章设置了关联操作后,图章会在执行相应操作时被自动添加到主题中;当图章设置了关联图标后,图标会在添加图章时自动添加到主题列表中。关联操作不可与关联图标同时设置。', - ), - ), - 223 => - array ( - 'index' => - array ( - 'Thread stamps' => 'action=misc&operation=stamp',//'主题鉴定', - 'Add' => 'action=misc&operation=stamp&anchor=add',//'添加', - ), - 'text' => - array ( - 0 => 'Thread stamps » Add',//'主题鉴定 » 添加', - 1 => 'misc_stamp_addtips', - 2 => 'You can add a stamp and choose an icon filename for the stamp. Image name must be filled out, no name image will not be added.',//'可以选择是添加成图章还是图标。图片名称必需填写,没有名称的图片不会被添加。', - ), - ), - 224 => - array ( - 'index' => - array ( - 'Attachment type size' => 'action=misc&operation=attachtype',//'附件类型尺寸', - ), - 'text' => - array ( - 0 => 'Attachment type size',//'附件类型尺寸', - 1 => 'misc_attachtype_tips', - 2 => 'This feature can limit the maximum size for a particular attachment type. When this setting is smaller than the user group maximum size, this setting will prevail the specified attachment type size limits. You can set the maximum size of certain attachment types to zero for prohibit such attachments uploads at all.',//'本功能可限定某特定类型附件的最大尺寸,当这里设定的尺寸小于用户组允许的最大尺寸时,指定类型的附件尺寸限制将按本设定为准。你可以设置某类附件最大尺寸为 0 以整体禁止这类附件被上传。', - ), - ), - 225 => - array ( - 'index' => - array ( - 'Cron Scheduler' => 'action=misc&operation=cron',//'计划任务', - ), - 'text' => - array ( - 0 => 'Cron Scheduler',//'计划任务', - 1 => 'misc_cron_tips', - 2 => 'Discuz! Task Scheduler system performs certain tasks automatically in a specified time, you can also easily extend the capabilities of the site sheduler. The task scheduler is closely associated with the core system features, so if this settings is improper, it may result the site will not visible, or may does not work properly, so make sure you fully understand the properties of scheduled tasks, and clearly know what is being done, what kind of consequences will performed when you add or modify any sheduled task! This feature is in full accordance with the server default time settings, but not based on a user or a site administrator changed time setting.',//'计划任务是 Discuz! 提供的一项使系统在规定时间自动执行某些特定任务的功能,在需要的情况下,你也可以方便的将其用于站点功能的扩展。计划任务是与系统核心紧密关联的功能特性,不当的设置可能造成站点功能的隐患,严重时可能导致站点无法正常运行,因此请务必仅在你对计划任务特性十分了解,并明确知道正在做什么、有什么样后果的时候才自行添加或修改任务项目。此处和其他功能不同,本功能中完全按照站点系统默认时差对时间进行设定和显示,而不会依据某一用户或管理员的时差设定而改变显示或设置的时间值。', - ), - ), - 226 => - array ( - 'index' => - array ( - 'Hot Threads' => 'action=misc&operation=focus',//'站长推荐', - 'Manage' => 'action=misc&operation=focus',//'管理', - ), - 'text' => - array ( - 0 => 'Hot Threads » Manage',//'站长推荐 » 管理', - 1 => 'misc_focus_tips', - 2 => 'A floating window "Webmaster recommended" will be displayed in the lower right corner of the post content page. You can manually add some specific topics, or select some topics to recommended by moderator. Maximum is 10 items, that will be displayed randomly.',//'站长推荐将以浮窗的形式显示在帖子内容页面右下角。你可以手动添加一些指定的主题,或者选择一些版主推荐的主题。最多 10 条,每次随机显示其中 1 条。', - 3 => 'admin', - 4 => 'Manage',//'管理', - ), - ), - 227 => - array ( - 'index' => - array ( - 'Hot Threads' => 'action=misc&operation=focus',//'站长推荐', - 'Add' => 'action=misc&operation=focus&do=add',//'添加', - ), - 'text' => - array ( - 0 => 'Hot Threads » Add',//'站长推荐 » 添加', - 1 => 'misc_focus_handadd', - 2 => 'Manually add',//'手动添加', - 3 => 'misc_focus_handurl', - 4 => 'Recommended link URL',//'推荐链接地址', - 5 => 'misc_focus_handsubject', - 6 => 'Recommended link title',//'推荐标题', - 7 => 'misc_focus_handsummary', - 8 => 'Recommended link description',//'推荐内容', - 9 => 'HTML code supported, Max length is 150 characters',//'此处支持 HTML 代码,建议少于150个字符', - 10 => 'misc_focus_handimg', - 11 => 'Add image',//'附加图片', - 12 => 'Enter the image absolute path',//'请填写图片的绝对路径', - 13 => 'misc_focus_position', - 14 => 'Where to place the Webmaster recommended block',//'站长推荐投放区域', - ), - ), - 228 => - array ( - 'index' => - array ( - 'Hot Threads' => 'action=misc&operation=focus',//'站长推荐', - 'Settings' => 'action=misc&operation=focus&do=config',//'设置', - ), - 'text' => - array ( - 0 => 'Hot Threads » Settings',//'站长推荐 » 设置', - 1 => 'config', - 2 => 'Settings',//'设置', - 3 => 'misc_focus_area_title', - 4 => 'Webmaster recommended block title',//'站长推荐区域标题', - 5 => 'Default is "Recommended by Webmaster", you can set what you want',//'默认为“站长推荐”,你可以设置为你希望的标题', - 6 => 'misc_focus_area_cookie', - 7 => 'Set the pop-up refresh time (in hours)',//'设置关闭后可再次弹出的时间(小时)', - 8 => '0 means the refresh the pop up every time. 1 means the pop-up will be refreshed every one hour. The default is 1, you can set the time you want to refresh the pop-up.',//'0表示再刷新页面就会弹出。1表示1小时后刷新页面才会出现。默认为1,可以设置为你希望弹出的时间 -//', - ), - ), - 229 => - array ( - 'index' => - array ( - 'Images Management' => 'action=pic',//'图片管理', - ), - 'text' => - array ( - 0 => 'Images Management',//'图片管理', - 1 => 'pic_tips', - 2 => 'Batch management is used to delete used images. Warning: When you click the Delete button at the search results page, the information will be deleted directly!',//'批量图片管理用于删除图片使用。连图片评论一同删除提醒:点击搜索结果页的删除按钮,将会直接删除相关信息!', - ), - ), - 230 => - array ( - 'index' => - array ( - 'Images Management' => 'action=pic',//'图片管理', - 'Search' => 'action=pic&search=true',//'搜索', - ), - 'text' => - array ( - 0 => 'Images Management » Search',//'图片管理 » 搜索', - 1 => 'pic_search_detail', - 2 => 'Show detailed image list',//'显示详细图片列表', - 3 => 'pic_search_perpage', - 4 => 'Items per page',//'每页显示数', - 5 => 'resultsort', - 6 => 'Sort results',//'结果排序', - 7 => 'pic_search_albumid', - 8 => 'Where the album ID',//'所在相册 ID', - 9 => 'Separate multiple album ID with a comma ","',//'多相册 ID 中间,请用半角逗号 "," 隔开', - 10 => 'pic_search_user', - 11 => 'Posted image User Name',//'发表图片用户名', - 12 => 'Separate multiple user names with a comma ","',//'多所有者中间请用半角逗号 "," 隔开', - 13 => 'pic_search_picid', - 14 => 'Image ID',//'图片 ID', - 15 => 'Separate multiple image ID with a comma ","',//'多图片 ID 中间请用半角逗号 "," 隔开', - 16 => 'pic_search_title', - 17 => 'Image Title',//'图片标题', - 18 => 'pic_search_ip', - 19 => 'Posted IP',//'发布IP', - 20 => 'Wildcard "*" may be used, i.e. "127.0 .*.*" (without quotes), use with caution!!!',//'通配符 "*" 如 "127.0.*.*"(不含引号),慎用!!!', - 21 => 'pic_search_hot', - 22 => 'Hot',//'热度', - 23 => 'pic_search_time', - 24 => 'Upload time range',//'上传时间范围', - 25 => 'Format is yyyy-mm-dd',//'格式 yyyy-mm-dd', - ), - ), - 231 => - array ( - 'index' => - array ( - 'Post Comment Management' => 'action=postcomment',//'帖子点评管理', - ), - 'text' => - array ( - 0 => 'Post Comment Management',//'帖子点评管理', - 1 => 'postcomment_tips', - 2 => 'Batch Comment management is used to delete post Comments. Warning: Click on the Delete button in the search results page will delete the information directly!',//'批量点评管理用于删除帖子点评。提醒:点击搜索结果页的删除按钮,将会直接删除相关信息!', - ), - ), - 232 => - array ( - 'index' => - array ( - 'Post Comment Management' => 'action=postcomment',//'帖子点评管理', - 'Search' => 'action=postcomment&search=true',//'搜索', - ), - 'text' => - array ( - 0 => 'Post Comment Management » Search',//'帖子点评管理 » 搜索', - 1 => 'postcomment_search_detail', - 2 => 'Show detailed comment list',//'显示详细点评列表', - 3 => 'comment_search_perpage', - 4 => 'Items per page',//'每页显示数', - 5 => 'postcomment_content', - 6 => 'Comment content',//'点评内容', - 7 => 'postcomment_search_tid', - 8 => 'Comments for thread ID',//'被点评主题 ID', - 9 => 'Search all comments for designated thread ID (including the thread posts and replies), Separate multiple ID with a comma ","',//'指定主题的所有点评(包括主题帖和回帖),多 ID 中间请用半角逗号 "," 隔开', - 10 => 'postcomment_search_pid', - 11 => 'Comment for post ID',//'被点评帖子 ID', - 12 => 'Separate multiple post ID with a comma ","',//'指定帖子的点评,多 ID 中间请用半角逗号 "," 隔开', - 13 => 'postcomment_search_author', - 14 => 'Comment author name',//'点评者', - 15 => 'Separate multiple author names with a comma ","',//'多点评者名中间请用半角逗号 "," 隔开', - 16 => 'postcomment_search_authorid', - 17 => 'Comment author ID',//'点评者 ID', - 18 => 'Separate multiple author ID with a comma ","',//'多点评者 ID 中间请用半角逗号 "," 隔开', - 19 => 'comment_search_ip', - 20 => 'Posted IP',//'发布IP', - 21 => 'Wildcard "*" may be used, i.e. "127.0 .*.*" (without quotes), use with caution!!!',//'通配符 "*" 如 "127.0.*.*"(不含引号),慎用!!!', - 22 => 'postcomment_search_time', - 23 => 'Comment time range',//'点评时间范围', - 24 => 'Format is yyyy-mm-dd',//'格式 yyyy-mm-dd', - ), - ), - 233 => - array ( - 'index' => - array ( - 'Split Posts' => 'action=postsplit&operation=manage',//'帖子分表', - 'Table management' => 'action=postsplit&operation=manage',//'分表管理', - ), - 'text' => - array ( - 0 => 'Split Posts » Table management',//'帖子分表 » 分表管理', - 1 => 'postsplit_manage_tips', - 2 => 'To prevent problems, you must shut down the site before the post splitting. Before the post splitting it is recommended to prepare the Database backup. The table optimization spent a long time, and during this period you must not restart the server or stop the MySQL service. You have to be preserve at less 300M for optimizing the forum_post (main table) data. The post split feature will place the post data into different tables for increase the site efficiency in case of a lot of posts.',//'进行帖子分表前一定要先关闭站点,为防止分表操作过程中出现问题,必须做好数据库备份后再进行此操作帖子数据转移完毕会对源帖子表进行表优化操作,优化表所耗时间比较长,在这期间绝对不能重起服务器或者停止MySQL服务forum_post(主表)必须保留300M的数据帖子分表功能可以将帖子分在不同的数据表中,适合帖子数很多并且运行效率受到影响的站点使用', - ), - ), - 234 => - array ( - 'index' => - array ( - 'Split Posts' => 'action=postsplit&operation=manage',//'帖子分表', - 'Table management' => 'action=postsplit&operation=manage',//'分表管理', - ), - 'text' => - array ( - 0 => 'Split Posts » Table management',//'帖子分表 » 分表管理', - 1 => 'postsplit_manage_tips', - 2 => 'To prevent problems, you must shut down the site before the post splitting. Before the post splitting it is recommended to prepare the Database backup. The table optimization spent a long time, and during this period you must not restart the server or stop the MySQL service. You have to be preserve at less 300M for optimizing the forum_post (main table) data. The post split feature will place the post data into different tables for increase the site efficiency in case of a lot of posts.',//'进行帖子分表前一定要先关闭站点,为防止分表操作过程中出现问题,必须做好数据库备份后再进行此操作帖子数据转移完毕会对源帖子表进行表优化操作,优化表所耗时间比较长,在这期间绝对不能重起服务器或者停止MySQL服务forum_post(主表)必须保留300M的数据帖子分表功能可以将帖子分在不同的数据表中,适合帖子数很多并且运行效率受到影响的站点使用', - ), - ), - 235 => - array ( - 'index' => - array ( - 'Bulk post delete' => 'action=prune',//'论坛批量删帖', - ), - 'text' => - array ( - 0 => 'Bulk post delete',//'论坛批量删帖', - 1 => 'prune_tips', - 2 => 'Bulk post delete used only for delete illegal posts. If you need to batch delete the history Report Top, Please use the thread batch management. For using this feature, you have to provide the post start time and end time, post user name, post IP and content keywords. At least two conditions are necessary, otherwise it will not be able to operate. If your conditions of the post deleting meet the thread first post, or a thread without replies, the entire thread will be removed. If you are not a forum administrator, you can delete posts only in a time range from some time to the present. Super Moderator can delete posts in the time range of two weeks (14 days); Moderator can remove posts in the time range of one week (7 days) and only for the forums in his jurisdiction. Keyword qualifier {x} can be used to ignored text between two adjacent characters, here "x" is a number of ignored characters. I.e. "a{1}s{2}s" (without the quotes) can search for "ass" and "axsxs" and "axsxxs" and so on.',//'批量删帖仅用于删除违规帖子使用,如你需要批量删除历史旧帖,请使用批量主题管理功能。使用此功能,需同时提供起始时间和终止时间其中之一,及发帖用户名、发帖 IP、内容关键字其中之一,至少共二项必要的条件,否则将无法进行操作。如果符合删除条件的帖子为主题第一帖,或该主题无回复,将删除整个主题。如果你不是论坛管理员,你只能删除从某一时间到现在的范围内的帖子。超级版主的删帖的时间范围为二星期(14 天);版主的时间范围为一星期(7 天)且只能删除所管辖论坛内的帖子。关键字可以使用限定符 {x} 以限定相邻两字符间可忽略的文字,x 是忽略字符的个数,如 "a{1}s{2}s"(不含引号) 可以搜索到 "ass" 也可搜索到 "axsxs" 和 "axsxxs" 等等。', - 3 => 'prune_search_detail', - 4 => 'Show detailed post list',//'显示详细帖子列表', - 5 => 'prune_search_select_postsplit', - 6 => 'Select the post split sub-table',//'选择帖子分表', - 7 => 'prune_search_forum', - 8 => 'Search in Forums',//'所在版块', - 9 => 'prune_search_perpage', - 10 => 'Items per page',//'每页显示数', - 11 => 'prune_search_time', - 12 => 'Post Time range',//'发表时间范围', - 13 => 'Format is yyyy-mm-dd. Set to 0 for no restrictions',//'格式 yyyy-mm-dd,不限制请输入 0', - 14 => 'prune_search_user', - 15 => 'Post author name',//'发帖用户名', - 16 => 'Separate multiple names with a comma ","',//'多用户名中间请用半角逗号 "," 隔开', - 17 => 'prune_search_ip', - 18 => 'Poster IP ',//'发帖 IP ', - 19 => 'Wildcard "*" may be used, i.e. "127.0 .*.*" (without quotes), use with caution!!!',//'通配符 "*" 如 "127.0.*.*"(不含引号),慎用!!!', - 20 => 'prune_search_keyword', - 21 => 'Keywords',//'内容关键字', - 22 => 'Separate multiple keywords with a comma ",", keywords qualifier {x} can be used.',//'多关键字中间请用半角逗号 "," 隔开,关键词可以用限定符 {x}', - 23 => 'prune_search_lengthlimit', - 24 => 'Minimal content length',//'内容最小长度', - 25 => 'This feature will add the server loading',//'本功能会加重服务器负担', - ), - ), - 236 => - array ( - 'index' => - array ( - 'Recycle Bin Management' => 'action=recyclebin',//'主题回收站', - 'Search' => 'action=recyclebin&operation=search',//'搜索', - ), - 'text' => - array ( - 0 => 'Recycle Bin Management » Search',//'主题回收站 » 搜索', - 1 => 'recyclebin_search', - 2 => 'Search relevant posts for delete',//'搜索符合条件的被删帖子', - 3 => 'recyclebin_search_forum', - 4 => 'Search in Forums',//'所在版块', - 5 => 'recyclebin_search_author', - 6 => 'Author name',//'原帖作者', - 7 => 'Separate multiple names with a comma ","',//'多个用户名间请用半角逗号 "," 隔开', - 8 => 'recyclebin_search_keyword', - 9 => 'Keywords',//'标题关键字', - 10 => 'Separate multiple keywords by a comma ","',//'多关键字中间请用半角逗号 "," 隔开', - 11 => 'recyclebin_search_admin', - 12 => 'Deleted by manager',//'删帖管理员', - 13 => 'Separate multiple user names by a comma ","',//'多个用户名间请用半角逗号 "," 隔开', - 14 => 'recyclebin_search_post_time', - 15 => 'Posting time range',//'帖子发表时间范围', - 16 => 'Format yyyy-mm-dd, leave blank for no restrictions',//'格式 yyyy-mm-dd,不限制请留空', - 17 => 'recyclebin_search_mod_time', - 18 => 'Deleted in time range',//'删帖时间范围', - 19 => 'Format yyyy-mm-dd, leave blank for no restrictions',//'格式 yyyy-mm-dd,不限制请留空', - 20 => 'recyclebin_search_security_thread', - 21 => 'Contains only the Tencent security handling threads',//'仅包含腾讯安全处理的主题', - ), - ), - 237 => - array ( - 'index' => - array ( - 'Thread Recycle Bin' => 'action=recyclebin',//'主题回收站', - 'Clean-up' => 'action=recyclebin&operation=clean',//'清理', - ), - 'text' => - array ( - 0 => 'Thread Recycle Bin » Clean-up',//'主题回收站 » 清理', - 1 => 'recyclebin_clean', - 2 => 'Bulk clean-up the thread Recycle Bin',//'批量清空回收站', - 3 => 'recyclebin_clean_days', - 4 => 'Clean up the thread Recycle Bin older than (days)',//'清空多少天以前的回收站帖子', - 5 => 'Set to 0 for clean ALL',//'0 为清空全部', - ), - ), - 238 => - array ( - 'index' => - array ( - 'Posts Recycle Bin' => 'action=recyclebinpost',//'回帖回收站', - 'Search' => 'action=recyclebinpost&operation=search',//'搜索', - ), - 'text' => - array ( - 0 => 'Posts Recycle Bin » Search',//'回帖回收站 » 搜索', - 1 => 'recyclebinpost_search', - 2 => 'Searching for related posts to be deleted',//'搜索符合条件的被删回帖', - 3 => 'recyclebinpost_search_forum', - 4 => 'Search in Forums',//'所在版块', - 5 => 'recyclebinpost_search_author', - 6 => 'Author name',//'原帖作者', - 7 => 'Separate multiple user names by a comma ","',//'多个用户名间请用半角逗号 "," 隔开', - 8 => 'recyclebinpost_search_keyword', - 9 => 'Keywords',//'标题关键字', - 10 => 'Separate multiple keywords by a comma ","',//'多关键字中间请用半角逗号 "," 隔开', - 11 => 'recyclebin_search_post_time', - 12 => 'Posting time range',//'帖子发表时间范围', - 13 => 'Format yyyy-mm-dd, leave blank for no restrictions',//'格式 yyyy-mm-dd,不限制请留空', - 14 => 'postsplit', - 15 => 'Split Posts',//'帖子分表', - 16 => 'recyclebin_search_security_thread', - 17 => 'Contains only the Tencent security handling threads',//'仅包含腾讯安全处理的主题', - ), - ), - 239 => - array ( - 'index' => - array ( - 'Posts Recycle Bin' => 'action=recyclebinpost',//'回帖回收站', - 'Clean-up' => 'action=recyclebinpost&operation=clean',//'清理', - ), - 'text' => - array ( - 0 => 'Posts Recycle Bin » Clean-up',//'回帖回收站 » 清理', - 1 => 'recyclebinpost_clean', - 2 => 'Bulk Clean the Post Recycle Bin',//'批量清空回帖回收站', - 3 => 'recyclebinpost_clean_days', - 4 => 'Clean the Post Recycle Binfor how many days before',//'清空多少天以前的回帖回收站帖子', - 5 => 'Set to 0 for clean ALL',//'0 为清空全部', - ), - ), - 240 => - array ( - 'index' => - array ( - 'User Reports' => 'action=report',//'用户举报', - ), - 'text' => - array ( - 0 => 'User Reports',//'用户举报', - 1 => 'report_tips', - 2 => 'According to report the real situation, to report person addition and subtraction points, set points users to report the use of rewards and punishments than rewards and punishments when the first reports informants.',//'可以根据举报真实情况,给举报者加减积分,设置用户举报奖惩使用的积分多人举报时奖惩第一个举报人。', - ), - ), - 241 => - array ( - 'index' => - array ( - 'Base Settings' => 'action=setting&operation=basic', - ), - 'text' => - array ( - 0 => 'Base Settings',//'站点信息', - 1 => 'setting_basic_bbname', - 2 => 'Site Name',//'站点名称', - 3 => 'The site name will be displayed in the browser window title, etc.',//'站点名称,将显示在浏览器窗口标题等位置', - 4 => 'setting_basic_sitename', - 5 => 'Site Name',//'网站名称', - 6 => 'This site name will appear in the page bottom of Contact & Services page',//'网站名称,将显示在页面底部的联系方式处', - 7 => 'setting_basic_siteurl', - 8 => 'Site URL',//'网站 URL', - 9 => 'The site URL, will shown as a link in the page bottom',//'网站 URL,将作为链接显示在页面底部', - 10 => 'setting_basic_adminemail', - 11 => 'Administrator Email',//'管理员邮箱', - 12 => 'Administrator E-mail is used as a sender address in a system e-mail messages.',//'管理员 E-mail,将作为系统发邮件的时候的发件人地址', - 13 => 'setting_basic_site_qq', - 14 => 'QQ online customer service number',//'QQ在线客服号码', - 15 => 'I set my QQ online status',//'设置我的QQ在线状态', - 16 => 'setting_basic_icp', - 17 => 'Web site registration information',//'网站备案信息代码', - 18 => 'The official company registration info is displayed at the page bottom. Leave blank if no such info.',//'页面底部可以显示 ICP 备案信息,如果网站已备案,在此输入你的授权码,它将显示在页面底部,如果没有请留空', - 19 => 'setting_basic_boardlicensed', - 20 => 'Show license information link',//'显示授权信息链接', - 21 => 'Select "Yes" for display in the footer a link for business authorized users, the link will point to the Discuz! Official website, users can use this link to verify their Discuz! is commercially licensed.',//'选择“是”将在页脚显示商业授权用户链接,链接将指向 Discuz! 官方网站,用户可通过此链接验证其所使用的 Discuz! 是否经过商业授权', - 22 => 'setting_basic_stat', - 23 => 'Third-party site statistical code',//'网站第三方统计代码', - 24 => 'Display third-party statistics at the page bottom',//'页面底部可以显示第三方统计', - 25 => 'setting_basic_bbclosed', - 26 => 'Close the site',//'关闭站点', - 27 => 'Close temporarily the site. Access will be disabled for all visitors except of administrators.',//'暂时将站点关闭,其他人无法访问,但不影响管理员访问', - 28 => 'setting_basic_bbclosed', - 29 => 'Close the site',//'关闭站点', - 30 => 'Close temporarily the site. Access will be disabled for all visitors except of administrators.',//'暂时将站点关闭,其他人无法访问,但不影响管理员访问', - 31 => 'setting_basic_closedreason', - 32 => 'Close Reason',//'关闭站点的原因', - 33 => 'A message about why the site shut is down',//'站点关闭时出现的提示信息', - 34 => 'setting_basic_bbclosed_activation', - 35 => 'The site is closed. Go to UCenter for activate it.',//'站点关闭时允许 UCenter 中的用户激活', - ), - ), - 242 => - array ( - 'index' => - array ( - 'Space settings' => 'action=setting&operation=home',//'空间设置', - 'Basic settings' => 'action=setting&operation=home&anchor=base',//'基本设置', - ), - 'text' => - array ( - 0 => 'Space settings » Base settings',//'空间设置 » 基本设置', - 1 => 'setting_follow_base_default_follow_retain_day', - 2 => 'Broadcast archive time',//'广播存档时间', - 3 => 'Broadcastings older than this number of days will be moved to the archive table (unit: days)',//'广播超过多少天移入存档表(单位:天)', - 4 => 'setting_follow_base_default_view_profile', - 5 => 'Default View Profile',//'默认查看个人资料', - 6 => 'This setting is effective for administrator, after enabling the administrator will view the user profile page by default',//'该设置对管理员有效,开启后默认管理员查看将直接查看个人资料页面', - ), - ), - 243 => - array ( - 'index' => - array ( - 'Space settings' => 'action=setting&operation=home',//'空间设置', - 'Privacy' => 'action=setting&operation=home&anchor=privacy',//'隐私设置', - ), - 'text' => - array ( - 0 => 'Space settings » Privacy',//'空间设置 » 隐私设置', - 1 => 'setting_home_base_feedday', - 2 => 'Number of days to store personal dynamic feeds',//'动态保留天数', - 3 => 'How long to store personal dynamics (default is 7 days). After this number of days all personal dynamic will be cleaned, which can ensure the efficiency of MySQL. Not recommended to set too long.',//'(默认为 7)个人动态的保留天数。超过该天数的个人动态会被清理掉,从而可以保证MySQL的效率。建议不要设置太长', - 4 => 'setting_home_base_feedmaxnum', - 5 => 'Number of dynamics displayed at Home',//'首页动态显示数', - 6 => 'How many dynamics to display in the Home page (default is 100). For ensure the efficiency of MySQL, recommended to set not too much, but at least not less than 50.',//'(默认为 100)首页显示的好友动态将从这些数目的事件中进行合并显示。建议不要设置太多,从而可以保证MySQL的效率,但最少不能低于50', - 7 => 'setting_home_base_feedhotday', - 8 => 'Days range of hot recommended to show',//'热点推荐的天数范围', - 9 => 'Set the number of days to show recommended hot spot at the home page (default is 2 days).',//'(单位天,默认为 2天)设置首页热点推荐选择的天数范围', - 10 => 'setting_home_base_feedhotmin', - 11 => 'Minimum hot value to show at home page',//'热点推荐的最小热度值', - 12 => 'Set the hot value when recommended will appear at home page.',//'设置当发布的信息热度值超过多少后,才会显示在推荐里面', - 13 => 'setting_home_base_feedtargetblank', - 14 => 'Open a dynamic link in a new window',//'动态链接新窗口打开', - 15 => 'If this is set, all the feed links will open in a new window.',//'如果选择是,用户阅读动态的时候,所有的链接都会在新窗口打开', - 16 => 'setting_home_base_showallfriendnum', - 17 => 'Number of friend feeds to show at Home',//'首页动态默认标签设置', - 18 => 'How many friends feeds to show. All others may be shown in Friends News. This setting take the same effect in blogs and albums list page.',//'好友数小于 该值的时候显示所有人的动态,超过这个数值显示好友动态。在日志、相册列表页面,该参数同样生效', - 19 => 'setting_home_base_feedhotnum', - 20 => 'Number of hot feeds shown at home',//'首页显示热点的数目', - 21 => 'Default is 3. If set to 0, then hotspots wil not displayed. Do not exceed the maximum 10. The system get automatically 10 hot hotspots, from which the number one hotspot will be displayed allways, and the remaining hotspots will displayed randomly.',//'(默认为 3)为0,则首页不显示热点推荐。最大不要超过10个。系统会自动获取10个热点,其中,排名第一的热点会固定显示,其余热点会随机显示', - 22 => 'setting_home_base_maxpage', - 23 => 'List max number of sub-pages',//'列表最大分页数', - 24 => 'Allows users to view the not more sub-pages than this value (default 100). More greater number of sub-pages will cause the server greater overloading.',//'(默认为 100)允许用户查看的最大分页数。当用户查看的分页数越大的时候,对服务器的负载压力就越大', - 25 => 'setting_home_base_sendmailday', - 26 => 'Days offline before e-mail notice',//'邮件通知更新天数', - 27 => 'Number of days, when the user does not log in, after then the system will send a notification message. Set to 0 for disable e-mail notification. Enabled this feature will slightly increase the server loading.',//'(默认 0) 单位:天,当用户多少天没有登录站点的时候才会给其发送邮件通知;设置为0,则不启用邮件通知功能;启用本功能将会轻微增加服务器负载', - 28 => 'setting_home_base_recycle_bin', - 29 => 'Enable the blog Recycle Bin',//'开启日志回收站', - 30 => 'After you enable this feature, All the removed blogs will be moved into the Recycle Bin instead of removing directly.',//'打开此功能后,所有被日志将被放在回收站中,而不会被直接删除', - 31 => 'setting_home_base_groupnum', - 32 => 'Number of friends categories',//'好友用户组个数', - 33 => 'Set how many friends categories each user can have (default is 8).',//'(默认为 8)设置每个用户最多拥有的好友用户组个数', - 34 => 'setting_home_base_default_', - 35 => '', - 36 => 'setting_home_base_default_doing', - 37 => 'Default tips for the doing content',//'默认记录提示内容', - 38 => 'One of the listed here prompts will be shown randomly in the doing box',//'一行为一个提示内容,这些内容将在记录发表框中显示,随机从这些默认提示中选取一行做为提示内容', - ), - ), - 244 => - array ( - 'index' => - array ( - 'Space settings' => 'action=setting&operation=home', - 'Privacy' => 'action=setting&operation=home&anchor=privacy',//'隐私设置', - ), - 'text' => - array ( - 0 => 'Space settings » Privacy',//'空间设置 » 隐私设置', - 1 => 'setting_home_privacy_new_user', - 2 => 'New user default privacy settings',//'新用户默认隐私设置', - 3 => 'setting_home_privacy_view_index', - 4 => 'Personal Space Home',//'个人空间首页', - 5 => 'setting_home_privacy_view_friend', - 6 => 'Friend list',//'好友列表', - 7 => 'setting_home_privacy_view_wall', - 8 => 'Wall',//'留言板', - 9 => 'setting_home_privacy_view_feed', - 10 => 'Feeds',//'动态', - 11 => 'Not visible to all users, when accessing the Feed page',//'非“全站用户可见”同时限制了动态首页的游客访问', - 12 => 'setting_home_privacy_view_doing', - 13 => 'Doings',//'记录', - 14 => 'However a list of doings may appear in other pages of the site.',//'在全站的记录列表中可能会出现记录信息。 ', - 15 => 'setting_home_privacy_view_blog', - 16 => 'Blogs',//'日志', - 17 => 'Browse related permissions must be set separately for each blog.',//'相关浏览权限需要在每篇日志中单独设置方可完全生效', - 18 => 'setting_home_privacy_view_album', - 19 => 'Albums',//'相册', - 20 => 'View related album rights need to be set individually for each album in full effect.',//'相关浏览权限需要在每个相册中单独设置方可完全生效', - 21 => 'setting_home_privacy_view_share', - 22 => 'Shares',//'分享', - 23 => 'However, shares may appear in other site pages. ',//'在全站的分享列表中可能会出现分享信息。 ', - 24 => 'setting_home_privacy_default_feed', - 25 => 'Default feeds publishing settings',//'默认动态发布设置', - ), - ), - 245 => - array ( - 'index' => - array ( - 'Registration and access control' => 'action=setting&operation=access', - 'Registration' => 'action=setting&operation=access&anchor=register', - ), - 'text' => - array ( - 0 => 'Registration and access control » Registration',//'注册与访问控制 » 注册', - 1 => 'setting_access_register_status', - 2 => 'Allow registration for new users',//'允许新用户注册', - 3 => 'Settings to allow the site visitors to register a new account. You can choose to register under the site demand approach',//'设置是否允许游客注册成为站点会员,你可以根据站点需求选择注册方式', - 4 => 'setting_access_register_invite_buyprompt', - 5 => 'Invited registration instructions',//'邀请注册说明', - 6 => 'setting_access_register_invite_buy', - 7 => 'Allow recharge to buy invitation code',//'允许充值购买邀请码', - 8 => 'Allow visitors to purchase online prepaid registration invitation code. It is limited to close General registration effectively. Before open this feature sure your e-mail is function normal.',//'允许游客通过在线充值购买注册邀请码。仅限于关闭普通注册时有效。开启前请确认您的电子商务及发送邮件功能可正常使用', - 9 => 'setting_access_register_invite_buyprice', - 10 => 'Invitation code Price (USD)',//'邀请码单价(元)', - 11 => 'setting_access_register_invite_credit', - 12 => 'Invite reward points used to expand',//'邀请新注册会员奖励所用扩展积分', - 13 => 'Registered used Invite expansion reward points, including incentives to invite and be invited to one of the bonus points',//'邀请新注册会员奖励所用的扩展积分,包括奖励邀请人和被邀请人的奖励积分', - 14 => 'setting_access_register_invite_addcredit', - 15 => 'Be invited to one the number of reward points',//'被邀请人奖励积分数量', - 16 => 'After successful registration through invitation code, reward points to be invited to expand the number of people',//'通过邀请码注册成功后,奖励被邀请人的扩展积分数量', - 17 => 'setting_access_register_invite_invitedcredit', - 18 => 'Amount of reward points to invite people',//'邀请人奖励积分数量', - 19 => 'After successful registration through invitation code, people invited will receive the number of reward points.',//'通过邀请码注册成功后,奖励邀请人的扩展积分数量', - 20 => 'setting_access_register_invite_group', - 21 => 'Initial user group for registered by invitation users',//'邀请注册用户初始用户组', - 22 => 'Set a default user group for new invited members',//'被邀请人的初始用户组', - 23 => 'setting_access_register_invite_areawhite', - 24 => 'Without an invitation code restricted area list',//'不受邀请码限制的地区列表', - 25 => 'When a user is in this list of address, registration is enabled without an invitation code. Enter one region per line, such as "Beijing" (without the quotes), leave it blank for not set limits. Note: To determine correct region by your IP address, please download the qqwry.dat IP address database file and then upload it to the "data/ipdata/" directory and rename to wry.dat. Also delete the tinyipdata.dat file.',//'当用户处于本列表中的地址时,注册时不受邀请码限制。每个地区一行,例如 "北京"(不含引号),留空为不设置。注意:如要正确无误的判断您 IP 地址所在的地区,请到网上下载 qqwry.dat IP 地址库文件上传到 "data/ipdata/" 目录下更名为 wry.dat,同时删除 tinyipdata.dat 文件', - 26 => 'setting_access_register_invite_ipwhite', - 27 => 'Restricted IP list for invitation code',//'不受邀请码限制的 IP 列表', - 28 => 'When a user is in this IP address list, a registration is available without an invitation code. Enter one IP per line. You can enter the full address, or only the IP beginning, for example, "192.168." (Without quotation marks) to match all addresses from the range of 192.168.0.0 ~ 192.168.255.255. Leave it blank to not set.',//'当用户处于本列表中的 IP 地址时,注册时不受邀请码限制。每个 IP 一行,既可输入完整地址,也可只输入 IP 开头,例如 "192.168."(不含引号) 可匹配 192.168.0.0~192.168.255.255 范围内的所有地址,留空为不设置', - 29 => 'setting_access_register_regclosemessage', - 30 => 'Close registration message',//'关闭注册提示信息', - 31 => 'A reason why the site registration is closed',//'当站点关闭注册时的提示信息', - 32 => 'setting_access_register_name', - 33 => 'Registration name:',//'注册地址:', - 34 => 'Set the site up address mod, default is "Register", change the name of irrigation software helps prevent different from the Discuz! X versions prior to change this setting, do not modify any file name, only This modification can be',//'设置站点注册地址 mod 值,默认为“register”,修改名称有利于防止灌水软件,有别于 Discuz! X 之前的版本更改了此设置,不需要修改任何文件名称,只在此修改即可', - 35 => 'setting_access_register_send_register_url', - 36 => 'Send registration link via e-mail',//'通过邮件发送注册链接', - 37 => 'After enabling the system will send a registration URL to the user mailbox. Users came to this URL became registered. Also recommended to make the same settings in UCenter: Enable account registration only by mailbox. Pay attention to: UC server - Mail settings - Ensure that the E-mail sent is enabled.',//'开启后系统会发一条注册的地址到用户的邮箱,从该地址链接过来的允许注册,同时建议UCenter中开启一个邮箱只允许注册一个帐户注意:只有在站长 - 邮件设置中完成邮件设置,确保邮件能发送成功下可以开启该功能 ', - 41 => 'setting_access_register_link_name', - 42 => 'Register link text',//'注册链接文字', - 43 => 'Set the link text for the site registration page, the default is "Register"',//'设置站点注册页的链接文字,默认为“立即注册”', - 44 => 'setting_access_register_censoruser', - 45 => 'Disabled words in Profile',//'用户信息保留关键字', - 46 => 'The words that users can not use in their user information. One Line for each keyword, you can use a wildcard "*", i.e. "*moderator*" (without quotation marks).',//'用户在其用户信息中无法使用这些关键字。每个关键字一行,可使用通配符 "*" 如 "*版主*"(不含引号)', - 47 => 'setting_access_register_pwlength', - 48 => 'Minimal password length',//'密码最小长度', - 49 => 'Set the shortest password length enabled for new user registration, set to 0 for no limits',//'新用户注册时密码最小长度,0或不填为不限制', - 50 => 'setting_access_register_strongpw', - 51 => 'Force password complexity',//'强制密码复杂度', - 52 => 'Users at regisration must use in the password selected character types. Ddo not choose for unrestricted password',//'新用户注册时密码中必须存在所选字符类型,不选则为无限制', - 53 => 'setting_access_register_verify', - 54 => 'New user registration validation',//'新用户注册验证', - 55 => 'Select "No" if users can directly register; select "Email Verification" for sending a verification email to confirm the Registration; select "manual validation" for administrator manually approve new user registration.',//'选择“无”用户可直接注册成功;选择“Email 验证”将向用户注册 Email 发送一封验证邮件以确认邮箱的有效性(开启“通过邮件发送注册链接”该设置自动通过验证);选择“人工审核”将由管理员人工逐个确定是否允许新用户注册', - 56 => 'setting_access_register_verify_areawhite', - 57 => 'Location "White List"',//'不受新用户注册验证限制的地区列表', - 58 => 'When the user is from this location list, do not perform the registration examination. Enter one line per each region, such as "Beijing" (without the quotes), or leave blank for not set',//'当用户处于本列表中的地址时,直接注册成功,无需新用户注册验证。每个地区一行,例如 "北京"(不含引号),留空为不设置', - 59 => 'setting_access_register_verify_ipwhite', - 60 => 'IP White list (no restrictions)',//'不受新用户注册验证限制的 IP 列表', - 61 => 'When the user is in this list of IP addresses, the registration without examination. One IP per line, you can enter a full address, or only the IP beginning, i.e. "192.168." (Without quotation marks) to match all addresses in the range of 192.168.0.0 ~ 192.168.255.255. Leave blank to not set.',//'当用户处于本列表中的 IP 地址时,直接注册成功,无需新用户注册验证。每个 IP 一行,既可输入完整地址,也可只输入 IP 开头,例如 "192.168."(不含引号) 可匹配 192.168.0.0~192.168.255.255 范围内的所有地址,留空为不设置', - 62 => 'setting_access_register_maildomain', - 63 => 'Registered mail domain name restrictions',//'注册邮箱域名限制', - 64 => 'Select "No" for turn off the function directly; Select "Whitelist mode" for enable registration only from listed mail domain names; Select "Blacklist mode" for disable registration from listed mail domain names.',//'选择“无”直接关闭本功能;选择“白名单模式”,只有限制名单中的邮箱域名可以注册;选择“黑名单模式”,限制名单中的邮箱域名不能注册。', - 65 => 'setting_access_register_maildomain_list', - 66 => 'Domain list',//'限制名单', - 67 => 'When a mail domain name is present in the list, it will be operated with the corresponding action. You can block entered emails from some domains. For example, if you want to block all mailboxes like xxx@site.com, just enter the site.com. One domain per line.',//'当邮箱的域名处于本列表中的地址时,将根据上述选项进行相应限制操作。输入要限制的邮箱域名即可,例如屏蔽 xxx@xxx.com 的域,只需输入 xxx.com。每行一个域名。', - 68 => 'setting_access_register_ctrl', - 69 => 'Registration interval limit for the same IP (hours)',//'同一 IP 注册间隔限制(小时)', - 70 => 'The minimum time interval for the same IP can register an account, 0 for no limits',//'同一 IP 在本时间间隔内将只能注册一个帐号,0 为不限制', - 71 => 'setting_access_register_floodctrl', - 72 => 'Maximum number of registrations enabled for the same IP in 24 hours',//'同一 IP 在 24 小时允许注册的最大次数', - 73 => 'Restrict the number of attempts to register from the same IP address within 24 hours. Recommended value in range of 30 - 100. Set 0 for no limits.',//'同一 IP 地址在 24 小时内尝试注册的次数限制,建议在 30 - 100 范围内取值,0 为不限制', - 74 => 'setting_access_register_ipctrl_time', - 75 => 'Limit registration from same IP in a time interval (hours):',//'限时注册IP注册间隔限制(小时):', - 76 => 'Users from this IP list will be limited to register only one new account from the same IP address in this interval of time',//'用户处于限时注册的 IP 列表中的 IP 地址时,同一 IP 在本时间间隔内将只能注册一个帐号', - 77 => 'setting_access_register_ipctrl', - 78 => 'Limited IP list for register',//'限时注册的 IP 列表', - 79 => 'When the user is in thistlist of IP addresses, he enabled to register an account only in 72 hours. One IP per line. You can enter a full IP address or just the IP beginning, i.e. "192.168." (Without quotation marks) to match all addresses in the range of 192.168.0.0 ~ 192.168.255.255. Leave blank for no limits.',//'当用户处于本列表中的 IP 地址时,在限时注册IP注册间隔限制内将至多只允许注册一个帐号。每个 IP 一行,既可输入完整地址,也可只输入 IP 开头,例如 "192.168."(不含引号) 可匹配 192.168.0.0~192.168.255.255 范围内的所有地址,留空为不设置', - 80 => 'setting_access_register_welcomemsg', - 81 => 'Send Welcome message to registered user by Email',//'发送欢迎信息', - 82 => 'Automatically send a welcome message to new registered user',//'可选择是否自动向新注册用户发送一条欢迎信息', - 83 => 'setting_access_register_welcomemsgtitle', - 84 => 'Welcome message title',//'欢迎信息标题', - 85 => 'The system will send a welcome message with this title. Does not support HTML, not longer than 75 characters. ',//'系统发送的欢迎信息的标题,不支持 HTML,不超过 75 字节。 ', - 86 => 'setting_access_register_welcomemsgtxt', - 87 => 'Welcome message content',//'欢迎信息内容', - 88 => 'The system send a welcome message with this content. Title and content supports variable substitution. Use the following variables: {username}: User, {time}: Time Sent, {sitename}: Site name, {bbname}: Site name, {adminemail}: Administrator Email. ',//'系统发送的欢迎信息的内容。标题内容均支持变量替换,可以使用如下变量:{username} : 用户名{time} : 发送时间{sitename} : 站点名称{bbname} : 站点名称{adminemail} : 管理员 Email', - 89 => 'setting_access_register_bbrules', - 90 => 'Show the site Terms of Service',//'显示网站服务条款', - 91 => 'Show Terms of Service to new user in registration.',//'新用户注册时显示网站服务条款', - 92 => 'setting_access_register_bbruleforce', - 93 => 'Whether to force the site Terms of Service',//'是否强制显示网站服务条款', - 94 => 'This option in for the user registration, the first full terms of service will see the site, you must agree to before they can continue to be registered',//'选择是则在用户注册时,首先将看到网站服务条款全文,必须同意才可以继续注册', - 95 => 'setting_access_register_bbrulestxt', - 96 => 'Terms of Service Content',//'服务条款内容', - 97 => 'Enter the Terms of Service content',//'网站服务条款的详细内容', - ), - ), - 246 => - array ( - 'index' => - array ( - 'Registration and access control' => 'action=setting&operation=access',//'注册与访问控制', - 'Access Control' => 'action=setting&operation=access&anchor=access',//'访问控制', - ), - 'text' => - array ( - 0 => 'Registration and access control » Access Control',//'注册与访问控制 » 访问控制', - 1 => 'setting_access_access_newbiespan', - 2 => 'Newbie Aprobation period (hours)',//'新手见习期限(分钟)', - 3 => 'New registered users will not allowed to post a short messages in this period, excluding administrators and moderators. Set 0 for no limit',//'新注册用户在本期限内将无法发帖和短消息,不影响版主和管理员,0 为不限制', - 4 => 'setting_access_access_ipaccess', - 5 => 'White IP list for access the site',//'允许访问站点的 IP 列表', - 6 => 'Only users from this list of IP addresses can access the site, when other users outside this list will be prohibited to access. Attention: if the administrator is not in this list, he will not able to access too! Make sure to use this feature carefully. One IP per line, you can enter the full IP address, or only the IP beginning, i.e. "192.168." (Without quotation marks) to match all addresses in the range of 192.168.0.0 ~ 192.168.255.255. Leave blank for enable access from all IP.',//'只有当用户处于本列表中的 IP 地址时才可以访问本站点,列表以外的地址访问将视为 IP 被禁止,仅适用于诸如企业、学校内部站点等极个别场合。本功能对管理员没有特例,如果管理员不在此列表范围内将同样不能登录,请务必慎重使用本功能。每个 IP 一行,既可输入完整地址,也可只输入 IP 开头,例如 "192.168."(不含引号) 可匹配 192.168.0.0~192.168.255.255 范围内的所有地址,留空为所有 IP 除明确禁止的以外均可访问', - 7 => 'setting_access_access_adminipaccess', - 8 => 'Allow access to admin-center for the IP list',//'允许访问管理中心的 IP 列表', - 9 => 'Enable access to the admin center only when the administrator (super moderators and moderators not included!) is in this list of IP addresses. Other IP addresses will not be able to access, but can still visit the site front-end user interface. Be sure to use this feature carefully. One IP per line, you can enter the full IP address or only the IP beginning, i.e. "192.168." (Without quotation marks) to match all addresses from the range of 192.168.0.0 ~ 192.168.255.255. Leave blank for no limits.',//'只有当用户处于本列表中的 IP 地址时才可以访问站点管理中心,列表以外的地址访问将无法访问,但仍可访问站点前端用户界面,请务必慎重使用本功能。每个 IP 一行,既可输入完整地址,也可只输入 IP 开头,例如 "192.168."(不含引号) 可匹配 192.168.0.0~192.168.255.255 范围内的所有地址,留空为所有 IP 除明确禁止的以外均可访问管理中心', - 10 => 'setting_access_access_domainwhitelist', - 11 => 'Allow list of domain names',//'允许发表的域名列表', - 12 => 'When the user group publication ban URL, or URL does not resolve, the domain name in the list under the URL can still be posted, the normal analysis, a domain name per line, the default name for the site can be posted.',//'当用户组禁止发表 URL ,或者 URL 不解析时,处于本列表中的域名下的 URL 仍然可以正常发表,正常解析,每行一个域名,默认为本站域名可以正常发表', - ), - ), - 247 => - array ( - 'index' => - array ( - 'Style settings' => 'action=setting&operation=styles',//'界面设置', - 'Global' => 'action=setting&operation=styles&anchor=global',//'全局', - ), - 'text' => - array ( - 0 => 'Style settings » Global',//'界面设置 » 全局', - 1 => 'setting_tips', - 2 => 'Options marked by red dotted line are related to the system efficiency, load capacity and resource consumption (can improve or reduce the efficiency). It is recommended to make adjustments according to your server situation.',//'以红色虚线标示的选项,表示该选项和系统效率、负载能力与资源消耗有关(提高效率、或降低效率),建议依据自身服务器情况进行调整。', - 3 => 'setting_styles_global', - 4 => 'Global',//'全局', - 5 => 'setting_styles_global_styleid', - 6 => 'Site default style',//'站点默认风格', - 7 => 'Default site interface style, visitors and members will use this style as default.',//'站点默认的界面风格,游客和使用默认风格的会员将以此风格显示', - 8 => 'setting_styles_global_home_style', - 9 => 'Space show style',//'家园展示风格', - 10 => 'Select the display style for bogs, photo albums, sharing, wall, feeds',//'选择日志、相册、分享、记录、广播展示风格', - 11 => 'setting_styles_global_homepage_style', - 12 => 'Personal home page default skin',//'个人主页默认皮肤', - 13 => 'Select the space default display style',//'选择个人主页默认展示风格', - 14 => 'setting_styles_global_navsubhover', - 15 => 'Display header secondary navigation',//'二级导航显示方式', - 16 => 'Set to display the page header of the second navigation. If set to show all the main navigation, secondary navigation, it will be when the mouse moves to the other when the main navigation display their text at the top of the secondary navigation ',//'设置二级导航的显示方式。如果设置为显示所有主导航的二级导航,那么会当鼠标移动到其他主导航文字上方的时候显示它们的二级导航', - 17 => 'setting_styles_index_allowwidthauto', - 18 => 'Forum width style',//'论坛宽窄风格', - 19 => 'Forum display style may be set to Wide or Narrow style. Each forum can be set independently',//'设置论坛的显示风格是宽版还是窄版。每个版块中还可以进行独立的设置', - 20 => 'setting_styles_index_switchwidthauto', - 21 => 'Allow users to switch width style',//'允许用户自由切换', - 22 => 'Set whether to allow users to freely switch width style',//'设置是否允许用户自由切换宽窄风格', - 23 => 'setting_styles_global_allowfloatwin', - 24 => 'Enable the floating window',//'启用浮动窗口', - 25 => 'Set whar content be displayed in a floating window',//'设置以浮动方式显示的窗口', - 26 => 'setting_styles_global_showfjump', - 27 => 'Display forum navigation',//'显示版块导航', - 28 => 'Set whether to show the from link at the quick navigation menu',//'设置是否在快捷导航中显示版块导航', - 29 => 'setting_styles_global_creditnotice', - 30 => 'Points Notification',//'积分变动提示', - 31 => 'Display pop-up prompt to user when the user points amount was changed by any operation.',//'当用户在站点的操作产生积分变动时,将弹出提示信息告知用户', - 32 => 'setting_styles_global_showusercard', - 33 => 'Show the user business card',//'显示用户名片', - 34 => 'Set this to display the user business card when the mouse moves over the user name',//'设置当鼠标移动到用户名位置上时是否显示他的名片', - 35 => 'setting_styles_global_anonymoustext', - 36 => 'Anonymous user nickname',//'匿名用户的昵称', - 37 => 'Set the anonymous user pseudo name displayed in post or comment. Such as: "Site user" or "Anonymous"',//'设置帖子或评论留言中的匿名用户显示的文字。如:本站网友', - ), - ), - 248 => - array ( - 'index' => - array ( - 'Style settings' => 'action=setting&operation=styles',//'界面设置', - 'Forum Home' => 'action=setting&operation=styles&anchor=index',//'论坛首页', - ), - 'text' => - array ( - 0 => 'Style settings » Forum Home',//'界面设置 » 论坛首页', - 1 => 'setting_styles_index', - 2 => 'Forum Home',//'论坛首页', - 3 => 'setting_styles_index_indexhot_status', - 4 => 'Forum hot threads',//'论坛热点', - 5 => 'Set whether to display hot threads at the forum home',//'设置是否显示全论坛的热点主题', - 6 => 'setting_styles_index_indexhot_limit', - 7 => 'Number of Forum hots to show',//'论坛热点显示数量', - 8 => 'Set the number of forum hot threads, the default value of 10',//'设置论坛热点条目数,默认值 10 条', - 9 => 'setting_styles_index_indexhot_days', - 10 => 'Days for Forum hot show',//'论坛热点天数', - 11 => 'Set how many days to display the hot thread, the default value is 7 days',//'设置显示多少天内的主题,默认值 7 天', - 12 => 'setting_styles_index_indexhot_expiration', - 13 => 'Update forum hots period (seconds)',//'论坛热点更新周期(秒)', - 14 => 'Set how often to update the forum hot list, the default value is 900 s.',//'设置论坛热点在多长时间更新一次,默认值 900', - 15 => 'setting_styles_index_indexhot_messagecut', - 16 => 'Forum hot thread content length',//'论坛热点内容截取文字长度', - 17 => 'Set the shortened length of the hot thread content, the default is 200 characters',//'设置论坛热点内容的文字长度,默认值 200 个字', - 18 => 'setting_styles_index_subforumsindex', - 19 => 'Show sub-Forums at Home',//'显示版块的下级子版块', - 20 => 'Forum list at the Home bottom shows the forum name and sub-Forum links (if present). Note: This feature does not consider the child forum rights, however it will be displayed.',//'设置是否在版块描述下方显示下级子版块名字和链接(如果存在的话)。注意: 本功能不考虑子版块特殊浏览权限的情况,只要存在即会被显示出来', - 21 => 'setting_styles_index_forumlinkstatus', - 22 => 'Show Links at Home',//'显示友情链接', - 23 => 'Whether to display links at Forum Home',//'设置是否显示友情链接', - 24 => 'setting_styles_index_forumallowside', - 25 => 'Show Sidebar',//'显示边栏', - 26 => 'Select "Yes" to display the sidebar information at the Forum Home',//'选择“是”论坛首页侧边将显示聚合论坛内容的信息', - 27 => 'setting_styles_index_whosonline', - 28 => 'Show online users',//'显示在线用户', - 29 => 'Display online users at Forum Home and each Forum page',//'设置是否在论坛首页底部和论坛版块边栏显示在线会员列表', - 30 => 'setting_styles_index_whosonline_contract', - 31 => 'Display online list as thumbnails',//'缩略显示在线列表', - 32 => 'If you open the option list will only appear online users without details. Then members can manually open the online users list (If the largest online more than 500, the system will automatically display a list of abbreviations)',//'如果打开该选项,在线列表将只显示在线用户数,不显示详情,此时会员可手动打开在线用户列表(最大在线超过 500 人系统将自动缩略显示在线列表)', - 33 => 'setting_styles_index_online_more_members', - 34 => 'Show "More online"',//'最多显示在线人数', - 35 => 'This setting is effective only when display online users enabled. Set to 0 for no limits.',//'此设置只有在显示在线用户启用时才有效。设置为 0 则为不限制', - 36 => 'setting_styles_index_hideprivate', - 37 => 'Hide users who not have access to the Forum',//'隐藏无权访问的版块', - 38 => 'Do not list users not have access to the Forum currently',//'不在列表中显示当前用户无权访问的版块', - 39 => 'setting_styles_index_showfollowcollection', - 40 => 'Show number of collection followers at the Space home',//'首页显示用户订阅的淘专辑数量', - 41 => 'Display the number of users subscribed to the collection at the home page',//'在首页显示用户订阅的淘专辑数量', - 42 => 'setting_styles_index_disfixednv', - 43 => 'Disable the fixed top navigation',//'关闭顶部导航固定', - 44 => 'When you scroll up the screen, The main navigation will immediately appear in the top of the screen',//'当向上滚动屏幕时,主导航将即时出现在屏幕的顶部', - ), - ), - 249 => - array ( - 'index' => - array ( - 'Style settings' => 'action=setting&operation=styles',//'界面设置', - 'Thread List' => 'action=setting&operation=styles&anchor=forumdisplay',//'主题列表页', - ), - 'text' => - array ( - 0 => 'Style settings » Thread List',//'界面设置 » 主题列表页', - 1 => 'setting_tips', - 2 => 'Options marked by red dotted line are related to the system efficiency, load capacity and resource consumption (can improve or reduce the efficiency). It is recommended to make adjustments according to your server situation.',//'以红色虚线标示的选项,表示该选项和系统效率、负载能力与资源消耗有关(提高效率、或降低效率),建议依据自身服务器情况进行调整。', - 3 => 'setting_styles_forumdisplay', - 4 => 'Thread List',//'主题列表页', - 5 => 'setting_styles_forumdisplay_tpp', - 6 => 'Threads per page',//'每页显示主题数', - 7 => 'Set the number of threads listed per each page',//'主题列表中每页显示主题数目', - 8 => 'setting_styles_forumdisplay_threadmaxpages', - 9 => 'Largest number of pages in thread list',//'主题列表最大页数', - 10 => 'Set the maximum number of pages in topic list that a user can scroll to. Recommended to set the default value 1000, and not more than 2500. Set 0 for no limit.',//'主题列表中用户可以翻阅到的最大页数,建议设置为默认值 1000,或在不超过 2500 范围内取值,0 为不限制', - 11 => 'setting_styles_forumdisplay_leftsidewidth', - 12 => 'Left side forum navigation width',//'左侧版块导航宽度', - 13 => 'Set the width of the left forum navigation. Set to 0 for do not display the forum navigation on the sidebar',//'设置左侧版块导航的宽度,设置为 0 或者版块开启了边栏时不显示此导航', - 14 => 'setting_styles_forumdisplay_leftsideopen', - 15 => 'Expand the forum left sidebar by default',//'左侧版块默认展开', - 16 => 'Set the forum left sidebar navigation is expanded by default or not',//'设置左侧版块导航是否默认全部展开', - 17 => 'setting_styles_forumdisplay_globalstick', - 18 => 'Enable Global Stick',//'启用全局置顶', - 19 => 'Select "Yes". Note of types: Stick-III - the thread will be displayed in all forums; Stick II - Thread will be displayed in a current forum only. Note: This feature will increase the server loading.',//'选择“是”,置顶 III 的主题将在全部论坛显示,置顶 II 的主题将在当前分区中显示。注意: 本功能会加重服务器负担', - 20 => 'setting_styles_forumdisplay_targetblank', - 21 => '"New window" is checked by default',//'“新窗”是否默认勾选', - 22 => 'Select "Yes" for open links at the the thread list page in a new window. The default is "No".',//'选择“是”则默认情况下主题列表页主题链接在新窗口打开,默认为“否”', - 23 => 'setting_styles_forumdisplay_stick', - 24 => 'Stick threads types',//'置顶主题的标识', - 25 => 'Enter enabled stick types: Enabled only English letter "I" (max 3 characters)! Separate types by comma, order level from high to low.',//'以英文状态下的逗号分割,只有三项有效,级别依次为从高至低', - 26 => 'setting_styles_forumdisplay_part', - 27 => 'Separate Hot threads from other threads',//'显示主题列表分割带', - 28 => 'Select "No" for not separate hot threads from other thread list',//'选择“否”,在主题列表页将不显示置顶主题与普通主题之间的分割带(版块主题那一空行)', - 29 => 'setting_styles_forumdisplay_visitedforums', - 30 => 'Number of recent visited forums to show',//'显示最近访问版块数量', - 31 => 'Set the size of of drop-down list of last visited Forums. Recommende value from 0 to 30, 0 to disable this feature.',//'设置在版块列表和帖子浏览中显示最近访问过的版块数量,建议设置为 10 以内,0 为关闭此功能', - 32 => 'setting_styles_forumdisplay_fastpost', - 33 => 'Quick post',//'快速发帖', - 34 => 'Show the bottom quick post form',//'底部显示快速发帖表单', - 35 => 'setting_styles_forumdisplay_fastsmilies', - 36 => 'Show recommended smiles',//'显示推荐表情', - 37 => 'Show recommended smiles on the right of the quick post form. Recommended smiles needs to be set in "Smile management"',//'在快速发帖右侧显示推荐表情。推荐的表情需要到“表情管理”中设置', - 38 => 'setting_styles_forumdisplay_forumpicstyle_thumbwidth', - 39 => 'Thread Cover width',//'主题封面宽度', - 40 => 'When a forum is set to Image list mode, set this to 0 or do not fill for use default width (214px). Click here to reconstruct the recommended width and height of thread cover.',//'当版块开启图片列表模式时有效,0或不填 将使用默认值(214)。变更宽高建议重建主题封面,点此重建', - 41 => 'setting_styles_forumdisplay_forumpicstyle_thumbheight', - 42 => 'Thread cover height',//'主题封面高度', - 43 => 'This is effective when the forum list is open in image mode. Set to 0 or blank to use the default value (160)',//'当版块开启图片列表模式时有效,0或不填 将使用默认值(160)', - 44 => 'setting_styles_forumdisplay_forumpicstyle_thumbnum', - 45 => 'Show the number of cover images',//'封面图显示数量', - 46 => 'How many images per page to show when a Forum is set to image list mode. Set to 0 or do not fill for use the regular list mode',//'当版块开启图片列表模式时有效,0或不填 将和普通列表模式每页显示主题数一致', - 47 => 'setting_styles_forumdisplay_newbie', - 48 => 'New post icon',//'新人帖图标', - 49 => 'This icon is displayed when the user issued the first thread, leave empty for not show the icon',//'用户发第一篇主题时显示的图标,为空则不打图标', - 50 => 'setting_styles_forumdisplay_disfixednv_forumdisplay', - 51 => 'Disable the fixed top of the navigation',//'关闭顶部导航固定', - 52 => 'When you scroll up the screen, The main navigation will immediately appear in the top of the screen',//'当向上滚动屏幕时,主导航将即时出现在屏幕的顶部', - 53 => 'setting_styles_forumdisplay_threadpreview', - 54 => 'Disable Thread Preview',//'关闭主题预览', - 55 => 'Set whether to disable the post content preview in the thread list',//'关闭后将不可在主题列表页预览帖子内容', - ), - ), - 250 => - array ( - 'index' => - array ( - 'Style settings' => 'action=setting&operation=styles',//'界面设置', - 'View thread settings' => 'action=setting&operation=styles&anchor=viewthread',//'帖子内容页', - ), - 'text' => - array ( - 0 => 'Style settings » View thread settings',//'界面设置 » 帖子内容页', - 1 => 'nav_setting_viewthread', - 2 => 'View thread settings',//'帖子内容页', - 3 => 'setting_styles_viewthread_ppp', - 4 => 'Posts per page',//'每页显示帖数', - 5 => 'Set the number of posts displayed per page',//'帖子列表中每页显示帖子数目', - 6 => 'setting_styles_viewthread_starthreshold', - 7 => 'Upgrade stars threshold',//'星星升级阈值', - 8 => 'When stars reaches this threshold number of times (set to N), N stars appear as a moon, N moons appears as a sun. The default value is 2. Set to 0 for disabe this function, and display the stars always.',//'星星数在达到此阈值(设为 N)时,N 个星星显示为 1 个月亮、N 个月亮显示为 1 个太阳。默认值为 2,如设为 0 则取消此项功能,始终以星星显示', - 9 => 'setting_styles_viewthread_maxsigrows', - 10 => 'Signature max height (px)',//'签名最大高度(px)', - 11 => 'Set the maximum allowed height of aSignature displayed in a post.',//'设置帖子中允许显示签名的最大高度', - 12 => 'setting_styles_viewthread_sigviewcond', - 13 => 'Signature show condition',//'签名显示条件', - 14 => 'Show a signature only if message is larger than the specified number of characters.',//'只有帖子字数大于指定数值后才显示签名', - 15 => 'setting_styles_viewthread_rate_on', - 16 => 'Display score reason on the page',//'是否在页面上显示评分理由', - 17 => 'setting_styles_viewthread_rate_number', - 18 => 'Number of Score entries',//'评分条目数', - 19 => 'Show the number of recent score entries in a post, Set 0 for not show.',//'在帖子中显示最近评分结果的条目数,0 为不显示', - 20 => 'setting_styles_viewthread_collection_number', - 21 => 'Number of related collections',//'相关淘专辑条目数', - 22 => 'Display the collection number of entries in the thread post, 0 for not show',//'在主题帖中显示相关淘专辑的条目数,0 为不显示', - 23 => 'setting_styles_viewthread_relate_number', - 24 => 'Number of related to post entries',//'相关帖子条目数', - 25 => 'Set how many related entries to show, set to 0 for not show',//'在主题帖中显示相关帖子的条目数,0 为不显示', - 26 => 'setting_styles_viewthread_relate_time', - 27 => 'Related posts cache time',//'相关帖子缓存时间', - 28 => 'Unit: minutes, Cache time to display related posts in the topic post (0 for no cache, not recommended!)',//'单位:分钟,在主题帖中显示相关帖子的缓存时间(0 为不缓存,不推荐)', - 29 => 'setting_styles_viewthread_show_signature', - 30 => 'Show a signature',//'是否显示作者签名', - 31 => '', - 32 => 'setting_styles_viewthread_show_face', - 33 => 'Show user avatar',//'是否显示作者头像', - 34 => '', - 35 => 'setting_styles_viewthread_show_images', - 36 => 'Show images in a post',//'是否显示帖内图片', - 37 => '', - 38 => 'setting_styles_viewthread_imagemaxwidth', - 39 => 'Maximum image width in a post',//'帖内图片最大宽度', - 40 => 'If an image width is greater than this value, the image will be automatically resized. The value must be integer type (number of pixels) and must not exceed 1920.',//'当帖内图片宽度大于设置的值时图片宽度会被自动调节。请填写整数值,不支持百分比数值', - 41 => 'setting_styles_viewthread_imagelistthumb', - 42 => 'Number of post images displayed horizontally',//'帖内图片列表中图片横排显示条件', - 43 => 'Set how many Images to be displayed horizontally within the post image list',//'设置当帖内图片列表中图片数量满足多少张以后以横排方式显示,0 或留空为关闭横排显示', - 44 => 'setting_styles_viewthread_zoomstatus', - 45 => 'Use image zoom effect',//'是否使用图片动态放大效果', - 46 => 'When the image width is greater than when the "Maximum image width in a post", you can add a dynamic zoom effect by mouse click. Select "Yes" to use a Zoom effect when the image clicked, or select "No" for just open the image in a new window.',//'当帖内图片宽度大于“帖内图片最大宽度”时是否附加鼠标点击时的动态放大效果。选择“是”单击图片会有动态放大效果,选择“否”将会新窗口打开图片', - 47 => 'setting_styles_viewthread_showexif', - 48 => 'Display EXIF information for attached images',//'图片附件显示 EXIF 信息', - 49 => 'Set whether to display the EXIF information for attached images in the dynamic zoom effect',//'设置图片附件在动态放大效果中是否显示 EXIF 信息', - 50 => 'setting_styles_viewthread_vtonlinestatus', - 51 => 'Display online status',//'显示作者在线状态', - 52 => 'Whether to show the poster online status. Attention: this feature will slightly increase the server loading.',//'是否显示帖子作者的在线状态,注意:“精确显示”会轻微加重服务器负担', - 53 => 'setting_styles_viewthread_userstatusby', - 54 => 'Show group title',//'显示作者的组头衔', - 55 => 'Set whether to display a group title in a post.',//'设置在帖子中是否显示作者的用户组头衔', - 56 => 'setting_styles_viewthread_postno', - 57 => 'Show Post No.',//'帖子顺序单位', - 58 => 'Show the post ordered number, such as "#1", "#2" etc.',//'设置帖子显示顺序编号的单位,如“#”将显示为 1 #', - 59 => 'setting_styles_viewthread_postnocustom', - 60 => 'Custom Post Numbering',//'帖子顺序名称', - 61 => 'Set the custom post ordering in a thread. First line represents the first thread post, second line represents the first reply, and so on.',//'设置每篇主题所有帖子的顺序名称,每行填写一个名称,第一行代表主题帖,第二行代表主题的第一个回复,以此类推', - 62 => 'setting_styles_viewthread_maxsmilies', - 63 => 'Maximum number of smiles per post',//'最大单一表情解析次数', - 64 => 'Set the limit of smiles can be used in a single post. More smiles will not be rendered to smilr images. This feature is usefull for prevent malicious posts with a lot of smiles. Set to 0 for no limits.',//'在一篇帖子中解析的单一表情符号的最大次数,超过此次数限制的表情将不被解析而保留原样,以避免用户在一篇帖子中恶意发表大量表情影响正常阅读,0 为不限制', - 65 => 'setting_styles_viewthread_author_onleft', - 66 => 'Display user name position',//'作者用户名显示位置', - 67 => 'User name position does not affect the forum performance and depends of your preference only.',//'显示位置并不会影响论坛的性能和美观,请根据你会员的浏览习惯进行选择', - 68 => 'setting_styles_forumdisplay_disfixedavatar', - 69 => 'Disable the fixed avatar area',//'关闭头像区域固定', - 70 => 'When scrolling the page, the avatar area will be visible always floating at the left from the post content.',//'当滚动屏幕时,左侧头像区域将跟随右侧帖子内容浮动,填充帖子内容区域很高时导致的左侧空白', - 71 => 'setting_styles_forumdisplay_disfixednv_viewthread', - 72 => 'Disable the fixed top navigation',//'关闭顶部导航固定', - 73 => 'When you scroll up the screen, The main navigation will immediately appear in the top of the screen',//'当向上滚动屏幕时,主导航将即时出现在屏幕的顶部', - 74 => 'setting_styles_forumdisplay_threadguestlite', - 75 => 'Lite view mode for guests',//'游客阅读简化模式', - 76 => 'When this enabled, guests will read the thread without the user-related info.',//'启用后,游客阅读主题时,将不显示用户的具体资料信息。', - 77 => 'setting_styles_viewthread_close_leftinfo', - 78 => 'Disable left info bar',//'关闭左侧信息栏', - 79 => 'Default is not show the user info bar on the post left side',//'帖子左侧用户信息栏是否默认关闭', - 80 => 'setting_styles_viewthread_close_leftinfo_userctrl', - 81 => 'Allow user control info on the left bar',//'左侧信息栏允许用户控制', - 82 => 'When browse topics, if the user can control the display of the status info bar on the left',//'浏览主题时,用户是否可以控制左侧信息栏的显示状态', - 83 => 'setting_styles_viewthread_guestviewthumb', - 84 => 'Guest view thumbnails',//'游客看小图', - 85 => 'When guests browse threads, they can view attached images as thumbnails. This can help you to enlarge the number of registered users at your site.',//'游客浏览主题时,帖内的图片将以指定大小的小图显示,可提高会员注册数和活跃量', - 86 => 'setting_styles_viewthread_guestviewthumb_width', - 87 => 'Thumbnail width',//'小图宽度', - 88 => 'Specifies a thumnails width, the default value is 100 px.',//'指定小图的宽度,默认值为100', - 89 => 'setting_styles_viewthread_guestviewthumb_height', - 90 => 'Thumbnail height',//'小图高度', - 91 => 'Specifies a thumnails height, the default value is 100 px.',//'指定小图的高度,默认值为100', - 92 => 'setting_styles_viewthread_guesttipsinthread', - 93 => 'Guest login prompt insite a thread',//'帖内游客登录提示', - 94 => 'When a guest browse a thread, shows the welcome text at the top of the thread',//'游客在浏览主题时,在主题的顶部显示提示文字', - 95 => 'setting_styles_viewthread_guesttipsinthread_text', - 96 => 'Login prompt text',//'登录提示提示文字', - 97 => 'Custom prompt text, the default is: Sign up now, Make more friends, Enjoy with more features, Let you easily Fun Community.',//'自定义显示提示文字,默认为:马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。', - 98 => 'setting_styles_viewthread_imgcontent', - 99 => 'The Thread content generated image width',//'主题内容生成图片宽度', - 100 => 'This feature requires PHP support for GD library. Chinese need to be Chinese content TTF font file into the static/image/seccode/font/ch/ directory. The default is 100 characters, The type of font width is slightly different, Please according to the actual effect adjustment.',//'本功能需要PHP支持GD库,内容里有中文需要将中文 TTF 字体文件放到 static/image/seccode/font/ch/ 目录下。默认100个汉字,字体不同宽度略有差别,请跟据实际效果调整。', - 101 => 'setting_styles_viewthread_fast_reply', - 102 => 'Open Post Quick Reply',//'开启帖子快速回复', - 103 => 'If Open, then will show the quick reply box below the topic posts',//'开启后将在主题帖下方展示快速回复框', - 104 => 'setting_styles_viewthread_allow_replybg', - 105 => 'Open Post Quick Reply box background',//'开启帖子快速回复框背景', - 106 => 'If Open then allow to add a background image for the post Quick Reply box',//'开启后允许给帖子快速回复框添加背景图片', - 107 => 'setting_styles_viewthread_global_reply_background', - 108 => 'The Global background for Posts quick reply box',//'全局帖子快速回复框背景', - 109 => 'Set the global background image for post quick reply box, Forum settings have more priority',//'设置全局帖子快速回复框背景图片,版块设置优先', - ), - ), - 251 => - array ( - 'index' => - array ( - 'Style settings' => 'action=setting&operation=styles',//'界面设置', - 'User info inside the thread' => 'action=setting&operation=styles&anchor=threadprofile',//'帖内用户信息', - ), - 'text' => - array ( - 0 => 'Style settings » User info inside the thread',//'界面设置 » 帖内用户信息', - 1 => 'setting_styles_threadprofile_group', - 2 => 'Set User group layout',//'用户组方案设置', - 3 => 'setting_styles_threadprofile_project', - 4 => 'Layout Scheme list',//'布局方案列表', - ), - ), - 252 => - array ( - 'index' => - array ( - 'Style settings' => 'action=setting&operation=styles',//'界面设置', - 'Prompts' => 'action=setting&operation=styles&anchor=refresh',//'提示信息', - ), - 'text' => - array ( - 0 => 'Style settings » Prompts',//'界面设置 » 提示信息', - 1 => 'setting_styles_refresh', - 2 => 'Prompts',//'提示信息', - 3 => 'setting_styles_refresh_refreshtime', - 4 => 'Prompt display time (seconds)',//'提示信息停留时间(秒)', - 5 => 'A page displays various prompts in a short time, usually from 1 to 3 seconds. Tips: a shorter time is more usefull for experienced users, but for newbie users may be required more long time to see the information.',//'各种提示信息页面显示时间的长短,一般设置为 1-3。较短的提示时间让用户拥有快速的体验,但是也可能让用户无法看清信息', - 6 => 'setting_styles_refresh_quick', - 7 => 'Show fast jump link',//'开启直接/快速跳转', - 8 => 'Set this for display a direct link to jump after successfully completed any operation. Such link help to eliminate any waiting of auto redirecting timeout.',//'对于站点中的某些成功的操作不显示提示信息,直接跳转到下一个页面,例如发帖,回复等等,可以节省用户等待跳转的时间', - 9 => 'setting_styles_refresh_messages', - 10 => 'Show fast jump info',//'直接/快速跳转的信息', - 11 => 'When you turn on a fast jump link later, the following information will be shown.
    Fill in one message keyword per each line.',//'当开启直接/快速跳转以后,以下信息将会直接跳转。每行填写一个信息的关键字', - ), - ), - 253 => - array ( - 'index' => - array ( - 'Style settings' => 'action=setting&operation=styles',//'界面设置', - 'Pop-up messages' => 'action=setting&operation=styles&anchor=sitemessage',//'弹出信息', - ), - 'text' => - array ( - 0 => 'Style settings » Pop-up messages',//'界面设置 » 弹出信息', - 1 => 'setting_styles_sitemessage', - 2 => 'Pop-up messages',//'弹出信息', - 3 => 'setting_styles_sitemessage_time', - 4 => 'Pop-up show time (seconds)',//'弹出信息停留时间(秒)', - 5 => 'How long time a pop-up message will be shown, usually 3-10 seconds. Set to 0 for close by mouse click.',//'各种弹出信息显示时间的长短,一般设置为 3-10,0 为鼠标点击后消失', - 6 => 'setting_styles_sitemessage_register', - 7 => 'Registration page',//'注册页面', - 8 => 'Set the information on the pop-up of registration page. Fill one message per each line. This information will randomly displayed to a number.',//'注册页面的弹出信息,每行填写一条信息,多条信息将随机显示', - 9 => 'setting_styles_sitemessage_login', - 10 => 'Login page',//'登录页面', - 11 => 'Set the information on the pop-up of login page. Fill one message per each line. This information will randomly displayed to a number.',//'登录页面的弹出信息,每行填写一条信息,多条信息将随机显示', - 12 => 'setting_styles_sitemessage_newthread', - 13 => 'New thread page',//'发帖页面', - 14 => 'Set the information on the pop-up of new thread page. Fill one message per each line. This information will randomly displayed to a number.',//'发帖页面的弹出信息,每行填写一条信息,多条信息将随机显示', - 15 => 'setting_styles_sitemessage_reply', - 16 => 'Reply page',//'回复页面', - 17 => 'Set the information on the pop-up of reply page. Fill one message per each line. This information will randomly displayed to a number.',//'回复页面的弹出信息,每行填写一条信息,多条信息将随机显示', - ), - ), - 254 => - array ( - 'index' => - array ( - 'Style settings' => 'action=setting&operation=threadprofile&do=add',//'界面设置', - ), - 'text' => - array ( - 0 => 'Style settings',//'界面设置', - 1 => 'setting_threadprofile_tpl_tpls', - 2 => '{Tag} Excluding Parameter Posted within User Information Tag called. {tag=parameter} Paste parameters, user information tag called. Separate Multiple parameters with a comma ",". {tag} HTML {*} HTML {/tag} When call the content value {*} Before and after HTML content. "plugin:plugin_ID" format tag paste plugin adds user information tag call. For plugin developers: Read the «Discuz! Technical Library» carefully before designing a new paste user information tag.',//'{标记} 不含参数的贴内用户信息标记调用。{标记=参数} 含参数的贴内用户信息标记调用,多个参数用","分割{标记}HTML{*}HTML{/标记} 当有调用内容有值时显示 {*} 前后的 HTML 内容“plugin:插件标识”格式的标记为插件增加的贴内用户信息标记调用。插件开发人员在设计新的贴内用户信息标记前请务必仔细阅读《Discuz! 技术文库》中的内容。', - 3 => 'setting_styles_threadprofile_name', - 4 => 'Title',//'名称', - ), - ), - 255 => - array ( - 'index' => - array ( - 'Performance Optimization' => 'action=setting&operation=seo',//'性能优化' - 'SEO' => 'action=setting&operation=seo',//'搜索引擎优化', - ), - 'text' => - array ( - 0 => 'Performance Optimization » SEO',//'性能优化 » 搜索引擎优化', - 1 => 'setting_tips', - 2 => 'Options marked by red dotted line are related to the system efficiency, load capacity and resource consumption (can improve or reduce the efficiency). It is recommended to make adjustments according to your server situation.',//'以红色虚线标示的选项,表示该选项和系统效率、负载能力与资源消耗有关(提高效率、或降低效率),建议依据自身服务器情况进行调整。', - 3 => 'setting_seo_rewritecompatible', - 4 => 'Rewrite compatibility',//'Rewrite 兼容性', - 5 => 'If your server does not support Chinese characters in Rewrite Rules, please select "Yes." If there is no problem with the server, you can choose "No"',//'如果你的服务器不支持 Rewrite 规则中的中文字符,请选择“是”。对于没有此问题的服务器,可以选择“否”', - 6 => 'setting_seo_rewriteguest', - 7 => 'Take effect for guests only',//'仅对游客有效', - 8 => 'When this feature enabled, then Rewrite feature will take effect only for guests and search engines. It can reduce the server loading.',//'开启此项,则 Rewrite功能只对游客和搜索引擎有效,可减轻服务器负担', - 9 => 'setting_seo_seohead', - 10 => 'Other header information',//'其他头部信息', - 11 => 'Use this setting for placing additional HTML code between the <head> </head> tags. Leave blank if this not required.',//'如需在 <head></head> 中添加其他的 HTML 代码,可以使用本设置,否则请留空', - ), - ), - 256 => - array ( - 'index' => - array ( - 'Performance Optimization' => 'action=setting&operation=seo',//'性能优化', - 'Forum cache settings' => 'action=setting&operation=cachethread',//'论坛页面缓存设置', - ), - 'text' => - array ( - 0 => 'Performance Optimization » Forum cache settings',//'性能优化 » 论坛页面缓存设置', - 1 => 'setting_cachethread', - 2 => 'Forum cache settings',//'论坛页面缓存设置', - 3 => 'If enabled, the page content will cached to static files, that will greatly enhance the server speed. It is recommended to use an dedicated server. For virtual server please adjust the cache according to the actual situation.',//'开启后,缓存页面内容到静态文件,游客访问时速度将大大提升,建议独立服务器使用,虚拟空间请根据实际情况调节缓存的有效期', - 4 => 'setting_cachethread_indexlife', - 5 => 'Forum Home Cache valid time',//'缓存论坛首页有效期', - 6 => 'Set the Forum Home cache update time in seconds. Set to 0 to turn off caching (If after a shutdown the cache will no longer work). Recommended value is 900. This feature used only for guests.',//'设置论坛首页缓存更新的时间,单位为秒,0 为关闭(此处关闭以后,缓存系数将不再起作用),建议设置为 900。此功能只针对游客', - 7 => 'setting_cachethread_life', - 8 => 'Thread Cache valid period',//'缓存帖子有效期', - 9 => 'Set the post page cache update time, in seconds. Adjust the value according to the actual situation, recommended value is 900. Also, specify the post by editing the forum page cache factor.',//'设置帖子页面缓存更新的时间,单位为秒,0 为关闭。请根据实际情况进行调整,建议设置为 900。另外,请通过编辑论坛来指定帖子页面缓存系数', - 10 => 'setting_cachethread_dir', - 11 => 'Cache directory',//'缓存目录', - 12 => 'The default directory is data/threadcache, if you need to specify other directory, make sure the write permissions are set',//'默认为 data/threadcache 目录,如果你需要将其指定为其他目录,请确定你指定的目录有可写权限', - 13 => 'setting_cachethread_coefficient_set', - 14 => 'Set the cache volume coefficient',//'缓存系数批量设置', - 15 => 'setting_cachethread_coefficient', - 16 => 'Cache coefficient',//'缓存系数', - 17 => 'Caching the members info may valuable decrease a pressure to a large-scale server. Use cache threshold range is 0 - 100. Recommended value is 40, 0 will disable cache effect. If you have enough disk space, you can try to increase the cache volume, and so increase the cache effect.',//'页面缓存功能可以将会员经常访问的主题临时缓存起来,缓解大型论坛服务器压力。缓存阀值范围 0 - 100,建议设置为 40 ,0 为关闭。在磁盘空间允许的情况下,适当调高缓存系数,可以提高缓存效果', - 18 => 'setting_cachethread_coefficient_forum', - 19 => 'Please select a forum to set up',//'请选择要设置的论坛', - 20 => 'This will overwrite the previous cache coefficient value. You can hold down the CTRL key for multiple choice.',//'将会覆盖以前的缓存系数值,可以按住 CTRL 多选', - ), - ), - 257 => - array ( - 'index' => - array ( - 'Performance Optimization' => 'action=setting&operation=seo',//'性能优化', - 'Server optimization' => 'action=setting&operation=serveropti',//'服务器优化', - ), - 'text' => - array ( - 0 => 'Performance Optimization » Server optimization',//'性能优化 » 服务器优化', - 1 => 'setting_tips', - 2 => 'Options marked by red dotted line are related to the system efficiency, load capacity and resource consumption (can improve or reduce the efficiency). It is recommended to make adjustments according to your server situation.',//'以红色虚线标示的选项,表示该选项和系统效率、负载能力与资源消耗有关(提高效率、或降低效率),建议依据自身服务器情况进行调整。', - 3 => 'setting_serveropti', - 4 => 'Server optimization',//'服务器优化', - 5 => 'setting_serveropti_optimize_thread_view', - 6 => 'Whether to optimize the thread Views update',//'是否优化更新主题浏览量', - 7 => 'setting_serveropti_preventrefresh', - 8 => 'Prevent anti-refresh for views number',//'查看数开启防刷新', - 9 => 'If select "No", every thread, space or blog visit will increase the number of views counter, and this will increase the server loading. It is recommended to select "yes"',//'选择“否”,主题、空间、日志每访问一次,浏览量增1,会增大服务器压力,建议选择“是”', - 10 => 'setting_serveropti_delayviewcount', - 11 => 'Update views counter delay',//'点击数延迟更新', - 12 => 'Update the topic or attachments views delaying can significantly reduce the server loading. Recommended to use for large scale community servers.',//'延迟更新主题或者附件的浏览量,可明显降低访问量很大的站点的服务器负担,建议开启本功能', - 13 => 'setting_serveropti_nocacheheaders', - 14 => 'Disable browser cache',//'禁止浏览器缓冲', - 15 => 'Force a browser to not use internal buffer but refresh the site pages very time. Note: This feature will increase the server loading.',//'禁止浏览器对站点页面进行缓冲,可用于解决极个别浏览器内容刷新不正常的问题。注意: 本功能会加重服务器负担', - 16 => 'setting_serveropti_maxonlines', - 17 => 'Maximum online',//'最大在线人数', - 18 => 'Please set a reasonable value in range 10 - 65535. Recommended value = 10 * average online members.',//'请设置合理的数值,范围 10~65535,建议设置为平均在线人数的 10 倍左右', - 19 => 'setting_serveropti_onlinehold', - 20 => 'Hold Online Time (minutes)',//'在线保持时间(分钟)', - 21 => 'Please set the reasonable time value. Large sites should use smaller time value. Use a range of 5 - 60 minutes, too big or too small settings can increase the server loadnig.',//'请根据访问情况设置合理的数值,访问量大的站点应当调小该数值,设置范围 5 - 60,过大或者过小的设置都有可能会增大服务器资源开销', - 22 => 'setting_serveropti_jspath', - 23 => 'JavaScript directory',//'JS 文件目录', - 24 => 'Set the directory for JS files. The system will compress *.js files from default directory and then save it to the cache directory in order to improve the speed.',//'设置站点 JS 文件的目录。当脚本目录为缓存目录时,系统会将默认目录中的 *.js 文件进行压缩然后保存到缓存目录以提高读取速度', - 25 => 'setting_serveropti_lazyload', - 26 => 'on Image delay loading',//'开启图片延时加载', - 27 => 'When turned on, the page image in the browser window again when the current load, can significantly reduce the traffic burden of a large sites, we recommend to turn on this function',//'当开启后,页面中的图片在浏览器的当前窗口时再加载,可明显降低访问量很大的站点的服务器负担,建议开启本功能', - 28 => 'setting_serveropti_blockmaxaggregationitem', - 29 => 'Maximum aggregated data items',//'参与模块聚合数据条数', - 30 => 'This value affects the block aggregation when MYSQL retrieve the number of Article data. Too large value will seriously affect the performance of MYSQL. Too small value will decrease a desired level of block data aggregation. Set to 0 for disable.',//'此值影响模块聚合时MYSQL检索数据的条数,设置太大将严重影响MYSQL的性能,设置太小将会影响模块聚合结果数据的理想程度。0为关闭些功能', - 31 => 'setting_serveropti_blockcachetimerange', - 32 => 'Block update time interval',//'模块更新时间区间', - 33 => 'Set the specified time interval for all blockd update. It is recommended to choose the period of minimal site visits, i.e. at 3:00-7:00 o\'clock.',//'设置全部模块在指定的时间区间内更新。可以根据网站的访问情况,避开访问高峰时间段。如:3点-7点', - 34 => 'setting_serveropti_sessionclose', - 35 => 'Whether to close the session mechanism',//'是否关闭session机制', - 36 => 'Disabling the session mechanism can significantly reduce the the server loading. Proposed to turn on if the number of online users is more than 20000 (Note: Online duration and the number of visitors and users will no longer be statistical, The forum Home and Forum List pages online user list function will be unavailable)',//'关闭session机制以后,可明显降低站点的服务器负担,建议在线用户数超过2万时开启本功能(注意:游客数和用户的在线时长将不再进行统计,论坛首页和版块列表页面的在线用户列表功能将不可用)', - 37 => 'setting_serveropti_onlineguestsmultiple', - 38 => 'Count Online visitors',//'在线人数测算比例', - 39 => 'After closing the session mechanism, The total online visitors (Including guests and users) ≈ The actual number of online users * Estimated Online ratio. The recommended value is about 10, for floating-point (Note: the actual number of online users cache cycle is 600 seconds)',//'关闭session机制以后,总在线人(包括游客和用户) ≈ 实际在线用户数 * 在线人数测算比例,建议值为10左右,可为浮点数(注意:实际在线用户数缓存周期为600秒)', - ), - ), - 258 => - array ( - 'index' => - array ( - 'Editor Settings' => 'action=setting&operation=editor',//'编辑器设置', - 'Global' => 'action=setting&operation=editor',//'全局', - ), - 'text' => - array ( - 0 => 'Editor Settings » Global',//'编辑器设置 » 全局', - 1 => 'setting_editor_mode_default', - 2 => 'Default editor mode',//'默认的编辑器模式', - 3 => 'setting_editor_swtich_enable', - 4 => 'Enable to switch the editor mode',//'是否允许切换编辑器模式', - 5 => 'Choose whether to enable or disable to change the editor mode between plain text and WYSIWYG.',//'选择否将禁止用户在纯文本模式和所见即所得模式之间切换', - 6 => 'setting_editor_simplemode', - 7 => 'Simple mode',//'编辑栏样式', - 8 => 'Set the simple mode as default',//'设置默认的编辑栏样式', - 9 => 'setting_editor_smthumb', - 10 => 'Smile width and height',//'表情图片的宽高', - 11 => 'When a real smile size exceeds the thumbnal size, the system will automatically display a thumbnail instead of real image. Recommended range is between 20 and 40.',//'允许范围在 20~40 之间,图片实际尺寸超出设置值时将自动缩略显示', - 12 => 'setting_editor_smcols', - 13 => 'Number of columns for smiles',//'表情列数', - 14 => 'How many columns of smiles will be shown. Recommended value is from 8 to 12.',//'发帖页面表情显示的列数,允许范围在 8~12之间', - 15 => 'setting_editor_smrows', - 16 => 'Smiles rows',//'表情行数', - 17 => 'How many rows of smiles will be shown.',//'发帖页面表情显示的行数', - ), - ), - 259 => - array ( - 'index' => - array ( - 'Site modules' => 'action=setting&operation=functions',//'站点功能', - 'Functional blocks' => 'action=setting&operation=functions&anchor=curscript',//'功能模块', - ), - 'text' => - array ( - 0 => 'Site features » Functional blocks',//'站点功能 » 功能模块', - 1 => 'setting_functions_curscript_list', - 2 => 'Module List',//'功能列表', - ), - ), - 260 => - array ( - 'index' => - array ( - 'Site modules' => 'action=setting&operation=functions',//'站点功能', - 'Management-related' => 'action=setting&operation=functions&anchor=mod',//'管理相关', - ), - 'text' => - array ( - 0 => 'Site features » Management-related',//'站点功能 » 管理相关', - 1 => 'setting_tips', - 2 => 'Options marked by red dotted line are related to the system efficiency, load capacity and resource consumption (can improve or reduce the efficiency). It is recommended to make adjustments according to your server situation.',//'以红色虚线标示的选项,表示该选项和系统效率、负载能力与资源消耗有关(提高效率、或降低效率),建议依据自身服务器情况进行调整。', - 3 => 'setting_functions_mod_updatestat', - 4 => 'Enable the site statistics',//'开启站点趋势统计', - 5 => 'The site statistics is very usefull for the site administrator. Note: This feature will slightly increase the system loading.',//'站点趋势统计可以使站长了解到站点的运作状况。注意: 本功能会轻微加重系统负担', - 6 => 'setting_functions_mod_status', - 7 => 'Enable Forum Management Statistics',//'开启论坛管理工作统计', - 8 => 'Management statistics is usefull for the site administrator for understand what moderators and other management staff was doing. Note: This feature will slightly increase the system loading.',//'论坛管理工作统计可以使版主、管理员了解论坛版主等管理人员的工作状况。注意: 本功能会轻微加重系统负担', - 9 => 'setting_functions_archiver', - 10 => 'Allow Forum Archiver function',//'开启论坛 Archiver 功能', - 11 => 'Forum Archiver able to open content as an analog of static pages for search engines to obtain the contents',//'论坛 Archiver 能够将论坛公开的内容模拟成静态页面,以便搜索引擎获取其中的内容', - 12 => 'setting_functions_archiverredirect', - 13 => 'Prohibit user access to Archiver',//'禁止用户访问 Archiver', - 14 => 'Select "Yes" for automatically jump to the original page content, when a user linked to to the Archiver page through the search engines',//'选择“是”,当用户通过搜索引擎中的链接访问 Archiver 页时将自动跳转到原始内容页', - 15 => 'setting_functions_mod_maxmodworksmonths', - 16 => 'Store management log time (months)',//'管理记录保留时间(月)', - 17 => 'Set a time in which the system will remember moderators log records. Default value is 3 months. It is recommended to use from 3 to 6 months.',//'系统中保留管理记录的时间,默认为 3 个月,建议在 3~6 个月的范围内取值', - 18 => 'setting_functions_mod_losslessdel', - 19 => 'Do not reduce the user points after N days of Delete post',//'删帖不减积分时间期限(天)', - 20 => 'Set the number of days after that a deleted by moderator/administrator post does not update the user points. This feature can be used to clean obsolete posts without losses of user points. Set to 0 for disable this feature, and always update the user points.',//'设置版主或管理员从前台删除发表于多少天以前的帖子时,不更新用户的扩展积分,可用于清理老帖子而不对作者的扩展积分造成损失。0 为不使用此功能,始终更新用户积分', - 21 => 'setting_functions_mod_reasons', - 22 => 'Rate and Administrative operations reason',//'管理操作理由选项', - 23 => 'This setting will used when a user make score or perform certain administrative actions, to show a list of available reasons. A blank line will displayed if the separator "--------" was selected. User can choose to select from listed reasons or enter his own.',//'本设定将在用户执行部分管理操作时显示,每个理由一行,如果空行则显示一行分隔符“--------”,用户可选择本设定中预置的理由选项或自行输入', - 24 => 'setting_functions_user_reasons', - 25 => 'User Rating reason options',//'用户评分理由选项', - 26 => 'This settings will be displayed when the user performs a rating. One reason per line, the blank line will show a separator "--------", Users can select one of preset reasons or enter their own',//'本设定将在用户执行评分时显示,每个理由一行,如果空行则显示一行分隔符“--------”,用户可选择本设定中预置的理由选项或自行输入', - 27 => 'setting_functions_mod_bannedmessages', - 28 => 'Hide censored content',//'隐藏敏感帖子内容', - 29 => 'Select what to do if a censored word apper in a post - delete post or hide user info.',//'选择相应项目将隐藏被删除或被禁止的用户的相关资料,在相关资料处显示被屏蔽的字样', - 30 => 'setting_functions_mod_warninglimit', - 31 => 'Auto Ban after N warnings',//'用户被警告多少次自动禁言', - 32 => 'Set how many times a user may be warned before automatical ban to post in a time period',//'警告有效期结束自动解除禁言', - 33 => 'setting_functions_mod_warningexpiration', - 34 => 'Warning period (days)',//'警告有效期(天)', - 35 => 'The default is 30 days',//'默认为 30 天', - 36 => 'setting_functions_mod_rewardexpiration', - 37 => 'Reward thread expiration',//'悬赏主题有效期', - 38 => 'Set the reward thread effective days, when the reward is valid even after the theme has not been issued more than reward, moderators or administrators have the right to grant on behalf of the theme of reward. 0 or blank means no moderator or administrator to do this',//'设置悬赏主题的有效天数,当悬赏主题超过有效期后依然未发放悬赏,版主或管理员有权代为主题作者发放悬赏。0 或留空表示不允许版主或管理员进行此操作', - 39 => 'setting_functions_mod_moddetail', - 40 => 'Moderator panel displays the number of items to audit',//'版主面板显示审核数目', - 41 => 'Set the moderator panel detailed display pending the specific number of threads, posts and users',//'设置版主面板是否详细显示待审核主题、帖子及用户的具体数目', - ), - ), - 261 => - array ( - 'index' => - array ( - 'Site modules' => 'action=setting&operation=functions',//'站点功能', - 'Thread hot value' => 'action=setting&operation=functions&anchor=heatthread',//'主题热度', - ), - 'text' => - array ( - 0 => 'Site features » Thread hot value',//'站点功能 » 主题热度', - 1 => 'setting_functions_heatthread_tips', - 2 => 'The threat heat will be involved in the attendance basis including replies, review, collection, sharing, rating, it is recommended',//'主题热度将按参与人次计算,包括回帖,点评,收藏,分享,评分,推荐', - 3 => 'setting_functions_heatthread_period', - 4 => 'User Hot value period (days)',//'用户热度值周期(天)', - 5 => 'A period in days, when a user can increase the thread hot value only once. 0 means no limit period, the heat may be added any times to +1. To avoid the user brush heat, is not recommended to set this to 0. (Replies, wall messages, comments, favorites, sharings and so on are re counted in the thread action)',//'以天为单位,一个周期内某用户多次参与主题,只加一次热度。0代表不设置周期,只要参与一次,热度就加1。为避免用户刷热度,建议不要设置为0。(回复、点评、评论、收藏、分享等都算作参与主题的动作)', - 6 => 'setting_functions_heatthread_iconlevels', - 7 => 'Display a thread popularity level',//'热门主题显示级别', - 8 => 'Set the icon list for each thread heat level, the default gradation is for 3 levels. Separate heat values with a comma, i.e.: "50,100,200" - this means level 1 if a thread heat greater than 50, Level 2 when heat large than 100, Level 3 when a heat more than 200. Leave blank that for not display the level icon',//'设置主题列表页主题图标每一级别对应的热度指数,默认为 3 个级别,请用逗号分隔,如:“50,100,200”表示当主题的热度大于 50 时为 1 级,大于 100 时为 2 级,大于 200 时为 3 级。留空表示不显示图标', - ), - ), - 262 => - array ( - 'index' => - array ( - 'Site modules' => 'action=setting&operation=functions',//'站点功能', - 'Thread recommendation' => 'action=setting&operation=functions&anchor=recommend',//'主题评价', - ), - 'text' => - array ( - 0 => 'Site features » Thread recommendation',//'站点功能 » 主题评价', - 1 => 'setting_functions_recommend_tips', - 2 => 'Members of different user groups can view different recommended threads. You can use "group" setting of "related posts".',//'不同用户组会员的主题评价影响值不同,你可以在”用户组”设置的“帖子相关”中设置。', - 3 => 'setting_functions_recommend_status', - 4 => 'Enable thread rating',//'启用主题评价', - 5 => 'Thread rating enable users to increase the thread popularity. You can set how many times per day a user can rate a thread.',//'主题评价是让用户参与主题热度的重要指标,你可以设定用户在每天允许执行的评价次数', - 6 => 'setting_functions_recommend_addtext', - 7 => 'Positive Rate extra text',//'加分操作文字', - 8 => 'Set a short extra text for a rate operation, like "top", "support", etc.',//'设置评价加分的文字,不宜过长。建议使用“顶”、“支持”', - 9 => 'setting_functions_recommend_subtracttext', - 10 => 'Negative Rate extra text',//'减分操作文字', - 11 => 'Set a short extra text for a rate operation, like "bad", "against", etc.',//'设置评价减分的文字,不宜过长。建议使用“踩”、“反对”', - 12 => 'setting_functions_recommend_daycount', - 13 => 'Rate daily limit',//'每 24 小时评价主题次数', - 14 => 'How many times per day a user can rate threads, 0 or blank for not limit',//'设置用户每 24 小时可以评价多少篇主题,0 或留空为不限制', - 15 => 'setting_functions_recommend_ownthread', - 16 => 'Enable to rate own threads',//'是否允许评价自己的帖子', - 17 => 'Set whether to allow users to rate their own threads. Rate own thhread will not give any points',//'设置是否允许评价自己的主题。评价自己的主题无积分奖励', - 18 => 'setting_functions_recommend_iconlevels', - 19 => 'Rated level icons',//'评价图标显示级别', - 20 => 'Set a list of rating level icons, one icon per each level. Recommended to use three levels, separated with a comma, i.e.: "0,100,200" means level 1 for rated from 0 to 100, level 2 for rated more than 100,and Level 2 for rated more than 200. Threads wit a level 1 and above will appear in "Recommended threads" list. Set blank or 0 for disable level icon.',//'设置主题列表页评价图标每一级别对应的评价指数。建议为 3 个级别,请用逗号分隔,如:“0,100,200”表示当主题的评价指数大于 0 时为 1 级,大于 100 时为 2 级,大于 200 时为 3 级。1 级及以上级别的主题会在主题列表页“查看好评主题”中列出。留空或者 0 表示不显示图标', - ), - ), - 263 => - array ( - 'index' => - array ( - 'Site modules' => 'action=setting&operation=functions',//'站点功能', - 'Post Comment' => 'action=setting&operation=functions&anchor=comment',//'帖子点评', - ), - 'text' => - array ( - 0 => 'Site features » Post Comment',//'站点功能 » 帖子点评', - 1 => 'setting_functions_comment_allow', - 2 => 'Comment method',//'点评方式', - 3 => 'Set the method of comment publishing. If this is not choosed, the Comment function will be disabled. Comment on any of the methods need to be set in the user group Comment permissions to "direct Comment" through the post every floor in the "Comments" link Post Comment "floor response" through the post every floor in the "Reply" link at Post Reply, Comment on the floor automatically generated. Note: click on the thred "Reply" link will not produce the thread comment',//'设置点评的发表方式,如不选择表示不启用点评功能。开启任意一种点评方式都需要在用户组中设置点评权限“直接点评”即通过帖子每楼层中的“点评”链接发表点评“楼层回复”即通过帖子每楼层中的“回复”链接发表回帖时,自动对该楼层产生点评注意:点击主题中的“回复”链接,不会对主题产生点评', - 4 => 'setting_functions_comment_number', - 5 => 'Number of comments',//'点评条目数', - 6 => 'Show a number of comments. Set to 0 for not calculate comments. After creating a thread, it is required to set permissions for user groups to comment.',//'在帖子中显示点评的条目数', - 7 => 'setting_functions_comment_postself', - 8 => 'Allow to comment own threads',//'允许点评自己的帖子', - 9 => 'This settings enable to comment your own threads, but disable to view published by you comments.',//'设置是否发帖作者能点评自己的帖子', - 10 => 'setting_functions_comment_firstpost', - 11 => 'Allow to comment the first post',//'允许点评楼主帖', - 12 => 'Set whether to allow the owner to post a first comment, other members can only comment replies.',//'设置是否允许直接点评楼主帖,关闭表示只能点评回帖', - 13 => 'setting_functions_comment_commentitem_0', - 14 => 'Preset the General Comment List',//'普通主题点评预置观点', - 15 => 'Set predefined general comment list, displayed as a drop-down menu. One comment per line. If there is an empty line, a user will be enabled to enter his alternative point of view.',//'每个观点一行。如存在空行,空行下方的内容将显示在下拉菜单中作为备选观点', - 16 => 'setting_functions_comment_commentitem_1', - 17 => 'Poll vote predefined comments',//'投票主题点评预置观点', - 18 => 'Set predefined general comment list, displayed as a drop-down menu. One comment per line. If there is an empty line, a user will be enabled to enter his alternative point of view.',//'每个观点一行。如存在空行,空行下方的内容将显示在下拉菜单中作为备选观点', - 19 => 'setting_functions_comment_commentitem_2', - 20 => 'Product rate predefined comments',//'商品主题点评预置观点', - 21 => 'Set predefined general comment list, displayed as a drop-down menu. One comment per line. If there is an empty line, a user will be enabled to enter his alternative point of view.',//'每个观点一行。如存在空行,空行下方的内容将显示在下拉菜单中作为备选观点', - 22 => 'setting_functions_comment_commentitem_3', - 23 => 'Reward vote predefined comments',//'悬赏主题点评预置观点', - 24 => 'Set predefined general comment list, displayed as a drop-down menu. One comment per line. If there is an empty line, a user will be enabled to enter his alternative point of view.',//'每个观点一行。如存在空行,空行下方的内容将显示在下拉菜单中作为备选观点', - 25 => 'setting_functions_comment_commentitem_4', - 26 => 'Thread rate predefined comments',//'活动主题点评预置观点', - 27 => 'Set predefined general comment list, displayed as a drop-down menu. One comment per line. If there is an empty line, a user will be enabled to enter his alternative point of view.',//'每个观点一行。如存在空行,空行下方的内容将显示在下拉菜单中作为备选观点', - 28 => 'setting_functions_comment_commentitem_5', - 29 => 'Debate predefined comments',//'辩论主题点评预置观点', - 30 => 'Set predefined general comment list, displayed as a drop-down menu. One comment per line. If there is an empty line, a user will be enabled to enter his alternative point of view.',//'每个观点一行。如存在空行,空行下方的内容将显示在下拉菜单中作为备选观点', - ), - ), - 264 => - array ( - 'index' => - array ( - 'Site modules' => 'action=setting&operation=functions',//'站点功能' - 'Post replies' => 'action=setting&operation=functions&anchor=threadexp',//'帖子阅读' - ), - 'text' => - array ( - 0 => 'Site modules » Post replies',//'站点功能 » 帖子阅读', - 1 => 'setting_functions_threadexp_repliesrank', - 2 => 'Enable reply to poll',//'启用回帖投票', - 3 => 'If turned on, users can reply to a poll like "Support", "Disagree"',//'开启后,用户可对回帖进行“支持”、“反对”操作。', - 4 => 'setting_functions_threadexp_blacklist', - 5 => 'Enable to hide blacklisted users',//'启用用户黑名单隐藏', - 6 => 'If turned on, users can hide posts from users placed in a blacklist',//'开启后,用户可以通过将其他用户加入黑名单的方法,隐藏指定用户的帖子。', - 7 => 'setting_functions_threadexp_hotreplies', - 8 => 'Number of Hot Replies',//'推荐回复数', - 9 => 'The system will calculate hot replies and filtered posts, and show this number in the title of the first page. Set to 0 for not display.',//'系统根据回帖评价和水帖情况,在主题第一页推荐回帖,0 为不显示。', - 10 => 'setting_functions_threadexp_filter', - 11 => 'Post Filter',//'水帖字数', - 12 => 'When the system determine filter conditions, the post will be determined as filtered if number of posts is less than this value',//'系统判断水帖的条件,小于此数值的帖子会被判断为水帖,0 为不过滤水帖。', - 13 => 'setting_functions_threadexp_nofilteredpost', - 14 => 'Hot replies for non-filtered posts',//'推荐回复时推荐非水帖', - 15 => 'If enabled, the number of Hot Replies will be shown on the first page, and the corresponding number of non-filtered posts',//'启用后会在第一页推荐回复处推荐相应一定的非水帖。', - 16 => 'setting_functions_threadexp_hidefilteredpost', - 17 => 'Hide filtered posts',//'启用隐藏水帖', - 18 => 'If enabled, all the detected filtered posts will be hidden',//'开启后系统判断为水帖的帖子会被自动隐藏。', - 19 => 'setting_functions_threadexp_filterednovote', - 20 => 'Disable vote for filtered posts',//'水帖不能参与回帖投票', - 21 => 'If enabled, all the detected filtered posts will not participate in the post voting',//'开启后系统判断为水帖的帖子将不能参与回帖投票。', - ), - ), - 265 => - array ( - 'index' => - array ( - 'Site modules' => 'action=setting&operation=functions',//'站点功能', - 'Other' => 'action=setting&operation=functions&anchor=other',//'其他', - ), - 'text' => - array ( - 0 => 'Site features » Other',//'站点功能 » 其他', - 1 => 'setting_tips', - 2 => 'Options marked by red dotted line are related to the system efficiency, load capacity and resource consumption (can improve or reduce the efficiency). It is recommended to make adjustments according to your server situation.',//'以红色虚线标示的选项,表示该选项和系统效率、负载能力与资源消耗有关(提高效率、或降低效率),建议依据自身服务器情况进行调整。', - 3 => 'setting_functions_other_pwdsafety', - 4 => 'Enable password encryption',//'启用登录密码加密', - 5 => 'Select "Yes", if a password must be encrypted before transmitted to the server',//'选择“是”,站点登录时的密码将进行加密后再传输', - 6 => 'setting_functions_other_uidlogin', - 7 => 'Enable Login by UID',//'启用UID登录', - 8 => 'Select "Yes" for allow login by the UID',//'选择“是”,站点登录时允许通过 UID的方式登录验证', - 9 => 'setting_functions_other_autoidselect', - 10 => 'Enable automatic account detection while login',//'启用登录自动选择帐号', - 11 => 'Select "Yes" for autodetect the user account by first matching of a user name, UID or E-mail',//'选择“是”,站点登录时的将自动按 UID、E-mail、用户名的顺序逐一去匹配', - 12 => 'setting_functions_other_rssstatus', - 13 => 'Enable RSS',//'启用 RSS', - 14 => 'Select "Yes" for allow users to use RSS client software to receive the latest Forum posts. Note: If a forum has many sub-forums, this feature may increase the server loading.',//'选择“是”,将允许用户使用 RSS 客户端软件接收最新的帖子、文章更新。注意: 在分类很多的情况下,本功能可能会加重服务器负担', - 15 => 'setting_functions_other_rssttl', - 16 => 'RSS TTL (minutes)',//'RSS TTL(分钟)', - 17 => 'TTL (Time to Live) is a property of RSS 2.0, and used to control the automatic refresh time of subscription. The shorter TTL give more real-time information, but increase the server loading. Recommended value: 30 ~ 180.',//'TTL(Time to Live) 是 RSS 2.0 的一项属性,用于控制订阅内容的自动刷新时间,时间越短则资料实时性就越高,但会加重服务器负担,通常可设置为 30~180 范围内的数值', - 18 => 'setting_functions_other_oltimespan', - 19 => 'Users online time update time (minutes)',//'用户在线时间更新时长(分钟)', - 20 => 'Discuz! Available statistics for each user, and total online time of the month, updated the setting to set the time and frequency users online time. For example, set to 10, the user updated every 10 minutes every record online. The smaller the value of this setting, the more precise statistics, but the greater the consumption of resources. Recommended setting is 5 to 30 range, 0 to not record user online time ',//'Discuz! 可统计每个用户总共和当月的在线时间,本设置用以设定更新用户在线时间的时间频率。例如设置为 10,则用户每在线 10 分钟更新一次记录。本设置值越小,则统计越精确,但消耗资源越大。建议设置为 5~30 范围内,0 为不记录用户在线时间', - 21 => 'setting_functions_other_debug', - 22 => 'Show Runtime Info',//'显示程序运行信息', - 23 => 'Select "Yes" for display an execution time and a number of database queries in the footer.',//'选择“是”将在页脚处显示程序运行时间和数据库查询次数', - 24 => 'setting_functions_other_onlyacceptfriendpm', - 25 => 'By default short messages may be sent only to friends',//'全站是否默认只接受好友短消息', - 26 => 'If the personal message setting select to "Yes", the default receive short message enabled only to friends',//'选择“是”将在个人短消息设置中,默认只接收好友的短消息', - 27 => 'setting_functions_other_pmreportuser', - 28 => 'Receive short message informants (UID, separated by comma)',//'接收短消息举报人(UID,多人使用英文逗号分隔)', - 29 => 'According to received short message report to alert the user, can promptly processing to send spam messages of the user, Blank indicates does not enable the short message report feature',//'根据接收的短消息举报提醒用户,可及时处理发送垃圾短信的用户,留空表示不启用短消息举报功能', - 30 => 'setting_functions_other_at_anyone', - 31 => 'Can use @username for post to anybody',//'发帖时可@任何人', - 32 => 'Select "No" for use @ only for a list of friends',//'选择否表示,只有被@人在用户的收听列表和好友中时才有效', - 33 => 'setting_functions_other_chatpmrefreshtime', - 34 => 'Group chat message content automatically refresh interval (seconds)',//'群聊消息内容自动刷新间隔(秒)', - 35 => 'The shorter Refresh interval for group chat will increase a pressure on the server. Set to 0 for not refresh',//'用于群聊消息内容刷新, 间隔时间越短对服务器压力越大, 0为不刷新', - 36 => 'setting_functions_other_collectionteamworkernum', - 37 => 'Collection team size',//'淘帖专辑允许共同维护的人数', - 38 => 'The number of people who can maintain each collection together.',//'每个淘帖专辑可以共同参与维护的人数。', - 39 => 'setting_functions_other_shortcut', - 40 => 'Credit reminder lower limit',//'提醒添加桌面快捷的积分下限', - 41 => 'If a user credits are not less than this limit, then the credit reminder will be shown at the top bar reminder. Leave empty or set to 0 for disable this feature.',//'大于等于设置积分的用户将看到添加桌面快捷的顶部提醒,0或不填为关闭此功能', - 42 => 'setting_functions_other_closeforumorderby', - 43 => 'Turn off the topic list page sorting functionality',//'关闭主题列表页排序功能', - 44 => 'Select "Yes" for users will view only default sorting. Otherwise user can select the sorting, that will increase the system pressure.',//'选择“是”用户将只能按默认排序查看,否则,用户自选排序将会增加系统压力。', - 45 => 'setting_functions_other_disableipnotice', - 46 => 'Disable Login security notice',//'关闭登录安全提醒', - 47 => 'If selected "Yes", then the user login regions exception safety notice will be disabled',//'选择“是”将关闭用户登录地区异常安全提醒功能', - 48 => 'setting_functions_other_darkroom', - 49 => 'Open dark room',//'开启小黑屋', - 50 => 'After select "Yes" a dark room will be open, and user can enter the dark room in the right-lower corner of the navigation, and will view the Read Only and Banned user access.',//'选择“是”将开启小黑屋,用户可以在右下角导航中进入小黑屋,查看被禁言禁止访问用户', - 51 => 'setting_functions_other_global_sign', - 52 => 'Global signature',//'全局签名内容', - 53 => 'The setting must be turned on after the signature validation. If the user does not set the signature then the global signature will be shown.',//'该设置必须开启签名后有效,如果用户没有设置签名就显示该签名内容', - ), - ), - 266 => - array ( - 'index' => - array ( - 'Site modules' => 'action=setting&operation=functions',//'站点功能' - 'Guide settings' => 'action=setting&operation=functions&anchor=guide',//'导读设置' - ), - 'text' => - array ( - 0 => 'Site modules » Guide settings',//'站点功能 » 导读设置' - 1 => 'setting_functions_heatthread_guidelimit', - 2 => 'Heat lower limit for aggregate',//'热度值聚合下限', - 3 => 'Guidance Function Collected Hot Threads when the heat value ig greater than this lower limit. Default value is "3"',//'导读功能中收集热门主题时的热度值下限,默认值“3”', - 4 => 'setting_functions_guide_hotdt', - 5 => 'Hot post aggregation time range',//'热帖聚合时间范围', - 6 => 'setting_functions_guide_digestdt', - 7 => 'Digest aggregation time range',//'精华聚合时间范围', - ), - ), - 267 => - array ( - 'index' => - array ( - 'Site modules' => 'action=setting&operation=functions',//'站点功能', - 'Event thread' => 'action=setting&operation=functions&anchor=activity',//'活动主题', - ), - 'text' => - array ( - 0 => 'Site features » Event thread',//'站点功能 » 活动主题', - 1 => 'setting_functions_activity_type', - 2 => 'Built-in types',//'内置类别', - 3 => 'This setting will be displayed types of event when the user initiate an event, one type per line',//'本设定将在用户发起活动时显示活动类别,每个类别一行', - 4 => 'setting_functions_activity_field', - 5 => '(Click here to add optional data entry) optional data item',//'(点此新增资料项)活动发起者可选的必填资料项', - 6 => 'Client-initiated events, choose the data item',//'用户发起活动时可选择的资料项', - 7 => 'setting_functions_activity_extnum', - 8 => 'Number of extended fields',//'扩展资料项数量', - 9 => 'Client-initiated event, the number of custom data items, 0 to not allow custom data entry.',//'用户发起活动时自定义资料项数量,0为不允许自定义资料项', - 10 => 'setting_functions_activity_credit', - 11 => 'Use the points',//'使用积分', - 12 => 'Participation in the event will consume with this number of points',//'参与消耗积分的活动时使用的积分', - 13 => 'setting_functions_activity_pp', - 14 => 'User list number',//'列表用户数', - 15 => 'User list page shows the number of people involved in activities',//'用户列表每页显示参与活动的人数', - ), - ), - 268 => - array ( - 'index' => - array ( - 'User Permissions' => 'action=setting&operation=permissions',//'用户权限', - ), - 'text' => - array ( - 0 => 'User Permissions',//'用户权限', - 1 => 'setting_permissions_allowviewuserthread', - 2 => 'Allow to view other authors threads and posts',//'允许查看用户的主题和帖子', - 3 => 'This setting allowed to view topics and posts published by other users',//'设置是否允许查看其他用户的主题和帖子,选择相应的版块那么在个人空间将出现“主题”模块和链接', - 4 => 'setting_permissions_allowviewuserthread_fids', - 5 => 'Enable view other Forums',//'允许查看哪些版块的帖子', - 6 => 'This setting allows users to viewe other Forum topics and posts',//'设置允许查看其他用户哪些版块的主题和帖子', - 7 => 'setting_permissions_allowmoderatingthread', - 8 => 'Prompt the moderator if he have not reviewed the thread or post',//'是否提示用户自己有未审核的主题或者帖子', - 9 => 'Select "Yes" for notify a moderator to review the pending posts, so he will be able to see the tips in the post list page.',//'选择“是”,用户如果有正在审核的主题,将可以在帖子列表页看到提示', - 10 => 'setting_permissions_memliststatus', - 11 => 'Enable view member list',//'允许查看会员列表', - 12 => 'setting_permissions_minpostsize', - 13 => 'Minimal Post size (characters)',//'帖子最小字数(字节)', - 14 => 'Set 0 for no limit. Note: This setting not affected for Management Groups.',//'管理组成员可通过“发帖不受限制”设置而不受影响,0 为不限制', - 15 => 'setting_permissions_minpostsize_mobile', - 16 => 'Minimum post size for Mobile client (bytes)',//'手机客户端发帖最小字数(字节)', - 17 => 'Whether to use a separated post size setting for a mobile client (bytes). Set to 0 for use the default global forum setting.',//'是否单独为手机客户端设置发帖的最小字节数,0 为不单独设置', - 18 => 'setting_permissions_maxpostsize', - 19 => 'Maximum Post Size (characters)',//'帖子最大字数(字节)', - 20 => 'Note: This setting not affected for Management Groups.',//'管理组成员可通过“发帖不受限制”设置而不受影响', - 21 => 'setting_permissions_alloweditpost', - 22 => 'Enable users to edit own posts',//'允许用户随时编辑的帖子类型', - 23 => 'Selected user groups will not limited by "Edit post time", and can edit posts at any time.',//'被选中的帖子类型将不受用户组中的“编辑帖子时间”限制,任何时刻都可以编辑', - 24 => 'setting_permissions_post_append', - 25 => 'Enable add post function',//'启用帖子补充功能', - 26 => 'If enabled, then users can not edit your posts, but you can add content',//'启用后,当用户无法编辑自己的帖子时,可以补充内容', - 27 => 'setting_permissions_maxpolloptions', - 28 => 'Max Poll Options:',//'投票最大选项数:', - 29 => 'Set maximum number of vote options in a poll',//'设定发布投票包含的最大选项数', - 30 => 'setting_permissions_editby', - 31 => 'Enable "Edited by" remark',//'编辑帖子附加编辑记录', - 32 => 'Editing after 60 seconds from created time will add a remark "Post edited by xxx at xxxx-xx-xx". Administrators can avoid this restriction.',//'在 60 秒后编辑帖子添加“本帖由 xxx 于 xxxx-xx-xx 编辑”字样。管理员编辑不受此限制', - 33 => 'nav_setting_rate', - 34 => 'Ratings',//'评分', - 35 => 'setting_permissions_karmaratelimit', - 36 => 'Rate time limit (hours)',//'评分时间限制(小时)', - 37 => 'Other users can not rate after specified time of thread published. This limit is not affect for Moderators and administrators. Set to 0 for no limit.',//'帖子发表后超过此时间限制其他用户将不能对此帖评分,版主和管理员不受此限制,0 为不限制', - 38 => 'setting_permissions_modratelimit', - 39 => 'Moderator rate limit',//'版主评分限制', - 40 => 'Moderators can rate ordinary users and Super Moderators only in own moderated forums. Administrators not affected by this restriction, so if they have rating permissions, they can rate in all the forums.',//'设置版主只能在自身所管辖的版块范围内对帖子进行评分。本限制只对版主有效,允许评分的普通用户及超级版主、管理员不受此限制,因此如果赋予这些用户评分权限,他们仍将可以在全版块范围内进行评分', - 41 => 'setting_permissions_dupkarmarate', - 42 => 'Enable duplicated rates',//'允许重复评分', - 43 => 'Select "Yes" to allow users to rate the same post several times, the default is "no"',//'选择“是”将允许用户对一个帖子进行多次评分,默认为“否”', - 44 => 'setting_permissions_editperdel', - 45 => 'Allow users to edit the post marked to delete',//'允许用户编辑帖子时删除帖子', - 46 => 'Select "Yes" will allow users to edit the post marked to delete, default is "No"',//'选择“是”将允许用户编辑帖子时删除帖子,默认为“否”', - 47 => 'setting_permissions_hideexpiration', - 48 => 'Maximum effective time for the post [hide] tag',//'帖子中[hide]标签最大有效天数', - 49 => 'Number of days from posting time after which the hide tag is expired automatically. Set to or empty for not restrict',//'距发帖日期天数超过此设置时标签自动失效,0或不填为不限制', - ), - ), - 269 => - array ( - 'index' => - array ( - 'Credits Setttings' => 'action=setting&operation=credits',//'积分设置', - 'Basic settings' => 'action=setting&operation=credits&anchor=base',//'基本设置', - ), - 'text' => - array ( - 0 => 'Money Setttings » Base settings',//'积分设置 » 基本设置', - 1 => 'setting_credits_extended', - 2 => 'Exchange points ratio',//'扩展积分设置', - 3 => 'Set exchanging coefficient for internal points and external currencies. Once the exchange rate is set, a user can exchange their points to external currencies and backward. If you do not want to use points conversion, set the exchange ratio to 0.',//'兑换比率为单项积分对应一个单位标准积分的值,例如 extcredits1 的比率为 1.5(相当于 1.5 个单位标准积分)、extcredits2 的比率为 3(相当于 3 个单位标准积分)、extcredits3 的比率为 15(相当于 15 个单位标准积分),则 extcredits3 的 1 分相当于 extcredits2 的 5 分或 extcredits1 的 10 分。一旦设置兑换比率,则用户将可以在个人中心自行兑换各项设置了兑换比率的积分,如不希望实行积分自由兑换,请将其兑换比率设置为 0', - 4 => 'setting_credits', - 5 => 'Credits Setttings',//'积分设置', - 6 => 'setting_credits_trans', - 7 => 'Points Transactions',//'交易积分设置', - 8 => 'Use the points transactions',//'交易积分是一种可以由用户间自行转让、买卖交易、发布悬赏主题的积分类型,你可以指定一种积分作为交易积分。如果不指定交易积分,则用户间积分交易功能将不能使用。注意: 交易积分必须是已启用的积分,一旦确定请尽量不要更改,否则以往记录及交易可能会产生问题', - 9 => 'setting_credits_trans9', - 10 => 'Use Points Transfer',//'积分转账使用的积分', - 11 => 'Set to enable points transfer',//'设置积分转账时使用的积分', - 12 => 'setting_credits_trans1', - 13 => 'Thread Attachments transactions',//'主题(附件)买卖使用的积分', - 14 => 'Thread Attachments transactions',//'主题(附件)买卖使用的积分', - 15 => 'setting_credits_trans2', - 16 => 'Reward points',//'悬赏使用的积分', - 17 => 'Set to use Reward points',//'设置悬赏使用的积分', - 18 => 'setting_credits_trans3', - 19 => 'Magics, decorations used credits',//'道具、勋章使用的积分', - 20 => 'Set magics, decorations used credits',//'设置道具、勋章中使用的积分', - 21 => 'setting_credits_trans5', - 22 => 'Products points',//'商品主题使用的积分', - 23 => 'Set to use points for products threads',//'设置商品主题使用的积分', - 24 => 'setting_credits_trans6', - 25 => 'Space consumption points',//'空间消费使用的积分', - 26 => 'Set to use points in space consumtion',//'设置在空间中消费使用的积分类型', - 27 => 'setting_credits_trans7', - 28 => 'Application points',//'漫游应用使用的积分', - 29 => 'Set to use points in applications',//'设置与漫游特定应用中的积分体系兑换使用的积分', - 30 => 'setting_credits_trans10', - 31 => 'Replies incentive to use points',//'回帖奖励使用的积分', - 32 => 'When users post can be set when Replies reward used points',//'当用户发帖时可以设置的回帖奖励所使用的积分', - 33 => 'setting_credits_trans8', - 34 => 'Notify users about points',//'用户举报奖惩使用的积分', - 35 => 'Set to notify users about any points changing on the user account',//'设置用户举报后对用户奖惩时使用的积分', - 36 => 'setting_credits_trans11', - 37 => 'Grab floor points limit',//'抢楼帖积分限制', - 38 => 'Minimum number of points for participate in grab floor post',//'参与抢楼帖积分限制时使用的积分', - 39 => 'setting_credits_trans12', - 40 => 'Consume Credits for group creation',//'创建群组消耗积分', - 41 => 'How many credits decreased when a group created',//'创建群组时要消耗的积分', - 42 => 'setting_credits_tax', - 43 => 'Transaction tax',//'积分交易税', - 44 => 'Set the value of transaction tax (decrease points) for each user points transfer, exchange, buying and selling. The value must be of floating point format, and in a range between 0 and 1. For example, if the value is 0.2, then a user will loss 20% (20 points from each 100 points). Set to 0 for disable the tax.',//'积分交易税(损失率)为用户在利用积分进行转让、兑换、买卖时扣除的税率,范围为 0~1 之间的浮点数,例如设置为 0.2,则用户在转换 100 个单位积分时,损失掉的积分为 20 个单位,0 为不损失', - 45 => 'setting_credits_mintransfer', - 46 => 'Minimum transfer summ',//'转账最低余额', - 47 => 'Requires a user to have this minimum balance value (points) after comleting a transfer. Using this feature, you can set restrict users to make transactions if a balance is less than this value. Also you can set a limit for the negative balances, so transfers within this limit can be overdrawn (credited).',//'积分转账后要求用户所拥有的余额最小数值。利用此功能,你可以设置较大的余额限制,使积分小于这个数值的用户无法转账;也可以将余额限制设置为负数,使得转账在限额内可以透支', - 48 => 'setting_credits_minexchange', - 49 => 'Minimum exchange balance',//'兑换最低余额', - 50 => 'The minimum value of user balance after the required points be redeemed. Using this feature, you can set restrictions for a user balance, so that the user points less than this value can not be converted. Also you can set a negative balance limit, so a user can exchange within the quota overdraft (credited).',//'积分兑换后要求用户所拥有的余额最小数值。利用此功能,你可以设置较大的余额限制,使积分小于这个数值的用户无法兑换;也可以将余额限制设置为负数,使得兑换在限额内可以透支', - 51 => 'setting_credits_maxincperthread', - 52 => 'Single thread (Attach) maximum income tax',//'单主题(附件)最高收入', - 53 => 'Set the maximum tax for a single sale thread (attach) income points. If a purchase exceeds this limit, it will still deduct a buyer points, but the thread (Attach) income points will not rise. The restrictions applied only for a thread (Attach) buying/selling. Set to 0 for no limit.',//'设置单一主题(附件)出售作者所得的最高税后积分收入,超过此限制后购买者将仍然被扣除相应积分,但主题(附件)作者收益将不再上涨。本限制只在主题(附件)买卖时起作用,0 为不限制', - 54 => 'setting_credits_maxchargespan', - 55 => 'Single thread (Attach) sale time (hours)',//'单主题(附件)最高出售时限(小时)', - 56 => 'Set a time (in hours) when a thread (Attach) may be on sale after publishing. After this time a thread become a common (free) thread (Attach), and a reader will not have to pay for it, and an author will no longer receive corresponding benefit. Set to 0 for no limit.',//'设置当主题(附件)被作者出售时,系统允许自主题(附件)发布时间起,其可出售的最长时间。超过此时间限制后将变为普通主题(附件),阅读者无需支付积分购买,作者也将不再获得相应收益,以小时为单位,0 为不限制', - ), - ), - 270 => - array ( - 'index' => - array ( - 'Mail Settings' => 'action=setting&operation=mail',//'邮件设置', - 'Settings' => 'action=setting&operation=mail&anchor=setting',//'设置', - ), - 'text' => - array ( - 0 => 'Mail Settings » Settings',//'邮件设置 » 设置', - 1 => 'setting_mail_setting_send', - 2 => 'Send mail method',//'邮件发送方式', - 3 => 'setting_mail_setting_delimiter', - 4 => 'Message header separator',//'邮件头的分隔符', - 5 => 'Please set your mail server to additional parameters',//'请根据你邮件服务器的设置调整此参数', - 6 => 'setting_mail_setting_includeuser', - 7 => 'Recipient address contains a user name',//'收件人地址中包含用户名', - 8 => 'Select "Yes" if the recipient e-mail address contains the user name',//'选择“是”将在收件人的邮件地址中包含站点用户名', - 9 => 'setting_mail_setting_silent', - 10 => 'Hide all errors while e-mail send',//'屏蔽邮件发送中的全部错误提示', - ), - ), - 271 => - array ( - 'index' => - array ( - 'Mail Settings' => 'action=setting&operation=mail',//'邮件设置', - 'Check' => 'action=setting&operation=mail&anchor=check',//'检测', - ), - 'text' => - array ( - 0 => 'Mail Settings » Check',//'邮件设置 » 检测', - 1 => 'setting_mail_check_test_from', - 2 => 'Test sender',//'测试发件人', - 3 => 'setting_mail_check_test_to', - 4 => 'Test recipient',//'测试收件人', - 5 => 'If you want to test e-mail address containing a user name, use the next format: "username <user@domain.com>". Separate multiple addresses by commas.',//'如果要测试包含用户名的邮件地址,格式为“username <user@domain.com>” 。多个邮件地址用逗号分隔', - ), - ), - 272 => - array ( - 'index' => - array ( - 'Anti-spam settings' => 'action=setting&operation=sec',//'防灌水设置', - 'Basic Anti-spam settings' => 'action=setting&operation=sec&anchor=base',//'防灌水基本设置', - ), - 'text' => - array ( - 0 => 'Anti-spam settings » Basic Anti-spam settings',//'防灌水设置 » 防灌水基本设置', - 1 => 'setting_sec_floodctrl', - 2 => 'Post Flood Control (seconds)',//'两次发表时间间隔(秒)', - 3 => 'Between two post interval must be not less than this time, 0 for no limit',//'两次发帖间隔小于此时间,0 为不限制', - 4 => 'setting_sec_base_need_email', - 5 => 'Force new users to activate email',//'强制用户验证激活邮箱', - 6 => 'Members must verify their mailboxes before they can post anything.',//'选择是的话,用户必须验证激活自己的邮箱后,才可以进行发布操作。 ', - 7 => 'setting_sec_base_need_avatar', - 8 => 'Force new users to upload avatar',//'强制用户上传头像', - 9 => 'Select Yes, for enable any posting only after an avatar uloaded.',//'选择是的话,用户必须设置自己的头像后才能进行发布操作', - 10 => 'setting_sec_base_need_friendnum', - 11 => 'Force new users to add a minimum of friends',//'强制用户好友个数', - 12 => 'Set the number of friends, new user must have before he can post anything.',//'设置用户必须拥有多少个好友后,才可以进行发布操作', - ), - ), - 273 => - array ( - 'index' => - array ( - 'Anti-spam settings' => 'action=setting&operation=sec',//'防灌水设置', - 'Verification code settings' => 'action=setting&operation=sec&anchor=seccode',//'验证码设置', - ), - 'text' => - array ( - 0 => 'Anti-spam settings » Verification code settings',//'防灌水设置 » 验证码设置', - 1 => 'setting_sec_code_tips', - 2 => 'Authentication code using picture as text, The image must contain the character "2346789BCEFGHJKMPQRTVWXY" 24 characters, And must be a transparent GIF image, Background transparent, Foreground black, Black for the color Image of the first index. Image size limited, But suggested that the width is not greater than the width of the verification code 1/4, height not more than verification code level. After produced in the static/image/seccode/gif/ create a new subdirectory, Directory name any, 24 completed the production of GIF Image uploaded to the new subdirectory using the background Image as a validation code, JPG images to upload to the production of a good static/image/seccode/background/ directory, Site will using a random verification code inside the picture as a background to use TTF font as the verification code words, English TTF fonts to download files uploaded to static/image/seccode/font/en/ directory, Site will randomly using the font inside the text file as a verification code verification code before using Chinese Image, Need to contain the complete Chinese characters Chinese TTF font files uploaded to the static/image/seccode/font/ch/ directory, Site will randomly using the font inside the text file as a verification code',//'使用图片作为验证码文字,图片必须包含字符“2346789BCEFGHJKMPQRTVWXY”24 个字符,且必须为 GIF 透明图片、背景透明、前景黑色,黑色为图片的第一个索引色。图片大小不限制,但建议宽度不大于验证码宽度的 1/4,高度不大于验证码高度。制作完毕后在 static/image/seccode/gif/ 下创建一个新的子目录,目录名任意,把制作完毕的 24 个 GIF 图片上传到新子目录下使用图片作为验证码的背景,把制作好的 JPG 图片上传到 static/image/seccode/background/ 目录下,站点将随机使用里面的图片作为验证码的背景使用 TTF 字体作为验证码文字,把下载的 TTF 英文字体文件上传到 static/image/seccode/font/en/ 目录下,站点将随机使用里面的字体文件作为验证码的文字使用中文图片验证码前,需要把包含完整中文汉字的 TTF 中文字体文件上传到 static/image/seccode/font/ch/ 目录下,站点将随机使用里面的字体文件作为验证码的文字', - 3 => 'setting_sec_seccode_status', - 4 => 'Enable Captcha for',//'启用验证码', - 5 => 'Registration and verification code from malicious malicious irrigation, select the authentication code need to open the operation. Note: Enabling verification code will make the part of the operation becomes complicated, it is recommended to open only when necessary. Prepaid card verification code recommended has been open secret',//'验证码可以避免恶意注册及恶意灌水,请选择需要打开验证码的操作。注意: 启用验证码会使得部分操作变得繁琐,建议仅在必需时打开。充值卡密验证码建议一直开启', - 6 => 'setting_sec_seccode_minposts', - 7 => 'Post number for avoid Captcha',//'验证码发帖限制', - 8 => 'Number of posts the user must have for remove the verification code. 0 means that ALL members must enter a code.',//'发帖数超过此设置的会员将不受验证码功能限制,0 表示所有会员均受限制', - 9 => 'setting_sec_seccode_type', - 10 => 'Captcha type',//'验证码类型', - 11 => 'Set the type of captcha code. Chinese image verification code require for the host support of FreeType library. To display the Flash verification code, we recommend that your host support the Ming library to improve the security.',//'设置验证码的类型。中文图片验证码需要你的主机支持 FreeType 库。要显示 Flash 验证码,建议你的主机支持 Ming 库以提高安全性验证码预览', - 12 => 'setting_sec_seccode_width', - 13 => 'Captcha Image width',//'验证码图片宽度', - 14 => 'Set a width of verification code image in range of 100 - 200 px.',//'验证码图片的宽度,范围在 100~200 之间', - 15 => 'setting_sec_seccode_height', - 16 => 'Captcha Image height',//'验证码图片高度', - 17 => 'Set a height of captcha image in range of 50 - 80 px.',//'验证码图片的高度,范围在 30~80 之间', - 18 => 'setting_sec_seccode_scatter', - 19 => 'Image scatter',//'图片打散', - 20 => 'Enter the scatter (break up) level for the resulting captcha image. Set 0 for not use scatter.',//'打散生成的验证码图片,输入打散的级别,0 为不打散', - 21 => 'setting_sec_seccode_background', - 22 => 'Random background image',//'随机图片背景', - 23 => 'Select "Yes" to use random JPG image from static/image/seccode/background/ directory as a background for the captcha. Select "No" for use a random background color.',//'选择“是”将随机使用 static/image/seccode/background/ 目录下的 JPG 图片作为验证码的背景图片,选择“否”将使用随机的背景色', - 24 => 'setting_sec_seccode_adulterate', - 25 => 'Random background graphics',//'随机背景图形', - 26 => 'Select "Yes" for increase a random graphical noice at the captcha background.',//'选择“是”将给验证码背景增加随机的图形', - 27 => 'setting_sec_seccode_ttf', - 28 => 'Random TTF fonts',//'随机 TTF 字体', - 29 => 'Select "Yes" for use random TTF font from static/image/seccode/font/en/ directory. Select "No" for use random TTF fonts from static/image/seccode/gif/ directory. Chinese image vaptcha will use random TTF font from static/image/seccode/font/ch/ directory without the need for this setting.',//'选择“是”将随机使用 static/image/seccode/font/en/ 目录下的 TTF 字体文件生成验证码文字,选择“否”将随机使用 static/image/seccode/gif/ 目录中的 GIF 图片生成验证码文字。中文图片验证码将随机使用 static/image/seccode/font/ch/ 目录下的 TTF 字体文件,无需进行此设置', - 30 => 'setting_sec_seccode_angle', - 31 => 'Random angle',//'随机倾斜度', - 32 => 'Select "Yes" for use a random text inclination for the captcha code. This setting take effect only for TTF fonts.',//'选择“是”将给验证码文字增加随机的倾斜度,本设置只针对 TTF 字体的验证码', - 33 => 'setting_sec_seccode_warping', - 34 => 'Random distortion',//'随机扭曲', - 35 => 'Select "Yes" for use a random distortion (twist) in captcha text, effective only for TTF fonts.',//'选择“是”将给验证码文字增加随机的扭曲,本设置只针对 TTF 字体的验证码', - 36 => 'setting_sec_seccode_color', - 37 => 'Random color',//'随机颜色', - 38 => 'Select "Yes" for use random text and background color for the captcha code',//'选择“是”将给验证码的背景图形和文字增加随机的颜色', - 39 => 'setting_sec_seccode_size', - 40 => 'Random size',//'随机大小', - 41 => 'Select "Yes" for use a random text size in captcha code',//'选择“是”验证码文字的大小随机显示', - 42 => 'setting_sec_seccode_shadow', - 43 => 'Text shadow',//'文字阴影', - 44 => 'Select "Yes" for use a shadow effect in captcha code',//'选择“是”将给验证码文字增加阴影', - 45 => 'setting_sec_seccode_animator', - 46 => 'GIF animation',//'GIF 动画', - 47 => 'Select "Yes" for use animated GIF in the captcha code, select "No" for use a static image mode',//'选择“是”验证码将显示成 GIF 动画方式,选择“否”验证码将显示成静态图片方式', - ), - ), - 274 => - array ( - 'index' => - array ( - 'Anti-spam settings' => 'action=setting&operation=sec',//'防灌水设置', - 'Security Q & A' => 'action=setting&operation=sec&anchor=secqaa',//'验证问答设置', - ), - 'text' => - array ( - 0 => 'Anti-spam settings » Security Q & A',//'防灌水设置 » 验证问答设置', - 1 => 'setting_sec_qaa_tips', - 2 => 'Sequrity questions should be concise, unambiguous, so normal people can answer correctly. Please verify and update Security Questions and Answers regularly to prevent speculation! To install a new authentication Q&A script it is required to verify and upload the Q&A script to the source/class/secqaa/directory, then you can use the following list for select. Before designing of new authentication Q&A script the plug-in developers sure to read the "Discuz! Technical Library" content.',//'验证问题应该言简意赅,没有歧义,正常人都能够正确作答。请经常更新验证问答的问题及答案以防止被猜测!安装新的验证问答脚本,需将验证问答脚本程序上传到 source/class/secqaa/ 目录,然后即可在以下列表中选择使用了。插件开发人员在设计新的验证问答脚本前请务必仔细阅读《Discuz! 技术文库》中的内容。', - 3 => 'setting_sec_secqaa', - 4 => 'Security Q & A',//'验证问答设置', - 5 => 'Security questions and answers when registering or posting enable to prevent malicious effects because of more significant difficulty. Recommended to set more than 10 questions and answers. Note: HTML code supported, the answer mus be not longer than 50 characters.',//'建议你设置 10 个以上验证问题及答案,验证问题越多,验证问答防止恶意注册或发布信息的效果越明显。问题支持 HTML 代码,答案长度不超过 50 字节', - 6 => 'setting_sec_secqaa_status', - 7 => 'Enable security Q & A',//'启用验证问答', - 8 => 'If enabled, the system will require members for correct answer for security question, randomly selected to continue operation and avoid bad faith registration or post publishing. For complete the operation it is required to select the security question and answer. Note: Enabling this feature will increase the operation difficulty. Recommended to enable only when necessary.',//'验证问答功能要求会员必须正确回答系统随机抽取的问题才能继续操作,可以避免恶意注册或发布信息,请选择需要打开验证问答的操作。注意: 启用该功能会使得部分操作变得繁琐,建议仅在必需时打开', - 9 => 'setting_sec_secqaa_minposts', - 10 => 'Posts limit for disable Q & A',//'验证问答发帖限制', - 11 => 'Do not use sequirity Q & A for members posted more times than this value. Set to 0 for show Q & A from ALL members.',//'发帖数超过此设置的会员将不受验证问答功能限制,0 表示所有会员均受限制', - 12 => 'setting_sec_secqaa_qaa', - 13 => 'Set questions and answers',//'验证问题及答案设置', - ), - ), - 275 => - array ( - 'index' => - array ( - 'Anti-spam settings' => 'action=setting&operation=sec',//'防灌水设置', - 'Set the name of the registration form' => 'action=setting&operation=sec&anchor=reginput',//'注册表单名称设置', - ), - 'text' => - array ( - 0 => 'Anti-spam settings » Set the name of the registration form',//'防灌水设置 » 注册表单名称设置', - 1 => 'setting_sec_reginput', - 2 => 'Set the name of the registration form',//'注册表单名称设置', - 3 => 'setting_sec_reginput_username', - 4 => 'User name form settings',//'用户名表单设置', - 5 => 'Default username, only a combination of letters and numbers must begin with a letter. Modified form name will make it more difficult to play a role in RI',//'默认为 username ,只能是字母和数字的组合,必须以字母开头。修改后的表单名会使得注册机更难发挥作用', - 6 => 'setting_sec_reginput_password', - 7 => 'Password form settings',//'密码表单设置', - 8 => 'Default password, only a combination of letters and numbers must begin with a letter. Modified form name will make it more difficult to play a role in RI',//'默认为 password ,只能是字母和数字的组合,必须以字母开头。 修改后的表单名会使得注册机更难发挥作用', - 9 => 'setting_sec_reginput_password2', - 10 => 'Repeat password form settings',//'重复密码表单设置', - 11 => 'Default password2, only a combination of letters and numbers must begin with a letter. Modified form name will make it more difficult to play a role in RI',//'默认为 password2 ,只能是字母和数字的组合,必须以字母开头。 修改后的表单名会使得注册机更难发挥作用', - 12 => 'setting_sec_reginput_email', - 13 => 'Email Form setting',//'Email表单设置', - 14 => 'Default email, only a combination of letters and numbers must begin with a letter. Modified form name will make it more difficult to play a role in RI',//'默认为 email ,只能是字母和数字的组合,必须以字母开头。 修改后的表单名会使得注册机更难发挥作用', - ), - ), - 276 => - array ( - 'index' => - array ( - 'Anti-spam settings' => 'action=setting&operation=sec',//'防灌水设置' - 'Registration form name' => 'action=setting&operation=sec&anchor=postperiodtime',//'注册表单名称设置' - ), - 'text' => - array ( - 0 => 'Anti-spam settings » Set the name of the registration form',//'防灌水设置 » 注册表单名称设置', - 1 => 'setting_sec_postperiodtime', - 2 => 'Post time restriction',//'发帖时间段限制', - 3 => 'setting_datetime_postbanperiods', - 4 => 'R/O periods,',//'禁止发帖时间段', - 5 => 'The period of day time when users can not post messages. Please use the 24-hour period format, one time period per line. The time period can cross the midnight. Leave blank for no limit. For example: 23:25-5:05 means daily period from 23:25 to 05:05 of the next morning; 9:00-14:30 means a period from 09:00 to 2:30PM. Note: Invalid format may cause to unexpected problems! If this restriction is set to a user group, the group members postings will be disabled for this time period. All time settings must use the site system default time zone.',//'每天该时间段内用户不能发帖,请使用 24 小时时段格式,每个时间段一行,如需要也可跨越零点,留空为不限制。例如:每日晚 11:25 到次日早 5:05 可设置为: 23:25-5:05每日早 9:00 到当日下午 2:30 可设置为: 9:00-14:30注意: 格式不正确将可能导致意想不到的问题,用户组中如开启“不受时间段限制”的选项,则该组可不被任何时间段设置约束。所有时间段设置均以站点系统默认时区为准,不受用户自定义时区的影响', - 6 => 'setting_datetime_postmodperiods', - 7 => 'Premoderation period',//'发帖审核时间段', - 8 => 'Any postings made in this period will not shown until moderators/administrators manually approve the posting.',//'每天该时间段内用户发帖不直接显示,需经版主或管理员人工审核才能发表,格式和用法同上', - 9 => 'setting_datetime_postignorearea', - 10 => 'No posting time periods',//'发帖不受时间限制的地区列表', - 11 => 'When the user is in the address list, he can post free withou of time restrictions. One region per line. For example: Such as "Beijing" (without quotes). Left blank to not set. Note: To properly detect the IP address location please download the IP address database qqwry.dat file and upload it to the "data/ipdata/" folder, then renamed the file to "wry.dat", and remove the "tinyipdata.dat" file',//'当用户处于本列表中的地址时,发帖不受时间段限制。每个地区一行,例如 "北京"(不含引号),留空为不设置。注意:如要正确无误的判断您 IP 地址所在的地区,请到网上下载 qqwry.dat IP 地址库文件上传到 "data/ipdata/" 目录下更名为 wry.dat,同时删除 tinyipdata.dat 文件', - 12 => 'setting_datetime_postignoreip', - 13 => 'IP ignored the No Posting time restrictions',//'发帖不受时间限制的IP列表', - 14 => 'When a user IP address is in this list, the posting time restriction is not applied. One IP per line, a full address or beginning of IP range, For example "192.168." (without quotes) matches all IP adresses in range of 192.168.0.0~192.168.255.255. Leave blank to not set.',//'当用户处于本列表中的 IP 地址时,发帖不受时间段限制。每个 IP 一行,既可输入完整地址,也可只输入 IP 开头,例如 "192.168."(不含引号) 可匹配 192.168.0.0~192.168.255.255 范围内的所有地址,留空为不设置', - ), - ), - 277 => - array ( - 'index' => - array ( - 'Time settings' => 'action=setting&operation=datetime',//'时间设置', - ), - 'text' => - array ( - 0 => 'Time settings',//'时间设置', - 1 => 'setting_datetime_format', - 2 => 'Date and time format',//'日期和时间格式', - 3 => 'setting_datetime_dateformat', - 4 => 'Default date format',//'默认日期格式', - 5 => 'Use yyyy or yy for the year, mm for the month, dd for the day. I.e. yyyy-mm-dd will display 2000-12-31',//'使用 yyyy(yy) 表示年,mm 表示月,dd 表示天。如 yyyy-mm-dd 表示 2000-1-1', - 6 => 'setting_datetime_timeformat', - 7 => 'Default time format',//'默认时间格式', - 8 => 'setting_datetime_dateconvert', - 9 => 'Human Time Format',//'人性化时间格式', - 10 => 'Select "Yes" for display time like "n minutes ago", "Yesterday", "n days ago", etc.',//'选择“是”,站点中的时间将显示以“n分钟前”、“昨天”、“n天前”等形式显示', - 11 => 'setting_datetime_timeoffset', - 12 => 'Default time offset',//'默认时差', - 13 => 'Set your local time offset from GMT (time zone)',//'当地时间与 GMT 的时差', - 14 => 'setting_datetime_periods', - 15 => 'Time period settings',//'时间段设置', - 16 => 'setting_datetime_visitbanperiods', - 17 => 'Disable access time',//'禁止访问时间段', - 18 => 'Set some time of day period when users can not access to the site. Use the 24-hours time format, one time period per line. if necessary, a time can cross zero (midnight). Leave blank to not limit. For example:
    Nightly near the midnight: 23:25-05:05
    Daily from 9:00 pm to 2:30: 09:00-14:30
    Note: incorrect time format may cause some unexpected problems! I.e. User groups with "without time limit" option may have an access constraints from time to time. All the time settings must be set using the system default time zone.',//'每天该时间段内用户不能访问站点,请使用 24 小时时段格式,每个时间段一行,如需要也可跨越零点,留空为不限制。例如:每日晚 11:25 到次日早 5:05 可设置为: 23:25-5:05每日早 9:00 到当日下午 2:30 可设置为: 9:00-14:30注意: 格式不正确将可能导致意想不到的问题,用户组中如开启“不受时间段限制”的选项,则该组可不被任何时间段设置约束。所有时间段设置均以站点系统默认时区为准,不受用户自定义时区的影响', - 19 => 'setting_datetime_ban_downtime', - 20 => 'No downloads period',//'禁止下载附件时间段', - 21 => 'Set a time period when users can not download attachments',//'每天该时间段内用户不能下载附件,格式和用法同上', - 22 => 'setting_datetime_searchbanperiods', - 23 => 'No search period',//'禁止全文搜索时间段', - 24 => 'Set a time period when users can not use the full-text search.',//'每天该时间段内用户不能使用全文搜索,格式和用法同上', - 25 => 'setting_attach_basic_dir', - 26 => 'Attachments Directory',//'本地附件保存位置', - 27 => 'Set the absolute server path without ending slash ("/"). It must have attributes 777 and must be accessible by web.',//'服务器路径,属性 777,必须为 web 可访问到的目录,结尾不加 "/",相对目录务必以 "./" 开头', - 28 => 'setting_attach_basic_url', - 29 => 'Attachments URL',//'本地附件 URL 地址', - 30 => 'Enter relative path from the web-server root, or an absolute URL starting from http://, without ending "/".',//'可为当前 URL 下的相对地址或 http:// 开头的绝对地址,结尾不加 "/",不能把这个设为远程附件URL地址', - 31 => 'setting_attach_image_lib', - 32 => 'Image processing library',//'图片处理库类型', - 33 => 'Select a library to handle thumbnails and watermark image. GD is the most widely used library, but require more resources. ImageMagick eat less system resources, but require the execute the command line instructions. If you want to use this program, please go to http://www.imagemagick.org for download, and follow the installation instruction.',//'请选择 Discuz! 用来处理缩略图和水印的图像处理库。GD 是最广泛的处理库但是使用的系统资源较多。ImageMagick 速度快系统资源占用少,但需要服务器有执行命令行命令的权限。如果你的服务器有条件安装此程序,请到 http://www.imagemagick.org 下载,安装后在下面指定安装的路径', - 34 => 'setting_attach_image_impath', - 35 => 'ImageMagick installed path',//'ImageMagick 程序安装路径', - 36 => 'ImageMagick 6 installation path. If the server operating system is Windows, path do not use long file names',//'ImageMagick 6 程序的安装路径。如果服务器的操作系统为 Windows,路径不要使用长文件名', - 37 => 'setting_attach_image_thumbquality', - 38 => 'Thumbnail quality',//'缩略图质量', - 39 => 'Set a quality of the thumbnail image in range of 0 - 100 (integer value). Larger quality give a better result, but require greater image size.',//'设置图片附件缩略图的质量参数,范围为 0~100 的整数,数值越大结果图片效果越好,但尺寸也越大', - 40 => 'setting_attach_image_disabledmobile', - 41 => 'Generate thumbnails for mobile version',//'是否生成手机版缩略图', - 42 => 'Set whether to generate a thumbnail of each attachment for mobile version',//'设置是否为每个附件生成手机版的缩略图', - 43 => 'setting_attach_image_preview', - 44 => 'Preview',//'预览', - 45 => 'No need to save the settings to preview',//'无需保存设置即可预览', - ), - ), - 278 => - array ( - 'index' => - array ( - 'Attachment Settings' => 'action=setting&operation=attach',//'上传设置', - 'Forum attachments' => 'action=setting&operation=attach&anchor=forumattach',//'论坛附件', - ), - 'text' => - array ( - 0 => 'Attachment Settings » Forum attachments',//'上传设置 » 论坛附件', - 1 => 'setting_attach_basic_imgpost', - 2 => 'Display attached images in a post',//'帖子中显示图片附件', - 3 => 'Show the post attached images directly without the need to click the attachment link',//'在帖子中直接将图片或动画附件显示出来,而不需要点击附件链接', - 4 => 'setting_attach_basic_allowattachurl', - 5 => 'Enable attachment URL for media player',//'附件 URL 地址、媒体附件播放', - 6 => 'Allow to use attachment reference in form "attach://aid" within posts. Supporting this form enable to use a direct broadcast media services.',//'开启附件 URL 地址后,上传附件的地址可通过 "attach://aid" 方式在任何帖内引用,并支持媒体类附件的直接播放,此项设置需要在 用户组 - 帖子相关 中允许用户组使用多媒体代码方可生效', - 7 => 'setting_attach_image_thumbstatus', - 8 => 'Thumbnail settings for post attachments',//'论坛帖子附件缩略图设置', - 9 => 'Set a method for show images: create a thumblail image or shrink the original image to specified size. Supported JPG/PNG/GIF images. Animated GIF format is not supported.',//'你可以设置自动为用户上传的 JPG/PNG/GIF 图片附件添加缩略图或将图片附件缩到指定的大小。不支持动画 GIF 格式', - 10 => 'setting_attach_image_thumbwidthheight', - 11 => 'Thumbnail size',//'缩略图大小', - 12 => 'Set a thumbnail size. I an image is smaller than the size, the thumbnail will not generated.',//'设置缩略图的大小,小于此尺寸的图片附件将不生成缩略图', - 13 => 'setting_attach_basic_thumbsource', - 14 => 'Direct resize original image',//'是否直接缩放原图', - 15 => 'Select "Yes" for resize the original image, without generating a thumbnail file',//'选择“是”,将直接缩放原图,而不生成缩略图文件', - 16 => 'setting_attach_image_thumbsourcewidthheight', - 17 => 'Original image zoom size',//'原图缩放大小', - 18 => 'Set the size of original image. If attached image width/height is greater than this size, the image will be resized automatically to this size (thumbnail created).',//'设置原图的大小,所有大于此尺寸的图片附件将缩小到指定大小', - 19 => 'setting_attach_antileech_expire', - 20 => 'Attachment links expiration',//'附件链接有效期', - 21 => 'Unit: hours. Set to 0 or blank for permanent attachment links. Expired links are updated automatically. This feature can prevent the attachment leeching and bulk downloads, but it will cause inconvenience for normal members to download.',//'单位:小时,0 或留空表示附件链接永久有效,过期后链接自动更新。本功能可有效防止附件被盗链或附件被软件批量下载,但是会给会员的正常下载带来不便', - 22 => 'setting_attach_antileech_refcheck', - 23 => 'Check the attachment referer',//'下载附件来路检查', - 24 => 'Select "Yes" for check a referer when download attachments from other sites or sites banned for downloads. Note: This feature will display a "message about image attachment", and will increase the server loading.',//'选择“是”将检查下载附件的来路,来自其他网站或站点的下载请求将被禁止。注意: 本功能在开启“帖子中显示图片附件”时,会加重服务器负担', - ), - ), - 279 => - array ( - 'index' => - array ( - 'Attachment Settings' => 'action=setting&operation=attach',//'上传设置', - 'Remote attachments' => 'action=setting&operation=attach&anchor=remote',//'远程附件', - ), - 'text' => - array ( - 0 => 'Attachment Settings » Remote attachments',//'上传设置 » 远程附件', - 1 => 'setting_attach_remote_enabled', - 2 => 'Enable Remote Attachments',//'启用远程附件', - 3 => 'setting_attach_remote_enabled_ssl', - 4 => 'Enable SSL connections',//'启用 SSL 连接', - 5 => 'Note: FTP server must support the SSL',//'注意:FTP 服务器必需开启了 SSL', - 6 => 'setting_attach_remote_ftp_host', - 7 => 'FTP server address',//'FTP 服务器地址', - 8 => 'Enter the FTP server IP address or domain name',//'可以是 FTP 服务器的 IP 地址或域名', - 9 => 'setting_attach_remote_ftp_port', - 10 => 'FTP server port',//'FTP 服务器端口', - 11 => 'Default is 21',//'默认为 21', - 12 => 'setting_attach_remote_ftp_user', - 13 => 'FTP account',//'FTP 帐号', - 14 => 'The account must have the following permissions: read the file, write files, delete files, create directories, subdirectories inherit',//'该帐号必需具有以下权限:读取文件、写入文件、删除文件、创建目录、子目录继承', - 15 => 'setting_attach_remote_ftp_pass', - 16 => 'FTP password',//'FTP 密码', - 17 => 'According to the security considerations, will be shown only the first and the last FTP passwords, in the middle shows the eight "*".',//'基于安全考虑将只显示 FTP 密码的第一位和最后一位,中间显示八个 * 号', - 18 => 'setting_attach_remote_ftp_pasv', - 19 => 'Passive mode (pasv) connection',//'被动模式(pasv)连接', - 20 => 'A normal mode connection is used usually. If you have problems with uploading, try to use this setting.',//'一般情况下非被动模式即可,如果存在上传失败问题,可尝试打开此设置', - 21 => 'setting_attach_remote_dir', - 22 => 'Remote Attachment directory',//'远程附件目录', - 23 => 'Enter the Remote Attachment directory absolute or relative path (from the FTP home directory). Do not add the ending slash "/". FTP home directory is ".".',//'远程附件目录的绝对路径或相对于 FTP 主目录的相对路径,结尾不要加斜杠“/”,“.”表示 FTP 主目录', - 24 => 'setting_attach_remote_url', - 25 => 'Remote Access URL',//'远程访问 URL', - 26 => 'HTTP and FTP protocols supported. Do not use ending slash "/". If you use the FTP protocol, the FTP server must support PASV mode. For safety reasons, do not use FTP connection account with set write/list permissions.',//'支持 HTTP 和 FTP 协议,结尾不要加斜杠“/”;如果使用 FTP 协议,FTP 服务器必需支持 PASV 模式,为了安全起见,使用 FTP 连接的帐号不要设置可写权限和列表权限', - 27 => 'setting_attach_remote_timeout', - 28 => 'FTP transmission timeout',//'FTP 传输超时时间', - 29 => 'Unit: seconds. Set 0 for use the server default',//'单位:秒,0 为服务器默认', - 30 => 'setting_attach_remote_preview', - 31 => 'Connection Test',//'连接测试', - 32 => 'No need to save the settings to test, and then save the tested',//'无需保存设置即可测试,请在测试通过后再保存', - 33 => 'setting_attach_remote_allowedexts', - 34 => 'Enabled attachment extensions',//'允许的附件扩展名', - 35 => 'Allow only these extensions for remote attachments, one per line, case insensitive. Leave blank to no limit.',//'只允许这些扩展名结尾的附件使用远程附件功能,每行一个,不区分大小写,留空为不限制', - 36 => 'setting_attach_remote_disallowedexts', - 37 => 'Disabled attachment extensions',//'禁止的附件扩展名', - 38 => 'Disllow these extensions for remote attachments, one per line, case insensitive. Leave blank to no limit.',//'禁止这些扩展名结尾的附件使用远程附件功能,每行一个,不区分大小写,留空为不限制', - 39 => 'setting_attach_remote_minsize', - 40 => 'Minimal attachment size',//'附件尺寸下限', - 41 => 'Unit: KB. Allow to upload remote attachments only if the size is larger than the value. Set to 0 or leave blank to no limit.',//'单位:KB,只有尺寸大于当前设置的附件才使用远程附件功能,0 或留空为不限制', - 42 => 'setting_attach_antileech_remote_hide_dir', - 43 => 'Hide the real attachment path',//'隐藏远程附件真实路径', - 44 => 'This option will increase the server loading, and significantly increase the local server traffic. Choose whether a download/upload attachment file name must be hidden.',//'选择是,将加重本地服务器负担,并明显增加本地服务器流量;选择否,下载的附件与上传的附件文件名将会不一致', - ), - ), - 280 => - array ( - 'index' => - array ( - 'Attachment Settings' => 'action=setting&operation=attach',//'上传设置', - 'Space attachments' => 'action=setting&operation=attach&anchor=albumattach',//'空间附件', - ), - 'text' => - array ( - 0 => 'Attachment Settings » Space attachments',//'上传设置 » 空间附件', - 1 => 'setting_attach_album_maxtimage', - 2 => 'Image maximum dimensions',//'图片最大尺寸', - 3 => 'This feature requires the PHP GD support. If an uploaded image has a large size, the system will display the image as narrowed to this settings. As an example you can set width: 1024px, height: 768px. But can not be less than 300px. Set to 0 for do not resize.',//'如果用户上传一些尺寸很大的数码图片,则程序会按照本设置进行缩小该图片并显示,比如可以设置为 宽:1024px,高:768px,但都不能小于 300px。设置为 0,则不做任何处理', - ), - ), - 281 => - array ( - 'index' => - array ( - 'Attachment Settings' => 'action=setting&operation=attach',//'上传设置', - 'Portal attachments' => 'action=setting&operation=attach&anchor=portalarticle',//'门户附件', - ), - 'text' => - array ( - 0 => 'Attachment Settings » Portal attachments',//'上传设置 » 门户附件', - 1 => 'setting_attach_portal_article_img_thumb_closed', - 2 => 'Enable thumbnails for articles',//'开启文章图片缩略图', - 3 => 'Make thumbnails from uploaded article images',//'是否开启文章上传图片的缩略图', - 4 => 'setting_attach_portal_article_imgsize', - 5 => 'Thumbnail size for article images',//'文章图片缩略图尺寸', - 6 => 'When you upload a large image, the program will generate a corresponding small image, the default size is 300*300px.',//'如果上传一些尺寸很大的数码图片,则程序会按照本设置进行生成相应的小图片,默认大小为 300*300', - ), - ), - 282 => - array ( - 'index' => - array ( - 'Watermark' => 'action=setting&operation=imgwater',//'水印设置', - 'Articles' => 'action=setting&operation=imgwater&anchor=portal',//'文章', - ), - 'text' => - array ( - 0 => 'Watermark » Articles',//'水印设置 » 文章', - 1 => 'setting_imgwater_image_watermarks_portal', - 2 => 'Article image watermark setting',//'文章图片水印设置', - 3 => 'setting_imgwater_image_watermarkstatus', - 4 => 'Watermark',//'水印', - 5 => 'You can set up for add watermark automatically for uploaded JPG/PNG/GIF images. The watermark may be placed in a preferred position (3x3 = 9 positions available). Animated GIF format is not supported.',//'你可以设置自动为用户上传的 JPG/PNG/GIF 图片附件添加水印,请在此选择水印添加的位置(3x3 共 9 个位置可选)。不支持动画 GIF 格式', - 6 => 'setting_imgwater_image_watermarkminwidthheight', - 7 => 'Watermark size conditions',//'水印添加条件', - 8 => 'If an image is smaller than this size, the watermark will not used. Set to 0 in order to a watrmark allways.',//'设置水印添加的条件,小于此尺寸的图片附件将不添加水印', - 9 => 'setting_imgwater_image_watermarktype', - 10 => 'Watermark image type',//'水印图片类型', - 11 => 'If you set a GIF watermark, the file static/image/common/watermark.gif will used as watermark. If you set a PNG watermark, the watermark will use the static/image/common/watermark.png file. You can replace this watermark files with your preferrd images. If you set the TEXT watermark, the image will processed using the GD library, and require to support the FreeType library.',//'如果设置 GIF 类型的文件作为水印,水印图片为 static/image/common/watermark.gif,如果设置 PNG 类型的文件作为水印,水印图片为 static/image/common/watermark.png,你可替换水印文件以实现不同的水印效果。如果设置文本类型的水印并且使用 GD 图片处理库,那么还需要 FreeType 库支持才能使用', - 12 => 'setting_imgwater_image_watermarktrans', - 13 => 'Watermark transparency',//'水印融合度', - 14 => 'Set a watermark transparency value for GIF type watermark in range 1 - 100. The greater value results the lower watermark transparency. PNG type watermark will ignore this setting with because containing this parameter inside the watermark file itself. This feature require to enable a valid watermark type.',//'设置 GIF 类型水印图片与原始图片的融合度,范围为 1~100 的整数,数值越大水印图片透明度越低。PNG 类型水印本身具有真彩透明效果,无须此设置。本功能需要开启水印功能后才有效', - 15 => 'setting_imgwater_image_watermarkquality', - 16 => 'JPEG watermark quality',//'JPEG 水印质量', - 17 => 'Set the resulting JPEG image quality after watermark applied. The range is 0 - 100 (integer value). The larger value means a better result, but produce a larger image size. This feature require to enable a valid watermark type.',//'设置 JPEG 类型的图片附件添加水印后的质量参数,范围为 0~100 的整数,数值越大结果图片效果越好,但尺寸也越大。本功能需要开启水印功能后才有效', - 18 => 'setting_imgwater_image_watermarktext_text', - 19 => 'TEXT watermark content',//'文本水印文字', - 20 => 'If you specify a TrueType font for Chinese font, you can write a text watermark in Chinese language',//'如果你指定的 TrueType 字体为中文字体文件,那么你可以在文本水印中书写中文', - 21 => 'setting_imgwater_image_watermarktext_fontpath', - 22 => 'TEXT watermark TrueType font file name',//'文本水印 TrueType 字体文件名', - 23 => 'Enter the TTF font file name located in the static/image/seccode/font/ch/ or static/image/seccode/font/en/ directory. For support Chinese characters you have to use of Chinese TTF fonts including a complete Chinese characters.',//'填写存放在 static/image/seccode/font/ch/ 或 static/image/seccode/font/en/ 目录下的 TTF 字体文件,支持中文字体。如使用中文 TTF 字体请使用包含完整中文汉字的字体文件', - 24 => 'setting_imgwater_image_watermarktext_size', - 25 => 'TEXT watermark font size',//'文本水印字体大小', - 26 => 'Set the appropriate text font size for a watermark',//'设置文本水印字体大小,请按照字体设置相应的大小', - 27 => 'setting_imgwater_image_watermarktext_angle', - 28 => 'TEXT watermark angle',//'文本水印显示角度', - 29 => 'Set a text rotation angle starting from 0 degrees',//'0 度为从左向右阅读文本', - 30 => 'setting_imgwater_image_watermarktext_color', - 31 => 'TEXT watermark font color',//'文本水印字体颜色', - 32 => 'Enter a color of watermark in a hexadecimal format, i.e. 99CCFF',//'输入 16 进制颜色代表文本水印字体颜色', - 33 => 'setting_imgwater_image_watermarktext_shadowx', - 34 => 'TEXT watermark horizontal shadow offset',//'文本水印阴影横向偏移量', - 35 => 'Set a horizontal offset for the shadow of a text watermark.',//'设置文本水印阴影横向偏移量,此数值不宜设置的太大', - 36 => 'setting_imgwater_image_watermarktext_shadowy', - 37 => 'TEXT watermark vertical shadow offset',//'文本水印阴影纵向偏移量', - 38 => 'Set a vertical offset for the shadow of a text watermark.',//'设置文本水印阴影纵向偏移量,此数值不宜设置的太大', - 39 => 'setting_imgwater_image_watermarktext_shadowcolor', - 40 => 'Shadow color',//'文本水印阴影颜色', - 41 => 'Enter a shadow color in a hexadecimal format, i.e. 99CCFF',//'输入 16 进制颜色代表文本水印阴影字体颜色', - 42 => 'setting_imgwater_image_watermarktext_imtranslatex', - 43 => 'TEXT watermark horizontal offset (ImageMagick)',//'文本水印横向偏移量(ImageMagick)', - 44 => 'Set the watermark horizontal offset. This settingapplies only for ImageMagick library.',//'设置水印文本输出后向屏幕中央的横向的偏移值。本设置只适用于 ImageMagick 图片处理库', - 45 => 'setting_imgwater_image_watermarktext_imtranslatey', - 46 => 'TEXT watermark vertical offset (ImageMagick)',//'文本水印纵向偏移量(ImageMagick)', - 47 => 'Set the watermark vertical offset. This settingapplies only for ImageMagick library.',//'设置水印文本输出后向屏幕中央的纵向的偏移值。本设置只适用于 ImageMagick 图片处理库', - 48 => 'setting_imgwater_image_watermarktext_imskewx', - 49 => 'TEXT watermark horizontal angle (ImageMagick)',//'文本水印横向倾斜角度(ImageMagick)', - 50 => 'Set the watermark horizontal angle. This settingapplies only for ImageMagick library.',//'设置水印文本横向的倾斜角度。本设置只适用于 ImageMagick 图片处理库', - 51 => 'setting_imgwater_image_watermarktext_imskewy', - 52 => 'TEXT watermark vertical tilt (ImageMagick)',//'文本水印纵向倾斜角度(ImageMagick)', - 53 => 'Set the watermark horizontal angle. This setting applies only for ImageMagick library.',//'设置水印文本纵向的倾斜角度。本设置只适用于 ImageMagick 图片处理库', - 54 => 'setting_imgwater_preview', - 55 => 'Preview',//'预览', - 56 => 'Please preview before the submit',//'请先提交后再预览', - ), - ), - 283 => - array ( - 'index' => - array ( - 'Watermark' => 'action=setting&operation=imgwater',//'水印设置', - 'Forum' => 'action=setting&operation=imgwater&anchor=forum',//'论坛', - ), - 'text' => - array ( - 0 => 'Watermark » Forum',//'水印设置 » 论坛', - 1 => 'setting_imgwater_image_watermarks_forum', - 2 => 'Forum attached images watermark settings',//'论坛附件图片水印设置', - 3 => 'setting_imgwater_image_watermarkstatus', - 4 => 'Watermark',//'水印', - 5 => 'You can set up for add watermark automatically for uploaded JPG/PNG/GIF images. The watermark may be placed in a preferred position (3x3 = 9 positions available). Animated GIF format is not supported.',//'你可以设置自动为用户上传的 JPG/PNG/GIF 图片附件添加水印,请在此选择水印添加的位置(3x3 共 9 个位置可选)。不支持动画 GIF 格式', - 6 => 'setting_imgwater_image_watermarkminwidthheight', - 7 => 'Watermark size conditions',//'水印添加条件', - 8 => 'If an image is smaller than this size, the watermark will not used. Set to 0 in order to a watrmark allways.',//'设置水印添加的条件,小于此尺寸的图片附件将不添加水印', - 9 => 'setting_imgwater_image_watermarktype', - 10 => 'Watermark image type',//'水印图片类型', - 11 => 'If you set a GIF watermark, the file static/image/common/watermark.gif will used as watermark. If you set a PNG watermark, the watermark will use the static/image/common/watermark.png file. You can replace this watermark files with your preferrd images. If you set the TEXT watermark, the image will processed using the GD library, and require to support the FreeType library.',//'如果设置 GIF 类型的文件作为水印,水印图片为 static/image/common/watermark.gif,如果设置 PNG 类型的文件作为水印,水印图片为 static/image/common/watermark.png,你可替换水印文件以实现不同的水印效果。如果设置文本类型的水印并且使用 GD 图片处理库,那么还需要 FreeType 库支持才能使用', - 12 => 'setting_imgwater_image_watermarktrans', - 13 => 'Watermark transparency',//'水印融合度', - 14 => 'Set a watermark transparency value for GIF type watermark in range 1 - 100. The greater value results the lower watermark transparency. PNG type watermark will ignore this setting with because containing this parameter inside the watermark file itself. This feature require to enable a valid watermark type.',//'设置 GIF 类型水印图片与原始图片的融合度,范围为 1~100 的整数,数值越大水印图片透明度越低。PNG 类型水印本身具有真彩透明效果,无须此设置。本功能需要开启水印功能后才有效', - 15 => 'setting_imgwater_image_watermarkquality', - 16 => 'JPEG watermark quality',//'JPEG 水印质量', - 17 => 'Set the resulting JPEG image quality after watermark applied. The range is 0 - 100 (integer value). The larger value means a better result, but produce a larger image size. This feature require to enable a valid watermark type.',//'设置 JPEG 类型的图片附件添加水印后的质量参数,范围为 0~100 的整数,数值越大结果图片效果越好,但尺寸也越大。本功能需要开启水印功能后才有效', - 18 => 'setting_imgwater_image_watermarktext_text', - 19 => 'TEXT watermark content',//'文本水印文字', - 20 => 'If you specify a TrueType font for Chinese font, you can write a text watermark in Chinese language',//'如果你指定的 TrueType 字体为中文字体文件,那么你可以在文本水印中书写中文', - 21 => 'setting_imgwater_image_watermarktext_fontpath', - 22 => 'TEXT watermark TrueType font file name',//'文本水印 TrueType 字体文件名', - 23 => 'Enter the TTF font file name located in the static/image/seccode/font/ch/ or static/image/seccode/font/en/ directory. For support Chinese characters you have to use of Chinese TTF fonts including a complete Chinese characters.',//'填写存放在 static/image/seccode/font/ch/ 或 static/image/seccode/font/en/ 目录下的 TTF 字体文件,支持中文字体。如使用中文 TTF 字体请使用包含完整中文汉字的字体文件', - 24 => 'setting_imgwater_image_watermarktext_size', - 25 => 'TEXT watermark font size',//'文本水印字体大小', - 26 => 'Set the appropriate text font size for a watermark',//'设置文本水印字体大小,请按照字体设置相应的大小', - 27 => 'setting_imgwater_image_watermarktext_angle', - 28 => 'TEXT watermark angle',//'文本水印显示角度', - 29 => 'Set a text rotation angle starting from 0 degrees',//'0 度为从左向右阅读文本', - 30 => 'setting_imgwater_image_watermarktext_color', - 31 => 'TEXT watermark font color',//'文本水印字体颜色', - 32 => 'Enter a color of watermark in a hexadecimal format, i.e. 99CCFF',//'输入 16 进制颜色代表文本水印字体颜色', - 33 => 'setting_imgwater_image_watermarktext_shadowx', - 34 => 'TEXT watermark horizontal shadow offset',//'文本水印阴影横向偏移量', - 35 => 'Set a horizontal offset for the shadow of a text watermark.',//'设置文本水印阴影横向偏移量,此数值不宜设置的太大', - 36 => 'setting_imgwater_image_watermarktext_shadowy', - 37 => 'TEXT watermark vertical shadow offset',//'文本水印阴影纵向偏移量', - 38 => 'Set a vertical offset for the shadow of a text watermark.',//'设置文本水印阴影纵向偏移量,此数值不宜设置的太大', - 39 => 'setting_imgwater_image_watermarktext_shadowcolor', - 40 => 'Shadow color',//'文本水印阴影颜色', - 41 => 'Enter a shadow color in a hexadecimal format, i.e. 99CCFF',//'输入 16 进制颜色代表文本水印阴影字体颜色', - 42 => 'setting_imgwater_image_watermarktext_imtranslatex', - 43 => 'TEXT watermark horizontal offset (ImageMagick)',//'文本水印横向偏移量(ImageMagick)', - 44 => 'Set the watermark horizontal offset. This settingapplies only for ImageMagick library.',//'设置水印文本输出后向屏幕中央的横向的偏移值。本设置只适用于 ImageMagick 图片处理库', - 45 => 'setting_imgwater_image_watermarktext_imtranslatey', - 46 => 'TEXT watermark vertical offset (ImageMagick)',//'文本水印纵向偏移量(ImageMagick)', - 47 => 'Set the watermark vertical offset. This settingapplies only for ImageMagick library.',//'设置水印文本输出后向屏幕中央的纵向的偏移值。本设置只适用于 ImageMagick 图片处理库', - 48 => 'setting_imgwater_image_watermarktext_imskewx', - 49 => 'TEXT watermark horizontal angle (ImageMagick)',//'文本水印横向倾斜角度(ImageMagick)', - 50 => 'Set the watermark horizontal angle. This settingapplies only for ImageMagick library.',//'设置水印文本横向的倾斜角度。本设置只适用于 ImageMagick 图片处理库', - 51 => 'setting_imgwater_image_watermarktext_imskewy', - 52 => 'TEXT watermark vertical tilt (ImageMagick)',//'文本水印纵向倾斜角度(ImageMagick)', - 53 => 'Set the watermark horizontal angle. This setting applies only for ImageMagick library.',//'设置水印文本纵向的倾斜角度。本设置只适用于 ImageMagick 图片处理库', - 54 => 'setting_imgwater_preview', - 55 => 'Preview',//'预览', - 56 => 'Please preview before the submit',//'请先提交后再预览', - ), - ), - 284 => - array ( - 'index' => - array ( - 'Watermark' => 'action=setting&operation=imgwater',//'水印设置', - 'Space Album' => 'action=setting&operation=imgwater&anchor=album',//'空间相册', - ), - 'text' => - array ( - 0 => 'Watermark » Space Album',//'水印设置 » 空间相册', - 1 => 'setting_imgwater_image_watermarks_album', - 2 => 'Space album photo watermark settings',//'空间相册图片水印设置', - 3 => 'setting_imgwater_image_watermarkstatus', - 4 => 'Watermark',//'水印', - 5 => 'You can set up for add watermark automatically for uploaded JPG/PNG/GIF images. The watermark may be placed in a preferred position (3x3 = 9 positions available). Animated GIF format is not supported.',//'你可以设置自动为用户上传的 JPG/PNG/GIF 图片附件添加水印,请在此选择水印添加的位置(3x3 共 9 个位置可选)。不支持动画 GIF 格式', - 6 => 'setting_imgwater_image_watermarkminwidthheight', - 7 => 'Watermark size conditions',//'水印添加条件', - 8 => 'If an image is smaller than this size, the watermark will not used. Set to 0 in order to a watrmark allways.',//'设置水印添加的条件,小于此尺寸的图片附件将不添加水印', - 9 => 'setting_imgwater_image_watermarktype', - 10 => 'Watermark image type',//'水印图片类型', - 11 => 'If you set a GIF watermark, the file static/image/common/watermark.gif will used as watermark. If you set a PNG watermark, the watermark will use the static/image/common/watermark.png file. You can replace this watermark files with your preferrd images. If you set the TEXT watermark, the image will processed using the GD library, and require to support the FreeType library.',//'如果设置 GIF 类型的文件作为水印,水印图片为 static/image/common/watermark.gif,如果设置 PNG 类型的文件作为水印,水印图片为 static/image/common/watermark.png,你可替换水印文件以实现不同的水印效果。如果设置文本类型的水印并且使用 GD 图片处理库,那么还需要 FreeType 库支持才能使用', - 12 => 'setting_imgwater_image_watermarktrans', - 13 => 'Watermark transparency',//'水印融合度', - 14 => 'Set a watermark transparency value for GIF type watermark in range 1 - 100. The greater value results the lower watermark transparency. PNG type watermark will ignore this setting with because containing this parameter inside the watermark file itself. This feature require to enable a valid watermark type.',//'设置 GIF 类型水印图片与原始图片的融合度,范围为 1~100 的整数,数值越大水印图片透明度越低。PNG 类型水印本身具有真彩透明效果,无须此设置。本功能需要开启水印功能后才有效', - 15 => 'setting_imgwater_image_watermarkquality', - 16 => 'JPEG watermark quality',//'JPEG 水印质量', - 17 => 'Set the resulting JPEG image quality after watermark applied. The range is 0 - 100 (integer value). The larger value means a better result, but produce a larger image size. This feature require to enable a valid watermark type.',//'设置 JPEG 类型的图片附件添加水印后的质量参数,范围为 0~100 的整数,数值越大结果图片效果越好,但尺寸也越大。本功能需要开启水印功能后才有效', - 18 => 'setting_imgwater_image_watermarktext_text', - 19 => 'TEXT watermark content',//'文本水印文字', - 20 => 'If you specify a TrueType font for Chinese font, you can write a text watermark in Chinese language',//'如果你指定的 TrueType 字体为中文字体文件,那么你可以在文本水印中书写中文', - 21 => 'setting_imgwater_image_watermarktext_fontpath', - 22 => 'TEXT watermark TrueType font file name',//'文本水印 TrueType 字体文件名', - 23 => 'Enter the TTF font file name located in the static/image/seccode/font/ch/ or static/image/seccode/font/en/ directory. For support Chinese characters you have to use of Chinese TTF fonts including a complete Chinese characters.',//'填写存放在 static/image/seccode/font/ch/ 或 static/image/seccode/font/en/ 目录下的 TTF 字体文件,支持中文字体。如使用中文 TTF 字体请使用包含完整中文汉字的字体文件', - 24 => 'setting_imgwater_image_watermarktext_size', - 25 => 'TEXT watermark font size',//'文本水印字体大小', - 26 => 'Set the appropriate text font size for a watermark',//'设置文本水印字体大小,请按照字体设置相应的大小', - 27 => 'setting_imgwater_image_watermarktext_angle', - 28 => 'TEXT watermark angle',//'文本水印显示角度', - 29 => 'Set a text rotation angle starting from 0 degrees',//'0 度为从左向右阅读文本', - 30 => 'setting_imgwater_image_watermarktext_color', - 31 => 'TEXT watermark font color',//'文本水印字体颜色', - 32 => 'Enter a color of watermark in a hexadecimal format, i.e. 99CCFF',//'输入 16 进制颜色代表文本水印字体颜色', - 33 => 'setting_imgwater_image_watermarktext_shadowx', - 34 => 'TEXT watermark horizontal shadow offset',//'文本水印阴影横向偏移量', - 35 => 'Set a horizontal offset for the shadow of a text watermark.',//'设置文本水印阴影横向偏移量,此数值不宜设置的太大', - 36 => 'setting_imgwater_image_watermarktext_shadowy', - 37 => 'TEXT watermark vertical shadow offset',//'文本水印阴影纵向偏移量', - 38 => 'Set a vertical offset for the shadow of a text watermark.',//'设置文本水印阴影纵向偏移量,此数值不宜设置的太大', - 39 => 'setting_imgwater_image_watermarktext_shadowcolor', - 40 => 'Shadow color',//'文本水印阴影颜色', - 41 => 'Enter a shadow color in a hexadecimal format, i.e. 99CCFF',//'输入 16 进制颜色代表文本水印阴影字体颜色', - 42 => 'setting_imgwater_image_watermarktext_imtranslatex', - 43 => 'TEXT watermark horizontal offset (ImageMagick)',//'文本水印横向偏移量(ImageMagick)', - 44 => 'Set the watermark horizontal offset. This settingapplies only for ImageMagick library.',//'设置水印文本输出后向屏幕中央的横向的偏移值。本设置只适用于 ImageMagick 图片处理库', - 45 => 'setting_imgwater_image_watermarktext_imtranslatey', - 46 => 'TEXT watermark vertical offset (ImageMagick)',//'文本水印纵向偏移量(ImageMagick)', - 47 => 'Set the watermark vertical offset. This settingapplies only for ImageMagick library.',//'设置水印文本输出后向屏幕中央的纵向的偏移值。本设置只适用于 ImageMagick 图片处理库', - 48 => 'setting_imgwater_image_watermarktext_imskewx', - 49 => 'TEXT watermark horizontal angle (ImageMagick)',//'文本水印横向倾斜角度(ImageMagick)', - 50 => 'Set the watermark horizontal angle. This settingapplies only for ImageMagick library.',//'设置水印文本横向的倾斜角度。本设置只适用于 ImageMagick 图片处理库', - 51 => 'setting_imgwater_image_watermarktext_imskewy', - 52 => 'TEXT watermark vertical tilt (ImageMagick)',//'文本水印纵向倾斜角度(ImageMagick)', - 53 => 'Set the watermark horizontal angle. This setting applies only for ImageMagick library.',//'设置水印文本纵向的倾斜角度。本设置只适用于 ImageMagick 图片处理库', - 54 => 'setting_imgwater_preview', - 55 => 'Preview',//'预览', - 56 => 'Please preview before the submit',//'请先提交后再预览', - ), - ), - 285 => - array ( - 'index' => - array ( - 'Search Settings' => 'action=setting&operation=search',//'搜索设置', - ), - 'text' => - array ( - 0 => 'Search Settings',//'搜索设置', - 1 => 'setting_search_status', - 2 => 'Enable search',//'开启搜索', - 3 => 'Check the sections you want to enable the search',//'勾选你要开启的搜索栏目', - 4 => 'setting_search_srchhotkeywords', - 5 => 'Popular keywords',//'热门关键词', - 6 => 'One keyword per line',//'每行一个', - 7 => 'setting_search_srchhotkeywords', - 8 => 'Popular keywords',//'热门关键词', - 9 => 'One keyword per line',//'每行一个', - 10 => 'settings_sphinx', - 11 => 'Sphinx full text search settings',//'Sphinx 全文检索设置', - 12 => 'settings_sphinx_sphinxon', - 13 => 'Enable Sphinx',//'是否开启', - 14 => 'Before to enable this setting, you have to install and configure the sphinx full-text search engine.',//'设置是否开启 Sphinx 全文检索功能,开启前确认 Sphinx 安装及配置成功', - 15 => 'settings_sphinx_sphinxhost', - 16 => 'Set the sphinx host name, or a sphinx service socket address',//'设置 Sphinx 主机名,或者 Sphinx 服务 socket 地址', - 17 => 'Enter the complete sphinx Host Name: i.e. "localhost", or fill out the sphinx service socket address as the absolute address: i.e. /tmp/sphinx.sock.',//'填写 Sphinx 主机名:例如,本地主机填写“localhost”,或者填写 Sphinx 服务 socket 地址,必须是绝对地址:例如,/tmp/sphinx.sock', - 18 => 'settings_sphinx_sphinxport', - 19 => 'Sphinx host port',//'设置 Sphinx 主机端口', - 20 => 'Enter the sphinx host port: i.e. 3312 if host name used. Leave empty if socket address used.',//'填写 Sphinx 主机端口:例如,3312,主机名填写 socket 地址的,则此处不需要设置', - 21 => 'settings_sphinx_sphinxsubindex', - 22 => 'Index name title',//'设置标题索引名', - 23 => 'Enter the title of sphinx configuration name and a title of the main index name increment. For example, "threads, threads_minute".
    Note: The index symbols must be separated by comma ",". The index must be completed in accordance with the sphinx configuration file.',//'填写 Sphinx 配置中的标题主索引名及标题增量索引名:例如,“threads,threads_mintue”。注意:多个索引使用半角逗号 "," 隔开,必须按照 Sphinx 配置文件中的索引名填写', - 24 => 'settings_sphinx_sphinxmsgindex', - 25 => 'Full-text index name',//'设置全文索引名', - 26 => 'Enter the title of sphinx configuration name and a title of the main index name increment. For example, "posts, posts_minute".
    Note: The index symbols must be separated by comma ",". The index must be completed in accordance with the sphinx configuration file.',//'填写 Sphinx 配置中的全文主索引名及全文增量索引名:例如,“posts,posts_mintue”。注意:多个索引使用半角逗号 "," 隔开,必须按照 Sphinx 配置文件中的索引名填写', - 27 => 'settings_sphinx_sphinxmaxquerytime', - 28 => 'Maximum search query time',//'设置最大搜索时间', - 29 => 'Enter a maximum search time in milliseconds. Parameter must be non-negative integer. The default value is 0, that means no restriction.',//'填写最大搜索时间,以毫秒为单位。参数必须是非负整数。默认值为 0,意思是不做限制', - 30 => 'settings_sphinx_sphinxlimit', - 31 => 'Maximum number of search results',//'设置最大返回匹配项数目', - 32 => 'Enter a maximum number of matches to return, must be non-negative integer, the default value of 10000.',//'填写最大返回匹配项数目,必须是非负整数,默认值10000', - 33 => 'settings_sphinx_sphinxrank', - 34 => 'Full-text index rank mode',//'设置全文索引评分模式', - 35 => '(1) SPH_RANK_PROXIMITY_BM, the default mode, using phrases rank and BM25 rank, and will be a combination of both. [Default] -
    (2) SPH_RANK_BM25, statistical correlation calculation mode, use only the BM25 rank calculation (full text search engine with most of the same). This mode is faster, but may contain more than the result of a query term decline in the quality. -
    (3) SPH_RANK_NONE, Disable ranking mode, which is the fastest mode. Fact that the same model as a Boolean search. All the matches are given weight 1.', - ), - ), - 286 => - array ( - 'index' => - array ( - 'UCenter settings' => 'action=setting&operation=uc',//'UCenter 设置', - ), - 'text' => - array ( - 0 => 'UCenter settings',//'UCenter 设置', - 1 => 'setting_uc_tips', - 2 => 'This setting was set automatically when the site is installed. Under normal circumstances do not required to change. Before modifying make a backup of config/config_ucenter.php file to prevent an invalid modifications that may cause the site can not run.',//'本设置在站点安装时自动生成,一般情况下请不要修改,修改前请备份 config/config_ucenter.php 文件,以防止修改错误导致站点无法运行', - 3 => 'setting_uc_appid', - 4 => 'UCenter application ID',//'UCenter 应用 ID', - 5 => 'The current site application ID registered in UCenter. Usually not required to change.',//'该值为当前站点在 UCenter 的应用 ID,一般情况请不要改动', - 6 => 'setting_uc_key', - 7 => 'UCenter communication key',//'UCenter 通信密钥', - 8 => 'UCenter communication key is for the encryption an information transfer, it can contain any letters and numbers, and be the same in UCenter an Discuz! to ensure that the two systems can normal communicate.',//'通信密钥用于在 UCenter 和 Discuz! 之间传输信息的加密,可包含任何字母及数字,请在 UCenter 与 Discuz! 设置完全相同的通讯密钥,以确保两套系统能够正常通信', - 9 => 'setting_uc_api', - 10 => 'UCenter API access address',//'UCenter 访问地址', - 11 => 'If your have changed the UCenter location, please change this setting too. Incorrect setting may cause the site misfunction, please be careful in modification.
    Format: http://www.sitename.com/uc_server (do not add the last slash)',//'如果你的 UCenter 访问地址发生了改变,请修改此项。不正确的设置可能导致站点功能异常,请小心修改。格式: http://www.sitename.com/uc_server (最后不要加\'/\')', - 12 => 'setting_uc_ip', - 13 => 'UCenter IP address',//'UCenter IP 地址', - 14 => 'If your server can not access UCenter domain name, you can enter the UCenter server IP address',//'如果你的服务器无法通过域名访问 UCenter,可以输入 UCenter 服务器的 IP 地址', - 15 => 'setting_uc_connect', - 16 => 'UCenter connection type',//'UCenter 连接方式', - 17 => 'If the Ucenter site is placed on other server, you can communicate with it by a remote way. If the UCenter is placed on the same server, we recommend you to use a database connection way, it will be more faster.',//'采用接口方式时,站点和 Ucenter 通信采用远程方式,如果你的服务器环境支持,我们推荐你使用它。数据库方式需要你站点可以连接 UCenter 数据库', - 18 => 'setting_uc_dbhost', - 19 => 'UCenter database host',//'UCenter 数据库服务器', - 20 => 'Database host may be local or remote. If a MySQL port is not default 3306, please use the following form: 127.0.0.1:6033',//'可以是本地也可以是远程数据库服务器,如果 MySQL 端口不是默认的 3306,请填写如下形式:127.0.0.1:6033', - 21 => 'setting_uc_dbuser', - 22 => 'UCenter database username',//'UCenter 数据库用户名', - 23 => 'setting_uc_dbpass', - 24 => 'UCenter database password',//'UCenter 数据库密码', - 25 => 'setting_uc_dbname', - 26 => 'UCenter database name',//'UCenter 数据库名', - 27 => 'setting_uc_dbtablepre', - 28 => 'UCenter table prefix',//'UCenter 表前缀', - 29 => 'setting_uc_activation', - 30 => 'Enable other applications to activate the site member',//'是否允许其他应用的会员在站点激活', - 31 => 'Some members can be registered by other applications, not by this site. Set "Yes" if you allow these users to access the site.',//'选择“是”,允许会员在本站点激活;选择“否”,则不允许任何第三方应用在本站点激活', - 32 => 'setting_uc_fastactivation', - 33 => 'Whether to allow the direct activation',//'是否允许直接激活', - 34 => 'Select "Yes" for enable the user login automatically activated. Select "No" for allow the user activation only after the user fill out required profile settings.',//'选择“是”,用户登录即自动激活;选择“否”,允许用户激活,但必须填写注册设置中的必填项', - 35 => 'setting_uc_avatarmethod', - 36 => 'Avatar method',//'头像调用方式', - 37 => 'Set a method to show user avatars',//'设置用户头像的调用方式', - ), - ), - 287 => - array ( - 'index' => - array ( - 'E-Commerce Settings' => 'action=setting&operation=ec',//'电子商务', - 'Basic settings' => 'action=setting&operation=ec',//'基本设置', - ), - 'text' => - array ( - 0 => 'E-Commerce » Base settings',//'电子商务 » 基本设置', - 1 => 'setting_ec_credittrade', - 2 => 'Points Exchange settings',//'积分兑换设置', - 3 => 'setting_ec_ratio', - 4 => 'Money/points exchange ratio',//'现金/积分兑换比率', - 5 => 'Set an exchange ratio between the real money cash (in USD) and intenal points. For example, if is set to 10, 1 USD can be exchanged to 10 points. This feature is required to enable sale operations with points, and an access to the related external paymet system (i.e. Alipay). Set to 0 for prohibit the use of cash and a conversion to points.',//'设置真实货币现金(以人民币元为单位)与站点交易积分间的兑换比率,例如设置为 10,则 1 元人民币可以兑换 10 个单位的交易积分。本功能需开启交易积分,并成功进行支付宝收款账号的相关设置后方可使用,如果禁止使用现金与交易积分的兑换功能,请设置为 0', - 6 => 'setting_ec_mincredits', - 7 => 'Minimal amount of credits for single purchase',//'单次购买最小积分数额', - 8 => 'Set the user minimal summ to pay in points for buy the smallest transaction. Set to 0 for no limit.',//'设置用户一次支付所购买的交易积分的最小数额,单位为交易积分的单位,0 为不限制', - 9 => 'setting_ec_maxcredits', - 10 => 'Maximal amount of credits to single purchase',//'单次购买最大积分数额', - 11 => 'Set the user maximum summ to pay in points for a single transaction. Set to 0 for no limit.',//'设置用户一次支付所购买的交易积分的最大数额,单位为交易积分的单位,0 为不限制', - 12 => 'setting_ec_maxcreditspermonth', - 13 => 'Largest amount of points to buy per month',//'每月购买最大积分数额', - 14 => 'Set a maximum summ the user can spent to pay per each month. Set to 0 for no limit.',//'设置用户每月能够通过在线支付方式购买的交易积分的最大数额,单位为交易积分的单位,0 为不限制', - ), - ), - 288 => - array ( - 'index' => - array ( - 'Performance Optimization' => 'action=setting&operation=seo',//'性能优化', - 'Memory Optimization' => 'action=setting&operation=memory',//'内存优化', - ), - 'text' => - array ( - 0 => 'Performance Optimization » Memory Optimization',//'性能优化 » 内存优化', - 1 => 'setting_memory_tips', - 2 => 'Enable the memory optimization feature will greatly enhance an application performance and the server loading. The Memory Optimization feature requires the server PHP module supports some of memory optimization interfaces like Memcache, eAccelerator, Alternative PHP Cache (APC), or Xcache. Optimization system based on the current server environment and memory optimize interface, using the main setting in the config_global.php. You can make advanced settings by editing the config_global.php.',//'启用内存优化功能将会大幅度提升程序性能和服务器的负载能力,内存优化功能需要服务器系统以及PHP扩展模块支持目前支持的内存优化接口有 Memcache、eAccelerator、Alternative PHP Cache(APC)、Xcache 四种,优化系统将会依据当前服务器环境依次选用接口内存接口的主要设置位于 config_global.php 当中,你可以通过编辑 config_global.php 进行高级设置', - 3 => 'setting_memory_status', - 4 => 'Current status of memory optimization',//'当前内存工作状态', - 5 => 'setting_memory_function', - 6 => 'Memory optimization settings',//'内存优化功能设置', - ), - ), - 289 => - array ( - 'index' => - array ( - 'Optimization' => 'action=setting&operation=seo',//'性能优化' - 'Memory cache management' => 'action=setting&operation=memorydata',//'内存缓存管理' - ), - 'text' => - array ( - 0 => 'Optimization » Memory cache management',//'性能优化 » 内存缓存管理', - 1 => 'setting_memorydata', - 2 => 'Memory cache management',//'内存缓存管理', - ), - ), - 290 => - array ( - 'index' => - array ( - 'Rank List' => 'action=setting&operation=ranklist',//'排行榜设置', - ), - 'text' => - array ( - 0 => 'Rank List',//'排行榜设置', - 1 => 'setting_ranklist_status', - 2 => 'Rank list is turned on',//'是否开启排行榜', - 3 => 'setting_ranklist_index_cache_time', - 4 => 'Top List cache time',//'排行榜首页缓存时间(单位:小时)', - 5 => 'Unit: Hours',//'单位:小时', - 6 => 'setting_ranklist_index_select', - 7 => 'Select the Rank list page leave time',//'排行榜首页排行时间类型', - 8 => 'setting_ranklist_ignorefid', - 9 => 'Ignore Forum/Group ratings',//'不参与排行的版块/群组', - 10 => 'Enter the forum ID or group ID, Corresponds forum and group threads will not appear in the list. Separate multiple ID with a comma.',//'填入版块ID或群组ID,对应版块及下面的主题将不进入排行榜,多个版块ID间请用半角逗号 "," 隔开', - 11 => 'setting_ranklist_block_set', - 12 => 'Rank List Modules detailed settings',//'排行榜详细模块设置', - 13 => 'setting_ranklist_update_cache_choose', - 14 => 'Choose the module to update cache',//'选择更新缓存模块', - ), - ), - 291 => - array ( - 'index' => - array ( - 'Mobile Access settings' => 'action=setting&operation=mobile',//'手机版访问设置', - ), - 'text' => - array ( - 0 => 'Mobile Access settings',//'手机版访问设置', - 1 => 'setting_mobile_status_tips', - 2 => 'This feature provide a convenient way to view pages from mobile devices, this feature can be used in the forum only. The phone pages supports only WAP2.0 (XHTML mode) when accessed over the mobile phone browser. For mobile browser the image thumbnail width is set to 200 pixels.',//'提供方便手机方式浏览的页面,此功能仅限论坛范围内。本手机功能页仅支持WAP2.0(XHTML方式)以上的手机浏览器进行访问。手机浏览图片宽度为200像素以内缩略图。', - 3 => 'setting_mobile_status', - 4 => 'Mobile Global Settings',//'手机版全局设置', - 5 => 'setting_mobile_allowmobile', - 6 => 'Allow Mobile',//'开启手机版', - 7 => 'When this function enabled, users accessed the forum domain name by mobile phone will be automatically redirected to the mobile phone version interface. For configure go to: Global Settings -> Domain Settings -> Application settings, and enter the domain name at the bottom of navigation: Interface -> Navigation settings - Bottom navigation.',//'开启本功能,用户使用手机访问论坛时,将自动跳转到手机版界面手机访问域名配置请进入: 全局 - 域名设置 - 应用域名底部导航设置请进入:界面 - 导航设置 - 底部导航', - 8 => 'setting_mobile_mobileforward', - 9 => 'Allow automatical redirection for phone browsers',//'开启手机浏览器自动跳转', - 10 => 'When a user visit the community forum other pages by phone browser, this function automatically redirect the the user to the Forum Index page.',//'开启后用户使用手机浏览器访问社区论坛功能页以外页面时自动跳转到论坛首页进行访问', - 11 => 'setting_mobile_register', - 12 => 'Allow Register by Mobile',//'是否允许手机版注册', - 13 => 'When the Mobile registration function is turned off, users will not be able to register by a Phone, Please use carefully.',//'是否开启手机版注册功能,手机注册不会对用户栏目中的注册页必填项进行检测请谨慎开启', - 14 => 'setting_mobile_seccode', - 15 => 'Whether to enable the verification code',//'是否开启验证码', - 16 => 'If the phone registration and login not enabled, a verification code is not used. For set the verification code go to: Global -> Anti-spam settings -> Verification code settimgs.',//'不开启则手机注册、登录、发布等操作均无验证码注册、登录、发布验证码开关:全局 - 防灌水设置 - 验证码设置', - 17 => 'setting_mobile_hotthread', - 18 => 'Show hot threads',//'是否开启热帖', - 19 => 'If enabled then hot threads displayed at the Home page',//'“触屏版”功能,开启则在首页显示热贴', - 20 => 'setting_mobile_displayorder3', - 21 => 'Show sticky threads',//'是否显示置顶贴', - 22 => 'If enabled then sticky threads displayed at the Home page',//'“触屏版”功能,在帖子列表页面中是否显示置顶贴,否为不显示', - 23 => 'setting_mobile_simpletype', - 24 => 'Mobile layout',//'手机版式', - 25 => 'The default is "Standard layout" i.e. the full-featured mobile phone layout. The "Simple Layout" means all the icons was removed from the Topic List page. Note: The two modes of emoticons are supported, and a user can freely switch between it.',//'默认为“标准版”,标准版为全功能手机版式。“无图精简版”则为去掉小图标、主题列表日期等页面元素的精简版式注意:两种模式下表情均解析,且用户可以自由切换', - 26 => 'setting_mobile_topicperpage', - 27 => 'Topics per page',//'每页显示主题数', - 28 => 'The number of topics shown at the Topic List page, recommended value is 10',//'主题列表页每页显示主题个数,推荐值为10', - 29 => 'setting_mobile_postperpage', - 30 => 'Topic Posts per page',//'主题内每页显示帖数', - 31 => 'The number of posts shown at the Topic page, recommended value is 5',//'主题内每页显示的帖子数目,推荐值为5', - 32 => 'setting_mobile_cachetime', - 33 => 'Page views cache time',//'页面浏览缓存时间', - 34 => 'Set the cache live time for page views counter. Blank or 0 for no caching, unit: seconds',//'设置访问过的页面在用户手机上保存的时间,留空或0为不缓存单位:秒', - 35 => 'setting_mobile_index_forumview', - 36 => 'Forum Home display mode',//'首页分区展示方式', - 37 => 'When is set to "Collapsed", the Forum Home will display by default only category headings, and users need to click the category to show the category subforum list.',//'如“收起”,论坛首页将默认只展示分区标题用户需点击分区展开该分区下的版块列表', - 38 => 'setting_mobile_come_from', - 39 => 'Mobile Post Source custom style',//'手机发帖来源自定义', - 40 => 'Default is blank. If you fill this out, users will see a label "from Mobile" at the post page. Add a custom text or icons such as: <a href=\'http://m.x.com\'> </a>. Supported HTML tags: <a>, <font>, <span>, <strong>, <b>, <img>. If you use icons, please ensure the image height is 16 pixels or less.',//'默认留空,如果填写,将在看帖页面"来自手机"处增加自定义文字或图标如:<a href=\'http://m.x.com\'>手机频道</a>此处支持HTML标签有:<a><font><span><strong><b><img>如果使用图标,请保证图片高度在16px(像素)以内', - 41 => 'setting_mobile_wml', - 42 => 'Enable the minimalist version',//'是否启用极简版', - 43 => 'Minimalist version supports only WML language compatible with the old devices browsers.',//'极简版为一些仅支持WML语言的较早期的设备浏览网站的内容', - ), - ), - 292 => - array ( - 'index' => - array ( - 'Share Management' => 'action=share',//'分享管理', - ), - 'text' => - array ( - 0 => 'Share Management',//'分享管理', - 1 => 'share_tips', - 2 => 'Batch management is used to remove the user shares. Warning: Click on the Delete button in the search results page will delete the information directly!',//'批量分享管理用于删除分享(share)使用。提醒:点击搜索结果页的删除按钮,将会直接删除相关信息!', - ), - ), - 293 => - array ( - 'index' => - array ( - 'Share Management' => 'action=share',//'分享管理', - 'Search' => 'action=share&search=true',//'搜索', - ), - 'text' => - array ( - 0 => 'Share Management » Search',//'分享管理 » 搜索', - 1 => 'share_search_detail', - 2 => 'Show detailed share list',//'显示详细分享列表', - 3 => 'share_search_perpage', - 4 => 'Items per page',//'每页显示数', - 5 => 'share_search_icon', - 6 => 'Share type icon',//'分享类型', - 7 => 'share_search_uid', - 8 => 'User ID',//'用户 UID', - 9 => 'Separate multiple UID with a comma ","',//'多 UID 中间请用半角逗号 "," 隔开', - 10 => 'share_search_user', - 11 => 'Share author name',//'发表分享用户名', - 12 => 'Separate multiple user names by a comma ","',//'多用户名中间请用半角逗号 "," 隔开', - 13 => 'share_search_sid', - 14 => 'Share ID',//'分享 ID', - 15 => 'Separate multiple ID with a comma ","',//'多分享 ID 中间请用半角逗号 "," 隔开', - 16 => 'share_search_hot', - 17 => 'Hot',//'热度', - 18 => 'share_search_time', - 19 => 'Post Time range',//'发表时间范围', - 20 => 'Format is yyyy-mm-dd',//'格式 yyyy-mm-dd', - ), - ), - 294 => - array ( - 'index' => - array ( - 'Smile management' => 'action=smilies',//'表情管理', - 'Smile types' => 'action=smilies',//'表情分类', - ), - 'text' => - array ( - 0 => 'Smile management » Smile types',//'表情管理 » 表情分类', - 1 => 'smilies_tips_smileytypes', - 2 => 'For export the smile type file containing the smile code information, please download it via FTP. Please do not enable of too many smile types! And sure to check the smile type name length, so the smile window can displays all the smile type names. You can set a default smile type. For delete entire smile type please delete all the smiles under it.',//'表情导出包含表情分类信息及表情代码信息,表情图片文件请通过 FTP 下载。请不要同时启用过多的表情分类,并控制好表情分类的名称长度,以免表情窗口无法完全显示所有表情分类。你可以在界面风格中设置默认显示的表情分类。删除表情分类请先删除该分类下所有表情。', - ), - ), - 295 => - array ( - 'index' => - array ( - 'Smile management' => 'action=smilies',//'表情管理', - 'Import smiles' => 'action=smilies&operation=import',//'导入表情', - ), - 'text' => - array ( - 0 => 'Smile management » Import smiles',//'表情管理 » 导入表情', - 1 => 'smilies_tips', - 2 => 'For import a smile type you need to upload appropriate image files to the static/image/smiley/your_smile_type/ directory. Supported format: "JPG, GIF, PNG". file name only numbers, letters, underscores, spaces, and half-width -.&[]() symbols. File name length can not exceed 30 bytes , otherwise it will be not recognized. Do not set too much expression, so as not to take up too much server resources.',//'添加表情请上传表情图片到相应的表情目录中(static/image/smiley/表情目录/)。表情支持"JPG、GIF、PNG"格式的图片,文件名只允许数字、26 个英文字母、下划线、半角空格及 -.&[]() 等符号,文件名长度不能超过 30 字节,否则将会无法识别。请不要设置过多的表情,以免占用过多的服务器资源。', - ), - ), - 296 => - array ( - 'index' => - array ( - 'Style Management' => 'action=styles',//'风格管理', - ), - 'text' => - array ( - 0 => 'Style Management',//'风格管理', - 1 => 'styles_admin_tips', - 2 => 'If the exported style files placed in the template directory, you can manage or install the style directly.',//'如果把导出的风格文件放置在模板目录下,则可以通过风格管理直接安装风格', - ), - ), - 297 => - array ( - 'index' => - array ( - 'Tag Management' => 'action=tag',//'标签管理', - ), - 'text' => - array ( - 0 => 'Tag Management',//'标签管理', - 1 => 'tagname', - 2 => 'Tag name',//'标签名称', - 3 => 'feed_search_perpage', - 4 => 'Items per page',//'每页显示数', - 5 => 'misc_tag_status', - 6 => 'Status',//'状态', - ), - ), - 298 => - array ( - 'index' => - array ( - 'Forum Thread Management' => 'action=threads',//'论坛主题管理', - 'Latest list' => 'action=threads',//'最新列表', - ), - 'text' => - array ( - 0 => 'Forum Thread Management » Latest list',//'论坛主题管理 » 最新列表', - 1 => 'threads_tips', - 2 => 'With the Thread batch management you can search topics for batch delete, move, move to categories, delete, Top/Untop, digest/undiges, open/close threads, and delete the thread attachments and other operations. Please search for threads based on your conditions, and then select the appropriate action.',//'通过批量主题管理,你可以对搜索到的主题进行批量删除、移动、分类/取消分类、删除、置顶/取消置顶、设置/取消精华、打开/关闭以及删除主题中的附件等操作;请先根据条件搜索主题,然后选择相应的操作。', - ), - ), - 299 => - array ( - 'index' => - array ( - 'Forum Thread Management' => 'action=threads',//'论坛主题管理', - 'Search' => 'action=threads&search=true',//'搜索', - ), - 'text' => - array ( - 0 => 'Forum Thread Management » Search',//'论坛主题管理 » 搜索', - 1 => 'threads_search_detail', - 2 => 'Show detailed list of threads',//'显示详细主题列表', - 3 => 'threads_search_perpage', - 4 => 'Items per page',//'每页显示数', - 5 => 'threads_search_time', - 6 => 'Post Time range',//'发表时间范围', - 7 => 'Format is yyyy-mm-dd. Set to 0 for no restrictions',//'格式 yyyy-mm-dd,不限制请输入 0', - 8 => 'threads_search_user', - 9 => 'Started by user',//'主题作者', - 10 => 'Separate multiple user names by a comma ","',//'多用户名中间请用半角逗号 "," 隔开', - 11 => 'threads_search_keyword', - 12 => 'Keywords',//'标题关键字', - 13 => 'Separate multiple keywords by a comma ","',//'多关键字中间请用半角逗号 "," 隔开', - 14 => 'threads_search_sort', - 15 => 'Search category info',//'所在分类信息', - 16 => 'threads_search_viewrange', - 17 => 'Views range',//'被浏览次数介于', - 18 => 'threads_search_replyrange', - 19 => 'Replies range',//'被回复次数介于', - 20 => 'threads_search_readpermmore', - 21 => 'Read permissions higher than',//'所需阅读权限高于', - 22 => 'threads_search_pricemore', - 23 => 'Price higher than',//'售价高于', - 24 => 'threads_search_noreplyday', - 25 => 'How many days of no new replies',//'多少天内无新回复', - 26 => 'threads_search_type', - 27 => 'Search in categories',//'所在主题分类', - 28 => 'threads_search_sticky', - 29 => 'Whether included sticked posts',//'是否包含置顶帖', - 30 => 'threads_search_digest', - 31 => 'Does have a digest',//'是否包含精华帖', - 32 => 'threads_search_attach', - 33 => 'Contains attachments',//'是否包含附件', - 34 => 'threads_rate', - 35 => 'Does have rating',//'是否包含评分帖', - 36 => 'threads_highlight', - 37 => 'Have highlighted threads',//'是否包含高亮帖', - 38 => 'threads_save', - 39 => 'Whether to include draft threads',//'是否包含草稿', - ), - ), - 300 => - array ( - 'index' => - array ( - 'Thread Split' => 'action=threadsplit',//'主题分表', - 'Sub-table management' => 'action=threadsplit&operation=manage',//'分表管理', - ), - 'text' => - array ( - 0 => 'Thread Split » Sub-table management',//'主题分表 » 分表管理', - 1 => 'threadsplit_manage_tips', - 2 => 'The subject of the sub-table feature is separate the forum_thread table (including the thread title, creation time and other information, but does not include the thread post and replies) into multiple tables. When a new thread archive table created, you can use the thhread moving functionality to move a thread to a specified archive table. When a thread is moved to the archive table, it is a next forum thread created in the archive area (the archive name can be customized), when browsing through the archive area it will be the archive table thread. Threads in Archive table may be only browsed, but not replied or rated or managed, but you can delete it or move to a non-archive area.',//'主题分表功能可将 forum_thread 表(包含主题标题、创建时间等信息,但不包含主题及回复内容)分在多个数据表中。创建新的主题存档表后,可使用主题移动功能将特定主题移动到存档表中。移动到存档表中的主题,会在主题所在的版块下建立一个存档区(名称可自定义),通过存档区可浏览存档表中的主题。存档表中的主题,只供浏览,不可回复、评分,不能进行管理操作,但可以删除和移动到非存档区。', - 3 => 'threadsplit_manage_table_orig', - 4 => 'Main thread table info',//'thread 主表信息', - 5 => 'threadsplit_manage_table_archive', - 6 => 'Archive thread table info',//'thread 存档表信息', - ), - ), - 301 => - array ( - 'index' => - array ( - 'Thread Split' => 'action=threadsplit',//'主题分表', - 'Move Thread' => 'action=threadsplit&operation=move',//'主题移动', - ), - 'text' => - array ( - 0 => 'Thread Split » Move Thread',//'主题分表 » 主题移动', - 1 => 'threadsplit_move_tips', - 2 => 'Thread move function is designed for move threads between the original table (forum_thread) and new thread archive table. Before move threads, make sure there is at least one thread archive table (i.e. table name forum_thread_1, forum_thread_2, etc.). Select threads you want to move using the search, and then select the target table to complete the data movement.',//'主题移动功能可将特定的主题在原始表(forum_thread)和新建的主题存档表之间移动。移动主题之前,请确定存在至少一个主题存档表(表名为 forum_thread_1、forum_thread_2……)。通过主题搜索筛选出要移动的主题,再选择目标表,即可完成主题数据的移动。', - 3 => 'threads_search_detail', - 4 => 'Show detailed list of threads',//'显示详细主题列表', - 5 => 'threads_search_sourcetable', - 6 => 'Search the following thread table',//'搜索以下 thread 分表', - 7 => 'threads_search_forum', - 8 => 'Search in Forums',//'所在版块', - 9 => 'threadsplit_move_tidrange', - 10 => 'Thread ID range',//'tid 范围', - 11 => 'threads_search_noreplyday', - 12 => 'How many days of no new replies',//'多少天内无新回复', - 13 => 'threads_search_time', - 14 => 'Post Time range',//'发表时间范围', - 15 => 'Format is yyyy-mm-dd. Set to 0 for no restrictions',//'格式 yyyy-mm-dd,不限制请输入 0', - 16 => 'threads_search_type', - 17 => 'Search in categories',//'所在主题分类', - 18 => 'threads_search_sort', - 19 => 'Search category info',//'所在分类信息', - 20 => 'threads_search_viewrange', - 21 => 'Views range',//'被浏览次数介于', - 22 => 'threads_search_replyrange', - 23 => 'Replies range',//'被回复次数介于', - 24 => 'threads_search_readpermmore', - 25 => 'Read permissions higher than',//'所需阅读权限高于', - 26 => 'threads_search_pricemore', - 27 => 'Price higher than',//'售价高于', - 28 => 'threads_search_keyword', - 29 => 'Keywords',//'标题关键字', - 30 => 'Separate multiple keywords by a comma ","',//'多关键字中间请用半角逗号 "," 隔开', - 31 => 'threads_search_user', - 32 => 'Started by user',//'主题作者', - 33 => 'Separate multiple user names by a comma ","',//'多用户名中间请用半角逗号 "," 隔开', - 34 => 'threads_search_type', - 35 => 'Search in categories',//'所在主题分类', - 36 => 'threads_search_sticky', - 37 => 'Whether included sticked posts',//'是否包含置顶帖', - 38 => 'threads_search_digest', - 39 => 'Have a digest',//'是否包含精华帖', - 40 => 'threads_search_attach', - 41 => 'Contains attachments',//'是否包含附件', - 42 => 'threads_rate', - 43 => 'Contains rating',//'是否包含评分帖', - 44 => 'threads_highlight', - 45 => 'Whether to have highlighted title',//'是否包含高亮帖', - 46 => 'threads_list', - 47 => 'Thread list',//'主题列表', - 48 => 'threadsplit_move_threads_per_time', - 49 => 'Move number of Topics per each time',//'每次移动主题数', - 50 => 'recommended not more than 1000',//'建议不超过 1000', - ), - ), - 302 => - array ( - 'index' => - array ( - 'Update cache' => 'action=tools&operation=updatecache',//'更新缓存', - ), - 'text' => - array ( - 0 => 'Update cache',//'更新缓存', - 1 => 'tools_updatecache_tips', - 2 => 'When the site data was recovered, upgraded, or some other unusual work, you can use this function to regenerate the cache. - Updating the cache may increase the server loading, so please try to avoid the peak time when many member visits. - Data cache: update all the site data cache. - Template cache: Update forum templates, styles, and cache files when you have modified a template or style, but there is no visible effect immediately. - DIY blocks cache: update the DIY blocks, used when you have installed or modified a DIY block, but did not take see a visual effect immediately. - ', - ), - ), - 303 => - array ( - 'index' => - array ( - 'User Groups' => 'action=usergroups',//'用户组', - ), - 'text' => - array ( - 0 => 'User Groups',//'用户组', - 1 => 'usergroups_tips', - 2 => 'User groups are divided into system groups, Member groups and custom groups. When Member Groups determined the group access by points, the system groups and custom groups are artificial, and will not changed by the system itself. The System groups and custom groups settings do not need to specify the points. Discuz! reserved eight system statuses from Guests to the site administrator, when for the Custom group membership users need to be edited to add. It is required at least two Member Groups. If the minimum points are negative (either equal to 0), it will cause some users will can not match the Group.',//'用户组分为系统组、会员组和自定义组,会员组以积分确定组别和权限,而系统组和自定义组是人为设定,不会由系统自行改变。系统组和自定义组的设定不需要指定积分,Discuz! 预留了从站点管理员到游客等的 8 个系统头衔,自定义组的用户需要在编辑会员时将其加入。会员用户组至少分为两组,其积分下限分别为负值(任一负数)和 0,否则将导致部分用户无法与用户组匹配的问题。', - ), - ), - 304 => - array ( - 'index' => - array ( - 'User Groups' => 'action=usergroups',//'用户组', - 'Basic settings' => 'action=usergroups&operation=edit&anchor=system',//'基本设置', - ), - 'text' => - array ( - 0 => 'User Groups » Base settings',//'用户组 » 基本设置', - 1 => 'usergroups_edit_system_public', - 2 => 'Public User Groups',//'公众用户组', - 3 => 'Set whether the user group is public. Note: Before using this feature make sure it is really necessary, otherwise the user once joined the group by himself, even after setting the group of Non-public, the user still can not be removed from the the group, unless you delete the Group. To avoid security risks, Public Groups can not be associated with Manager groups.',//'设置是否为公众用户组。注意: 使用此功能前请确定是否确实需要,否则用户一旦自行加入本组,即便之后再设置本组为非公众用户组,仍然无法将用户从该组中批量去除,除非删除本用户组。公众用户组不能关联管理组,以免产生安全隐患', - 4 => 'usergroups_edit_system_dailyprice', - 5 => 'Charged Public Groups price',//'收费公众用户组日价格', - 6 => 'If you require users to pay points before joining the user group, enter the group purchase price, and the unit used for transaction. For example, if a price is set to 2, then to purchase a 30-day group permission it is required to pay 2 * 30 = 60 points; After 30-day period the user will automatically exited from the group. If is set to 0, then this group is a free public Group. Note: This feature requires first to set the user group as public Group, and then set the purchase price to take effect.',//'如果你需要用户支付相应的交易积分后才能加入本用户组,请在此输入本组的日购买价格,单位为交易积分所使用的单位。例如设置为 2,则用户购买为期 30 天的本组权限,需要支付 2*30=60 个交易积分,30 天有效期后该用户将自动从本组中退出。如设置为 0,则本组为免费公众用户组。注意: 本功能需要首先设定用户组为公众用户组且设置了有效的交易积分后才有效', - 7 => 'usergroups_edit_system_minspan', - 8 => 'Minimum time to purchase chargeable public Groups (days)',//'收费公众用户组一次最短购买时间(天)', - 9 => 'Set the number of days at least to purchase this group permissions per one payment transaction, Set the value greater than or equal to 1. For example: If a dayly price is set to 2 and minimum time period is 10 days, so the user must pay at least 2 * 10 = 20 points to join this group and obtain an access at least for 10 days to this group. Note: For this feature to be effective it is required the user group must be a public Group.',//'设置用户在购买本组权限时,一次支付价值至少多少日的交易积分,请设置为大于等于 1 的数值。例如日价格为 2,最短购买时间为 10,则用户至少需要花费 2*10=20 个交易积分,获得至少 10 天本组权限,才能加入本组。注意: 本功能需要首先设定用户组为收费公众用户组才有效', - ), - ), - 305 => - array ( - 'index' => - array ( - 'User Groups' => 'action=usergroups',//'用户组', - 'Basic settings' => 'action=usergroups&operation=edit&anchor=basic',//'基本设置', - ), - 'text' => - array ( - 0 => 'User Groups » Base settings',//'用户组 » 基本设置', - 1 => 'usergroups_edit_basic', - 2 => 'Basic settings',//'基本设置', - 3 => 'usergroups_edit_basic_title', - 4 => 'User group title',//'用户组头衔', - 5 => 'usergroups_icon', - 6 => 'Group icon',//'组图标', - 7 => 'usergroups_edit_basic_visit', - 8 => 'Allow access to the site',//'访问站点权限', - 9 => 'Select "No" will total disable the access to any site page',//'禁止访问: 禁止用户浏览本站任何页面正常访问: 当站点开放的时候,可以正常浏览页面超级访问: 即便站点关闭也可以访问,一般用于管理员或站内测试组', - 10 => 'usergroups_edit_basic_read_access', - 11 => 'Read permissions',//'阅读权限', - 12 => 'Set user permission level for browse posts or attachments, ranging from 0 to 255. Set to 0 for prevent users from browsing any posts or attachments. When the user read permissions less than this setting (default is 1), then the user will not be able to read posts or download attachments.',//'设置用户浏览帖子或附件的权限级别,范围 0~255,0 为禁止用户浏览任何帖子或附件。当用户的阅读权限小于帖子或附件的阅读权限许可(默认时为 1)时,用户将不能阅读该帖子或下载该附件', - 13 => 'usergroups_edit_basic_max_friend_number', - 14 => 'Max number of friends',//'最多好友数', - 15 => 'Set to 0 for Unlimited',//'0为无限', - 16 => 'usergroups_edit_basic_domain_length', - 17 => 'Minimum length of the subdomain name',//'二级域名最短长度', - 18 => 'Set to 0 for disable the second level domain names. Set to more than 2 character to be effective.',//'0为禁止使用二级域名,在站点开启二级域名时有效', - 19 => 'usergroups_edit_basic_invisible', - 20 => 'Allow Stealth mode',//'允许隐身', - 21 => 'Set whether to allow user to log in without appear in the online list',//'设置是否允许用户登录后不显示在在线列表中', - 22 => 'usergroups_edit_basic_allowtransfer', - 23 => 'Allow transfer points',//'允许积分转账', - 24 => 'Set whether to allow users to transfer points to other users. Note: This function is enabled only if the global settings "Enable points transfer" enabled.',//'设置是否允许用户在个人中心将自己的交易积分转让给其他用户。注意: 本功能需在 全局设置中启用交易积分后才可使用', - 25 => 'usergroups_edit_basic_allowsendpm', - 26 => 'Allow to send private messages',//'允许发送短消息', - 27 => 'Set whether to allow users to send private messages',//'设置是否允许用户发送短消息', - 28 => 'usergroups_edit_pm_sendpmmaxnum', - 29 => 'Maximum number of PM per 24 hours',//'24小时内发布短消息最大数', - 30 => 'Set the maximum number of published short messages for the user group within 24 hours. It is effective for prevent bulk PM spamming. Set to 0 for no restriction.',//'设置该用户组用户24小时内发布短消息的最大数,有效的控制短消息发布广告的情况, 0为不限制', - 31 => 'usergroups_edit_pm_sendallpm', - 32 => 'Whether to allow to send PM to all',//'是否可以给任何人发短消息', - 33 => 'If Select No, then users can only send/accept PM to/from friends only, and will not be able to send PM to all others',//'选择否的话,当对方设置为只接受好友短消息,将无法对其发送短消息', - 34 => 'usergroups_edit_post_html', - 35 => 'Allow to use HTML code',//'允许使用 HTML 代码', - 36 => 'Note: HTML code will cause safety problems, please use with caution! Recommended to enable only in cases of extreme necessity, and enable it only to core management team.',//'注意: 开放 HTML 功能将产生安全隐患,请慎用。建议只在十分必要的情况下使用,并限制只开放给最核心的管理人员', - 37 => 'usergroups_edit_post_url', - 38 => 'Allow to publish outside URL',//'允许发站外URL', - 39 => 'Whether to allow include URL in a post. This setting can effectively reduce the amount of advertising posts.',//'是否允许发帖包含URL,合理的设置可以有效的减少广告帖的量', - 40 => 'usergroups_edit_basic_allow_statdata', - 41 => 'Allow to view the site statistics',//'允许查看站点统计', - 42 => 'usergroups_edit_basic_search_post', - 43 => 'Allow full text search',//'允许全文搜索', - 44 => 'This setting is effective only on the search forums. Note: When the volume of data is large, the full-text search would be very expensive to the server resources, so use with caution.',//'此设置只对搜索论坛有效。注意: 当数据量大时,全文搜索将非常耗费服务器资源,请慎用', - 45 => 'usergroups_edit_basic_search', - 46 => 'Allow to use search',//'允许使用搜索', - 47 => 'Select the user groups you want to enable the search for this item',//'选择你要为此用户组开启的搜索项目', - 48 => 'usergroups_edit_basic_reasonpm', - 49 => 'PM notification with a reason of action',//'操作理由短消息通知作者', - 50 => 'Enter the action reason',//'设置用户在对他人评分或管理操作时是否强制输入理由和通知作者', - 51 => 'usergroups_edit_basic_cstatus', - 52 => 'Allow Custom title',//'允许自定义头衔', - 53 => 'Set whether to allow users to set their own title and display the title in a post',//'设置是否允许用户设置自己的头衔名字并在帖子中显示', - 54 => 'usergroups_edit_basic_disable_periodctrl', - 55 => 'Silent period',//'不受时间段限制', - 56 => 'Set a period of time when new user can not post anything',//'设置用户是否可以不受全局设置中设置的特殊时间段禁令限制', - 57 => 'usergroups_edit_basic_hour_threads', - 58 => 'Threads per hour limit',//'会员每小时发主题数限制', - 59 => 'This setting allows the maximum number of published threads per hour. Used for prevent a spam by limiting the bulk postings. The range is 1...255. Set to 0 for no restrictions. This feature will slightly increase the server loading, and is not used for guests',//'设置允许会员每小时最多的发主题数量,可以配合灌水预防功能进一步限制会员的发帖,可设置为 1~255 范围内的数值,0 为不限制。此功能会轻微加重服务器负担,且对游客无效', - 60 => 'usergroups_edit_basic_hour_posts', - 61 => 'Posts per hour limit',//'会员每小时发回帖数限制', - 62 => 'Set a maximum number of posts that allowed to users to post per hour. This is usefull for restrict on irrigation or flood. Can be set to range of values 1 ~ 255, 0 for no limit. This feature will slightly increase the server loading, and not affects to guests.',//'设置允许会员每小时最多的发回帖数量,可以配合灌水预防功能进一步限制会员的发帖,可设置为 1~255 范围内的数值,0 为不限制。此功能会轻微加重服务器负担,且对游客无效', - 63 => 'usergroups_edit_basic_seccode', - 64 => 'Enable to use anti-spam verification code or security questions and answers',//'启用防灌水验证码或验证问答机制', - 65 => 'Enabling this anti-spam mechanism can prevent spam-bots activity, but will increase the operation difficulty for normal users. This setting is effective when Change Password too, if the system enable verification code or verification questions and answers.',//'开启防灌水验证机制可以防止灌水机等,但会增加用户操作易用度。修改密码不受此限制,开启防灌水验证码或验证问答后,该设置有效', - 66 => 'usergroups_edit_basic_forcesecques', - 67 => 'Mandatory set the security questions',//'强制设置安全提问', - 68 => 'If selected "Yes", then users of this user group must set the security question before the login to management panel, config for global switch.',//'选择“是”则此用户组的用户在登录后台前必须设置安全提问后才可登陆后台, config中为全局开关', - 69 => 'usergroups_edit_basic_disable_postctrl', - 70 => 'Post control restriction',//'发表不受限制', - 71 => 'Set the maximum number of post characters for prevent irrigation.',//'设置发表是否不受灌水预防和最大字数等', - 72 => 'usergroups_edit_basic_ignore_censor', - 73 => 'Ignore the censor verification',//'忽略需要审核的关键字', - 74 => 'If selected "Yes", then the users in the group will not trigger the need to review their content',//'选择“是”则此用户组的用户在发表时不会触发需要审核的关键字', - 75 => 'usergroups_edit_basic_allowcreatecollection', - 76 => 'Allowed number of collections',//'允许用户创建淘专辑的数量', - 77 => 'Set to "0" for disable collection creating',//'“0”表示不允许创建淘专辑', - 78 => 'usergroups_edit_basic_allowfollowcollection', - 79 => 'Maximum number of followed collections',//'最多允许关注淘专辑的数量', - 80 => 'Allow users to follow only this limited number of collections',//'允许用户最多关注淘专辑的数量', - 81 => 'usergroups_edit_basic_close_ad', - 82 => 'Disable advertising',//'是否关闭广告展示', - 83 => 'If selected "Yes", then this user group members will not see the site ads',//'选择“是”则此用户组的用户在站点中看不到任何广告', - ), - ), - 306 => - array ( - 'index' => - array ( - 'User Groups' => 'action=usergroups',//'用户组', - 'Special thread' => 'action=usergroups&operation=edit&anchor=special',//'特殊主题', - ), - 'text' => - array ( - 0 => 'User Groups » Special thread',//'用户组 » 特殊主题', - 1 => 'usergroups_edit_special', - 2 => 'Special thread',//'特殊主题', - 3 => 'usergroups_edit_special_activity', - 4 => 'Allow to create events',//'允许发起活动', - 5 => 'Select "Yes" for allow add new events',//'选择“是”允许在论坛发布活动主题', - 6 => 'usergroups_edit_special_poll', - 7 => 'Allow to create poll',//'允许发起投票', - 8 => 'Select "Yes" to allow add new polls',//'选择“是”允许在论坛发布投票主题', - 9 => 'usergroups_edit_special_vote', - 10 => 'Allow to vote',//'允许参与投票', - 11 => 'Select "Yes" to allow vote the Forum polls',//'选择“是”允许在论坛参与投票', - 12 => 'usergroups_edit_special_reward', - 13 => 'Allow to create reward',//'允许发起悬赏', - 14 => 'Select "Yes" for allow add new rewards',//'选择“是”允许在论坛发布悬赏主题,悬赏使用交易积分', - 15 => 'usergroups_edit_special_reward_min', - 16 => 'Minimum reward points',//'最小悬赏积分', - 17 => 'Set minimal reward points for each reward (minimum is 1)',//'每笔悬赏最少悬赏积分(最小设置为 1)', - 18 => 'usergroups_edit_special_reward_max', - 19 => 'Maximum reward points',//'最大悬赏积分', - 20 => 'Set maximal reward points for each reward (maximum is 32767, set to 0 for no limits)',//'每笔悬赏最多悬赏的积分,最大可设置为 65535 (不限制请输入 0)', - 21 => 'usergroups_edit_special_trade', - 22 => 'Allow to sale products',//'允许发布商品', - 23 => 'Select "Yes" to allow users to publish the forum thread for sale products',//'选择“是”允许在论坛发布商品主题', - 24 => 'usergroups_edit_special_trade_min', - 25 => 'Minimum transaction amount',//'最小交易金额', - 26 => 'Set the minimum transaction amount per trade (unit: USD or points, the minimal value is 1 per transaction)',//'每笔交易的最小交易金额(单位:人民币元或积分单位,最小交易金额为 1 元)', - 27 => 'usergroups_edit_special_trade_max', - 28 => 'Maximum transaction amount',//'最大交易金额', - 29 => 'Set the maximum transaction amount per trade (unit: USD or points, Set to 0 for no limit)',//'设置每笔交易所能设置的最大交易金额(单位:人民币元或积分单位,不限制请输入 0)', - 30 => 'usergroups_edit_special_trade_stick', - 31 => 'Maximum number of recommended products',//'商品主题最多推荐商品数', - 32 => 'Set a number of recommended products at user home',//'设置用户在每篇商品主题中最多推荐商品的数目', - 33 => 'usergroups_edit_special_debate', - 34 => 'Allow to create debate',//'允许发起辩论', - 35 => 'Select "Yes" for allow add new debate',//'选择“是”允许在论坛发布辩论主题', - 36 => 'usergroups_edit_special_rushreply', - 37 => 'Protect quoted replies',//'允许发表抢楼帖', - 38 => 'Does not allow users to delete quoted replies',//'抢楼帖不允许用户删除回帖', - 39 => 'usergroups_edit_special_allowthreadplugin', - 40 => 'Allow use plugins in special thread',//'允许发布扩展特殊主题', - 41 => 'Set whether to allow use plugins in special thread',//'设置是否允许发表扩展的特殊主题', - ), - ), - 307 => - array ( - 'index' => - array ( - 'User Groups' => 'action=usergroups',//'用户组', - 'Post permissions' => 'action=usergroups&operation=edit&anchor=post',//'帖子相关', - ), - 'text' => - array ( - 0 => 'User Groups » Post permissions',//'用户组 » 帖子相关', - 1 => 'usergroups_edit_post', - 2 => 'Post permissions',//'帖子相关', - 3 => 'usergroups_edit_post_new', - 4 => 'Allow to create new thread',//'允许发新话题', - 5 => 'Set whether to allow create a new thread. Note: user can create a new thread only when the user group READ permissions is higher than 0.',//'设置是否允许发新话题。注意: 只有当用户组阅读权限高于 0 时,才能发新话题', - 6 => 'usergroups_edit_post_reply', - 7 => 'Allow to reply a thread',//'允许发表回复', - 8 => 'Set whether to allow users to reply. Note: user can publis a reply only when the user group READ permissions is higher than 0.',//'设置是否允许发表回复。注意: 只有当用户组阅读权限高于 0 时,才能发表回复', - 9 => 'usergroups_edit_post_direct', - 10 => 'Allow direct posting',//'允许直接发帖', - 11 => 'Whether to allow publish thread or reply directly or require a verification. This setting has no effect if the Forum does not require verification.',//'是否允许直接发帖或者对回复及主题进行审核,此设置受版块审核影响,如果版块设置为不需要审核,则此设置无效', - 12 => 'usergroups_edit_post_allow_down_remote_img', - 13 => 'Allow to download remote images',//'允许下载远程图片', - 14 => 'Save remote images as local files',//'远程图片本地化保存', - 15 => 'usergroups_edit_post_anonymous', - 16 => 'Allow anonymous postings',//'允许发匿名帖', - 17 => 'Whether to allow users to reply and create thread in anonymous mode, if it is enabled in user group or the forum settings. Anonymous posting is different from guest posting, users need to log in before use this, and moderators and administrators can view the real author.',//'是否允许用户匿名发表主题和回复,只要用户组或本论坛允许,用户均可使用匿名发帖功能。匿名发帖不同于游客发帖,用户需要登录后才可使用,版主和管理员可以查看真实作者', - 18 => 'usergroups_edit_post_set_read_perm', - 19 => 'Allow to set post permissions',//'允许设置帖子权限', - 20 => 'This setting allow users to specify a post read permissions',//'设置是否允许设置帖子需要指定阅读权限才可浏览', - 21 => 'usergroups_edit_post_maxprice', - 22 => 'Thread (Attachment) highest price',//'主题(附件)最高售价', - 23 => 'Thread or Attachment can be chargeable. This means the thread content or attachment will be hidden until the user pay for view the thread or attachment. Set here the maximum price allowed for seller. Set to 0 for disable sell. Note: This function take effect only if the global trading points settings enabled. If you want to enable moderators and administrators to edit charged threads (Attachment), set the maximum price higher than for ordinary user groups, so that after editing the post price will not be cutted.',//'主题(附件)出售使得作者可以将自己发表的主题(附件)隐藏起来,只有当浏览者向作者支付相应的交易积分后才能查看主题(附件)内容。此处设置用户出售主题(附件)时允许设置的最高价格,0 为不允许用户出售。注意: 本功能需在 全局设置中启用交易积分后才可使用。如开启版主及管理员的出售主题(附件)功能,请将其最高价格设置为高于普通用户组允许的最高价格,这样在帖子被编辑时不至于导致主题(附件)售价的硬性下调', - 24 => 'usergroups_edit_post_hide_code', - 25 => 'Allow to use [hide] tag',//'允许使用 [hide] 代码', - 26 => 'Set whether to allow to use [hide] tag in a post',//'设置是否允许帖子中使用 [hide] 隐藏标签', - 27 => 'usergroups_edit_post_mediacode', - 28 => 'Allow [audio], [media], [flash] and other multimedia',//'允许使用 [audio] [media] [flash] 等多媒体代码', - 29 => 'Set whether to allow to use the [audio], [media], [flash] and other multimedia tags',//'设置是否允许 [audio] [media] [flash] 等多媒体代码', - 30 => 'usergroups_edit_post_begincode', - 31 => 'Allow to use the [begin] code',//'允许使用 [begin] 代码', - 32 => 'Set whether to allow to use the [begin] tag code in a post for starting animation',//'设置是否允许帖子中使用 [begin] 开头动画标签', - 33 => 'usergroups_edit_post_sig_bbcode', - 34 => 'Allow BB-Codes in signature',//'允许签名中使用 Discuz! 代码', - 35 => 'Whether to allow users to use BB-Codes in their signature',//'设置是否解析用户签名中的 Discuz! 代码', - 36 => 'usergroups_edit_post_sig_img_code', - 37 => 'Allow [img] BB-Code in signature',//'允许签名中使用 [img] 代码', - 38 => 'Whether to allow users to use [img] Code in their signature',//'设置是否解析用户签名中的 [img] 代码', - 39 => 'usergroups_edit_post_max_sig_size', - 40 => 'Maximum signature length',//'签名文字最大长度', - 41 => 'Set the maximum number of characters in a user signature, Set to 0 for disable signature',//'设置用户签名最大字节数,0 为不允许用户使用签名', - 42 => 'usergroups_edit_post_recommend', - 43 => 'Allow to recomend thread',//'主题评价影响值', - 44 => 'Set how many times a user can recommend a theme. The thread rating is a number of user recommendations. Set to 0 for disable users to recommend threads.',//'设置用户评价一次主题,对主题评价指数的影响,0 为不允许用户评价主题', - 45 => 'usergroups_edit_post_edit_time_limit', - 46 => 'Edit Post time limit (minutes)',//'编辑帖子时间限制(分钟)', - 47 => 'Set a time period after posting, when a user can edit the post content. Moderators and administrators can edit posts at any time. Set to 0 for no limit.',//'帖子作者发帖后超过此时间限制将不能再编辑帖,版主和管理员在 全局 - 用户权限 选择“允许用户随时编辑的帖子类型”后不受此限制,0 为不限制', - 48 => 'usergroups_edit_post_allowreplycredit', - 49 => 'Allow to set the Replies award',//'允许设置回帖奖励', - 50 => 'Allow users to publish certain topics where given Replies can reward points. Replies award points available in the Global by default - set the specified points',//'允许用户在发布主题时给予回帖者一定的扩展积分奖励。回帖奖励默认积分可在全局 - 积分设置指定', - 51 => 'usergroups_edit_post_tag', - 52 => 'Allow to use tags',//'允许使用标签', - 53 => 'Set whether to allow to use tags when publish new thread',//'设置是否允许发表新话题时使用标签', - 54 => 'usergroups_edit_post_allowcommentpost', - 55 => 'Allow to Comment',//'帖子直接点评', - 56 => 'Set whether to allow users to comment posts. Note: this setting take effect only if the global settings allows post comments.',//'设置允许点评的范围,如不选择表示不启用点评功能注意:只有在 全局 - 站点功能 - 帖子点评 中开启直接点评功能,本设置才会生效', - 57 => 'usergroups_edit_post_allowcommentreply', - 58 => 'Allow Owner to comment replies',//'楼层回复点评', - 59 => 'Allow user to post reply to other replies by clicking the "Reply" link, automatically generate the Comments position. Note: the setting takes effect Only if the Global - Site features - Post floor Comment reply feature enabled. Click on the thread "Reply" link will not produce the thread Comments.',//'允许用户通过点击帖子中的“回复”链接回复他人回帖时,自动对该楼层产生点评注意:只有在 全局 - 站点功能 - 帖子点评 中开启楼层回复功能,本设置才会生效;点击主题中的“回复”链接,不会对主题产生点评', - 60 => 'usergroups_edit_post_allowcommentitem', - 61 => 'Allow view published comments',//'允许用户在点评时发表观点', - 62 => 'Whether to allow users to view their comments. Note: the setting take effect only if the global setting is set to enable view post comment after posting.',//'允许用户在点评时发表观点注意:只有在 全局 - 站点功能 - 帖子点评 中开启直接点评功能,本设置才会生效', - 63 => 'usergroups_edit_post_allowat', - 64 => 'Number of @name used',//'发帖时可 @ 其他人的数量', - 65 => 'Set to 0 for disable using of @name (including the followings and friends)',//'0为不允许 @ 其他人(包括他关注的人和他的好友)', - 66 => 'usergroups_edit_post_allowsetpublishdate', - 67 => 'Allow to set the publish time',//'允许设置预发帖时间', - 68 => 'Allow users to set the specified post time when publishing of thread. It can be set only in every half hour (such as 13:00 or 13:30) for automatically published.',//'允许用户在发布主题时设置指定的发帖时间。只能设置在每半小时(如 13:00 或 13:30)自动发布。', - 69 => 'usergroups_edit_post_allowcommentcollection', - 70 => 'Allow collection comments',//'允许评论淘专辑', - 71 => 'Allow users to comment threads in collections.',//'允许用户在主题和淘专辑页面进行评论。', - 72 => 'usergroups_edit_post_allowimgcontent', - 73 => 'Allow to generate image of the thread content',//'允许主题内容生成图片', - 74 => 'This function allows to generate and show an image of the textual thread content.',//'看帖时所有帖子正文内容将以字符形式生成图片展示。', - ), - ), - 308 => - array ( - 'index' => - array ( - 'User Groups' => 'action=usergroups',//'用户组', - 'Attachment permissions' => 'action=usergroups&operation=edit&anchor=attach',//'附件相关', - ), - 'text' => - array ( - 0 => 'User Groups » Attachment permissions',//'用户组 » 附件相关', - 1 => 'usergroups_edit_attach', - 2 => 'Attachment permissions',//'附件相关', - 3 => 'usergroups_edit_attach_get', - 4 => 'Allow to download/view attachments',//'允许下载附件', - 5 => 'Whether to allow users to download/view attachments',//'设置是否允许在没有设置特殊权限的论坛中下载附件', - 6 => 'usergroups_edit_attach_getimage', - 7 => 'Allow to view images',//'允许查看图片', - 8 => 'Set whether to allow to view pictures in a forum without special permissions',//'设置是否允许在没有设置特殊权限的论坛中查看图片', - 9 => 'usergroups_edit_attach_post', - 10 => 'Allow to upload attachments',//'允许上传附件', - 11 => 'Whether to allow users to upload attachments. Refer to the Management Center for check if upload is enabled in PHP.',//'设置是否允许上传附件到没有设置特殊权限的论坛中。需要 PHP 设置允许才有效,请参考管理中心首页', - 12 => 'usergroups_edit_attach_set_perm', - 13 => 'Allow to set attachment permissions',//'允许设置附件权限', - 14 => 'Whether to allow users to set permissions for download attachment',//'设置是否允许设置附件需要指定积分以上才可下载', - 15 => 'usergroups_edit_image_post', - 16 => 'Allow to upload images',//'允许上传图片', - 17 => 'Whether to allow users to upload images. Refer to the Management Center for check if upload is enabled in PHP.',//'设置是否允许上传图片到没有设置特殊权限的论坛中。需要 PHP 设置允许才有效,请参考管理中心首页', - 18 => 'usergroups_edit_attach_max_size', - 19 => 'Maximum attachment size (Kb)',//'论坛最大附件尺寸(单位K 1M=1024K)', - 20 => 'Set the maximum attachment size (in Kb, 1Mb = 1024Kb). Set to 0 for not limit. Refer to the Management Center for check PHP enabled upload size.',//'设置附件最大尺寸(单位K 1M=1024K),0 为不限制,需要 PHP 设置允许才有效,请参考管理中心首页', - 21 => 'usergroups_edit_attach_max_size_per_day', - 22 => 'Daily maximum attachment size (Kb)',//'每天最大附件总尺寸(单位K 1M=1024K)', - 23 => 'Set the total attachments volume (in Kb), that users can upload every 24 hours. Set to 0 for no limit. Note: This feature will add the server loading, it is recommended to use only when necessary.',//'设置用户每天可以上传的附件总量(单位K 1M=1024K),0 为不限制', - 24 => 'usergroups_edit_attach_max_number_per_day', - 25 => 'Max number of attachments per day',//'每天最大附件数量', - 26 => 'Set the number of attachments, that users may upload every 24 hours. Set to 0 for no limit.',//'设置用户每天可以上传的附件数量,0 为不限制', - 27 => 'usergroups_edit_attach_ext', - 28 => 'Enabled attachment types',//'允许附件类型', - 29 => 'Set enabled attachments extensions, separate multiple extensions with a comma ",". Leave blank for not limit.',//'设置允许上传的附件扩展名,多个扩展名之间用半角逗号 "," 隔开,留空为不限制', - ), - ), - 309 => - array ( - 'index' => - array ( - 'User Groups' => 'action=usergroups',//'用户组', - 'Magic related' => 'action=usergroups&operation=edit&anchor=magic',//'道具相关', - ), - 'text' => - array ( - 0 => 'User Groups » Magic related',//'用户组 » 道具相关', - 1 => 'usergroups_edit_magic', - 2 => 'Magic related',//'道具相关', - 3 => 'usergroups_edit_magic_permission', - 4 => 'Allow to use magic',//'允许使用道具', - 5 => 'Permit the use of magic, including the sale and present permissions',//'是否允许使用道具,包括买卖、赠送的权限', - 6 => 'usergroups_edit_magic_discount', - 7 => 'Buy magic discount',//'购买道具折扣', - 8 => 'Set a buy magic discount value, range from 1 to 9. The smaller value will give less discount. Set to 0 for no discount.',//'购买道具的折扣值,范围 1~9 数值越小折扣越多,0 为不享受折扣', - 9 => 'usergroups_edit_magic_max', - 10 => 'Magic package capacity',//'道具包容量', - 11 => 'Set a maximum weight of magic for this user group, range from 0 to 60000.',//'本组用户带有道具的最大重量,范围 0~60000', - ), - ), - 310 => - array ( - 'index' => - array ( - 'User Groups' => 'action=usergroups',//'用户组', - 'Registration related' => 'action=usergroups&operation=edit&anchor=invite',//'注册相关', - ), - 'text' => - array ( - 0 => 'User Groups » Registration related',//'用户组 » 注册相关', - 1 => 'usergroups_edit_invite', - 2 => 'Registration related',//'注册相关', - 3 => 'usergroups_edit_invite_permission', - 4 => 'Allow to purchase an invitation code',//'允许购买邀请码', - 5 => 'Whether to allow users to buy invitation code',//'是否允许购买邀请码的权限', - 6 => 'usergroups_edit_invite_send_permission', - 7 => 'Allow to send invitation for Registration',//'允许发送邀请注册', - 8 => 'Whether to allow sending an invitation code by the site mail system',//'是否允许通过站点邮件系统发送邀请码', - 9 => 'usergroups_edit_invite_price', - 10 => 'Invitation code price',//'邀请码购买价格', - 11 => 'Set a price of invitation code, the user group members to buy',//'该用户组的会员购买邀请码的价格', - 12 => 'usergroups_edit_invite_buynum', - 13 => 'The maximum number of invitation codes can be purchased within 24 hours',//'24小时内购买邀请码最大数量', - 14 => 'The invitation code maximum number, the user group members can buy in 24 hours, more than this amount will not be able to buy',//'该用户组24小时内购买邀请码的最大数量,超过此数量将不能购买新的邀请码', - 15 => 'usergroups_edit_invite_maxinviteday', - 16 => 'Invitation code valid time',//'邀请码有效期', - 17 => 'The maximum period of days, the user group memberscan use the purchased invitation code. After this period the invitation code will automatically expired. Default is 10.',//'该用户组购买邀请码的最大有效期,超过此有效期验证码将自动失效,单位为天,默认为10', - ), - ), - 311 => - array ( - 'index' => - array ( - 'User Groups' => 'action=usergroups',//'用户组', - 'PM related' => 'action=usergroups&operation=edit&anchor=credir',//'消息相关', - ), - 'text' => - array ( - 0 => 'User Groups » Points related',//'用户组 » 积分相关', - 1 => 'usergroups_edit_credit', - 2 => 'Points related',//'积分相关', - 3 => 'usergroups_edit_credit_exempt_sendpm', - 4 => 'Not decrease points for Send PM',//'发短消息不扣积分', - 5 => 'usergroups_edit_credit_exempt_search', - 6 => 'Not decrease points for Search',//'搜索不扣积分', - 7 => 'usergroups_edit_credit_exempt_getattch', - 8 => 'Not decrease points for download attachments',//'下载附件不扣积分', - 9 => 'usergroups_edit_credit_exempt_attachpay', - 10 => 'Direct download attachment fee',//'可直接下载收费附件', - 11 => 'usergroups_edit_credit_exempt_threadpay', - 12 => 'Direct thread view fee',//'可直接查看收费主题', - 13 => 'usergroups_edit_credit_allowrate', - 14 => 'Allow to rate members',//'允许参与评分', - ), - ), - 312 => - array ( - 'index' => - array ( - 'User Groups' => 'action=usergroups',//'用户组', - 'Space related' => 'action=usergroups&operation=edit&anchor=home',//'空间相关', - ), - 'text' => - array ( - 0 => 'User Groups » ',//'用户组 » 空间相关', - 1 => 'usergroups_edit_home', - 2 => 'Space related',//'空间相关', - 3 => 'usergroups_edit_attach_max_space_size', - 4 => 'Space size (Mb)',//'空间大小(单位M)', - 5 => 'Set the maximum space size (Mb), 0 for not limit',//'设置最大空间尺寸(单位M),0 为不限制', - 6 => 'usergroups_edit_home_allow_blog', - 7 => 'Allow Publish blog',//'发表日志', - 8 => 'usergroups_edit_home_allow_blog_mod', - 9 => 'Published blogs must be verified',//'发表日志需要审核', - 10 => 'usergroups_edit_home_allow_doing', - 11 => 'Allow Write Doing',//'发表记录', - 12 => 'usergroups_edit_home_allow_doing_mod', - 13 => 'Published doings must be verified',//'发表记录需要审核', - 14 => 'usergroups_edit_home_allow_upload', - 15 => 'Allow Upload image',//'上传图片', - 16 => 'usergroups_edit_home_allow_upload_mod', - 17 => 'Uploaded images must be verified',//'上传图片需要审核', - 18 => 'usergroups_edit_home_image_max_size', - 19 => 'Album single image maximum size (in K, 1M = 1024K)',//'相册单张图片最大尺寸(单位K 1M=1024K)', - 20 => 'Set the maximum size of a single album image (in K, 1M = 1024K), Set to 0 for not limit. Required to set the allowed by PHP value, please refer to Management Center Home',//'设置相册单张图片最大尺寸(单位K 1M=1024K),0 为不限制,需要 PHP 设置允许才有效,请参考管理中心首页', - 21 => 'usergroups_edit_home_allow_share', - 22 => 'Allow to Share',//'发布分享', - 23 => 'usergroups_edit_home_allow_share_mod', - 24 => 'Published shares must be verified',//'发布分享需要审核', - 25 => 'usergroups_edit_home_allow_poke', - 26 => 'Allow to Send Greeting',//'允许打招呼', - 27 => 'usergroups_edit_home_allow_friend', - 28 => 'Allow to Add friend',//'允许加好友', - 29 => 'usergroups_edit_home_allow_click', - 30 => 'Allow to Rate',//'允许表态', - 31 => 'usergroups_edit_home_allow_comment', - 32 => 'Allow to Comment',//'发表留言/评论', - 33 => 'usergroups_edit_home_allow_myop', - 34 => 'Allow to Use Apps',//'允许使用漫游(Manyou)应用', - 35 => 'usergroups_edit_home_allow_video_photo_ignore', - 36 => 'Ignore restrictions of video certification',//'不受视频认证限制', - 37 => 'usergroups_edit_home_allow_view_video_photo', - 38 => 'Allow to view of video certified photo',//'允许查看视频认证', - 39 => 'usergroups_edit_home_allow_space_diy_html', - 40 => 'Allow to use HTML in layout module',//'允许自定义模块使用 HTML', - 41 => 'Note: HTML code will cause safety problems, please use with caution! Recommended to enable only in cases of extreme necessity, and enable it only to core management team.',//'注意: 开放 HTML 功能将产生安全隐患,请慎用。建议只在十分必要的情况下使用,并限制只开放给最核心的管理人员', - 42 => 'usergroups_edit_home_allow_space_diy_bbcode', - 43 => 'Allow to use BBCode in layout module',//'允许自定义模块使用 BBCODE', - 44 => 'Whether to enable use of BBCODE in layout module for personal home style set',//'设置是否解析个人主页自定义模块中的 BBCODE 代码', - 45 => 'usergroups_edit_home_allow_space_diy_imgcode', - 46 => 'Allow to use [img] code in layout module',//'允许自定义模块使用 [img]', - 47 => 'Whether to enable use of [img] code in layout module for personal home style set',//'设置是否解析个人主页自定义模块中的 [img] 代码', - ), - ), - 313 => - array ( - 'index' => - array ( - 'User Groups' => 'action=usergroups',//'用户组', - 'Groups related' => 'action=usergroups&operation=edit&anchor=group',//'群组相关', - ), - 'text' => - array ( - 0 => 'User Groups » Groups related',//'用户组 » 群组相关', - 1 => 'usergroups_edit_group', - 2 => 'Groups related',//'群组相关', - 3 => 'usergroups_edit_group_build', - 4 => 'Allowed number of groups to create',//'允许建立群组的数量', - 5 => 'Range is 1-255, set to 0 for disable create a group',//'范围1-255,0为不允许建立群组', - 6 => 'usergroups_edit_group_buildcredits', - 7 => 'Need credits for Create group',//'创建群组消耗积分', - 8 => 'How many credits required for Creating a group. Set to 0 for do not require credits',//'创建群组需要消耗和积分数量,0为不需要积分', - 9 => 'usergroups_edit_post_direct_group', - 10 => 'Allow direct posting',//'允许直接发帖', - 11 => 'usergroups_edit_post_url_group', - 12 => 'Whether to allow to post external URLs',//'允许发站外URL', - ), - ), - 314 => - array ( - 'index' => - array ( - 'User Groups' => 'action=usergroups',//'用户组', - 'Portal related' => 'action=usergroups&operation=edit&anchor=portal',//'门户相关', - ), - 'text' => - array ( - 0 => 'User Groups » Portal related',//'用户组 » 门户相关', - 1 => 'usergroups_edit_portal', - 2 => 'Portal related',//'门户相关', - 3 => 'usergroups_edit_portal_allow_comment_article', - 4 => 'Number of words in a comment',//'文章评论字数', - 5 => 'Set the user group comment word limit published an article. Set to 0 for disable comments for this user level.',//'设置此用户组发表文章评论字数限制,设置为0将禁止此用户级发表评论', - 6 => 'usergroups_edit_portal_allow_post_article', - 7 => 'Allow to Publish article',//'发布文章', - 8 => 'usergroups_edit_portal_allow_down_local_img', - 9 => 'Allow to download local images',//'允许下载本地图片', - 10 => 'Download a remote image and allow to regenerate a local image',//'下载远程图片的同时允许重新生成一份本地图片', - 11 => 'usergroups_edit_portal_allow_post_article_moderate', - 12 => 'Published articles must be verified',//'发布文章需要审核', - ), - ), - 315 => - array ( - 'index' => - array ( - 'User Tags' => 'action=usertag',//'用户标签' - ), - 'text' => - array ( - 0 => 'User Tags',//'用户标签' - 1 => 'usertag_add_tips', - 2 => 'Enable users to add multiple tags. If a user list is empty, is a batch add of user tags If the tags and list of user has input. Explain to the specified user bulk attach tags',//'可以给线下活动的用户批量贴标签当只填写了标签,用户列表为空时,是批量添加用户标签如果标签和用户列表都有输入,说明是给指定用户批量贴标签', - 3 => 'usertag_add_tags', - 4 => 'Tags',//'标签', - 5 => 'You can enter multiple tags, separate multiple tags with a space or comma',//'可以输入多个标签,多个标签可以用空格、逗号 分隔', - 6 => 'usertag_add_usernames', - 7 => 'User List',//'用户列表', - 8 => 'You can enter multiple users, one user name per line',//'可以输入多个用户,每行输入一个用户名', - ), - ), +$lang = array ( + 0 => + array ( + 'index' => + array ( + 'Admin Center' => 'action=index', + ), + 'text' => + array ( + 0 => 'Admin Center', + ), + ), + 1 => + array ( + 'index' => + array ( + 'Custom Menu' => 'action=misc&operation=custommenu', + ), + 'text' => + array ( + 0 => 'Custom Menu', + ), + ), + 2 => + array ( + 'index' => + array ( + 'Base Settings' => 'action=setting&operation=basic', + ), + 'text' => + array ( + 0 => 'Base Settings', + ), + ), + 3 => + array ( + 'index' => + array ( + 'Register/Access' => 'action=setting&operation=access', + ), + 'text' => + array ( + 0 => 'Register/Access', + ), + ), + 4 => + array ( + 'index' => + array ( + 'Site modules' => 'action=setting&operation=functions', + ), + 'text' => + array ( + 0 => 'Site modules', + ), + ), + 5 => + array ( + 'index' => + array ( + 'Optimization' => 'action=setting&operation=cachethread', + ), + 'text' => + array ( + 0 => 'Optimization', + ), + ), + 6 => + array ( + 'index' => + array ( + 'SEO' => 'action=setting&operation=seo', + ), + 'text' => + array ( + 0 => 'SEO', + ), + ), + 7 => + array ( + 'index' => + array ( + 'Domains' => 'action=domain', + ), + 'text' => + array ( + 0 => 'Domains', + ), + ), + 8 => + array ( + 'index' => + array ( + 'Follows' => 'action=setting&operation=follow', + ), + 'text' => + array ( + 0 => 'Follows', + ), + ), + 9 => + array ( + 'index' => + array ( + 'Space settings' => 'action=setting&operation=home', + ), + 'text' => + array ( + 0 => 'Space settings', + ), + ), + 10 => + array ( + 'index' => + array ( + 'User Permissions' => 'action=setting&operation=permissions', + ), + 'text' => + array ( + 0 => 'User Permissions', + ), + ), + 11 => + array ( + 'index' => + array ( + 'Credits' => 'action=setting&operation=credits', + ), + 'text' => + array ( + 0 => 'Credits', + ), + ), + 12 => + array ( + 'index' => + array ( + 'Date/Time' => 'action=setting&operation=datetime', + ), + 'text' => + array ( + 0 => 'Date/Time', + ), + ), + 13 => + array ( + 'index' => + array ( + 'Attachments' => 'action=setting&operation=attach', + ), + 'text' => + array ( + 0 => 'Attachments', + ), + ), + 14 => + array ( + 'index' => + array ( + 'Watermark' => 'action=setting&operation=imgwater', + ), + 'text' => + array ( + 0 => 'Watermark', + ), + ), + 15 => + array ( + 'index' => + array ( + 'Attachment size' => 'action=misc&operation=attachtype', + ), + 'text' => + array ( + 0 => 'Attachment size', + ), + ), + 16 => + array ( + 'index' => + array ( + 'Search Settings' => 'action=setting&operation=search', + ), + 'text' => + array ( + 0 => 'Search Settings', + ), + ), + 17 => + array ( + 'index' => + array ( + 'Regions' => 'action=district', + ), + 'text' => + array ( + 0 => 'Regions', + ), + ), + 18 => + array ( + 'index' => + array ( + 'Rank List' => 'action=setting&operation=ranklist', + ), + 'text' => + array ( + 0 => 'Rank List', + ), + ), + 19 => + array ( + 'index' => + array ( + 'Mobile Access' => 'action=setting&operation=mobile', + ), + 'text' => + array ( + 0 => 'Mobile Access', + ), + ), + 20 => + array ( + 'index' => + array ( + 'Anti-capture settings' => 'action=setting&operation=antitheft', + ), + 'text' => + array ( + 0 => 'Anti-capture settings', + ), + ), + 21 => + array ( + 'index' => + array ( + 'Languages' => 'action=setting&operation=language', + ), + 'text' => + array ( + 0 => 'Languages', + ), + ), + 22 => + array ( + 'index' => + array ( + 'Navigation' => 'action=nav', + ), + 'text' => + array ( + 0 => 'Navigation', + ), + ), + 23 => + array ( + 'index' => + array ( + 'Styles' => 'action=setting&operation=styles', + ), + 'text' => + array ( + 0 => 'Styles', + ), + ), + 24 => + array ( + 'index' => + array ( + 'Smiles' => 'action=smilies', + ), + 'text' => + array ( + 0 => 'Smiles', + ), + ), + 25 => + array ( + 'index' => + array ( + 'Ratings' => 'action=click', + ), + 'text' => + array ( + 0 => 'Ratings', + ), + ), + 26 => + array ( + 'index' => + array ( + 'Thread stamps' => 'action=misc&operation=stamp', + ), + 'text' => + array ( + 0 => 'Thread stamps', + ), + ), + 27 => + array ( + 'index' => + array ( + 'Editor Settings' => 'action=setting&operation=editor', + ), + 'text' => + array ( + 0 => 'Editor Settings', + ), + ), + 28 => + array ( + 'index' => + array ( + 'Online icons' => 'action=misc&operation=onlinelist', + ), + 'text' => + array ( + 0 => 'Online icons', + ), + ), + 29 => + array ( + 'index' => + array ( + 'Posts Moderation' => 'action=moderate', + ), + 'text' => + array ( + 0 => 'Posts Moderation', + ), + ), + 30 => + array ( + 'index' => + array ( + 'Content moderation' => 'action=remoderate', + ), + 'text' => + array ( + 0 => 'Content moderation', + ), + ), + 31 => + array ( + 'index' => + array ( + 'Bad Word Filter' => 'action=misc&operation=censor', + ), + 'text' => + array ( + 0 => 'Bad Word Filter', + ), + ), + 32 => + array ( + 'index' => + array ( + 'User Reports' => 'action=report', + ), + 'text' => + array ( + 0 => 'User Reports', + ), + ), + 33 => + array ( + 'index' => + array ( + 'Tags' => 'action=tag', + ), + 'text' => + array ( + 0 => 'Tags', + ), + ), + 34 => + array ( + 'index' => + array ( + 'Collections' => 'action=collection', + ), + 'text' => + array ( + 0 => 'Collections', + ), + ), + 35 => + array ( + 'index' => + array ( + 'Thread Management' => 'action=threads', + ), + 'text' => + array ( + 0 => 'Thread Management', + ), + ), + 36 => + array ( + 'index' => + array ( + 'Bulk post delete' => 'action=prune', + ), + 'text' => + array ( + 0 => 'Bulk post delete', + ), + ), + 37 => + array ( + 'index' => + array ( + 'Attachment Management' => 'action=attach', + ), + 'text' => + array ( + 0 => 'Attachment Management', + ), + ), + 38 => + array ( + 'index' => + array ( + 'Moderate Group Threads' => 'action=threads&operation=group', + ), + 'text' => + array ( + 0 => 'Moderate Group Threads', + ), + ), + 39 => + array ( + 'index' => + array ( + 'Group Posts Batch Delete' => 'action=prune&operation=group', + ), + 'text' => + array ( + 0 => 'Group Posts Batch Delete', + ), + ), + 40 => + array ( + 'index' => + array ( + 'Moderate Group Attachments' => 'action=attach&operation=group', + ), + 'text' => + array ( + 0 => 'Moderate Group Attachments', + ), + ), + 41 => + array ( + 'index' => + array ( + 'Recycle Bin' => 'action=recyclebin', + ), + 'text' => + array ( + 0 => 'Recycle Bin', + ), + ), + 42 => + array ( + 'index' => + array ( + 'Posts Recycle Bin' => 'action=recyclebinpost', + ), + 'text' => + array ( + 0 => 'Posts Recycle Bin', + ), + ), + 43 => + array ( + 'index' => + array ( + 'Multi Forum Stick' => 'action=threads&operation=forumstick', + ), + 'text' => + array ( + 0 => 'Multi Forum Stick', + ), + ), + 44 => + array ( + 'index' => + array ( + 'Post Comment Management' => 'action=postcomment', + ), + 'text' => + array ( + 0 => 'Post Comment Management', + ), + ), + 45 => + array ( + 'index' => + array ( + 'Doings Management' => 'action=doing', + ), + 'text' => + array ( + 0 => 'Doings Management', + ), + ), + 46 => + array ( + 'index' => + array ( + 'Blogs Management' => 'action=blog', + ), + 'text' => + array ( + 0 => 'Blogs Management', + ), + ), + 47 => + array ( + 'index' => + array ( + 'Blog Recycle Bin' => 'action=blogrecyclebin', + ), + 'text' => + array ( + 0 => 'Blog Recycle Bin', + ), + ), + 48 => + array ( + 'index' => + array ( + 'Feeds Management' => 'action=feed', + ), + 'text' => + array ( + 0 => 'Feeds Management', + ), + ), + 49 => + array ( + 'index' => + array ( + 'Albums Management' => 'action=album', + ), + 'text' => + array ( + 0 => 'Albums Management', + ), + ), + 50 => + array ( + 'index' => + array ( + 'Images Management' => 'action=pic', + ), + 'text' => + array ( + 0 => 'Images Management', + ), + ), + 51 => + array ( + 'index' => + array ( + 'Comments/Replies Management' => 'action=comment', + ), + 'text' => + array ( + 0 => 'Comments/Replies Management', + ), + ), + 52 => + array ( + 'index' => + array ( + 'Share Management' => 'action=share', + ), + 'text' => + array ( + 0 => 'Share Management', + ), + ), + 53 => + array ( + 'index' => + array ( + 'Edit User' => 'action=members&operation=search', + ), + 'text' => + array ( + 0 => 'Edit User', + ), + ), + 54 => + array ( + 'index' => + array ( + 'Add User' => 'action=members&operation=add', + ), + 'text' => + array ( + 0 => 'Add User', + ), + ), + 55 => + array ( + 'index' => + array ( + 'User profile' => 'action=members&operation=profile', + ), + 'text' => + array ( + 0 => 'User profile', + ), + ), + 56 => + array ( + 'index' => + array ( + 'Statistics' => 'action=members&operation=stat', + ), + 'text' => + array ( + 0 => 'Statistics', + ), + ), + 57 => + array ( + 'index' => + array ( + 'Newsletters' => 'action=members&operation=newsletter', + ), + 'text' => + array ( + 0 => 'Newsletters', + ), + ), + 58 => + array ( + 'index' => + array ( + 'Send phone notification' => 'action=members&operation=newsletter&do=mobile', + ), + 'text' => + array ( + 0 => 'Send phone notification', + ), + ), + 59 => + array ( + 'index' => + array ( + 'User Tags' => 'action=usertag', + ), + 'text' => + array ( + 0 => 'User Tags', + ), + ), + 60 => + array ( + 'index' => + array ( + 'Ban user' => 'action=members&operation=ban', + ), + 'text' => + array ( + 0 => 'Ban user', + ), + ), + 61 => + array ( + 'index' => + array ( + 'Ban IP' => 'action=members&operation=ipban', + ), + 'text' => + array ( + 0 => 'Ban IP', + ), + ), + 62 => + array ( + 'index' => + array ( + 'Award credits' => 'action=members&operation=reward', + ), + 'text' => + array ( + 0 => 'Award credits', + ), + ), + 63 => + array ( + 'index' => + array ( + 'New Users' => 'action=moderate&operation=members', + ), + 'text' => + array ( + 0 => 'New Users', + ), + ), + 64 => + array ( + 'index' => + array ( + 'Admin Groups' => 'action=admingroup', + ), + 'text' => + array ( + 0 => 'Admin Groups', + ), + ), + 65 => + array ( + 'index' => + array ( + 'User Groups' => 'action=usergroups', + ), + 'text' => + array ( + 0 => 'User Groups', + ), + ), + 66 => + array ( + 'index' => + array ( + 'Follows' => 'action=specialuser&operation=follow', + ), + 'text' => + array ( + 0 => 'Follows', + ), + ), + 67 => + array ( + 'index' => + array ( + 'Default users' => 'action=specialuser&operation=defaultuser', + ), + 'text' => + array ( + 0 => 'Default users', + ), + ), + 68 => + array ( + 'index' => + array ( + 'Verification' => 'action=verify', + ), + 'text' => + array ( + 0 => 'Verification', + ), + ), + 69 => + array ( + 'index' => + array ( + 'Article Categories' => 'action=portalcategory', + ), + 'text' => + array ( + 0 => 'Article Categories', + ), + ), + 70 => + array ( + 'index' => + array ( + 'Article Management' => 'action=article', + ), + 'text' => + array ( + 0 => 'Article Management', + ), + ), + 71 => + array ( + 'index' => + array ( + 'Topic Management' => 'action=topic', + ), + 'text' => + array ( + 0 => 'Topic Management', + ), + ), + 72 => + array ( + 'index' => + array ( + 'HTML management' => 'action=makehtml', + ), + 'text' => + array ( + 0 => 'HTML management', + ), + ), + 73 => + array ( + 'index' => + array ( + 'DIY Management' => 'action=diytemplate', + ), + 'text' => + array ( + 0 => 'DIY Management', + ), + ), + 74 => + array ( + 'index' => + array ( + 'Blocks Management' => 'action=block', + ), + 'text' => + array ( + 0 => 'Blocks Management', + ), + ), + 75 => + array ( + 'index' => + array ( + 'Block Styles' => 'action=blockstyle', + ), + 'text' => + array ( + 0 => 'Block Styles', + ), + ), + 76 => + array ( + 'index' => + array ( + 'Third-party blocks' => 'action=blockxml', + ), + 'text' => + array ( + 0 => 'Third-party blocks', + ), + ), + 77 => + array ( + 'index' => + array ( + 'Portal permissions' => 'action=portalpermission', + ), + 'text' => + array ( + 0 => 'Portal permissions', + ), + ), + 78 => + array ( + 'index' => + array ( + 'Blog Categories' => 'action=blogcategory', + ), + 'text' => + array ( + 0 => 'Blog Categories', + ), + ), + 79 => + array ( + 'index' => + array ( + 'Album Categories' => 'action=albumcategory', + ), + 'text' => + array ( + 0 => 'Album Categories', + ), + ), + 80 => + array ( + 'index' => + array ( + 'Forums' => 'action=forums', + ), + 'text' => + array ( + 0 => 'Forums', + ), + ), + 81 => + array ( + 'index' => + array ( + 'Forums merge' => 'action=forums&operation=merge', + ), + 'text' => + array ( + 0 => 'Forums merge', + ), + ), + 82 => + array ( + 'index' => + array ( + 'Forum types' => 'action=threadtypes', + ), + 'text' => + array ( + 0 => 'Forum types', + ), + ), + 83 => + array ( + 'index' => + array ( + 'Home 4-frame' => 'action=grid', + ), + 'text' => + array ( + 0 => 'Home 4-frame', + ), + ), + 84 => + array ( + 'index' => + array ( + 'Group Settings' => 'action=group&operation=setting', + ), + 'text' => + array ( + 0 => 'Group Settings', + ), + ), + 85 => + array ( + 'index' => + array ( + 'Group Categories' => 'action=group&operation=type', + ), + 'text' => + array ( + 0 => 'Group Categories', + ), + ), + 86 => + array ( + 'index' => + array ( + 'Group Management' => 'action=group&operation=manage', + ), + 'text' => + array ( + 0 => 'Group Management', + ), + ), + 87 => + array ( + 'index' => + array ( + 'User group permissions' => 'action=group&operation=userperm', + ), + 'text' => + array ( + 0 => 'User group permissions', + ), + ), + 88 => + array ( + 'index' => + array ( + 'Group Levels' => 'action=group&operation=level', + ), + 'text' => + array ( + 0 => 'Group Levels', + ), + ), + 89 => + array ( + 'index' => + array ( + 'Group moderation' => 'action=group&operation=mod', + ), + 'text' => + array ( + 0 => 'Group moderation', + ), + ), + 90 => + array ( + 'index' => + array ( + 'Basic Settings' => 'action=setting&operation=sec', + ), + 'text' => + array ( + 0 => 'Basic Settings', + ), + ), + 91 => + array ( + 'index' => + array ( + 'Authentication Settings' => 'action=setting&operation=seccheck', + ), + 'text' => + array ( + 0 => 'Authentication Settings', + ), + ), + 92 => + array ( + 'index' => + array ( + 'Security master' => 'action=optimizer&operation=security', + ), + 'text' => + array ( + 0 => 'Security master', + ), + ), + 93 => + array ( + 'index' => + array ( + 'Server security' => 'action=optimizer&operation=serversec', + ), + 'text' => + array ( + 0 => 'Server security', + ), + ), + 94 => + array ( + 'index' => + array ( + 'Account bodyguard' => 'action=setting&operation=accountguard', + ), + 'text' => + array ( + 0 => 'Account bodyguard', + ), + ), + 95 => + array ( + 'index' => + array ( + 'Site Announces' => 'action=announce', + ), + 'text' => + array ( + 0 => 'Site Announces', + ), + ), + 96 => + array ( + 'index' => + array ( + 'Site Advertising' => 'action=adv', + ), + 'text' => + array ( + 0 => 'Site Advertising', + ), + ), + 97 => + array ( + 'index' => + array ( + 'Tasks' => 'action=tasks', + ), + 'text' => + array ( + 0 => 'Tasks', + ), + ), + 98 => + array ( + 'index' => + array ( + 'Magics' => 'action=magics', + ), + 'text' => + array ( + 0 => 'Magics', + ), + ), + 99 => + array ( + 'index' => + array ( + 'Medals' => 'action=medals', + ), + 'text' => + array ( + 0 => 'Medals', + ), + ), + 100 => + array ( + 'index' => + array ( + 'Site Help' => 'action=faq', + ), + 'text' => + array ( + 0 => 'Site Help', + ), + ), + 101 => + array ( + 'index' => + array ( + 'E-commerce' => 'action=setting&operation=ec', + ), + 'text' => + array ( + 0 => 'E-commerce', + ), + ), + 102 => + array ( + 'index' => + array ( + 'Links' => 'action=misc&operation=link', + ), + 'text' => + array ( + 0 => 'Links', + ), + ), + 103 => + array ( + 'index' => + array ( + 'Hot Topics' => 'action=misc&operation=focus', + ), + 'text' => + array ( + 0 => 'Hot Topics', + ), + ), + 104 => + array ( + 'index' => + array ( + 'Related Links' => 'action=misc&operation=relatedlink', + ), + 'text' => + array ( + 0 => 'Related Links', + ), + ), + 105 => + array ( + 'index' => + array ( + 'Recharge card close' => 'action=card', + ), + 'text' => + array ( + 0 => 'Recharge card close', + ), + ), + 106 => + array ( + 'index' => + array ( + 'Plugins' => 'action=plugins', + ), + 'text' => + array ( + 0 => 'Plugins', + ), + ), + 107 => + array ( + 'index' => + array ( + 'Templates' => 'action=styles', + ), + 'text' => + array ( + 0 => 'Templates', + ), + ), + 108 => + array ( + 'index' => + array ( + 'Update cache' => 'action=tools&operation=updatecache', + ), + 'text' => + array ( + 0 => 'Update cache', + ), + ), + 109 => + array ( + 'index' => + array ( + 'Update Statistics' => 'action=counter', + ), + 'text' => + array ( + 0 => 'Update Statistics', + ), + ), + 110 => + array ( + 'index' => + array ( + 'Log Records' => 'action=logs', + ), + 'text' => + array ( + 0 => 'Log Records', + ), + ), + 111 => + array ( + 'index' => + array ( + 'Cron Scheduler' => 'action=misc&operation=cron', + ), + 'text' => + array ( + 0 => 'Cron Scheduler', + ), + ), + 112 => + array ( + 'index' => + array ( + 'File permissions' => 'action=tools&operation=fileperms', + ), + 'text' => + array ( + 0 => 'File permissions', + ), + ), + 113 => + array ( + 'index' => + array ( + 'File Checksum' => 'action=checktools&operation=filecheck', + ), + 'text' => + array ( + 0 => 'File Checksum', + ), + ), + 114 => + array ( + 'index' => + array ( + 'Check Hooks' => 'action=checktools&operation=hookcheck', + ), + 'text' => + array ( + 0 => 'Check Hooks', + ), + ), + 115 => + array ( + 'index' => + array ( + 'Admin Team' => 'action=founder&operation=perm', + ), + 'text' => + array ( + 0 => 'Admin Team', + ), + ), + 116 => + array ( + 'index' => + array ( + 'Mail' => 'action=setting&operation=mail', + ), + 'text' => + array ( + 0 => 'Mail', + ), + ), + 117 => + array ( + 'index' => + array ( + 'UCenter settings' => 'action=setting&operation=uc', + ), + 'text' => + array ( + 0 => 'UCenter settings', + ), + ), + 118 => + array ( + 'index' => + array ( + 'Database' => 'action=db&operation=export', + ), + 'text' => + array ( + 0 => 'Database', + ), + ), + 119 => + array ( + 'index' => + array ( + 'User tables' => 'action=membersplit&operation=check', + ), + 'text' => + array ( + 0 => 'User tables', + ), + ), + 120 => + array ( + 'index' => + array ( + 'Split Posts' => 'action=postsplit&operation=manage', + ), + 'text' => + array ( + 0 => 'Split Posts', + ), + ), + 121 => + array ( + 'index' => + array ( + 'Thread Tables' => 'action=threadsplit&operation=manage', + ), + 'text' => + array ( + 0 => 'Thread Tables', + ), + ), + 122 => + array ( + 'index' => + array ( + 'Optimizer wizard' => 'action=optimizer&operation=performance', + ), + 'text' => + array ( + 0 => 'Optimizer wizard', + ), + ), + 123 => + array ( + 'index' => + array ( + 'Administrative Groups' => 'action=admingroup', + 'Thread management privileges' => 'action=admingroup&operation=edit&anchor=threadperm', + ), + 'text' => + array ( + 0 => 'Administrative Groups » Thread management privileges', + 1 => 'admingroup_edit_threadperm', + 2 => 'Thread management privileges', + 3 => 'admingroup_edit_stick_thread', + 4 => 'Allow stick threads', + 5 => 'Set a type of allowed thread stick: I - current forum top, II - current Category top, III - whole the site top.', + 6 => 'admingroup_edit_digest_thread', + 7 => 'Allow thread digest', + 8 => 'Set allowed digest type', + 9 => 'admingroup_edit_bump_thread', + 10 => 'Allow to bump thread', + 11 => 'Whether to allow the thread bump', + 12 => 'admingroup_edit_highlight_thread', + 13 => 'Allow highlight thread', + 14 => 'Whether to allow management of the thread context highlighting', + 15 => 'admingroup_edit_live_thread', + 16 => 'Allow live threads', + 17 => 'Set whether to allow live management range within threads', + 18 => 'admingroup_edit_recommend_thread', + 19 => 'Allow recommend thread', + 20 => 'Whether to allow the thread recommend (if the appropriate Forum thread recommendation setting is enabled)', + 21 => 'admingroup_edit_stamp_thread', + 22 => 'Allow to set thread icon', + 23 => 'Whether to allow stamp thread', + 24 => 'admingroup_edit_stamp_list', + 25 => 'Allow to add the thread icon', + 26 => 'Set whether to allow the post to the topic list page add icons', + 27 => 'admingroup_edit_close_thread', + 28 => 'Allow close thread', + 29 => 'Whether to allow close thread', + 30 => 'admingroup_edit_move_thread', + 31 => 'Allow move thread', + 32 => 'Whether to allow move thread', + 33 => 'admingroup_edit_edittype_thread', + 34 => 'Allow to edit thread type', + 35 => 'Whether to allow edit thread type', + 36 => 'admingroup_edit_copy_thread', + 37 => 'Allow copy thread', + 38 => 'Whether to allow copy thread', + 39 => 'admingroup_edit_merge_thread', + 40 => 'Allow merge threads', + 41 => 'Whether to allow merge threads', + 42 => 'admingroup_edit_split_thread', + 43 => 'Allow split thread', + 44 => 'Whether to allow split thread', + 45 => 'admingroup_edit_repair_thread', + 46 => 'Allow repair thread', + 47 => 'Whether to allow repair thread', + 48 => 'admingroup_edit_refund', + 49 => 'Allow to terminate refund', + 50 => 'Allow to terminate the thread refund issued, and return the gain to the purchaser. After the refund, the thread will no longer be chargeable, and the author will loss the future transactions points.', + 51 => 'admingroup_edit_edit_poll', + 52 => 'Allow edit Poll', + 53 => 'Whether to allow edit poll options', + 54 => 'admingroup_edit_remove_reward', + 55 => 'Allow remove rewards', + 56 => 'Whether to allow removal of reward within the thread reward amount', + 57 => 'admingroup_edit_edit_activity', + 58 => 'Allow to manage event members', + 59 => 'Whether to allow the management of an event members', + 60 => 'admingroup_edit_edit_trade', + 61 => 'Allow edit products', + 62 => 'Whether to allow edit products', + 63 => 'admingroup_edit_usertag', + 64 => 'Allow users to add tags', + 65 => 'Set whether to allow users to edit/manage thread tags', + ), + ), + 124 => + array ( + 'index' => + array ( + 'Administrative Groups' => 'action=admingroup', + 'Post management privileges' => 'action=admingroup&operation=edit&anchor=postperm', + ), + 'text' => + array ( + 0 => 'Administrative Groups » Post management privileges', + 1 => 'admingroup_edit_postperm', + 2 => 'Post management privileges', + 3 => 'admingroup_edit_edit_post', + 4 => 'Allow Edit Post', + 5 => 'Whether to allow edit posts of others', + 6 => 'admingroup_edit_warn_post', + 7 => 'Allow warn users', + 8 => 'Whether to allow warn users', + 9 => 'admingroup_edit_ban_post', + 10 => 'Allow hide Posts', + 11 => 'Whether to allow hide posts', + 12 => 'admingroup_edit_del_post', + 13 => 'Allow to delete posts', + 14 => 'Whether to allow delete posts', + 15 => 'admingroup_edit_stick_post', + 16 => 'Allow stick post', + 17 => 'Whether to allow stick posts within a thread', + 18 => 'admingroup_edit_manage_tag', + 19 => 'Allow Manage Tags', + 20 => 'Set whether to allow management of the tag list', + ), + ), + 125 => + array ( + 'index' => + array ( + 'Administrative Groups' => 'action=admingroup', + 'Moderator panel privileges' => 'action=admingroup&operation=edit&anchor=modcpperm', + ), + 'text' => + array ( + 0 => 'Administrative Groups » Moderator panel privileges', + 1 => 'admingroup_edit_modcpperm', + 2 => 'Moderator panel privileges', + 3 => 'admingroup_edit_mod_post', + 4 => 'Allow verify Posts', + 5 => 'Whether to allow to verify users posts (only when a premoderation enabled in the site settings)', + 6 => 'admingroup_edit_mod_user', + 7 => 'Allow to verify registrations', + 8 => 'Whether to allow verify new registered users. Required only if a manuall verification enabled in the site setttings.', + 9 => 'admingroup_edit_ban_user', + 10 => 'Allow to ban users', + 11 => 'Whether to allow disable access to post or visit to users', + 12 => 'admingroup_edit_ban_user_visit', + 13 => 'Allow to disable user access', + 14 => 'Set whether to allow of disable user access', + 15 => 'admingroup_edit_ban_ip', + 16 => 'Allow ban IP', + 17 => 'Whether to allow IP ban or modify the IP settings', + 18 => 'admingroup_edit_edit_user', + 19 => 'Allow to edit users', + 20 => 'Whether to allow edit user information', + 21 => 'admingroup_edit_mass_prune', + 22 => 'Allow batch delete posts', + 23 => 'Whether to allow batch delete posts through the moderator panel. Moderator can mass delete posts in range of 1 week, Super moderator can delete posts in range of 2 weeks, Administrator have no limits.', + 24 => 'admingroup_edit_edit_forum', + 25 => 'Allow edit Forum', + 26 => 'Whether to allow edit forum information', + 27 => 'admingroup_edit_post_announce', + 28 => 'Allow Announcement', + 29 => 'Whether to allow publish the site notices', + 30 => 'admingroup_edit_clear_recycle', + 31 => 'Allow to delete the Recycle Bin post', + 32 => 'Settings are allowed in the "front -> Administrative panel -> topic in the Recycle Bin" to remove the thread', + 33 => 'admingroup_edit_view_log', + 34 => 'Allow to view management log', + 35 => 'Whether to allow to view management log', + ), + ), + 126 => + array ( + 'index' => + array ( + 'Administrative Groups' => 'action=admingroup', + 'Space management privileges' => 'action=admingroup&operation=edit&anchor=spaceperm', + ), + 'text' => + array ( + 0 => 'Administrative Groups » Space management privileges', + 1 => 'admingroup_edit_spaceperm', + 2 => 'Space management privileges', + 3 => 'admingroup_edit_manage_feed', + 4 => 'Allow manage feeds', + 5 => 'admingroup_edit_manage_doing', + 6 => 'Allow manage doings', + 7 => 'admingroup_edit_manage_share', + 8 => 'Allow manage shares', + 9 => 'admingroup_edit_manage_blog', + 10 => 'Allow manage blogs', + 11 => 'admingroup_edit_manage_album', + 12 => 'Allow manage albums', + 13 => 'admingroup_edit_manage_comment', + 14 => 'Allow Manage comments', + 15 => 'admingroup_edit_manage_magiclog', + 16 => 'Allow manage magic log records', + 17 => 'admingroup_edit_manage_report', + 18 => 'Allow manage reports', + 19 => 'admingroup_edit_manage_hotuser', + 20 => 'Allow manage members hot value', + 21 => 'admingroup_edit_manage_defaultuser', + 22 => 'Allow manage of Tell to Friend', + 23 => 'admingroup_edit_manage_videophoto', + 24 => 'Allow manage of video authentication', + 25 => 'admingroup_edit_manage_magic', + 26 => 'Allow manage magic', + 27 => 'admingroup_edit_manage_click', + 28 => 'Allow manage positioning actions', + ), + ), + 127 => + array ( + 'index' => + array ( + 'Administrative Groups' => 'action=admingroup', + 'Other privileges' => 'action=admingroup&operation=edit&anchor=otherperm', + ), + 'text' => + array ( + 0 => 'Administrative Groups » Other privileges', + 1 => 'admingroup_edit_otherperm', + 2 => 'Other privileges', + 3 => 'admingroup_edit_view_ip', + 4 => 'View IP', + 5 => 'Whether to allow view user IP', + 6 => 'admingroup_edit_manage_collection', + 7 => 'Allow collection management', + 8 => 'Set whether to allow collection management', + 9 => 'admingroup_edit_allow_make_html', + 10 => 'Allow to generate HTML files', + 11 => 'Set whether to allow to generate HTML files', + ), + ), + 128 => + array ( + 'index' => + array ( + 'Administrative Groups' => 'action=admingroup', + 'Portal management privileges' => 'action=admingroup&operation=edit&anchor=portalperm', + ), + 'text' => + array ( + 0 => 'Administrative Groups » Portal management privileges', + 1 => 'admingroup_edit_portalperm', + 2 => 'Portal management privileges', + 3 => 'admingroup_edit_manage_article', + 4 => 'Allow manage articles', + 5 => 'Whether to allow edit or delete articles', + 6 => 'admingroup_edit_add_topic', + 7 => 'Allow create thread', + 8 => 'Whether to allow a thread creation', + 9 => 'admingroup_edit_manage_topic', + 10 => 'Allow manage threads', + 11 => 'Whether to allow edit threads', + 12 => 'admingroup_edit_diy', + 13 => 'Allow edit layout', + 14 => 'Whether to allow edit layout style of portal, space, forum page', + ), + ), + 129 => + array ( + 'index' => + array ( + 'Site Advertising' => 'action=adv', + 'Advertising' => 'action=adv&operation=list', + ), + 'text' => + array ( + 0 => 'Site Advertising » Advertising', + 1 => 'adv_list_tip', + 2 => 'You can use the "custom advertising" anywhere in the pageSystem advertising placed in the source/class/adv/ folder. Plugin advertising placed in the source/plugin/your_folder_name/adv/ folder.Before creating a new magic, you have to read carefully the Discuz! Technical Documantation!', + ), + ), + 130 => + array ( + 'index' => + array ( + 'Albums Management' => 'action=album', + 'New list' => 'action=album', + ), + 'text' => + array ( + 0 => 'Albums Management » New list', + 1 => 'album_tips', + 2 => 'Album manage is usefull for bulk remove albums together with all images inside.Reminder: click the Delete button on the search results page will delete the relevant information directly!', + ), + ), + 131 => + array ( + 'index' => + array ( + 'Albums Management' => 'action=album', + 'Search' => 'action=album&search=true', + ), + 'text' => + array ( + 0 => 'Albums Management » Search', + 1 => 'album_search_detail', + 2 => 'Show detailed album list', + 3 => 'album_search_perpage', + 4 => 'Items per page', + 5 => 'resultsort', + 6 => 'Sort Results', + 7 => 'album_search_albumname', + 8 => 'Album name', + 9 => 'album_search_albumid', + 10 => 'Album ID', + 11 => 'Separate multiple album ID with a comma ","', + 12 => 'album_search_uid', + 13 => 'User ID', + 14 => 'Separate multiple UID with a comma ","', + 15 => 'album_search_user', + 16 => 'Album Owner name', + 17 => 'Separate multiple user names by a comma ","', + 18 => 'blog_search_friend', + 19 => 'View Permissions', + 20 => 'album_search_time', + 21 => 'Updated time range', + 22 => 'Format: yyyy-mm-dd', + ), + ), + 132 => + array ( + 'index' => + array ( + 'Album Categories' => 'action=albumcategory', + ), + 'text' => + array ( + 0 => 'Album Categories', + 1 => 'system_category_stat', + 2 => 'Enable system Categories', + 3 => 'system_category_required', + 4 => 'System Categories required', + ), + ), + 133 => + array ( + 'index' => + array ( + 'Site Announces' => 'action=announce', + ), + 'text' => + array ( + 0 => 'Site Announces', + 1 => 'announce_edit', + 2 => 'Edit Site Announce', + 3 => 'start_time', + 4 => 'Start time', + 5 => 'end_time', + 6 => 'End time', + 7 => 'announce_type', + 8 => 'Announce type', + 9 => 'announce_message', + 10 => 'Message', + 11 => 'Announce text:Announce content support BBCodeURL link:Please enter the announce link such as: http://xxx.xxx.xxx', + ), + ), + 134 => + array ( + 'index' => + array ( + 'Third-party blocks' => 'action=blockxml', + 'Search' => 'action=blockxml&operation=add', + ), + 'text' => + array ( + 0 => 'Third-party blocks » Search', + 1 => 'blockxml_tips', + 2 => 'Plug-in developers before design a new third-party block must read the Discuz! Technical Documentation.', + 3 => 'blockxml_add', + 4 => 'Add third-party block', + 5 => 'blockxml_xmlurl', + 6 => 'Third-party block URL', + 7 => 'Enter the URL of third-party block, Third-party block have to return the contents in the XML format', + 8 => 'blockxml_clientid', + 9 => 'Client ID', + 10 => 'The ID provided by the data source', + 11 => 'blockxml_signtype', + 12 => 'Signature encryption', + 13 => 'Currently supported only MD5 encryption method, You can not use signature provided by the data source', + 14 => 'blockxml_xmlkey', + 15 => 'Communication key', + 16 => 'URL address to obtain data from the key, If you do not need to key data sources can be empty. This key is provided by the data source', + ), + ), + 135 => + array ( + 'index' => + array ( + 'Blogs Management' => 'action=blog', + 'New list' => 'action=blog', + ), + 'text' => + array ( + 0 => 'Blogs Management » New list', + 1 => 'blog_tips', + 2 => 'Blog management is usefull for batch blog delete together with the corresponding replies.Keyword qualifier {x} can be used to limit between two adjacent characters of text can be ignored, where "x" is a numer of ignored characters. For example the mask "a{1}s{2}s" (without quotation marks) can search the "ass" and also "axsxs" and "axsxxs" and so on.Reminder: click the Delete button on the search results page will delete the relevant information directly!', + ), + ), + 136 => + array ( + 'index' => + array ( + 'Blogs Management' => 'action=blog', + 'Search' => 'action=blog&search=true', + ), + 'text' => + array ( + 0 => 'Blogs Management » Search', + 1 => 'blog_search_detail', + 2 => 'Show detailed blog list', + 3 => 'blog_search_perpage', + 4 => 'Items per page', + 5 => 'resultsort', + 6 => 'Sort Results', + 7 => 'blog_search_uid', + 8 => 'User ID', + 9 => 'Separate multiple UID with a comma ","', + 10 => 'blog_search_blogid', + 11 => 'Blog ID', + 12 => 'Separate multiple blog ID with a comma ","', + 13 => 'blog_search_user', + 14 => 'Blog author user name', + 15 => 'Separate multiple user names by a comma ","', + 16 => 'blog_search_keyword', + 17 => 'Title or Keyword', + 18 => 'Separate multiple keywords with a comma ",", keywords qualifier {x} can be used.', + 19 => 'blog_search_friend', + 20 => 'View Permissions', + 21 => 'blog_search_ip', + 22 => 'Posted IP', + 23 => 'Wildcard "*" may be used, i.e. "127.0 .*.*" (without quotes), use with caution!!!', + 24 => 'blog_search_lengthlimit', + 25 => 'Minimal content length', + 26 => 'This feature will add the server loading', + 27 => 'blog_search_view', + 28 => 'Views', + 29 => 'blog_search_reply', + 30 => 'Replies', + 31 => 'blog_search_hot', + 32 => 'Hot', + 33 => 'blog_search_time', + 34 => 'Post Time range', + 35 => 'Format: yyyy-mm-dd', + ), + ), + 137 => + array ( + 'index' => + array ( + 'Blog Categories' => 'action=blogcategory', + ), + 'text' => + array ( + 0 => 'Blog Categories', + 1 => 'system_category_stat', + 2 => 'Enable system Categories', + 3 => 'system_category_required', + 4 => 'System Categories required', + ), + ), + 138 => + array ( + 'index' => + array ( + 'Blog Recycle Bin' => 'action=blogrecyclebin', + 'Blog List' => 'action=blogrecyclebin', + ), + 'text' => + array ( + 0 => 'Blog Recycle Bin » Blog List', + 1 => 'blog_tips', + 2 => 'Blog management is usefull for batch blog delete together with the corresponding replies.Keyword qualifier {x} can be used to limit between two adjacent characters of text can be ignored, where "x" is a numer of ignored characters. For example the mask "a{1}s{2}s" (without quotation marks) can search the "ass" and also "axsxs" and "axsxxs" and so on.Reminder: click the Delete button on the search results page will delete the relevant information directly!', + ), + ), + 139 => + array ( + 'index' => + array ( + 'Blogs Management' => 'action=blog', + 'Search' => 'action=blog&search=true', + ), + 'text' => + array ( + 0 => 'Blogs Management » Search', + 1 => 'blog_search_detail', + 2 => 'Show detailed blog list', + 3 => 'blog_search_perpage', + 4 => 'Items per page', + 5 => 'resultsort', + 6 => 'Sort Results', + 7 => 'blog_search_uid', + 8 => 'User ID', + 9 => 'Separate multiple UID with a comma ","', + 10 => 'blog_search_blogid', + 11 => 'Blog ID', + 12 => 'Separate multiple blog ID with a comma ","', + 13 => 'blog_search_user', + 14 => 'Blog author user name', + 15 => 'Separate multiple user names by a comma ","', + 16 => 'blog_search_keyword', + 17 => 'Title or Keyword', + 18 => 'Separate multiple keywords with a comma ",", keywords qualifier {x} can be used.', + 19 => 'blog_search_friend', + 20 => 'View Permissions', + 21 => 'blog_search_ip', + 22 => 'Posted IP', + 23 => 'Wildcard "*" may be used, i.e. "127.0 .*.*" (without quotes), use with caution!!!', + 24 => 'blog_search_lengthlimit', + 25 => 'Minimal content length', + 26 => 'This feature will add the server loading', + 27 => 'blog_search_view', + 28 => 'Views', + 29 => 'blog_search_reply', + 30 => 'Replies', + 31 => 'blog_search_hot', + 32 => 'Hot', + 33 => 'blog_search_time', + 34 => 'Post Time range', + 35 => 'Format: yyyy-mm-dd', + ), + ), + 140 => + array ( + 'index' => + array ( + 'Allow front recharge' => 'action=card', + ), + 'text' => + array ( + 0 => 'Allow front recharge', + 1 => 'card_config_open', + 2 => 'Allow front recharge', + 3 => 'Set whether to allow front-end recharge, close the front-end recharge function, does not affect the generation of background card passwordRecharge card password verification code switch: Global->Security->Verification Settings', + ), + ), + 141 => + array ( + 'index' => + array ( + 'Exporting the recharge card password supports up to 10,000 data. The exported files can be EXCEL, WPS forms, Tencent documents Wait for the tool to open.' => 'action=card&operation=manage', + ), + 'text' => + array ( + 0 => 'Exporting the recharge card password supports up to 10,000 data. The exported files can be EXCEL, WPS forms, Tencent documents Wait for the tool to open.', + 1 => 'card_manage_tips', + 2 => 'Exporting the recharge card password supports up to 10,000 data. The exported files can be EXCEL, WPS forms, Tencent documents Wait for the tool to open.', + ), + ), + 142 => + array ( + 'index' => + array ( + 'If a Card secret type is removed, the next card will be automatically included into the "Default Type"' => 'action=card&operation=type', + ), + 'text' => + array ( + 0 => 'If a Card secret type is removed, the next card will be automatically included into the "Default Type"', + 1 => 'card_type_tips', + 2 => 'If a Card secret type is removed, the next card will be automatically included into the "Default Type"', + ), + ), + 143 => + array ( + 'index' => + array ( + 'When the card generating is disabled, Simple rules or the formation of smaller number of sheets number of sheets that could cause actual generation is less than the default number of sheets generated.' => 'admin.php?action=card&operation=make', + ), + 'text' => + array ( + 0 => 'When the card generating is disabled, Simple rules or the formation of smaller number of sheets number of sheets that could cause actual generation is less than the default number of sheets generated.', + 1 => 'card_make_tips', + 2 => 'When the card generating is disabled, Simple rules or the formation of smaller number of sheets number of sheets that could cause actual generation is less than the default number of sheets generated.', + 3 => 'card_make_rule', + 4 => 'Secret Card build rules', + 5 => '"@" represents any random English characters, "#" represents any random number, "*" represents any characters or digitsSecred Card sample rules: "DZ2011@@@@@#####*****"Note: If the rule complexity is too small, it will cause of generated cards duplication, too complex rule will cause the cards generation may be terminated.No Chinese or other special symbols can be used in a Card generation rule.In order to avoid duplication of cards secret, it is the best use less than 8 random digits', + 6 => 'card_type', + 7 => 'Card secret type', + 8 => 'card_make_num', + 9 => 'Generate the number of sheets', + 10 => 'Set the number of resulting sheets of card secret', + 11 => 'card_make_extcredits', + 12 => 'The amount and type of credits', + 13 => 'Set the amount of rechargeable prepaid card secret for this generation and type of points obtained', + 14 => 'card_make_price', + 15 => 'Actual price', + 16 => 'Units (USD), The actual price printed on the card used. Inform the user of the nominal value used to measure the cost of the card', + 17 => 'card_make_cleardateline', + 18 => 'Valid until', + 19 => 'The default is valid for one yearCard close at a set time 24:00 failure, the status change "Expired"', + 20 => 'card_make_description', + 21 => 'Remark', + 22 => 'Add a note to this card generation. This Note will appear in the "build record" log', + ), + ), + 144 => + array ( + 'index' => + array ( + 'Rate management' => 'action=click', + ), + 'text' => + array ( + 0 => 'Rate management', + 1 => 'click_edit_tips', + 2 => 'This function is used to set the blog/image/article positioning actions. For add an action, please fill the image file name, and upload the corresponding image file to static/image/click/ directory.Enabled up to 8 types of action', + ), + ), + 145 => + array ( + 'index' => + array ( + 'Collections' => 'action=collection', + ), + 'text' => + array ( + 0 => 'Collections', + 1 => 'collection_ctid', + 2 => 'Collection ID', + 3 => 'collection_comment_message', + 4 => 'Comment text', + 5 => 'collection_comment_cid', + 6 => 'Comment ID', + 7 => 'collection_comment_username', + 8 => 'Comment poster name', + 9 => 'collection_comment_uid', + 10 => 'Comment poster UID', + 11 => 'collection_comment_rate', + 12 => 'Rating is greater than', + 13 => 'collection_comment_useip', + 14 => 'IP address', + 15 => 'threads_search_time', + 16 => 'Post Time range', + 17 => 'Format: yyyy-mm-dd. Set to 0 for no restrictions', + 18 => 'feed_search_perpage', + 19 => 'Items per page', + 20 => 'collection_name', + 21 => 'Collection name', + 22 => 'collection_username', + 23 => 'Collection author', + 24 => 'collection_uid', + 25 => 'Collection author UID', + 26 => 'collection_recommend_index_autonumber', + 27 => 'Number of Home Recommended', + 28 => 'This setting defined a number of popular albums, that are recommended at the home page. Set to "0" for disable the Recommend feature. When a number of manual recommendations is reached this number, the system will recommend this album automatically.', + ), + ), + 146 => + array ( + 'index' => + array ( + 'Comment Management' => 'action=comment', + 'Comment/message' => 'action=comment', + ), + 'text' => + array ( + 0 => 'Comment Management » Comment/message', + 1 => 'comment_tips', + 2 => 'Comment management is usefull for bulk delete comments.Reminder: click the Delete button on the search results page will delete the relevant information directly!', + 3 => 'comment_search_detail', + 4 => 'Show detailed comment list', + 5 => 'comment_search_perpage', + 6 => 'Items per page', + 7 => 'comment_idtype', + 8 => 'Comment Type', + 9 => 'comment_search_id', + 10 => 'Comment ID', + 11 => 'Separate multiple comment ID by a comma ","', + 12 => 'comment_search_author', + 13 => 'Author name', + 14 => 'Separate multiple authors by comma ",".', + 15 => 'comment_search_authorid', + 16 => 'Author UID', + 17 => 'Separate multiple user UID by a comma ","', + 18 => 'comment_search_uid', + 19 => 'Comment authoe UID', + 20 => 'Separate multiple UID with a comma ","', + 21 => 'comment_search_message', + 22 => 'Comment text', + 23 => 'comment_search_ip', + 24 => 'Post IP', + 25 => 'Wildcard "*" may be used, i.e. "127.0 .*.*" (without quotes), use with caution!!!', + 26 => 'comment_search_time', + 27 => 'Comment time range', + 28 => 'Format: yyyy-mm-dd', + ), + ), + 147 => + array ( + 'index' => + array ( + 'Comment Management' => 'action=comment', + 'Article comments' => 'action=comment&operation=article', + 'Special thread comments' => 'action=comment&operation=topic', + ), + 'text' => + array ( + 0 => 'Comment Management » Article comments » Special thread comments', + 1 => 'comment_', + 2 => '', + 3 => 'comment_search_perpage', + 4 => 'Items per page', + 5 => 'comment_search_message', + 6 => 'Comment text', + 7 => 'comment_search_author', + 8 => 'Author name', + 9 => 'Separate multiple authors by comma ",".', + 10 => 'comment_search_authorid', + 11 => 'Author UID', + 12 => 'Separate multiple user UID by a comma ","', + 13 => 'comment_search_time', + 14 => 'Comment time range', + 15 => 'Format: yyyy-mm-dd', + ), + ), + 148 => + array ( + 'index' => + array ( + 'Update Statistics' => 'action=counter', + ), + 'text' => + array ( + 0 => 'Update Statistics', + 1 => 'counter_tips', + 2 => 'The following data is not normal. You can use this function to update the data to correct state. Please try to avoid the peak time of members accessEach cycle update the number: Set the value in a reasonable range. Must be not too large, Otherwise it increase the server load pressure', + ), + ), + 149 => + array ( + 'index' => + array ( + 'Database' => 'action=db&operation=export', + 'Backup' => 'action=db&operation=export', + ), + 'text' => + array ( + 0 => 'Database » Backup', + 1 => 'db_export_type', + 2 => 'Backup type', + 3 => 'db_export_method', + 4 => 'Backup Method', + 5 => 'db_export_options', + 6 => 'Backup Options', + 7 => 'db_export_options_extended_insert', + 8 => 'Use Extended Insert mode', + 9 => 'db_export_options_sql_compatible', + 10 => 'Add "Create table" statement', + 11 => 'db_export_options_charset', + 12 => 'Force character set', + 13 => 'db_export_usehex', + 14 => 'Hexadecimal format', + 15 => 'db_export_usezip', + 16 => 'Compress Backup file', + 17 => 'db_export_filename', + 18 => 'Backup file name', + ), + ), + 150 => + array ( + 'index' => + array ( + 'Database' => 'action=db&operation=export', + 'Restore' => 'action=db&operation=import', + ), + 'text' => + array ( + 0 => 'Database » Restore', + 1 => 'db_import_tips', + 2 => 'This function will all overwrite the original data while restoring the backup data. Please make sure to close the forum before restoring. You can reopen the forum after the restoration is complete.Before restoring data, please find the restore.php file in the utility folder under the Discuz! installation file directory, and then upload the restore.php file to the data directory of the program folder. For the safety of your site, please delete the restore.php file in time after successfully restoring the data.You can view the detailed information of the site backup files in the data backup record, delete expired backups, and import the required backups.', + 3 => 'db_import', + 4 => 'Data Recovery', + ), + ), + 151 => + array ( + 'index' => + array ( + 'Database' => 'action=db&operation=export', + 'Run query' => 'action=db&operation=runquery', + ), + 'text' => + array ( + 0 => 'Database » Run query', + 1 => 'db_runquery_tips', + 2 => 'You can modify the admincp/quickqueries.inc.php to add extended functionality for common SQL operations.For security reasons, Discuz! Background by default, SQL statements directly against the implementation, use only the contents of commonly used SQL,You are free to write your own SQL update statement, in this case you need to set a variable $_config[admincp][runquery] to 1 in the config/config_global.php file.', + 3 => 'db_runquery_simply', + 4 => 'Common SQL update statement', + 5 => 'db_runquery_sql', + 6 => 'Discuz! Database upgrade - Please paste in the following database upgrade statement', + ), + ), + 152 => + array ( + 'index' => + array ( + 'Database' => 'action=db&operation=export', + 'Optimize' => 'action=db&operation=optimize', + ), + 'text' => + array ( + 0 => 'Database » Optimize', + 1 => 'db_optimize_tips', + 2 => 'Optimization of data table canremove the debris and holes from a data file, so that the records arranged closely, that enable to increase the access speed.', + ), + ), + 153 => + array ( + 'index' => + array ( + 'Regions' => 'action=district', + ), + 'text' => + array ( + 0 => 'Regions', + 1 => 'district_tips', + 2 => 'You can add/edit your own regional dataClick the "Submit" button for Add, Edit, or Delete operations will take effect.', + ), + ), + 154 => + array ( + 'index' => + array ( + 'Doings Management' => 'action=doing', + ), + 'text' => + array ( + 0 => 'Doings Management', + 1 => 'doing_tips', + 2 => 'Doing management is usefull for batch delete doings together with the corresponding replies.Keyword qualifier {x} can be used to limit between two adjacent characters of text can be ignored, where "x" is a numer of ignored characters. For example the mask "a{1}s{2}s" (without quotation marks) can search the "ass" and also "axsxs" and "axsxxs" and so on.Reminder: click the Delete button on the search results page will delete the relevant information directly!', + ), + ), + 155 => + array ( + 'index' => + array ( + 'Doings Management' => 'action=doing', + 'Search' => 'action=doing&search=true', + ), + 'text' => + array ( + 0 => 'Doings Management » Search', + 1 => 'doing_search_detail', + 2 => 'Show detailed doing list', + 3 => 'doing_search_perpage', + 4 => 'Items per page', + 5 => 'doing_search_user', + 6 => 'Doing author name', + 7 => 'Separate multiple user names by a comma ","', + 8 => 'doing_search_ip', + 9 => 'Published doing IP ', + 10 => 'Wildcard "*" may be used, i.e. "127.0 .*.*" (without quotes), use with caution!!!', + 11 => 'doing_search_keyword', + 12 => 'Keyword', + 13 => 'Separate multiple keywords with a comma ",", keywords qualifier {x} can be used.', + 14 => 'doing_search_lengthlimit', + 15 => 'Minimal content length', + 16 => 'This feature will add the server loading', + 17 => 'doing_search_time', + 18 => 'Post Time range', + 19 => 'Format: yyyy-mm-dd', + ), + ), + 156 => + array ( + 'index' => + array ( + 'Domain settings' => 'action=domain', + 'Application domain' => 'domain&operation=app', + ), + 'text' => + array ( + 0 => 'Domain settings » Application domain', + 1 => 'setting_domain_app_tips', + 2 => 'For the built-in Portal, Forum, Groups, Spaces, domain name to bind by default.Each binding domain must be unique, any opening of a domain name, you need to configure the default domain, otherwise it will create more import problems.Set Forum formats such as: portal.comsenz.comDo not add "http://" at the domain name beginning, or "/" at the domain ending.', + ), + ), + 157 => + array ( + 'index' => + array ( + 'Domain settings' => 'action=domain', + 'Root domain settings' => 'domain&operation=root', + ), + 'text' => + array ( + 0 => 'Domain settings » Root domain settings', + 1 => 'setting_domain_root_tips', + 2 => 'Groups, Space, Forum, Thread, Category can be set up into a subdomain relative to the root domain name. Example: If a user application need to be set at XXX.comsenz.com, fill in the root domain as: comsenz.comGroups, after finishing of set Space to subdomain, it is also required to open the corresponding subdomain switching so users can apply the appropriate place to bind the subdomain name. User groups also limited by the length of the subdomain name.If a Channel enabled at subdomain, and it is bound to some directory, configure by yourself the environment for bind related operation.In other cases it is not recommended to change the root domain to subdomains.', + ), + ), + 158 => + array ( + 'index' => + array ( + 'Domain settings' => 'action=domain', + 'Basic settings' => 'domain&operation=base', + ), + 'text' => + array ( + 0 => 'Domain settings » Basic settings', + 1 => 'setting_domain_base_tips', + 2 => 'Reserved subdomain name can not used in any settings, or used as an object domain name.If a personal space or a group turned to go to the subdomain root domain settings set root Groups, Space the root domain name', + 3 => 'setting_domain_allow_space', + 4 => 'Allow Space at subdomain names', + 5 => 'If this is turned ON, you need to set the root domain name. A user group or an application domain name length is limited!', + 6 => 'setting_domain_allow_group', + 7 => 'Enable groups at subdomain name', + 8 => 'If this is turned ON, you need to set the root domain name, domain name and user group open only after the length of domain name applications', + 9 => 'setting_domain_hold_domain', + 10 => 'Reserved subdomain names', + 11 => 'Separate multiple domains with "|". You can use the wildcard "*"', + ), + ), + 159 => + array ( + 'index' => + array ( + 'E-Commerce Settings' => 'action=setting&operation=ec', + 'Alipay' => 'action=ec&operation=alipay', + ), + 'text' => + array ( + 0 => 'E-Commerce Settings » Alipay', + 1 => 'ec_alipay_tips', + 2 => '"Alipay" (http://www.alipay.com) is a leading online payment platform, created by the world\'s best B2B company "Alibaba". It used for the Discuz! users as B2C, C2C trading platform to buy points and forum access. You only need a simple setup, and you can make the forum content more popular, so become an important addition to advertising revenue source of profits in order to achieve a large scale of operations at the Forum.If you do not want to enable Cash transactions, in order to avoid an improper operations and financial losses, please start using the payment transaction with internal points only (do not enable the Alipay button). Be sure you carefully read the "User Manual" in the e-commerce section, and confirm that you fully understand and accept the processes, and use later the related settings.You can set to allow users to pay with online cash, recharge their account points for purchase of post content, buy the user group permissions, transfer points to other users, to upgrade and so on. For use the Alipay transaction capabilities, you need to enable the trade integration in the "Points settings", and also set the corresponding integration strategy to meet the needs of different occasions. Be sure to set your Alipay account, otherwise a user payment will result in real-time error, or resulting in a large number of orders that require manual processing.As an addition, the Discuz! Official website provide Alipay payment services Alipay with a charge per transaction fee of 1.5%. Please notify the concern related to recent operations, the policy or process changes, adjustments to Discuz! Official website or the official forum of information prevail.If you use any Alipay service built entirely on voluntary basis, it will cause the financial losses. The Hong Sing Imagination (Beijing) Technology Co. Ltd. does not use such functions because liable for any loss caused.For Business Consulting contact to the Alipay Email 6688@taobao.com; Alipay customer service telephone number is +86-0571-88156688.', + 3 => 'ec_alipay', + 4 => 'Alipay settings', + 5 => 'ec_alipay_account', + 6 => 'Alipay Account', + 7 => 'If you enable the exchange or transaction capabilities, please enter a real and effective Alipay account, for allow users for cash transactions related to exchange money and points. If account is invalid or security code is incorrect, it will result in eerors in user transactions.If you do not have Alipay account, you can Register New Alipay Account', + 8 => 'ec_alipay_check', + 9 => 'Test Payment', + 10 => 'This test will simulate an order submitted by 0.01 Yuan for testing, if after the submission occurs a successful payment interface, you are ready to use the site payment functions.', + 11 => 'ec_contract', + 12 => 'Alipay signed user settings', + 13 => 'ec_alipay_creditdirectpay', + 14 => 'Use the account interface directly', + 15 => 'If after signing the agreement you allowed to direct use the merchant interface, choose it to allow integration withg real-time payments, such as recharge, product sell, etc.', + 16 => 'ec_alipay_partner', + 17 => 'Partner id (PID)', + 18 => 'Enter the Partner ID assigned to you by. The user fees is payed in accordance with the contract you are signing of the official agreement.If you have not signed, you can Sign now. If you have allready registered, you can Click here to get the PID and Key; If you have problems with Alipay signing, please consult the Support Service by phone 0571-88158090.', + 19 => 'ec_alipay_securitycode', + 20 => 'Transaction security check code (key)', + 21 => 'Enter the transaction security check code assigned to you by Alipay. This verification code enable you to pay with official Alipay business services.', + ), + ), + 160 => + array ( + 'index' => + array ( + 'E-Commerce Settings' => 'action=setting&operation=ec', + 'Tenpay' => 'action=ec&operation=tenpay', + ), + 'text' => + array ( + 0 => 'E-Commerce Settings » Tenpay', + 1 => 'ec_tenpay_tips', + 2 => '"TenPay" (http://www.tenpay.com) is a leading online payment platform in China founded by Tencent. Discuz! users can use an integration with this platform for make point transactions. +If you need to enable point recharge to be credited instantly, please use Tenpay Enterprise Edition and activate Immediate credit transaction; otherwise, you only need to activate Intermediary secure transactions". +If the cash transaction are enabled, in order to avoid improper operation resulting to the financial losses, please start using only the points payment general functionality (not include the TenPay button function). Be sure to carefully read the e-commerce section of the "User Manual", as confirmed fully understand and accept the processes and the related settings after use. +Because cash transactions are involved, in order to avoid financial losses caused by improper operations, please be sure to carefully read the "User\'s Manual" before starting to use the Tenpay points transaction function (excluding Tenpay buttons). For the e-commerce part, make sure to fully understand and accept the relevant processes and methods of use before setting this. +You can set up a method that allows users to pay online with cash to recharge their transaction points account, which is used to purchase a paid post content, purchase user group permissions, transfer points or upgrade user group functions. For Tenpay\'s points trading function, you need to enable trading points in "Point Settings" and set the corresponding points strategy at the same time to meet the needs of different occasions. Please be sure to set up your Tencent account correctly, otherwise it will cause the user\'s points cannot be credited to the account in real time after payment, resulting in a lot of order information that needs to be processed manually. +Except for further notice on the Discuz! official website or official forum, the Tenpay payment service provided by Discuz! charges a 1% handling fee per transaction. Please pay attention to the latest notices of related businesses, changes and adjustments of various policies or procedures in accordance with the information provided by Discuz! Official website or official forum. +Your using of Tenpay services is based on a completely voluntary basis. Except for Discuz!\'s financial losses caused by subjective malicious factors, Tencent Cloud will not be liable for any losses caused by the use of this function. +Tenpay service hotline: 0755-83762288-2 (24-hour service hotline)', + 3 => 'ec_tenpay_opentrans', + 4 => 'Secure transactions settings', + 5 => 'ec_tenpay_opentrans_chnid', + 6 => 'Secure transaction account', + 7 => 'Enable to use secure transactions with TenPay account. If you have no permissions to open secured transactions, you can Register Tenpay account.', + 8 => 'ec_tenpay_opentrans_key', + 9 => 'Secured transactions account key', + 10 => 'ec_tenpay', + 11 => 'Tenpay Settings', + 12 => 'ec_tenpay_bargainor', + 13 => 'Tenpay account number', + 14 => 'If you enable the Exchange feature, please enter a real and effective TenPay account, so users can charge for points exchange transactions related to cash payments. If the key is invalid or an account number is incorrect, it will cause the user will paid to a wrong account.If you do not have the Tenpay account, you can Register Tenpay Account', + 15 => 'ec_tenpay_key', + 16 => 'Tenpay account key', + 17 => 'Enter the corresponding business key number, consists of 32 uppercase and lowercase letters, numbers, can be get in TenPay servoce.', + 18 => 'ec_tenpay_check', + 19 => 'Payment test', + 20 => 'This test will simulate an order submitted by one Yuan for testing, if after the submission occurs a successful payment interface, you are ready to use the Tenpay payment functions.', + ), + ), + 161 => + array ( + 'index' => + array ( + 'E-Commerce Settings' => 'action=setting&operation=ec', + 'Orders' => 'action=ec&operation=orders', + ), + 'text' => + array ( + 0 => 'E-Commerce Settings » Orders', + 1 => 'ec_orders_tips', + 2 => 'You are at the starting points of using the transaction order management functionality (not included Alipay button function). Be sure to carefully read the "User Manual" in the part of electronic commerce, as confirmed fully understand and accept the processes and use then to delete.If your users complained that after online payment their points can not be automatically recharge accounts, it is may be due to your Alipay account interface settings are wrong, or your website is not enabled to use regular paiments. You can log in to Alipay transaction management interface, and look for details of the transaction confirmed the relevant orders.Order information retained for 60 days, so you can check and manage orders information within 60 days. After the 60 days the information will be automatically deleted.', + 3 => 'ec_orders_search', + 4 => 'Search for recharge points orders', + 5 => 'ec_orders_search_status', + 6 => 'Order status', + 7 => 'ec_orders_search_id', + 8 => 'Order ID', + 9 => 'ec_orders_search_users', + 10 => 'Search the payment username. Seperate multiple user names with a comma ",".', + 11 => 'ec_orders_search_buyer', + 12 => 'Alipay payment account users', + 13 => 'ec_orders_search_admin', + 14 => 'Processed by administrator', + 15 => 'ec_orders_search_submit_date', + 16 => 'Orders submitted in time range (yyyy-mm-dd)', + 17 => 'ec_orders_search_confirm_date', + 18 => 'Orders confirmed in time range (yyyy-mm-dd)', + ), + ), + 162 => + array ( + 'index' => + array ( + 'E-Commerce Settings' => 'action=setting&operation=ec', + 'Points rules' => 'action=ec&operation=credit', + ), + 'text' => + array ( + 0 => 'E-Commerce Settings » Points rules', + 1 => 'ec_credit_tips', + 2 => 'For use your own style icons You can modify icons in the static/image/traderank/ directory.', + 3 => 'ec_credit', + 4 => 'Points Rules', + 5 => 'ec_credit_maxcreditspermonth', + 6 => 'Maximum payment summ per each natural month (between buyers and sellers)', + 7 => 'Calculate total payments summ for each month', + ), + ), + 163 => + array ( + 'index' => + array ( + 'Feeds Management' => 'action=feed', + ), + 'text' => + array ( + 0 => 'Feeds Management', + 1 => 'feed_global_title', + 2 => 'Feed title', + 3 => 'Support html, such as: <b>bold</b> and <font color=red>color</font>', + 4 => 'feed_global_body_general', + 5 => 'Feed content', + 6 => 'Support html', + 7 => 'feed_global_image_1', + 8 => 'Image 1 address', + 9 => 'feed_global_image_1_link', + 10 => 'Image 1 link URL', + 11 => 'feed_global_image_2', + 12 => 'Image 2 address', + 13 => 'feed_global_image_2_link', + 14 => 'Image 2 link URL', + 15 => 'feed_global_image_3', + 16 => 'Image 3 address', + 17 => 'feed_global_image_3_link', + 18 => 'Image 3 link URL', + 19 => 'feed_global_image_4', + 20 => 'Image 4 address', + 21 => 'feed_global_image_4_link', + 22 => 'Image 4 link URL', + 23 => 'feed_global_dateline', + 24 => 'Publish time', + 25 => 'Format: yyyy-mm-dd H:i. If you specified a future date and time, then this feed will be shown only after this time.', + 26 => 'feed_global_hot', + 27 => 'Feed Hot value', + ), + ), + 164 => + array ( + 'index' => + array ( + 'Forum Management' => 'action=forums', + 'Edit Forum' => 'action=forums&operation=edit', + ), + 'text' => + array ( + 0 => 'Forum Management » Edit Forum', + 1 => 'forums_edit_basic_cat_name', + 2 => 'Category name', + 3 => 'forums_edit_basic_cat_name_color', + 4 => 'Category Name Color', + 5 => 'forums_edit_basic_cat_style', + 6 => 'Category style (will affect only for this category sub-forums)', + 7 => 'Each Forum category and it\'s sub-forums can have different styles, the style can be set independently for each category', + 8 => 'forums_edit_extend_forum_horizontal', + 9 => 'Show sub-forums horizontally', + 10 => 'Set this value to a number of forums you want to be displayed horizontally per line at the forum home. I.e. If you have 9 forum in a category and set the value to 3, then your forums will be shown in 3 rows by 3 forums per row. If set to 0, forums will be shown vertically.', + 11 => 'forums_edit_extend_cat_sub_horizontal', + 12 => 'Show sub-forums horizontally at the category page', + 13 => 'Set this value to a number of forums you want to be displayed horizontally per line at the category page. I.e. If you have 9 forums and set the value to 3, then your forums will be shown in 3 rows by 3 forums per row. If set to 0, forums will be shown vertically.', + 14 => 'forums_edit_extend_domain', + 15 => 'Parked domain', + 16 => 'Forum sub-domain will be effective only after you have set the root domain name. Set the root domain name', + 17 => 'forums_cat_display', + 18 => 'Display category', + 19 => 'If select "No", the category will be temporarily hidden, but users can still access this area through the Forum URL', + 20 => 'forums_edit_basic_shownav', + 21 => 'Show in navigation', + 22 => 'Choose whether to display in the main navigation', + 23 => 'setting_seo_forum_tips', + 24 => 'Site name {bbname}(Application: All Location) + Current forum name {forum}(Application: Except to forum home) + Upper forum name {fup}(Applications: Sub-Forum thread list and thread content) + District Name {fgroup}(Application: Except to forum home) + Post title {subject}(Application: Posts content page) + Topic summary {summary}(application: Posts content page) + Topic tag {tags}(application: Posts content page ) + Sub pages {page}(application: a list of topics page, post the contents page)', + 25 => 'forums_edit_basic_seotitle', + 26 => 'Title', + 27 => 'forums_edit_basic_keyword', + 28 => 'Meta-keywords', + 29 => 'Meta-keywords used for search engine optimization. Separate multiple keywords with a comma ","', + 30 => 'forums_edit_basic_seodescription', + 31 => 'Meta-Description', + 32 => 'Description for search engine optimization, used in the meta description tag', + ), + ), + 165 => + array ( + 'index' => + array ( + 'Forum Management' => 'action=forums', + 'Basic settings' => 'action=forums&operation=edit&anchor=basic', + ), + 'text' => + array ( + 0 => 'Forum Management » Basic settings', + 1 => 'forums_edit_tips', + 2 => 'Following settings are not inherited, that is only the current Forum, that will not impact on the lower sub-Forums.', + 3 => 'forums_edit_basic', + 4 => 'Basic settings', + 5 => 'forums_edit_basic_name', + 6 => 'Forum Name', + 7 => 'forums_edit_base_name_color', + 8 => 'Forum name color', + 9 => 'forums_edit_basic_icon', + 10 => 'Forum Icon', + 11 => 'forums_edit_basic_icon_width', + 12 => 'Icon width, px', + 13 => 'forums_edit_basic_banner', + 14 => 'Top banner', + 15 => 'forums_edit_basic_display', + 16 => 'Display Forum', + 17 => 'Select "Do not show" for the Forum will be temporarily hidden, but the Forum content will remain, and users can still directly access the Forum by URL with a fid. If selected "Show", then forum will not appear in the drop-down list, but will still appear in the appropriate Forum page or under.', + 18 => 'forums_edit_basic_shownav', + 19 => 'Show in navigation', + 20 => 'Choose whether to display in the main navigation', + 21 => 'forums_edit_basic_up', + 22 => 'Parent forum', + 23 => 'Parent Forum or category for this Forum ', + 24 => 'forums_edit_basic_redirect', + 25 => 'Forum redirect URL', + 26 => 'If you set this URL (such as http://www.discuz.com), the user click to the Forum will be redirected to this URL. For not use this feature left it blank.', + 27 => 'forums_edit_basic_description', + 28 => 'Forum description', + 29 => 'Enter a brief description of the Forum, that will be shown below the forum name.BB-Code supported.', + 30 => 'forums_edit_basic_rules', + 31 => 'Forum Rules', + 32 => 'Show a list of pages related to the current Forum rules, leave blank to not show, BB-Code supported.', + 33 => 'forums_edit_basic_keys', + 34 => 'Forum Alias', + 35 => 'After the static URL enabled, the Forum may be accessed through this alias name. For example, if the alias is set to "developer", the Forum URL then becomes "forum-developer-1.html". Note: The alias can contain only letters or numbers, and can not be only numeric.', + 36 => 'forums_edit_extend_domain', + 37 => 'Parked domain', + 38 => 'Forum sub-domain will be effective only after you have set the root domain name. Set the root domain name', + 39 => 'setting_seo_forum_tips', + 40 => 'Site name {bbname}(Application: All Location) + Current forum name {forum}(Application: Except to forum home) + Upper forum name {fup}(Applications: Sub-Forum thread list and thread content) + District Name {fgroup}(Application: Except to forum home) + Post title {subject}(Application: Posts content page) + Topic summary {summary}(application: Posts content page) + Topic tag {tags}(application: Posts content page ) + Sub pages {page}(application: a list of topics page, post the contents page)', + 41 => 'forums_edit_basic_seotitle', + 42 => 'Title', + 43 => 'forums_edit_basic_keyword', + 44 => 'Meta-keywords', + 45 => 'Meta-keywords used for search engine optimization. Separate multiple keywords with a comma ","', + 46 => 'forums_edit_basic_seodescription', + 47 => 'Meta-Description', + 48 => 'Description for search engine optimization, used in the meta description tag', + ), + ), + 166 => + array ( + 'index' => + array ( + 'Forum Management' => 'action=forums', + 'Extended settings' => 'action=forums&operation=edit&anchor=extend', + ), + 'text' => + array ( + 0 => 'Forum Management » Extended settings', + 1 => 'forums_edit_tips', + 2 => 'Following settings are not inherited, that is only the current Forum, that will not impact on the lower sub-Forums.', + 3 => 'forums_edit_extend', + 4 => 'Extended settings', + 5 => 'forums_edit_extend_style', + 6 => 'Forum style', + 7 => 'Enter the style used by visitors in this Forum', + 8 => 'forums_edit_extend_sub_horizontal', + 9 => 'Show sub-Forums horizontally at the forum page', + 10 => 'Set this value to a number of subforums you want to be displayed horizontally per line at the forum page. I.e. If you have 9 subforums and set the value to 3, then your subforums will be shown in 3 rows by 3 forums per row. If set to 0, subforums will be shown vertically.', + 11 => 'forums_edit_extend_subforumsindex', + 12 => 'Show sub-Forums in the Forum Home', + 13 => 'Forum Home at the bottom of the list shows the forum name and the lower sub-Forum links (if present). Note: This feature does not consider the child forums permissions for a visitor. Select "Default" to use global settings.', + 14 => 'forums_edit_extend_simple', + 15 => 'Show only lower-level sub-Forums', + 16 => 'Select "Yes" for show forums similar to categories, without post buttons and so on.', + 17 => 'forums_edit_extend_widthauto', + 18 => 'Forum width style', + 19 => 'Set the forum display style: Wide or Narrow. After setting the width, users will not free to switch the width style. That inherits the default global settings.', + 20 => 'forums_edit_extend_picstyle', + 21 => 'Enable the image list mode', + 22 => 'Images will be displayed in a list of topics.Thread cover can be unified: Set width and height', + 23 => 'forums_edit_extend_allowside', + 24 => 'Show Sidebar', + 25 => 'Select "Yes" for show the sidebar section contents at Home.', + 26 => 'forums_edit_extend_recommend_top', + 27 => 'Allow global stick', + 28 => 'Marked as global stick threads will be displayed in the global top and sub-top', + 29 => 'forums_edit_extend_defaultorderfield', + 30 => 'Thread default sort field', + 31 => 'Set the list of default sort fields. The default is "Reply time". Any addition of sort fields will increase the server loading.', + 32 => 'forums_edit_extend_defaultorder', + 33 => 'Thread default sort order', + 34 => 'Set the threads default sort order. The default is "Descending". Any addition to default will increase the server loading.', + 35 => 'forums_edit_extend_reply_background', + 36 => 'Quick reply box background image', + 37 => 'Set the image for use as a background in Quick Reply box', + 38 => 'forums_edit_extend_threadcache', + 39 => 'Thread Cache', + 40 => 'This feature can be used for decrease the server loading by using threads temporary cache. Cache coefficient range is from 0 to 100, the recommended value is 20 ~ 40. Set to 0 for disable the cache. If a disk space is enough, an increasing of the buffer factor will increase the cache effect.Note: For the Forum set up go to Basic settings -> Site page cache settings, and adjust their caching time.', + 41 => 'forums_edit_extend_relatedgroup', + 42 => 'Related Groups/Forums', + 43 => 'Fill the fid associated with the group/forum, separated by comma ",". Forum page will display a list of topics, associated with the group/forum theme', + 44 => 'forums_edit_extend_edit_rules', + 45 => 'Allow moderators to edit this Forum rules', + 46 => 'This settings allowed edit the forum rules to Super Moderators and Moderators', + 47 => 'forums_edit_extend_disablecollect', + 48 => 'Disable Collections', + 49 => 'Select "Yes" to prevent users from using collections', + 50 => 'forums_edit_extend_recommend', + 51 => 'Enable to recommend threads', + 52 => 'This setting enable/disable the "recommend" function', + 53 => 'forums_edit_extend_recommend_sort', + 54 => 'Moderator Recommended method', + 55 => 'Automatic: recommended topics list generated in accordance with topics recommended level.Manuall: recommended list generated by the moderator manually.Semi-automatic: similar to manual method, when a list of articles generate manually, and than displayed a specified number of articles, it will automatically fill in accordance with the rules recommended by the theme Number of rates.', + 56 => 'forums_edit_extend_recommend_orderby', + 57 => 'Order recommended by', + 58 => 'This ordering is eefective only for automatic and semi-automatic mode of recommended threads generation. Used only Descending order allways.', + 59 => 'forums_edit_extend_recommend_num', + 60 => 'Number of recommended topics to show', + 61 => 'Set a number of recommended threads displayed. Default is 10, not more than 20.', + 62 => 'forums_edit_extend_recommend_imagenum', + 63 => 'Number of appendix icons for Recommended Threads', + 64 => 'How many appendix icons to show for identify a Recommended thread. Default is 5. Set to 0 for disble recommended icons. Do not use more than 10.', + 65 => 'forums_edit_extend_recommend_imagesize', + 66 => 'Recommended icon size', + 67 => 'Default recommended icon size is 297 x 223', + 68 => 'forums_edit_extend_recommend_maxlength', + 69 => 'Title length', + 70 => 'Set the max length of title, when the title is longer than this valuse, it will be cutted automatically, 0 is disable', + 71 => 'forums_edit_extend_recommend_cachelife', + 72 => 'Cache time (seconds)', + 73 => 'For some sort resource-intensive search operations, the proposed value is 900 seconds. Set to 0 for no cache (require very expensive system resources).', + 74 => 'forums_edit_extend_recommend_dateline', + 75 => 'Recommended live time', + 76 => 'Set the time period (in hours) from the thread recommend moment, when the recommended thread must present in a recommended list. Set to 0 for use all time.', + ), + ), + 167 => + array ( + 'index' => + array ( + 'Forum Management' => 'action=forums', + 'Post options' => 'action=forums&operation=edit&anchor=posts', + ), + 'text' => + array ( + 0 => 'Forum Management » Post options', + 1 => 'forums_edit_tips', + 2 => 'Following settings are not inherited, that is only the current Forum, that will not impact on the lower sub-Forums.', + 3 => 'forums_edit_posts', + 4 => 'Post options', + 5 => 'forums_edit_posts_modposts', + 6 => 'Post premoderation', + 7 => 'Select "Yes" for all posts in this forum must be validated by moderator/administrator before it will be visible to others. After setting you can select user groups which posts must be validated, and groups which can make such validation.', + 8 => 'forums_edit_posts_alloweditpost', + 9 => 'Allow to edit posts', + 10 => 'Select "Yes" for allow users to edit their own posts', + 11 => 'forums_edit_posts_recyclebin', + 12 => 'Enable Recycle Bin', + 13 => 'If this feature enabled, all deleted topics will be moved to the Recycle Bin, instead of being directly deleted', + 14 => 'forums_edit_posts_html', + 15 => 'Allow to use HTML code', + 16 => 'NOTE: If enabled, it will bring serious security risks. Please use with caution!', + 17 => 'forums_edit_posts_bbcode', + 18 => 'Allow to use BB-Code', + 19 => 'BB-Code is a simplified and safe method fore page formatting.', + 20 => 'forums_edit_posts_imgcode', + 21 => 'Allow use [img] Code', + 22 => '[img] code enable users to post images from other sites', + 23 => 'forums_edit_posts_mediacode', + 24 => 'Allow to use multimedia code', + 25 => 'Allow users to use multimedia code [audio],[video],[flash] for insert multimedia content in their posts.', + 26 => 'forums_edit_posts_smilies', + 27 => 'Allow to use smiles', + 28 => 'This feature enable to conver textual smile expressions, such as ":)" to smile images.', + 29 => 'forums_edit_posts_jammer', + 30 => 'Enable content jammer', + 31 => 'Select "Yes" for add a disturbance random string into the post content, so the visitor can not copy the original content. Note: This feature will slightly increase the server loading.', + 32 => 'forums_edit_posts_anonymous', + 33 => 'Allow anonymous posting', + 34 => 'Whether to allow users to publish threads and replies as anonymous. Anonymous posting is different from the guests posted, anonymous users need to log in before posting, and moderators and administrators can view the real author.', + 35 => 'forums_edit_posts_disablethumb', + 36 => 'Disable to add attachment image thumbnail', + 37 => 'If select "Yes", uploaded images to this forum will not auto-create thumbnails, even if the global setting for this feature is turned on. If "No" - the thumbnail decision will be in accordance with the default system settings.', + 38 => 'forums_edit_posts_disablewatermark', + 39 => 'Disable watermark', + 40 => 'Select "Yes" for disable tu use watermark even if it is enabled by global settings. Select "No" for use the system default watermark settings.', + 41 => 'forums_edit_posts_allowpostspecial', + 42 => 'Allow to post special threads', + 43 => 'forums_edit_posts_threadplugin', + 44 => 'Plugin for allow to publish special threads', + 45 => 'Set the extensions to allow publish special threads', + 46 => 'forums_edit_posts_allowspecialonly', + 47 => 'Allow to publish only special threads', + 48 => 'This settings disable to publish other threads than special', + 49 => 'forums_edit_posts_autoclose', + 50 => 'Thread auto close', + 51 => 'Set if the thread can be automatically closed after a certain time, to prohibit ordinary users replies.', + 52 => 'forums_edit_posts_autoclose_time', + 53 => 'Auto-close time (days)', + 54 => 'Enter a number of days after creating or last reply when a thread will closed automatically for ordinary users (they can not reply). This setting take effect only when the "Auto-close" feature enabled.', + 55 => 'forums_edit_posts_attach_ext', + 56 => 'Enabled attachment type (lowercase)', + 57 => 'Set allowed to upload attachments extensions. Separate multiple extensions with a comma ",". This setting has a priority against the user group settings. Left blank for use the user groups attachment type settings.', + 58 => 'forums_edit_posts_allowfeed', + 59 => 'Enable dynamic feeds', + 60 => 'If this is turned ON, users by default allowed to broadcast Feed. After the feed is published the user can remove the posting. It is recommended to set the Forum Privacy settings..', + 61 => 'forums_edit_posts_commentitem', + 62 => 'Preset the General Comment List', + 63 => 'Enter one comment per line. If an empty line presents in a list, it will be displayed an empty item in a bottom of the drop-down menu as an alternative point of view. This setting take effect only if comments enabled at all. If empty, the global setting "Common thread preset Comments" will be used.', + 64 => 'forums_edit_posts_noantitheft', + 65 => 'Disable Anti-grab', + 66 => 'Turning off the anti-grab function can save some amount of server resources. It is recommended to disable the anti-grab function for spam-type forums.', + 67 => 'forums_edit_posts_noforumhidewater', + 68 => 'Disable to hide the meaningless posts', + 69 => 'The hide of meaningless posts function can be used for any single forum. Suitable for some Spam-type forums.', + 70 => 'forums_edit_posts_noforumrecommend', + 71 => 'Disable to Recommend Replies', + 72 => 'Turning off the Recommend Replies function can save some amount of server resources. It is recommended to disable the Recommend Replies function for spam-type forums.', + ), + ), + 168 => + array ( + 'index' => + array ( + 'Forum Management' => 'action=forums', + 'Attach type' => 'action=forums&operation=edit&anchor=attachtype', + ), + 'text' => + array ( + 0 => 'Forum Management » Attach type', + 1 => 'forums_edit_attachtype_tips', + 2 => 'This feature can limit the maximum size of a particular type of attachments in this forum. When set here value is less than a user group the maximum size allowed, The attachment size limit of the specified type will be set to this limit.You can overall disable some type attachments to be uploaded by setting the maximum size of certain types to 0.Leave empty for use the global settings for attachment type size.', + ), + ), + 169 => + array ( + 'index' => + array ( + 'Forum Management' => 'action=forums', + 'Extended credits change strategy' => 'action=forums&operation=edit&anchor=credits', + ), + 'text' => + array ( + 0 => 'Forum Management » Extended credits change strategy', + 1 => 'forums_edit_tips', + 2 => 'Following settings are not inherited, that is only the current Forum, that will not impact on the lower sub-Forums.', + 3 => 'forums_edit_credits_policy', + 4 => 'Extended credits change strategy', + ), + ), + 170 => + array ( + 'index' => + array ( + 'Forum Management' => 'action=forums', + 'Thread types configure' => 'action=forums&operation=edit&anchor=threadtypes', + ), + 'text' => + array ( + 0 => 'Forum Management » Thread types configure', + 1 => 'forums_edit_tips', + 2 => 'Following settings are not inherited, that is only the current Forum, that will not impact on the lower sub-Forums.', + 3 => 'forums_edit_threadtypes_config', + 4 => 'Thread types configure', + 5 => 'forums_edit_threadtypes_status', + 6 => 'Enable thread categories', + 7 => 'Set if enable thread categories in this Forum. To enable this feature you have to set the appropriate categories list.', + 8 => 'forums_edit_threadtypes_required', + 9 => 'Thread category Requirements', + 10 => 'Whether to force a user to choose category when a new thread published.', + 11 => 'forums_edit_threadtypes_listable', + 12 => 'Allow Browse by category', + 13 => 'Users can browse content by thread Category Filter', + 14 => 'forums_edit_threadtypes_prefix', + 15 => 'Category prefix', + 16 => 'This prefix is displayed before the category name', + 17 => 'forums_edit_threadtypes', + 18 => 'Thread types', + 19 => 'You can enable a thread categories used in the Forum, that will be used in many cases. The proposed categories are important only if used a "flat panel" approach. For more categories used a "Drop down" approach.', + ), + ), + 171 => + array ( + 'index' => + array ( + 'Forum Management' => 'action=forums', + 'Forum categories' => 'action=forums&operation=edit&anchor=threadsorts', + ), + 'text' => + array ( + 0 => 'Forum Management » Forum categories', + 1 => 'forums_edit_tips', + 2 => 'Following settings are not inherited, that is only the current Forum, that will not impact on the lower sub-Forums.', + 3 => 'forums_edit_threadsorts', + 4 => 'Forum categories', + 5 => 'forums_edit_threadsorts_status', + 6 => 'Enable forum categories', + 7 => 'forums_edit_threadtypes_required', + 8 => 'Thread category Requirements', + 9 => 'Whether to force a user to choose category when a new thread published.', + 10 => 'forums_edit_threadtypes_prefix', + 11 => 'Category prefix', + 12 => 'This prefix is displayed before the category name', + 13 => 'forums_edit_threadsorts_default', + 14 => 'Enable to show default categories', + 15 => 'If enabled choose the categories below', + ), + ), + 172 => + array ( + 'index' => + array ( + 'Forum Management' => 'action=forums', + 'Forum permissions' => 'action=forums&operation=edit&anchor=perm', + ), + 'text' => + array ( + 0 => 'Forum Management » Forum permissions', + 1 => 'forums_edit_tips', + 2 => 'Following settings are not inherited, that is only the current Forum, that will not impact on the lower sub-Forums.', + 3 => 'forums_edit_perm_price', + 4 => 'Paid price', + 5 => 'When you set a price, Users must use specified credit transaction fee before entering this forum. When the price increased, Users also need to pay an additional credit fee.', + 6 => 'forums_edit_perm_passwd', + 7 => 'Access Password', + 8 => 'Set a password the users must enter to get access to this Forum', + 9 => 'forums_edit_perm_users', + 10 => 'Access for specified users', + 11 => 'Enable acces only for specified users. Enter one user name per line', + 12 => 'forums_edit_perm_medal', + 13 => 'Access for medal having', + 14 => 'For access this Forum a user must have a specified medal', + 15 => 'forums_edit_perm_forum', + 16 => 'Forum permissions', + 17 => 'Select permissions from the following options:Browse - enable the user group to visit the Forum posts. Create new thread - in addition to visits enable to publish new thread. Reply - in addition to visits enable to publish replies. View attachments - enable to download/view attachments. Upload attachments - in addition to visits enable to upload attachments.', + 18 => 'forums_edit_perm_formula', + 19 => 'Permissions formula', + 20 => 'When you set the permissions formula, the only member that consistent this formula can visit the Forum. I.e. the formula "posts > 100 and extcredits1 > 10" means that the member must have > 100 posts and the extended points (prestige) > 10.Date format "{Y-M-D}", such as "{2009-10-1}". IP format "{x.x.x.x}", you can enter a full address or only the IP beginning, such as "{10.0.0.1}","{192.168.0}"', + 21 => 'forums_edit_perm_spview', + 22 => 'Unlimited user groups', + 23 => 'forums_edit_perm_formulapermmessage', + 24 => 'No permission prompt', + 25 => 'Custom prompt about no rights to access the information. If permissions not enough, a formula expression will be displayed', + ), + ), + 173 => + array ( + 'index' => + array ( + 'Admin Team' => 'action=founder', + ), + 'text' => + array ( + 0 => 'Admin Team', + 1 => 'home_security_founder', + 2 => 'You can assign different functions for your management team members, so they can manage different site services."co-Administrator" can have a part of "Administrator" permissions that are not enabled for other management team.', + ), + ), + 174 => + array ( + 'index' => + array ( + 'Group Settings' => 'action=group&operation=setting', + ), + 'text' => + array ( + 0 => 'Group Settings', + 1 => 'groups_setting_basic', + 2 => 'Basic settings', + 3 => 'groups_setting_basic_mod', + 4 => 'Premoderate new groups', + 5 => 'If Administrator need to audit new created groups', + 6 => 'groups_setting_basic_iconsize', + 7 => 'Group icon file size (kb)', + 8 => 'Set the maximum size of the group icon file, or 0 or blank for no restrictions', + 9 => 'groups_setting_basic_recommend', + 10 => 'Recommended Groups', + 11 => 'Enter the group ID to be recommended. Use a comma "," for multiple groups. Maximum is 8 groups, all other will be ignored. Example: 23,56,983', + 12 => 'groups_setting_admingroup', + 13 => 'Select Management privileges for the User Group (corresponding administrative privileges in the group and forum)', + 14 => 'forums_edit_posts_allowfeed', + 15 => 'Enable dynamic feeds', + 16 => 'If this is turned ON, users by default allowed to broadcast Feed. After the feed is published the user can remove the posting. It is recommended to set the Forum Privacy settings..', + ), + ), + 175 => + array ( + 'index' => + array ( + 'newgroup_userperm' => 'action=group&operation=userperm', + ), + 'text' => + array ( + 0 => 'newgroup_userperm', + 1 => 'admingroup_edit_threadperm', + 2 => 'Thread management privileges', + 3 => 'admingroup_edit_digest_thread', + 4 => 'Allow thread digest', + 5 => 'Set allowed digest type', + 6 => 'admingroup_edit_postperm', + 7 => 'Post management privileges', + 8 => 'admingroup_edit_modcpperm', + 9 => 'Moderator panel privileges', + 10 => 'group_userperm_others', + 11 => 'Other rights', + ), + ), + 176 => + array ( + 'index' => + array ( + 'Group Levels' => 'action=group&operation=level', + ), + 'text' => + array ( + 0 => 'Group Levels', + 1 => 'group_level_tips', + 2 => 'Do not add a lot of Group levels.When a group is allowed to post but the user has no enough points, such user will see a caution, possible because of the group main brush points.Default level icon size is 25 X 25 pixels.', + ), + ), + 177 => + array ( + 'index' => + array ( + 'Group Management' => 'action=group&operation=manage', + ), + 'text' => + array ( + 0 => 'Group Management', + 1 => 'groups_manage_name', + 2 => 'Title', + 3 => 'groups_manage_id', + 4 => 'Group ID', + 5 => 'groups_editgroup_category', + 6 => 'Group Category', + 7 => 'You can hold down CTRL for multiple selection', + 8 => 'groups_manage_membercount', + 9 => 'Members', + 10 => 'groups_manage_threadcount', + 11 => 'Threads', + 12 => 'groups_manage_replycount', + 13 => 'Replies', + 14 => 'groups_manage_createtime', + 15 => 'Publish time', + 16 => 'groups_manage_updatetime', + 17 => 'Update time', + 18 => 'groups_manage_founder', + 19 => 'Founder', + 20 => 'groups_manage_founder_uid', + 21 => 'Founder UID', + ), + ), + 178 => + array ( + 'index' => + array ( + 'Magics' => 'action=magics', + ), + 'text' => + array ( + 0 => 'Magics', + 1 => 'magics_tips', + 2 => 'System magic items located in the source/class/magic/ folder. The plug-in magics located in the source/plugin/your_plugin_name/magic/ folder. Before creating a new magic, you have to read carefully the Discuz! Technical Documentation!', + 3 => 'magics_config_open', + 4 => 'Enable Magic center', + 5 => 'Whether to allow the Magic Center functions', + 6 => 'magics_config_discount', + 7 => 'Magic return discount', + 8 => 'Set the return a magic to the system price discount as a percentage value. For example if this value is 85, then the system will offer to user 85% of the original price when returning the magic. For prevent of lose money, it is recommended set the value not more than 100. Leave blank or set to 0 for disable the magic return operation.', + ), + ), + 179 => + array ( + 'index' => + array ( + 'HTML Management' => 'action=makehtml&operation=all', + ), + 'text' => + array ( + 0 => 'HTML Management', + 1 => 'makehtml_tips_all', + 2 => 'The article HTML file generated after the specified start time releasedHTML files generated after the specified start time publish article channelsHTML file generated portal Homepage', + 3 => 'start_time', + 4 => 'Start time', + ), + ), + 180 => + array ( + 'index' => + array ( + 'HTML Management' => 'action=makehtml', + 'Make HTML' => 'action=makehtml&operation=makehtmlsetting', + ), + 'text' => + array ( + 0 => 'HTML Management » Make HTML', + 1 => 'setting_functions_makehtml', + 2 => 'Make HTML', + 3 => 'setting_functions_makehtml_extendname', + 4 => 'Static file extension', + 5 => 'Set the extension for all static files, default is html', + 6 => 'setting_functions_makehtml_articlehtmldir', + 7 => 'Directory for store article HTML', + 8 => 'Set a subfolder name in the current category folder for store article static files, starting from the site root directory, without ending slash /. If this subfolder name is empty, then static files will be stored in the current category folder.', + 9 => 'setting_functions_makehtml_htmldirformat', + 10 => 'Directory format', + 11 => 'Set the static file storage directory/sub-directory structure, 0:/Ym/, 1:/Ym/d/, 2:/Y/m/, 3:/Y/m/d/', + 12 => 'setting_functions_makehtml_topichtmldir', + 13 => 'Topics HTML store directory', + 14 => 'Topic static files stored in a subfolder starting from the site root directory, without ending slash /. If empty, then topic HTML files not generated.', + 15 => 'setting_functions_makehtml_indexname', + 16 => 'Portal Home static file name', + 17 => 'Generate static page file name for portal home, without extension. Default is "index"', + ), + ), + 181 => + array ( + 'index' => + array ( + 'HTML Management' => 'action=makehtml', + 'Clean HTML' => 'action=makehtml&operation=cleanhtml', + ), + 'text' => + array ( + 0 => 'HTML Management » Clean HTML', + 1 => 'setting_functions_makehtml_cleanhtml', + 2 => 'No need to clean the HTML', + 3 => 'Need to clean up HTML', + ), + ), + 182 => + array ( + 'index' => + array ( + 'Medal Center' => 'action=medals', + ), + 'text' => + array ( + 0 => 'Medal Center', + 1 => 'medals_tips', + 2 => 'This feature can be used to set the information about granted to users Medals. Enter the image file name, and upload the corresponding image file to the static/image/common/ directory.', + ), + ), + 183 => + array ( + 'index' => + array ( + 'Aliases' => 'action=members&operation=repeat', + ), + 'text' => + array ( + 0 => 'Aliases', + 1 => 'members_search_repeatuser', + 2 => 'User name', + 3 => 'members_search_uid', + 4 => 'User UID', + 5 => 'members_search_repeatip', + 6 => 'IP address', + ), + ), + 184 => + array ( + 'index' => + array ( + 'Add User' => 'action=members&operation=add', + ), + 'text' => + array ( + 0 => 'Add User', + 1 => 'username', + 2 => 'User name', + 3 => 'password', + 4 => 'Password', + 5 => 'email', + 6 => 'Email', + 7 => 'usergroup', + 8 => 'User Group', + 9 => 'members_add_email_notify', + 10 => 'Send notification to the above address', + ), + ), + 185 => + array ( + 'index' => + array ( + 'Edit members user group' => 'action=members&operation=group', + ), + 'text' => + array ( + 0 => 'Edit members user group', + 1 => 'usergroup', + 2 => 'User Group', + 3 => 'members_group_group', + 4 => 'Respective user group', + 5 => 'members_group_related_adminid', + 6 => 'Respective management groups', + 7 => 'members_group_validity', + 8 => 'User group expiration', + 9 => 'For setting the expiration of the current user group, enter the user group deadline. Leave it blank for no date restrictions', + 10 => 'members_group_orig_adminid', + 11 => 'After expired change the user group to', + 12 => 'members_group_orig_groupid', + 13 => 'After expired change the management group to', + 14 => 'members_group_extended', + 15 => 'Extended user group', + 16 => 'Note: valid expiration format is yyyy-mm-dd. Leave blank the user group does not automatically expire.', + 17 => 'members_edit_reason', + 18 => 'Edit reason', + 19 => 'members_group_ban_reason', + 20 => 'Ban reason', + 21 => 'Enter the Ban reason that will be shown to user', + ), + ), + 186 => + array ( + 'index' => + array ( + 'Edit user points' => 'action=members&operation=credit', + ), + 'text' => + array ( + 0 => 'Edit user points', + 1 => 'members_credit_tips', + 2 => 'Discuz! support only 8 expanded settings for user points, and only enabled points settings may be edited.Modifying the particular user points will cause the total user points will be changed, and accordanly the user level will be changed too. Therefore, be carefully while change points.', + 3 => 'members_edit_reason', + 4 => 'Edit reason', + 5 => 'members_credit_reason', + 6 => 'Modify user points reason', + 7 => 'Enter the reason why you modified the user points. This operation is recorded for future analysis.', + ), + ), + 187 => + array ( + 'index' => + array ( + 'Edit User Permissions' => 'action=members&operation=access', + ), + 'text' => + array ( + 0 => 'Edit User Permissions', + 1 => 'members_access_tips', + 2 => 'User permissions in a forum are based on a combination of the site configuration and personal user privileges. If you set a non-default state, the user group limits will not used.For delete a user Forum special permissions, you only need to set all his permissions in the forum to default values.For modify a user Forum rights, you only need to add him non-default permission settings.', + 3 => 'members_access_add_forum', + 4 => 'Select Forum', + 5 => 'Select a Forum to set permissions. The following permission settings affects the user permissions only in this Forum', + 6 => 'members_access_add_', + 7 => '', + ), + ), + 188 => + array ( + 'index' => + array ( + 'Edit member' => 'action=members&operation=edit', + ), + 'text' => + array ( + 0 => 'Edit member', + 1 => 'members_edit_username', + 2 => 'User name', + 3 => 'members_edit_avatar', + 4 => 'Avatar', + 5 => 'members_edit_statistics', + 6 => 'Statistics', + 7 => 'members_edit_password', + 8 => 'New password', + 9 => 'Leave blank, if you do not want to change the current password', + 10 => 'members_edit_unbind', + 11 => 'Unbind the QQ account', + 12 => 'If QQ account of the current user is lost or stolen, you can remove the binded QQ account.', + 13 => 'members_edit_uinblack', + 14 => 'Ban QQ account', + 15 => 'Block the user with current QQ account. After blocking this QQ account can not login the site', + 16 => 'members_edit_clearquestion', + 17 => 'Remove user security question', + 18 => 'Select "Yes" to clear the user security questions, so the user will not need to answer security questions when login. Select "No" for not change the user security question settings', + 19 => 'members_edit_status', + 20 => 'Lock the current user', + 21 => 'members_edit_freeze', + 22 => 'User freeze status', + 23 => 'members_edit_email', + 24 => 'Email', + 25 => 'members_edit_email_emailstatus', + 26 => 'Mailbox activated status', + 27 => 'members_edit_posts', + 28 => 'Posts', + 29 => 'members_edit_digestposts', + 30 => 'Digests', + 31 => 'members_edit_regip', + 32 => 'Reg IP', + 33 => 'members_edit_regdate', + 34 => 'Registration date', + 35 => 'members_edit_lastvisit', + 36 => 'Last Visit', + 37 => 'members_edit_lastip', + 38 => 'Last IP', + 39 => 'members_edit_addsize', + 40 => 'Add extra space capacity', + 41 => 'members_edit_addfriend', + 42 => 'Number of additional friends', + 43 => 'members_edit_timeoffset', + 44 => 'Time Offset', + 45 => 'User local time offset from GMT. Set 9999 to use the default time offset setting.', + 46 => 'members_edit_invisible', + 47 => 'Enable invisible mode', + 48 => 'members_edit_option', + 49 => 'Forum Options', + 50 => 'members_edit_cstatus', + 51 => 'Custom title', + 52 => 'members_edit_signature', + 53 => 'Signature', + 54 => 'members_profile', + 55 => 'User profile', + ), + ), + 189 => + array ( + 'index' => + array ( + 'Edit User' => 'action=members&operation=search', + ), + 'text' => + array ( + 0 => 'Edit User', + 1 => 'members_search_table', + 2 => 'User table', + 3 => 'When the user data updated, User-related data in the archive table is not updated', + 4 => 'members_search_user', + 5 => 'User name', + 6 => 'You can use the wildcard *, separated more than one user name with a comma ","', + 7 => 'members_search_uid', + 8 => 'User UID', + 9 => 'members_search_group', + 10 => 'Main user group', + 11 => 'This setting allow the user groups involved in the search, you can hold down the CTRL key for multiple choice', + 12 => 'members_search_medal', + 13 => 'Medals', + 14 => 'Set the specified Medal that users have. Hold down the CTRL for multiple choice', + 15 => 'members_search_usertag', + 16 => 'User Tags', + 17 => 'Set specified user tags. Hold down the CTRL for multiple choice', + 18 => 'members_search_conisbind', + 19 => 'Has QQ bind', + 20 => 'members_search_uinblacklist', + 21 => 'QQ account is blocked', + 22 => 'members_search_online', + 23 => 'Is online', + 24 => 'members_search_lockstatus', + 25 => 'is locked', + 26 => 'members_search_freezestatus', + 27 => 'Freeze status', + 28 => 'members_search_emailstatus', + 29 => 'is Email verified', + 30 => 'members_search_avatarstatus', + 31 => 'is Avatar uploaded', + 32 => 'members_search_email', + 33 => 'Email', + 34 => 'You can use the wildcard *', + 35 => 'members_search_friendsrange', + 36 => 'Number of friends range', + 37 => 'members_search_postsrange', + 38 => 'Number of Posts in range', + 39 => 'members_search_regip', + 40 => 'Register IP begin with', + 41 => 'Such as the 192.168, you can use a wildcard *', + 42 => 'members_search_lastip', + 43 => 'Last visit IP begin with', + 44 => 'Such as the 192.168, you can use a wildcard *', + 45 => 'members_search_oltimerange', + 46 => 'User online time (hours)', + 47 => 'members_search_regdaterange', + 48 => 'Registration date in range', + 49 => 'members_search_lastvisitrange', + 50 => 'Last visit time in range', + 51 => 'members_search_lastpostrange', + 52 => 'Last post time in range', + 53 => 'members_search_group_fid', + 54 => 'Group ID (separate multiple groups by a comma)', + 55 => 'members_search_verify', + 56 => 'Verify', + 57 => 'members_search_birthday', + 58 => 'Birthday', + ), + ), + 190 => + array ( + 'index' => + array ( + 'User sub-table' => 'action=membersplit&operation=check', + ), + 'text' => + array ( + 0 => 'User sub-table', + 1 => 'membersplit_check_tips', + 2 => 'Using the user optimization can significantly improve the site performance.Because of the physical examination operation is slow, the results of the physical examination is cached once per day', + ), + ), + 191 => + array ( + 'index' => + array ( + 'User sub-table' => 'action=membersplit&operation=check', + ), + 'text' => + array ( + 0 => 'User sub-table', + 1 => 'membersplit_tips', + 2 => 'Using the user optimization can significantly improve the site performance.When the number of users is large, the optimizing can improve performance more than 30%, we strongly recommend to perform user table optimizationDepending on server performance, Appropriate adjustments to single-step optimization of the number.It is recommended to close the site before optimization!', + ), + ), + 192 => + array ( + 'index' => + array ( + 'Links' => 'action=misc&operation=link', + ), + 'text' => + array ( + 0 => 'Links', + 1 => 'misc_link_tips', + 2 => 'If you do not want to display links at the page, you can disable it in the "Style settings". + Link without description will be displayed in a compact form.', + ), + ), + 193 => + array ( + 'index' => + array ( + 'Related links' => 'action=misc&operation=relatedlink', + ), + 'text' => + array ( + 0 => 'Related links', + 1 => 'misc_relatedlink_tips', + 2 => 'Add the relevant text links that will occur within the designated area automatically.', + ), + ), + 194 => + array ( + 'index' => + array ( + 'Editor Settings' => 'action=setting&operation=editor', + 'BB Code' => 'action=setting&operation=bbcode', + ), + 'text' => + array ( + 0 => 'Editor Settings » BB Code', + 1 => 'misc_bbcode_edit_tips', + 2 => 'When posting displayed in a floating window, it can be displayed about 22 icons only, the other exceeded icons will be automatically hidden in the BBCode editor.For security reasons, if you enable the [flash] code, it may contain unsafe code, be sure to set a user group permissions, it is recommended to set only the particular user groups or management groups can use it to avoid possible security issues.Custom BB-Codes available only if set the icon file and the "Allow to use custom BBCode" permitted for the user group.', + ), + ), + 195 => + array ( + 'index' => + array ( + 'Bad Word Filter' => 'action=misc&operation=censor', + ), + 'text' => + array ( + 0 => 'Bad Word Filter', + 1 => 'misc_censor_tips', + 2 => 'The content before replacement can use the qualifier {x} to limit the ignorable text between two adjacent characters, and x is the number of bytes to be ignored. For example, "a{1}s{2}s" (without quotation marks) can filter "ass" or "axs xs" and "axsxxs" and so on. For Chinese characters, if the GBK and Big-5 versions are used, each Chinese character is equivalent to 2 bytes; if the UTF-8 version is used, each Chinese character is equivalent to 3 bytes.In order not to affect the efficiency of the program, please do not set too many unnecessary filtering content.The review is only valid for the content in the forumIf you are not a forum administrator, you will only be able to edit or delete items you have added.If the sensitive word starts and ends with "/" (without quotation marks), it means that the format is regular expression. At this time, the replacement content can be used to refer to the sub-patterns in the regular expression with "(n)", such as "/1\\d{10}([^\\d]+|$)/" replace with "Phone(1)".', + 3 => 'misc_censor_batch_add_tips', + 4 => 'Enter one censor rule per line. Use "=" to separate sensitive words and replacement words;If you want to prohibit the publication of text containing a certain word, instead of replacing the filter, please set the corresponding replacement content to {BANNED}; if you need to automatically mark the text containing a certain word as required of manual review, Instead of directly displaying or replacing the filter, please set the corresponding replacement content to {MOD} (review is only valid for the content in the forum).If you just want to directly replace a word with **, just enter the word;For example:toobadnobadbadword=goodsexword={BANNED}When exporting/importing, it supports word category import. When importing without a category, you can specify the import category by selecting. Automatically fall into the default category when there is no category', + 5 => 'misc_censor_wordtype_tips', + 6 => 'The default type is a built-in type. When you delete a group category, the word filter will be automatically incorporated into the default category.', + ), + ), + 196 => + array ( + 'index' => + array ( + 'Thread stamps' => 'action=misc&operation=stamp', + 'Thread icon' => 'action=misc&operation=stamp&anchor=list', + ), + 'text' => + array ( + 0 => 'Thread stamps » Thread icon', + 1 => 'misc_stamp_listtips', + 2 => 'The system reserved for thread identification 100 stamp positions, respectively stamp ID range 0 ~ 99.Do not arbitrarily modify the stamp ID, otherwise it will result to threads that have stamped will be disordered.When the stamp is associated with operation, performming the appropriate operation will automatically add the stamp to the topic.', + ), + ), + 197 => + array ( + 'index' => + array ( + 'Thread stamps' => 'action=misc&operation=stamp', + 'Icon List' => 'action=misc&operation=stamp&anchor=llist', + ), + 'text' => + array ( + 0 => 'Thread stamps » Icon List', + 1 => 'misc_stamp_listtips', + 2 => 'The system reserved for thread identification 100 stamp positions, respectively stamp ID range 0 ~ 99.Do not arbitrarily modify the stamp ID, otherwise it will result to threads that have stamped will be disordered.When the stamp is associated with operation, performming the appropriate operation will automatically add the stamp to the topic.', + ), + ), + 198 => + array ( + 'index' => + array ( + 'Thread stamps' => 'action=misc&operation=stamp', + 'Add' => 'action=misc&operation=stamp&anchor=add', + ), + 'text' => + array ( + 0 => 'Thread stamps » Add', + 1 => 'misc_stamp_addtips', + 2 => 'You can choose to add into a stamp or icon.Image name must be filled, If no name specified so no pictures will be added.', + ), + ), + 199 => + array ( + 'index' => + array ( + 'Attachment type size' => 'action=misc&operation=attachtype', + ), + 'text' => + array ( + 0 => 'Attachment type size', + 1 => 'misc_attachtype_tips', + 2 => 'This feature may limit some attachment types to a particular maximum size. When it was set smaller than the maximum allowed size of the user group, this attachment type size limit will prevail.You can set the maximum size to 0 for certain types of attachments for prohibit such attachments to be uploaded at all.', + ), + ), + 200 => + array ( + 'index' => + array ( + 'Cron Scheduler' => 'action=misc&operation=cron', + ), + 'text' => + array ( + 0 => 'Cron Scheduler', + 1 => 'misc_cron_tips', + 2 => 'Discuz! provide a set of tasks that the system will automatically performs at specified time. If required, you can easily expand this site feature.Sheduled tasks are closely associated with the system core features. If this settings is incorrect, it may results in improper site functioning in a hidden mode, and the site will not work correctly, so please be sure of correct working of task script and its parameters. So do it only if you clearly know what you are doing.All the sheduled tasks here used a difference between the current site time and the system default time setting, and not according to the time of a user or administrator display or change configuration settings.', + ), + ), + 201 => + array ( + 'index' => + array ( + 'Hot Threads' => 'action=misc&operation=focus', + 'Manage' => 'action=misc&operation=focus', + ), + 'text' => + array ( + 0 => 'Hot Threads » Manage', + 1 => 'misc_focus_tips', + 2 => 'A floating window "webmaster recommends" will be displayed in a page lower right corner.You can manually add a number of specified topics, or select some topics as recommended by moderator. Up to 10, which will shown randomly.', + 3 => 'admin', + 4 => 'Manage', + ), + ), + 202 => + array ( + 'index' => + array ( + 'Hot Threads' => 'action=misc&operation=focus', + 'Add' => 'action=misc&operation=focus&do=add', + ), + 'text' => + array ( + 0 => 'Hot Threads » Add', + 1 => 'misc_focus_handadd', + 2 => 'Manually add', + 3 => 'misc_focus_handurl', + 4 => 'Recommended link URL', + 5 => 'misc_focus_handsubject', + 6 => 'Recommended link title', + 7 => 'misc_focus_handsummary', + 8 => 'Recommended link description', + 9 => 'HTML code supported, Max length is 150 characters', + 10 => 'misc_focus_handimg', + 11 => 'Add image', + 12 => 'Enter the image absolute path', + 13 => 'misc_focus_position', + 14 => 'Where to place the Webmaster recommended block', + ), + ), + 203 => + array ( + 'index' => + array ( + 'Hot Threads' => 'action=misc&operation=focus', + 'Settings' => 'action=misc&operation=focus&do=config', + ), + 'text' => + array ( + 0 => 'Hot Threads » Settings', + 1 => 'config', + 2 => 'Settings', + 3 => 'misc_focus_area_title', + 4 => 'Webmaster recommended block title', + 5 => 'Default is "Recommended by Webmaster", you can set what you want', + 6 => 'misc_focus_area_cookie', + 7 => 'Pop up again after setting off the time (hours)', + 8 => 'If 0 then refresh the page that pops up. Set to 1 for refresh the page to appear after 1 hour. The default is 1, you can set the time you want to pop up.', + ), + ), + 204 => + array ( + 'index' => + array ( + 'Images Management' => 'action=pic', + ), + 'text' => + array ( + 0 => 'Images Management', + 1 => 'pic_tips', + 2 => 'Image management is usefull for batch remove images together with the image comments.Reminder: click the Delete button on the search results page will delete the relevant information directly!', + ), + ), + 205 => + array ( + 'index' => + array ( + 'Images Management' => 'action=pic', + 'Search' => 'action=pic&search=true', + ), + 'text' => + array ( + 0 => 'Images Management » Search', + 1 => 'pic_search_detail', + 2 => 'Show detailed image list', + 3 => 'pic_search_perpage', + 4 => 'Items per page', + 5 => 'resultsort', + 6 => 'Sort Results', + 7 => 'pic_search_albumid', + 8 => 'Album ID', + 9 => 'Separate multiple album ID by a comma ","', + 10 => 'pic_search_user', + 11 => 'Image author name', + 12 => 'Separate multiple user names by a comma ","', + 13 => 'pic_search_picid', + 14 => 'Image ID', + 15 => 'Separate multiple image ID by a comma ","', + 16 => 'pic_search_title', + 17 => 'Photo Title', + 18 => 'pic_search_ip', + 19 => 'Posted IP', + 20 => 'Wildcard "*" may be used, i.e. "127.0 .*.*" (without quotes), use with caution!!!', + 21 => 'pic_search_hot', + 22 => 'Hot', + 23 => 'pic_search_time', + 24 => 'Upload time range', + 25 => 'Format: yyyy-mm-dd', + ), + ), + 206 => + array ( + 'index' => + array ( + 'Post comments management' => 'action=postcomment', + ), + 'text' => + array ( + 0 => 'Post comments management', + 1 => 'postcomment_tips', + 2 => 'Batch comment management is used to remove post comments.Reminder: click the Delete Button on the search results page will deleted the Information directly!', + ), + ), + 207 => + array ( + 'index' => + array ( + 'Post comments management' => 'action=postcomment', + 'Search' => 'action=postcomment&search=true', + ), + 'text' => + array ( + 0 => 'Post comments management » Search', + 1 => 'postcomment_search_detail', + 2 => 'Show detailed Comment list', + 3 => 'comment_search_perpage', + 4 => 'Items per page', + 5 => 'postcomment_content', + 6 => 'Comment content', + 7 => 'postcomment_search_tid', + 8 => 'Comments of thread ID', + 9 => 'Specified thread all comments (Including the thread posts and replies). Separate multiple ID with comma ","', + 10 => 'postcomment_search_pid', + 11 => 'Comments of post ID', + 12 => 'Specify comments post ID. Separate multiple ID with comma ","', + 13 => 'postcomment_search_author', + 14 => 'Comment author name', + 15 => 'Specify the comment authors names. Separate multiple names with comma ","', + 16 => 'postcomment_search_authorid', + 17 => 'Comment authors ID', + 18 => 'Specify the comment authors ID. Separate multiple ID with comma ","', + 19 => 'comment_search_ip', + 20 => 'Post IP', + 21 => 'Wildcard "*" may be used, i.e. "127.0 .*.*" (without quotes), use with caution!!!', + 22 => 'postcomment_search_time', + 23 => 'Comment time range', + 24 => 'Format: yyyy-mm-dd', + ), + ), + 208 => + array ( + 'index' => + array ( + 'Split Posts' => 'action=postsplit&operation=manage', + 'Post split' => 'action=postsplit&operation=manage', + ), + 'text' => + array ( + 0 => 'Split Posts » Post split', + 1 => 'postsplit_manage_tips', + 2 => 'Threads with a lot of posts can decrease the server efficiency. Split post function divide posts to different data tables.There are three types of split posts: to the main table, to the slave table, to the archive table.The main table must have one and only one post stored in a new thread. The slave table is intended for store all the thread replies, the main table is joined in the background with the slave table for update and delete posts, etc. It can be created any number of Archive tables, used for archiving old posts. Archived posts can not be managed in the bulk management operations, but we can view and reply.Only empty table can be deleted.If the main table at the current time has a huge number of posts, you can create a new main table, then the original main table will become a slave table, and the former slave table (if present) will become the archive table. Emerging threads of posts will be stored in a new topic.You can use the "Move post" feature to move posts between the various tables.', + ), + ), + 209 => + array ( + 'index' => + array ( + 'Split Posts' => 'action=postsplit&operation=manage', + 'Post split' => 'action=postsplit&operation=manage', + ), + 'text' => + array ( + 0 => 'Split Posts » Post split', + 1 => 'postsplit_manage_tips', + 2 => 'Threads with a lot of posts can decrease the server efficiency. Split post function divide posts to different data tables.There are three types of split posts: to the main table, to the slave table, to the archive table.The main table must have one and only one post stored in a new thread. The slave table is intended for store all the thread replies, the main table is joined in the background with the slave table for update and delete posts, etc. It can be created any number of Archive tables, used for archiving old posts. Archived posts can not be managed in the bulk management operations, but we can view and reply.Only empty table can be deleted.If the main table at the current time has a huge number of posts, you can create a new main table, then the original main table will become a slave table, and the former slave table (if present) will become the archive table. Emerging threads of posts will be stored in a new topic.You can use the "Move post" feature to move posts between the various tables.', + ), + ), + 210 => + array ( + 'index' => + array ( + 'Bulk post delete' => 'action=prune', + ), + 'text' => + array ( + 0 => 'Bulk post delete', + 1 => 'prune_tips', + 2 => 'Bulk delete posts used only to remove illegal posts. If you need to delete the history of yourself without offending volume, use the bulk thread management.For use this feature, it is required to provide at least 2 conditions from the following: start time, end time, user name, posted IP, content keyword, otherwise you will not be able to operate.If according to specified conditions need to delete the first thread post or the thread has no replies, the entire thread will be deleted.If you are not an administrator, you can remove posts only in a restricted range from current time.Super moderators can delete posts in the time range of 2 weeks (14 days); Moderator can delete posts in the time range of one week (7 days) and only under the moderated forum.Keyword qualifier {x} can be used to limit between two adjacent characters of text can be ignored, where "x" is a number of ignored characters. For example the mask "a{1}s{2}s" (without quotation marks) can search the "ass" and also "axsxs" and "axsxxs" and so on.', + 3 => 'prune_search_detail', + 4 => 'Show detailed post list', + 5 => 'prune_search_select_postsplit', + 6 => 'Select Post to split', + 7 => 'prune_search_forum', + 8 => 'Forums', + 9 => 'prune_search_perpage', + 10 => 'Items per page', + 11 => 'prune_search_time', + 12 => 'Post Time range', + 13 => 'Format: yyyy-mm-dd. Set to 0 for no restrictions', + 14 => 'prune_search_user', + 15 => 'Post author name', + 16 => 'Separate multiple user names by a comma ","', + 17 => 'prune_search_ip', + 18 => 'Poster IP', + 19 => 'Wildcard "*" may be used, i.e. "127.0 .*.*" (without quotes), use with caution!!!', + 20 => 'prune_search_keyword', + 21 => 'Content Keywords', + 22 => 'Separate multiple keywords with a comma ",", keywords qualifier {x} can be used.', + 23 => 'prune_search_lengthlimit', + 24 => 'Minimal content length', + 25 => 'This feature will add the server loading', + ), + ), + 211 => + array ( + 'index' => + array ( + 'Recycle Bin' => 'action=recyclebin', + 'Search' => 'action=recyclebin&operation=search', + ), + 'text' => + array ( + 0 => 'Recycle Bin » Search', + 1 => 'recyclebin_search', + 2 => 'Search relevant posts for delete', + 3 => 'recyclebin_search_forum', + 4 => 'Search in Forums', + 5 => 'recyclebin_search_author', + 6 => 'Author name', + 7 => 'Separate multiple user names by a comma ","', + 8 => 'recyclebin_search_keyword', + 9 => 'Keywords', + 10 => 'Separate multiple keywords with a comma ","', + 11 => 'recyclebin_search_admin', + 12 => 'Deleted by manager', + 13 => 'Separate multiple user names by a comma ","', + 14 => 'recyclebin_search_post_time', + 15 => 'Posting time range', + 16 => 'Format: yyyy-mm-dd, leave blank for no restrictions', + 17 => 'recyclebin_search_mod_time', + 18 => 'Deleted in time range', + 19 => 'Format: yyyy-mm-dd, leave blank for no restrictions', + 20 => 'recyclebin_search_security_thread', + 21 => '', + ), + ), + 212 => + array ( + 'index' => + array ( + 'Recycle Bin' => 'action=recyclebin', + 'Clean' => 'action=recyclebin&operation=clean', + ), + 'text' => + array ( + 0 => 'Recycle Bin » Clean', + 1 => 'recyclebin_clean', + 2 => 'Bulk clean-up the Recycle Bin', + 3 => 'recyclebin_clean_days', + 4 => 'Clean up Recycle Bin older than (days)', + 5 => 'Set to 0 for clear ALL', + ), + ), + 213 => + array ( + 'index' => + array ( + 'Posts in Trash' => 'action=recyclebinpost', + 'Search' => 'action=recyclebinpost&operation=search', + ), + 'text' => + array ( + 0 => 'Posts in Trash » Search', + 1 => 'recyclebinpost_search', + 2 => 'Search deleted posts', + 3 => 'recyclebinpost_search_forum', + 4 => 'Forum', + 5 => 'recyclebinpost_search_author', + 6 => 'Author name', + 7 => 'Separate multiple names with comma', + 8 => 'recyclebinpost_search_keyword', + 9 => 'Keywords', + 10 => 'Separate multiple keywords with comma', + 11 => 'recyclebin_search_post_time', + 12 => 'Posting time range', + 13 => 'Format: yyyy-mm-dd, leave blank for no restrictions', + 14 => 'postsplit', + 15 => 'Split Posts', + 16 => 'recyclebin_search_security_thread', + 17 => '', + ), + ), + 214 => + array ( + 'index' => + array ( + 'Posts in Trash' => 'action=recyclebinpost', + 'Clean' => 'action=recyclebinpost&operation=clean', + ), + 'text' => + array ( + 0 => 'Posts in Trash » Clean', + 1 => 'recyclebinpost_clean', + 2 => 'Bulk Clean the Recycle Bin posts', + 3 => 'recyclebinpost_clean_days', + 4 => 'How many days old emptying the Recycle Bin Posts', + 5 => '0 for clean all', + ), + ), + 215 => + array ( + 'index' => + array ( + 'Content moderation' => 'action=remoderate', + ), + 'text' => + array ( + 0 => 'Content moderation', + 1 => 'remoderate_tips', + 2 => 'When the word filtering parameters have a large change or are near sensitive time points, you can use this function to review the historical data. Please try to avoid the peak hours of member visits + The number of updates per cycle: Please keep the value within a reasonable range, not too large, otherwise it will put load pressure on the server + ', + ), + ), + 216 => + array ( + 'index' => + array ( + 'User Reports' => 'action=report', + ), + 'text' => + array ( + 0 => 'User Reports', + 1 => 'report_tips', + 2 => 'According to the real situation of the report, you can add or subtract points to the reporter, Set user reporting rewards and punishments Points usedWhen multiple people reports, reward and punish the first reporter.', + ), + ), + 217 => + array ( + 'index' => + array ( + 'Base Settings' => 'action=setting&operation=basic', + ), + 'text' => + array ( + 0 => 'Base Settings', + 1 => 'setting_basic_bbname', + 2 => 'Site Name', + 3 => 'The site name will appear in the navigation bar and in the title', + 4 => 'setting_basic_sitename', + 5 => 'Site Name', + 6 => 'This site name will appear in the page bottom of Contact & Services page', + 7 => 'setting_basic_siteurl', + 8 => 'Site URL', + 9 => 'The site URL, will shown as a link in the page bottom', + 10 => 'setting_basic_adminemail', + 11 => 'Administrator E-Mail', + 12 => 'Administrator E-Mail, appears in the page bottom as "Contact Us". The system also will serve as the sender when the email address', + 13 => 'setting_basic_site_qq', + 14 => 'QQ online customer service number', + 15 => 'I set my QQ online status', + 16 => 'setting_basic_icp', + 17 => 'Website registration information', + 18 => 'ICP registration information displayed at the page bottom. If the site has such info, enter your authorization code. If no - leave this blank.', + 19 => 'setting_basic_boardlicensed', + 20 => 'Show license information link', + 21 => 'Select "Yes" for display in the footer a link for business authorized users, the link will point to the Discuz! Official website, users can use this link to verify their Discuz! is commercially licensed.', + 22 => 'setting_basic_stat', + 23 => 'Third-party site statistical code', + 24 => 'Display third-party statistics at the page bottom', + 25 => 'setting_basic_bbclosed', + 26 => 'Close the site', + 27 => 'Close temporarily the site. Access will be disabled for all visitors except of administrators.', + 28 => 'setting_basic_closedreason', + 29 => 'Close Reason', + 30 => 'A message about why the site shut is down', + 31 => 'setting_basic_bbclosed_activation', + 32 => 'The site is closed. Go to UCenter for activate it.', + ), + ), + 218 => + array ( + 'index' => + array ( + 'Follow settings' => 'action=setting&operation=follow', + 'Basic settings' => 'action=setting&operation=follow&anchor=base', + ), + 'text' => + array ( + 0 => 'Follow settings » Basic settings', + 1 => 'setting_follow_base_default_follow_retain_day', + 2 => 'Broadcast archive time', + 3 => 'Broadcastings older than this number of days will be moved to the archive table (unit: days)', + 4 => 'setting_follow_base_default_follow_add_notice', + 5 => 'Notify the follower when being followed', + 6 => 'Users will be notified when they are followed after this setting is turned on', + 7 => 'setting_follow_base_default_view_profile', + 8 => 'Default Profile View', + 9 => 'This setting is usefull for administrator, when open a member page the personal data will be shown', + ), + ), + 219 => + array ( + 'index' => + array ( + 'Space settings' => 'action=setting&operation=home', + 'Basic settings' => 'action=setting&operation=home&anchor=base', + ), + 'text' => + array ( + 0 => 'Space settings » Basic settings', + 1 => 'setting_home_base_feedday', + 2 => 'Number of days to store personal dynamic feeds', + 3 => 'How long to store personal dynamics (default is 7 days). After this number of days all personal dynamic will be cleaned, which can ensure the efficiency of MySQL. Not recommended to set too long.', + 4 => 'setting_home_base_feedmaxnum', + 5 => 'Number of dynamics displayed at Home', + 6 => 'How many dynamic feeds to display in the Home page (default is 100). For ensure the efficiency of MySQL, recommended to set not too much, but at least not less than 50.', + 7 => 'setting_home_base_feedhotday', + 8 => 'Days range of hot recommended to show', + 9 => 'Set the number of days to show recommended hot spot at the home page (default is 2 days).', + 10 => 'setting_home_base_feedhotmin', + 11 => 'Minimum hot value to show at home page', + 12 => 'Set the hot value when recommended will appear at home page.', + 13 => 'setting_home_base_feedtargetblank', + 14 => 'Open a feed link in a new window', + 15 => 'If this is set, all the feed links will open in a new window.', + 16 => 'setting_home_base_showallfriendnum', + 17 => 'Number of friend feeds to show at Home', + 18 => 'Show not more friend feeds than this limit. When a number of ffeds exceed this limit, show a link for All Friends Feeds.This parameter take the same effect in the blog and album.', + 19 => 'setting_home_base_feedhotnum', + 20 => 'Number of hot feeds shown at home', + 21 => 'Default is 3. Set to 0 for disable to show recommended hotspot. Do not exceed the maximum of 10.The system will automatically get 10 hot spots, and the first one will displayed always, but remaining hot spots will be displayed randomly.', + 22 => 'setting_home_base_maxpage', + 23 => 'List max number of sub-pages', + 24 => 'Allows users to view the not more sub-pages than this value (default 100). More greater number of sub-pages will cause the server greater overloading.', + 25 => 'setting_home_base_sendmailday', + 26 => 'Days offline before e-mail notice', + 27 => 'Number of days, when the user does not log in, after then the system will send a notification message. Set to 0 for disable e-mail notification. Enabled this feature will slightly increase the server loading.', + 28 => 'setting_home_base_recycle_bin', + 29 => 'Enable the blog Recycle Bin', + 30 => 'After you enable this feature, All the removed blogs will be moved into the Recycle Bin instead of removing directly.', + 31 => 'setting_home_base_groupnum', + 32 => 'Number of friend categories', + 33 => 'Set how many friends categories each user can have (default is 8).', + 34 => 'setting_home_base_default_', + 35 => '', + 36 => 'setting_home_base_default_doing', + 37 => 'Suggest default doing content', + 38 => 'Set a hint content displayed in the doing box. This tips selected randomly from those line as a default prompt', + ), + ), + 220 => + array ( + 'index' => + array ( + 'Space settings' => 'action=setting&operation=home', + 'Privacy Settings' => 'action=setting&operation=home&anchor=privacy', + ), + 'text' => + array ( + 0 => 'Space settings » Privacy Settings', + 1 => 'setting_home_privacy_new_user', + 2 => 'New user default privacy settings', + 3 => 'setting_home_privacy_view_index', + 4 => 'Space home', + 5 => 'setting_home_privacy_view_profile', + 6 => 'Personal space info', + 7 => 'setting_home_privacy_view_friend', + 8 => 'Friend list', + 9 => 'setting_home_privacy_view_wall', + 10 => 'Wall', + 11 => 'setting_home_privacy_view_feed', + 12 => 'Personal Feeds', + 13 => 'Not visible to all users, when accessing the Feed page', + 14 => 'setting_home_privacy_view_doing', + 15 => 'Doings', + 16 => 'However a list of doings may appear in other pages of the site.', + 17 => 'setting_home_privacy_view_blog', + 18 => 'Blogs', + 19 => 'Browse related permissions must be set separately for each blog.', + 20 => 'setting_home_privacy_view_album', + 21 => 'Albums', + 22 => 'View related rights need to be set individually for each album in full effect.', + 23 => 'setting_home_privacy_view_share', + 24 => 'Shares', + 25 => 'However, shares may appear in other site pages. ', + 26 => 'setting_home_privacy_default_feed', + 27 => 'Default feed publishing settings', + ), + ), + 221 => + array ( + 'index' => + array ( + 'Registration and access control' => 'action=setting&operation=access', + 'Registration' => 'action=setting&operation=access&anchor=register', + ), + 'text' => + array ( + 0 => 'Registration and access control » Registration', + 1 => 'setting_access_register_status', + 2 => 'Allow registration for new users', + 3 => 'This setting allow the site visitors to register a new account. You can choose to register under the site demand approach', + 4 => 'setting_access_register_invite_buyprompt', + 5 => 'Please read the invite registration notes', + 6 => 'setting_access_register_invite_buy', + 7 => 'Enable to buy an invitation code', + 8 => 'Allows visitors to purchase online top-up invitation code. For general registration this feature is disabled. Make sure to enable the E-commerce and Send mail function normally use this feture', + 9 => 'setting_access_register_invite_buyprice', + 10 => 'Invitation Code Price (USD)', + 11 => 'setting_access_register_invite_credit', + 12 => 'Invite reward points', + 13 => 'Add bonus points for registration by an invitation (both inviter and registered by invite', + 14 => 'setting_access_register_invite_addcredit', + 15 => 'Reward points for registered by invite member', + 16 => 'Add reward points to a member after successful registration through invitation code', + 17 => 'setting_access_register_invite_invitedcredit', + 18 => 'Reward points for inviter', + 19 => 'Add reward points to a member that issued the invitation code after successful registration by this code.', + 20 => 'setting_access_register_invite_group', + 21 => 'Initial user group for registered by invitation users', + 22 => 'Set default user group for new invited members', + 23 => 'setting_access_register_invite_areawhite', + 24 => 'Location White List', + 25 => 'When the user address is present in this list, registration by the invitation code is NOT restricted. One region per line, such as "Beijing" (without quotation marks). Leave it blank to not set. Note: If you want to accurately determine the region where your IP address is located, please download the qqwry.dat IP address database file from the Internet and upload it to the "data/ipdata/" directory and rename it to wry.dat', + 26 => 'setting_access_register_invite_ipwhite', + 27 => 'IP White List', + 28 => 'When a user is from this IP address list, the registration by an invitation code is not required. One IP per line. You can enter a full address, or just the beginning of the IP, i.e. "192.168." (without quotation marks) to match all adresses in the range of 192.168.0.0 ~ 192.168.255.255. Leave blank to not set', + 29 => 'setting_access_register_regclosemessage', + 30 => 'Close registration message', + 31 => 'A reason why the site registration is closed', + 32 => 'setting_access_register_name', + 33 => 'Registration name:', + 34 => 'Set the site up address mod, default is "Register", change the name of irrigation software helps prevent different from the Discuz! X versions prior to change this setting, do not modify any file name, only This modification can be', + 35 => 'setting_access_register_send_register_url', + 36 => 'Send Registration link via e-mail', + 37 => 'If turned on, the system will send a registration address to the user mailbox. When a user come to this address, the registration is confirmed. It is also recommended to enable registration in UCenter only by a mailbox.Note: Only the Webmaster - Mail settings Complete the mail settings, Ensure that mail can be sent successfully this feature can be turned on ', + 38 => 'setting_access_register_link_name', + 39 => 'Register link text', + 40 => 'Set the link text for the site registration page, the default is "Register"', + 41 => 'setting_access_register_censoruser', + 42 => 'Disabled words in Profile', + 43 => 'The words that users can not use in their user information.One keyword per line.Wildcard "*" can be used, i.e. "*moderator*" (without quotation marks).', + 44 => 'setting_access_register_pwlength', + 45 => 'Minimum password length', + 46 => 'Minimum password length of the new user registration, set to 0 for no restrictions', + 47 => 'setting_access_register_strongpw', + 48 => 'Force to check the password complexity', + 49 => 'For exclude the password hacking, a new registered user password must contain different type characters, and not contain any easy typed character sequences', + 50 => 'setting_access_register_verify', + 51 => 'New user registration validation', + 52 => '"None" - users can register directly;"Email validation" - send a verification email to confirm registration (Open "registration link by email" setting is automatically verified);"Manual" - administrator must approve new users manually.', + 53 => 'setting_access_register_verify_areawhite', + 54 => 'Location White List', + 55 => 'When the user is from this location list, do not perform the registration examination. Enter one line per each region, such as "Beijing" (without the quotes), or leave blank for not set', + 56 => 'setting_access_register_verify_ipwhite', + 57 => 'IP White List (no restrictions)', + 58 => 'When the user is in this list of IP addresses, the registration without examination. One IP per line, you can enter a full address, or only the IP beginning, i.e. "192.168." (Without quotation marks) to match all addresses in the range of 192.168.0.0 ~ 192.168.255.255. Leave blank to not set.', + 59 => 'setting_access_register_maildomain', + 60 => 'Registered mail domain name restrictions', + 61 => 'Select "No" for turn off the function directly; Select "Whitelist mode" for enable registration only from listed mail domain names; Select "Blacklist mode" for disable registration from listed mail domain names.', + 62 => 'setting_access_register_maildomain_list', + 63 => 'Domain list', + 64 => 'When a mail domain name is present in the list, the corresponding restrictions will be performed according to the above options. You can block entered emails from some domains. Enter the domain name of the mailbox to be restricted. For example, to block the domain of xxx@xxx.com, just enter @xxx.com. One domain name per line.', + 65 => 'setting_access_register_ctrl', + 66 => 'Registration interval limit for the same IP (hours)', + 67 => 'Minimal time interval for register new account from the same IP,0 for no limits', + 68 => 'setting_access_register_floodctrl', + 69 => 'Maximum number of registrations enabled for the same IP in 24 hours', + 70 => 'Restrict the number of attempts to register from the same IP address within 24 hours. Recommended value in range of 30 - 100. Set 0 for no limits.', + 71 => 'setting_access_register_ipctrl_time', + 72 => 'Limit registration interval for this IP ranges (in hours):', + 73 => 'When a user IP address is found inside the IP address time-limited list, then the same IP will be able to register a new account only after the specified time interval.', + 74 => 'setting_access_register_ipctrl', + 75 => 'Time-limited registration for IP list', + 76 => 'When a user IP address is in this IP address list, he can register only one account inside the specified time interval. One IP per line. You can enter a full IP address, or only the beginning of IP. For example, "192.168." (Without quotation marks) will match all addresses in the range from 192.168.0.0 to 192.168.255.255. Leave blank to not set.', + 77 => 'setting_access_register_welcomemsg', + 78 => 'Send Welcome message to registered user by Email', + 79 => 'Automatically send a welcome message to new registered user', + 80 => 'setting_access_register_welcomemsgtitle', + 81 => 'Welcome message title', + 82 => 'The system will send a welcome message with this title. Does not support HTML, not longer than 75 characters. ', + 83 => 'setting_access_register_welcomemsgtxt', + 84 => 'Welcome message content', + 85 => 'The system send a welcome message with this content. Title & content supports variable substitution. You can use the following variables:{username}: User name{time}: Sent time{sitename}: Site name (shown in the page bottom as contacts){bbname}: Site Name (displayed in the browser window title, etc.){adminemail}: Administrator Email.', + 86 => 'setting_access_register_bbrules', + 87 => 'Show the site Terms of Service', + 88 => 'Show Terms of Service to new user in registration.', + 89 => 'setting_access_register_bbruleforce', + 90 => 'Whether to force the site Terms of Service', + 91 => 'If selected Yes, the user must agree the site Terms of Services before the registration', + 92 => 'setting_access_register_bbrulestxt', + 93 => 'Terms of Service', + 94 => 'Enter the Terms of Service content', + ), + ), + 222 => + array ( + 'index' => + array ( + 'Registration and access control' => 'action=setting&operation=access', + 'Access Control' => 'action=setting&operation=access&anchor=access', + ), + 'text' => + array ( + 0 => 'Registration and access control » Access Control', + 1 => 'setting_access_access_newbiespan', + 2 => 'Newbie aprobation period (hours)', + 3 => 'New registered users will not allowed to post a short messages in this period, excluding administrators and moderators. Set 0 for no limit', + 4 => 'setting_access_access_ipaccess', + 5 => 'White IP list for access the site', + 6 => 'Only users from this list of IP addresses can access the site, when other users outside this list will be prohibited to access. Attention: if the administrator is not in this list, he will not able to access too! Make sure to use this feature carefully. One IP per line, you can enter the full IP address, or only the IP beginning, i.e. "192.168." (Without quotation marks) to match all addresses in the range of 192.168.0.0 ~ 192.168.255.255. Leave blank for enable access from all IP.', + 7 => 'setting_access_access_adminipaccess', + 8 => 'Allow access to admin-center for the IP list', + 9 => 'Enable access to the admin center only when the administrator (super moderators and moderators not included!) is in this list of IP addresses. Other IP addresses will not be able to access, but can still visit the site front-end user interface. Be sure to use this feature carefully. One IP per line, you can enter the full IP address or only the IP beginning, i.e. "192.168." (Without quotation marks) to match all addresses from the range of 192.168.0.0 ~ 192.168.255.255. Leave blank for no limits.', + 10 => 'setting_access_access_domainwhitelist', + 11 => 'Allowed domain names', + 12 => 'When some user groups are disabled to publish, or URL can not be resolved, users from this domain name list can still posted! Enter one domain name per line, the site default name can be posted.', + ), + ), + 223 => + array ( + 'index' => + array ( + 'Style settings' => 'action=setting&operation=styles', + 'Global' => 'action=setting&operation=styles&anchor=global', + ), + 'text' => + array ( + 0 => 'Style settings » Global', + 1 => 'setting_tips', + 2 => 'Options marked by red dotted line are related to the system efficiency, load capacity and resource consumption (can improve or reduce the efficiency). It is recommended to make adjustments according to your server situation.', + 3 => 'setting_styles_global', + 4 => 'Global', + 5 => 'setting_styles_global_home_style', + 6 => 'Space style', + 7 => 'Select the show style for you blog, photo albums, shares, moods, radio', + 8 => 'setting_styles_global_homepage_style', + 9 => 'Personal home page default skin', + 10 => 'Select the default display style for personal home page', + 11 => 'setting_styles_global_navsubhover', + 12 => 'Display header secondary navigation', + 13 => 'Set to display the page header of the second navigation. If set to show all the main navigation, secondary navigation, it will be when the mouse moves to the other when the main navigation display their text at the top of the secondary navigation ', + 14 => 'setting_styles_index_allowwidthauto', + 15 => 'Forum width style', + 16 => 'Set how to display forum: Wide or Narrow style. Each forum can be set independently.', + 17 => 'setting_styles_index_switchwidthauto', + 18 => 'Allow users to switch width style', + 19 => 'Set whether to allow users to freely switch the width of the style', + 20 => 'setting_styles_global_allowfloatwin', + 21 => 'Enable floating window', + 22 => 'Set whar content be displayed in a floating window', + 23 => 'setting_styles_global_showfjump', + 24 => 'Display forum navigation', + 25 => 'Set whether to show the from link at the quick navigation menu', + 26 => 'setting_styles_global_creditnotice', + 27 => 'Points Notification', + 28 => 'Display pop-up prompt to user when the user points amount was changed by any operation.', + 29 => 'setting_styles_global_showusercard', + 30 => 'Show the user business card', + 31 => 'Set this to display the user business card when the mouse moves over the user name', + 32 => 'setting_styles_global_anonymoustext', + 33 => 'Anonymous user nickname', + 34 => 'Set the anonymous user pseudo name displayed in post or comment. Such as: "Site user" or "Anonymous"', + ), + ), + 224 => + array ( + 'index' => + array ( + 'Style settings' => 'action=setting&operation=styles', + 'Forum Home' => 'action=setting&operation=styles&anchor=index', + ), + 'text' => + array ( + 0 => 'Style settings » Forum Home', + 1 => 'setting_styles_index', + 2 => 'Forum Home', + 3 => 'setting_styles_index_indexhot_status', + 4 => 'Forum hot threads', + 5 => 'Set whether to display hot threads at the forum home', + 6 => 'setting_styles_index_indexhot_limit', + 7 => 'Number of Forum hots to show', + 8 => 'Set the number of forum hot threads, the default value of 10', + 9 => 'setting_styles_index_indexhot_days', + 10 => 'Days for show Forum hot', + 11 => 'Set how many days to display the hot thread, the default value is 7 days', + 12 => 'setting_styles_index_indexhot_expiration', + 13 => 'Update forum hots period (seconds)', + 14 => 'Set how often to update the forum hot list, the default value is 900 s.', + 15 => 'setting_styles_index_indexhot_messagecut', + 16 => 'Forum hot thread content length', + 17 => 'Set the shortened length of the hot thread content, the default is 200 characters', + 18 => 'setting_styles_index_subforumsindex', + 19 => 'Show sub-Forums at Home', + 20 => 'Forum list at the Home bottom shows the forum name and sub-Forum links (if present). Note: This feature does not consider the child forum rights, however it will be displayed.', + 21 => 'setting_styles_index_forumlinkstatus', + 22 => 'Show Links at Home', + 23 => 'Whether to display links at Forum Home', + 24 => 'setting_styles_index_forumallowside', + 25 => 'Show Sidebar', + 26 => 'Select "Yes" to display the sidebar information at the Forum Home', + 27 => 'setting_styles_index_whosonline', + 28 => 'Show online users', + 29 => 'Display online users at Forum Home and each Forum page', + 30 => 'setting_styles_index_whosonline_contract', + 31 => 'Display online list as thumbnails', + 32 => 'If you open the option list will only appear online users without details. Then members can manually open the online users list (If the largest online more than 500, the system will automatically display a list of abbreviations)', + 33 => 'setting_styles_index_online_more_members', + 34 => 'Show "More online"', + 35 => 'This setting is effective only when display online users enabled. Set to 0 for no limits.', + 36 => 'setting_styles_index_hideprivate', + 37 => 'Hide users who not have access to the Forum', + 38 => 'Do not list users not have access to the Forum currently', + 39 => 'setting_styles_index_showfollowcollection', + 40 => 'Show number of collection followers at the Space home', + 41 => 'Display the number of users subscribed to the collection at the home page', + 42 => 'setting_styles_index_disfixednv', + 43 => 'Disable the fixed top navigation', + 44 => 'When you scroll up the screen, The main navigation will immediately appear in the top of the screen', + ), + ), + 225 => + array ( + 'index' => + array ( + 'Style settings' => 'action=setting&operation=styles', + 'Thread list' => 'action=setting&operation=styles&anchor=forumdisplay', + ), + 'text' => + array ( + 0 => 'Style settings » Thread list', + 1 => 'setting_tips', + 2 => 'Options marked by red dotted line are related to the system efficiency, load capacity and resource consumption (can improve or reduce the efficiency). It is recommended to make adjustments according to your server situation.', + 3 => 'setting_styles_forumdisplay', + 4 => 'Thread list', + 5 => 'setting_styles_forumdisplay_tpp', + 6 => 'Threads per page', + 7 => 'Set the number of threads listed per each page', + 8 => 'setting_styles_forumdisplay_threadmaxpages', + 9 => 'Largest number of pages in thread list', + 10 => 'Set the maximum number of pages in topic list that a user can scroll to. Recommended to set the default value 1000, and not more than 2500. Set 0 for no limit.', + 11 => 'setting_styles_forumdisplay_leftsidewidth', + 12 => 'Forum left navigation width', + 13 => 'Set the width of the forum left navigation. Set to 0 for not show the sidebar navigation when the forum is opened', + 14 => 'setting_styles_forumdisplay_leftsideopen', + 15 => 'Enable the forum left sidebar by default', + 16 => 'Set the left side of the forum navigation expanded by default', + 17 => 'setting_styles_forumdisplay_globalstick', + 18 => 'Enable Global Stick', + 19 => 'Select "Yes". Note: Stick-III -the thread will be displayed in all forums; Stick II - Thread will be displayed in a current forum only. Note: This feature will increase the server loading.', + 20 => 'setting_styles_forumdisplay_targetblank', + 21 => 'Whether "New window" is checked by default', + 22 => 'If selected "Yes", the topic list page will open in a new window. The default is "No"', + 23 => 'setting_styles_forumdisplay_stick', + 24 => 'Stick thread types', + 25 => 'Enter enabled stick types: Enabled only English letter "I" (max 3 characters)! Separate types by comma, order level from high to low.', + 26 => 'setting_styles_forumdisplay_part', + 27 => 'Separate Hot threads from other threads', + 28 => 'Select "No" for not separate hot threads from other thread list', + 29 => 'setting_styles_forumdisplay_visitedforums', + 30 => 'Number of recent visited forums to show', + 31 => 'Set the size of of drop-down list of last visited Forums. Recommended value from 0 to 30, 0 to disable this feature.', + 32 => 'setting_styles_forumdisplay_fastpost', + 33 => 'Quick post/reply', + 34 => 'Show quick post form at the bottom of thread list and at the bottom of the thread content', + 35 => 'setting_styles_forumdisplay_fastsmilies', + 36 => 'Show recommended smiles', + 37 => 'Show recommended smiles on the right of the quick post form. Recommended smiles needs to be set in "look management"', + 38 => 'setting_styles_forumdisplay_forumpicstyle_thumbwidth', + 39 => 'Thread Cover width', + 40 => 'This is effective when the forum list is open in image mode. Set to 0 or blank to use the default value (203). Click here to rebuild', + 41 => 'setting_styles_forumdisplay_forumpicstyle_thumbheight', + 42 => 'Thread cover height', + 43 => 'This is effective when the forum list is open in image mode. Set to 0 or blank to use the proportional value based on the original image height. If thumbnails have different heights then the Waterfall flow effect will be used', + 44 => 'setting_styles_forumdisplay_forumpicstyle_thumbnum', + 45 => 'Number of thumbnails to show', + 46 => 'How many images per page to show when a Forum is set to image list mode. Set to 0 or do not fill for use the regular list mode', + 47 => 'setting_styles_forumdisplay_newbie', + 48 => 'Newbie first post icon', + 49 => 'This icon is displayed when the user published the first thread, leave empty for not show the icon', + 50 => 'setting_styles_forumdisplay_disfixednv_forumdisplay', + 51 => 'Disable the fixed top of the navigation', + 52 => 'When you scroll up the screen, The main navigation will immediately appear in the top of the screen', + 53 => 'setting_styles_forumdisplay_threadpreview', + 54 => 'Disable Thread Preview', + 55 => 'Set whether to disable the post content preview in the thread list', + ), + ), + 226 => + array ( + 'index' => + array ( + 'Style settings' => 'action=setting&operation=styles', + 'View thread' => 'action=setting&operation=styles&anchor=viewthread', + ), + 'text' => + array ( + 0 => 'Style settings » View thread', + 1 => 'nav_setting_viewthread', + 2 => 'Thread posts', + 3 => 'setting_styles_viewthread_ppp', + 4 => 'Posts per page', + 5 => 'Set the number of posts displayed per page', + 6 => 'setting_styles_viewthread_starthreshold', + 7 => 'Upgrade stars threshold', + 8 => 'When stars reaches this threshold number of times (set to N), N stars appear as a moon, N moons appears as a sun. The default value is 2. Set to 0 for disabe this function, and display the stars always.', + 9 => 'setting_styles_viewthread_maxsigrows', + 10 => 'Signature max height (px)', + 11 => 'Set the maximum allowed height of a Signature displayed in a post.', + 12 => 'setting_styles_viewthread_sigviewcond', + 13 => 'Signature show condition', + 14 => 'Show a signature only if message is larger than the specified number of characters. 0 for no limits.', + 15 => 'setting_styles_viewthread_sigimgclick_on', + 16 => 'Cancel the dynamic zoom function of the signature picture', + 17 => 'setting_styles_viewthread_rate_on', + 18 => 'Display rate reason on the page', + 19 => 'setting_styles_viewthread_rate_number', + 20 => 'Number of rates', + 21 => 'Show the number of recent rates in a post, Set 0 for not show.', + 22 => 'setting_styles_viewthread_collection_number', + 23 => 'Number of related collections', + 24 => 'Display the collection number of entries in the thread post, 0 for not show', + 25 => 'setting_styles_viewthread_relate_number', + 26 => 'Number of related entries', + 27 => 'Display a number of entries related to the post or topic. Set to 0 for not show', + 28 => 'setting_styles_viewthread_relate_time', + 29 => 'Related posts cache time', + 30 => 'Unit: minutes, Cache time to display related posts in the topic post (0 for no cache, not recommended!)', + 31 => 'setting_styles_viewthread_show_signature', + 32 => 'Show a signature', + 33 => '', + 34 => 'setting_styles_viewthread_show_face', + 35 => 'Show avatar', + 36 => '', + 37 => 'setting_styles_viewthread_show_images', + 38 => 'Show images in a post', + 39 => '', + 40 => 'setting_styles_viewthread_imagemaxwidth', + 41 => 'Maximum image width in a post', + 42 => 'If an image width is greater than this value, the image will be automatically resized. The value must be integer type (number of pixels) and must not exceed 1920.', + 43 => 'setting_styles_viewthread_imagelistthumb', + 44 => 'Display image list in the posts horizontally', + 45 => 'Set how many post images will displayed horizontally. Set to 0 or leave blank to disable the horizontal displaying.', + 46 => 'setting_styles_viewthread_zoomstatus', + 47 => 'Use image zoom effect', + 48 => 'When the image width is greater than when the "Maximum image width in a post", you can add a dynamic zoom effect by mouse click. Select "Yes" to use a Zoom effect when the image clicked, or select "No" for just open the image in a new window.', + 49 => 'setting_styles_viewthread_showexif', + 50 => 'Display EXIF information for attached images', + 51 => 'Set whether to display the EXIF information for attached images in the dynamic zoom effect', + 52 => 'setting_styles_viewthread_vtonlinestatus', + 53 => 'Display online status', + 54 => 'Whether to show the poster online status. Attention: this feature will slightly increase the server loading.', + 55 => 'setting_styles_viewthread_userstatusby', + 56 => 'Show group title', + 57 => 'Set whether to display a group title in a post.', + 58 => 'setting_styles_viewthread_postno', + 59 => 'Show Post No.', + 60 => 'Set this to show the post ordered number in a thread. #1 represents the first thread post, #2 represents the first reply, and so on.', + 61 => 'setting_styles_viewthread_postnocustom', + 62 => 'Custom Post Numbering', + 63 => 'Set the custom post ordering in a thread. First line represents the first thread post, second line represents the first reply, and so on.', + 64 => 'setting_styles_viewthread_maxsmilies', + 65 => 'Maximum number of smiles per post', + 66 => 'Set the limit of smiles can be used in a single post. More smiles will not be rendered to smile images. This feature is usefull for prevent malicious posts with a lot of smiles. Set to 0 for no limits.', + 67 => 'setting_styles_viewthread_author_onleft', + 68 => 'Display user name position', + 69 => 'User name position does not affect the forum performance and depends of your preference only.', + 70 => 'setting_styles_forumdisplay_disfixedavatar', + 71 => 'Disable the fixed avatar area', + 72 => 'When scrolling the page, the avatar area will be visible always floating at the left from the post content.', + 73 => 'setting_styles_forumdisplay_disfixednv_viewthread', + 74 => 'Disable the fixed top navigation', + 75 => 'When you scroll up the screen, The main navigation will immediately appear in the top of the screen', + 76 => 'setting_styles_forumdisplay_threadguestlite', + 77 => 'Lite view mode for guests', + 78 => 'When this enabled, guests will read the thread without the user-related info.', + 79 => 'setting_styles_viewthread_close_leftinfo', + 80 => 'Disable left info bar', + 81 => 'Default is not show the user info bar on the post left side', + 82 => 'setting_styles_viewthread_close_leftinfo_userctrl', + 83 => 'Allow user control info on the left bar', + 84 => 'When browse topics, if the user can control the display of the status info bar on the left', + 85 => 'setting_styles_viewthread_guestviewthumb', + 86 => 'Guest view thumbnails', + 87 => 'When guests browse threads, they can view attached images as thumbnails. This can help you to enlarge the number of registered users at your site.', + 88 => 'setting_styles_viewthread_guestviewthumb_width', + 89 => 'Thumbnail width', + 90 => 'Specifies a thumnails width, the default value is 100 px.', + 91 => 'setting_styles_viewthread_guestviewthumb_height', + 92 => 'Thumbnail height', + 93 => 'Specifies a thumnails height, the default value is 100 px.', + 94 => 'setting_styles_viewthread_guesttipsinthread', + 95 => 'Guest login prompt insite a thread', + 96 => 'When a guest browse a thread, shows the welcome text at the top of the thread', + 97 => 'setting_styles_viewthread_guesttipsinthread_text', + 98 => 'Login prompt text', + 99 => 'Custom prompt text, the default is: Sign up now, Make more friends, Enjoy with more features, Let you easily Fun Community.', + 100 => 'setting_styles_viewthread_imgcontent', + 101 => 'The Thread content generated image width', + 102 => 'This feature requires PHP support for GD library. Chinese need to be Chinese content TTF font file into the static/image/seccode/font/ch/ directory. The default is 100 characters, The type of font width is slightly different, Please according to the actual effect adjustment.', + 103 => 'setting_styles_viewthread_fast_reply', + 104 => 'Open Post Quick Reply', + 105 => 'If Open, then will show the quick reply box below the topic posts', + 106 => 'setting_styles_viewthread_allow_replybg', + 107 => 'Open Post Quick Reply box background', + 108 => 'If Open then allow to add a background image for the post Quick Reply box', + 109 => 'setting_styles_viewthread_global_reply_background', + 110 => 'The Global background for Posts quick reply box', + 111 => 'Set the global background image for post quick reply box, Forum settings have more priority', + ), + ), + 227 => + array ( + 'index' => + array ( + 'Style settings' => 'action=setting&operation=styles', + 'User info inside the thread' => 'action=setting&operation=styles&anchor=threadprofile', + ), + 'text' => + array ( + 0 => 'Style settings » User info inside the thread', + 1 => 'setting_styles_threadprofile_group', + 2 => 'Set User group layout', + 3 => 'setting_styles_threadprofile_project', + 4 => 'Layout Scheme list', + ), + ), + 228 => + array ( + 'index' => + array ( + 'Style settings' => 'action=setting&operation=styles', + 'Prompts' => 'action=setting&operation=styles&anchor=refresh', + ), + 'text' => + array ( + 0 => 'Style settings » Prompts', + 1 => 'setting_styles_refresh', + 2 => 'Prompts', + 3 => 'setting_styles_refresh_refreshtime', + 4 => 'Reminder update time (seconds)', + 5 => 'A page displays various prompts in a short time, usually from 1 to 3 seconds. Tips: a shorter time is more usefull for experienced users, but for newbee users may be required more long time to see the information.', + 6 => 'setting_styles_refresh_quick', + 7 => 'Show quick jump link', + 8 => 'Set this for display a direct link to jump after successfully completed any operation. Such link help to eliminate any waiting of auto redirecting timeout.', + 9 => 'setting_styles_refresh_messages', + 10 => 'Show quick jump info', + 11 => 'When you turn on a quick jump link later, the following information will be shown. Fill in one message keyword per each line.', + ), + ), + 229 => + array ( + 'index' => + array ( + 'Style settings' => 'action=setting&operation=styles', + 'Pop-ups' => 'action=setting&operation=styles&anchor=sitemessage', + ), + 'text' => + array ( + 0 => 'Style settings » Pop-ups', + 1 => 'setting_styles_sitemessage', + 2 => 'Pop-ups', + 3 => 'setting_styles_sitemessage_time', + 4 => 'Pop-up show time (seconds)', + 5 => 'How long time a pop-up message will be shown, usually 3-10 seconds. Set to 0 for close by mouse click.', + 6 => 'setting_styles_sitemessage_register', + 7 => 'Registration page', + 8 => 'Set the information on the pop-up of registration page. Fill one message per each line. This information will randomly displayed to a number.', + 9 => 'setting_styles_sitemessage_login', + 10 => 'Login page', + 11 => 'Set the information on the pop-up of login page. Fill one message per each line. This information will randomly displayed to a number.', + 12 => 'setting_styles_sitemessage_newthread', + 13 => 'New thread page', + 14 => 'Set the information on the pop-up of new thread page. Fill one message per each line. This information will randomly displayed to a number.', + 15 => 'setting_styles_sitemessage_reply', + 16 => 'Reply page', + 17 => 'Set the information on the pop-up of reply page. Fill one message per each line. This information will randomly displayed to a number.', + ), + ), + 230 => + array ( + 'index' => + array ( + 'Style settings' => 'action=setting&operation=threadprofile&do=add', + ), + 'text' => + array ( + 0 => 'Style settings', + 1 => 'setting_threadprofile_tpl_tpls', + 2 => '{tag} Use a TAG without parameters.{tag=parameter} Use a TAG with parameters. Separate multiple parameters with a comma ",".{tag}HTML{*}HTML{/tag} Display HTML content before and after {*} when there is a value for the calling content"plugin:Plugin_ID" this format of a tag is used to display the info from a plugin. Plug-in developers must read carefully the «Discuz! Technical Documentation» before designing a new user defined tag.', + 3 => 'setting_styles_threadprofile_name', + 4 => 'Name', + ), + ), + 231 => + array ( + 'index' => + array ( + 'Optimization' => 'action=setting&operation=seo', + 'SEO' => 'action=setting&operation=seo', + ), + 'text' => + array ( + 0 => 'Optimization » SEO', + 1 => 'setting_tips', + 2 => 'Options marked by red dotted line are related to the system efficiency, load capacity and resource consumption (can improve or reduce the efficiency). It is recommended to make adjustments according to your server situation.', + 3 => 'setting_seo_rewritecompatible', + 4 => 'Rewrite compatibility', + 5 => 'If your server does not support Chinese characters in Rewrite Rules, please select "Yes." If there is no problem with the server, you can choose "No"', + 6 => 'setting_seo_rewriteguest', + 7 => 'Take effect for guests only', + 8 => 'When this feature enabled, then Rewrite feature will take effect only for guests and search engines. It can reduce the server loading.', + 9 => 'setting_seo_seohead', + 10 => 'Other header information', + 11 => 'Use this setting for placing additional HTML code between the <head> </head> tags. Leave blank if this not required.', + ), + ), + 232 => + array ( + 'index' => + array ( + 'Optimization' => 'action=setting&operation=seo', + 'Forum cache settings' => 'action=setting&operation=cachethread', + ), + 'text' => + array ( + 0 => 'Optimization » Forum cache settings', + 1 => 'setting_cachethread', + 2 => 'Forum cache settings', + 3 => 'If enabled, the page content will cached to static files, that will greatly enhance the server speed. It is recommended to use an dedicated server. For virtual server please adjust the cache according to the actual situation.', + 4 => 'setting_cachethread_indexlife', + 5 => 'Forum Home Cache valid time', + 6 => 'Set the Forum Home cache update time in seconds. Set to 0 to turn off caching (If after a shutdown the cache will no longer work). Recommended value is 900. This feature used only for guests.', + 7 => 'setting_cachethread_life', + 8 => 'Thread Cache valid period', + 9 => 'Set the post page cache update time, in seconds. Adjust the value according to the actual situation, recommended value is 900. Also, specify the post by editing the forum page cache factor.', + 10 => 'setting_cachethread_dir', + 11 => 'Cache directory', + 12 => 'The default directory is data/threadcache, if you need to specify other directory, make sure the write permissions are set', + 13 => 'setting_cachethread_coefficient_set', + 14 => 'Set the cache volume coefficient', + 15 => 'setting_cachethread_coefficient', + 16 => 'Cache coefficient', + 17 => 'Caching the members info may valuable decrease a pressure to a large-scale server. Use cache threshold range is 0 - 100. Recommended value is 40, 0 will disable cache effect. If you have enough disk space, you can try to increase the cache volume, and so increase the cache effect.', + 18 => 'setting_cachethread_coefficient_forum', + 19 => 'Please select a forum to set up', + 20 => 'This will overwrite the previous cache coefficient value. You can hold down the CTRL key for multiple choice.', + ), + ), + 233 => + array ( + 'index' => + array ( + 'Optimization' => 'action=setting&operation=seo', + 'Server optimization' => 'action=setting&operation=serveropti', + ), + 'text' => + array ( + 0 => 'Optimization » Server optimization', + 1 => 'setting_tips', + 2 => 'Options marked by red dotted line are related to the system efficiency, load capacity and resource consumption (can improve or reduce the efficiency). It is recommended to make adjustments according to your server situation.', + 3 => 'setting_serveropti', + 4 => 'Server optimization', + 5 => 'setting_serveropti_optimize_thread_view', + 6 => 'Whether to optimize the thread Views update', + 7 => 'setting_serveropti_preventrefresh', + 8 => 'Prevent anti-refresh for views number', + 9 => 'If select "No", every thread, space or blog visit will increase the number of views counter, and this will increase the server loading. It is recommended to select "yes"', + 10 => 'setting_serveropti_delayviewcount', + 11 => 'Delayed Update of Attachment downloads counter', + 12 => 'Delaying of update the topic or attachments views can significantly reduce the server loading. Recommended to use for large scale community servers.', + 13 => 'setting_serveropti_nocacheheaders', + 14 => 'Disable browser cache', + 15 => 'Force a browser to not use internal buffer but refresh the site pages very time. Note: This feature will increase the server loading.', + 16 => 'setting_serveropti_maxonlines', + 17 => 'Maximum online', + 18 => 'Please set a reasonable value in range 10 - 65535. Recommended value = 10 * average online members.', + 19 => 'setting_serveropti_onlinehold', + 20 => 'Hold Online Time (minutes)', + 21 => 'Please set the reasonable time value. Large sites should use smaller time value. Use a range of 5 - 60 minutes, too big or too small settings can increase the server loadnig.', + 22 => 'setting_serveropti_jspath', + 23 => 'JavaScript directory URL', + 24 => 'Set the URL for for JS files directory. The system will compress *.js files from default directory and then save it to the cache directory in order to improve the speed.', + 25 => 'setting_serveropti_csspath', + 26 => 'CSS files URL', + 27 => 'CSS cache directory URL. After changing this setting you need to update the template cache.', + 28 => 'setting_serveropti_lazyload', + 29 => 'Enable the wait for loading image', + 30 => 'When turned ON, the browser window will show an image when the current page loading. This can significantly reduce the traffic and the server overloading.', + 31 => 'setting_serveropti_blockmaxaggregationitem', + 32 => 'Maximum aggregated data items', + 33 => 'This value affects the block aggregation when MYSQL retrieve the number of data items. Too large value will seriously decrease the MYSQL performance. Too small value will affect the desired level of resulting block aggregation data. Set to 0 for disable this function.', + 34 => 'setting_serveropti_blockcachetimerange', + 35 => 'Block update time interval', + 36 => 'Set the specified time interval for all blockd update. It is recommended to choose the period of minimal site visits, i.e. at 3:00-7:00 o\'clock.', + 37 => 'setting_serveropti_sessionclose', + 38 => 'Whether to close the session mechanism', + 39 => 'Disabling the session mechanism can significantly reduce the the server loading. Proposed to turn on if the number of online users is more than 20000 (Note: Online duration and the number of visitors and users will no longer be statistical, The forum Home and Forum List pages online user list function will be unavailable)', + 40 => 'setting_serveropti_onlineguestsmultiple', + 41 => 'Count Online visitors', + 42 => 'After closing the session mechanism, The total online visitors (Including guests and users) ≈ The actual number of online users * Estimated Online ratio. The recommended value is about 10, for floating-point (Note: the actual number of online users cache cycle is 600 seconds)', + ), + ), + 234 => + array ( + 'index' => + array ( + 'Editor Settings' => 'action=setting&operation=editor', + 'Global' => 'action=setting&operation=editor', + ), + 'text' => + array ( + 0 => 'Editor Settings » Global', + 1 => 'setting_editor_mode_default', + 2 => 'Default editor mode', + 3 => 'setting_editor_swtich_enable', + 4 => 'Enable to switch editor mode', + 5 => 'Choose enable or disable to whether to change the editor mode between plain text and WYSIWYG.', + 6 => 'setting_editor_simplemode', + 7 => 'Bar style', + 8 => 'Set the default bar style', + 9 => 'setting_editor_smthumb', + 10 => 'Smile width and height', + 11 => 'When a real smile size exceeds this size, the system will automatically display a thumbnail instead of real image. Recommended range is between 20 and 40.', + 12 => 'setting_editor_smcols', + 13 => 'Smile columns', + 14 => 'How many columns of smiles will be shown. Recommended value is from 8 to 12.', + 15 => 'setting_editor_smrows', + 16 => 'Smile rows', + 17 => 'How many rows of smiles will be shown.', + ), + ), + 235 => + array ( + 'index' => + array ( + 'Site modules' => 'action=setting&operation=functions', + 'Function script' => 'action=setting&operation=functions&anchor=curscript', + ), + 'text' => + array ( + 0 => 'Site modules » Function script', + 1 => 'setting_functions_curscript_list', + 2 => 'Module List', + ), + ), + 236 => + array ( + 'index' => + array ( + 'Site modules' => 'action=setting&operation=functions', + 'Management related' => 'action=setting&operation=functions&anchor=mod', + ), + 'text' => + array ( + 0 => 'Site modules » Management related', + 1 => 'setting_tips', + 2 => 'Options marked by red dotted line are related to the system efficiency, load capacity and resource consumption (can improve or reduce the efficiency). It is recommended to make adjustments according to your server situation.', + 3 => 'setting_functions_mod_updatestat', + 4 => 'Enable the site statistics', + 5 => 'The site statistics is very usefull for the site administrator. Note: This feature will slightly increase the system loading.', + 6 => 'setting_functions_mod_status', + 7 => 'Enable Forum Management Statistics', + 8 => 'Management statistics is usefull for the site administrator for understand what moderators and other management staff was doing. Note: This feature will slightly increase the system loading.', + 9 => 'setting_functions_archiver', + 10 => 'Enable Forum Archiver', + 11 => 'Open Forum Archiver is able to simulate the content of static pages for search engines to obtain the contents', + 12 => 'setting_functions_archiverredirect', + 13 => 'Disable users to access the Archiver', + 14 => 'Select "Yes", when the user through the search engines link to visit Archiver page will automatically jump to the original content page', + 15 => 'setting_functions_mod_maxmodworksmonths', + 16 => 'Store management log time (months)', + 17 => 'Set a time in which the system will remember moderators log records. Default value is 3 months. It is recommended to use from 3 to 6 months.', + 18 => 'setting_functions_mod_losslessdel', + 19 => 'Do not reduce the user points after N days of Delete post', + 20 => 'Set the number of days after that a deleted by moderator/administrator post does not update the user points. This feature can be used to clean obsolete posts without losses of user points. Set to 0 for disable this feature, and always update the user points.', + 21 => 'setting_functions_mod_reasons', + 22 => 'Administrative operations reasons', + 23 => 'This setting will used when a user make score or perform certain administrative actions, to show a list of available reasons. A blank line will displayed if the separator "--------" was selected. User can choose to select from listed reasons or enter his own.', + 24 => 'setting_functions_mod_reasons_public', + 25 => 'Whether the moderation operation reason is public', + 26 => 'After opening, click the theme operation record under the theme post, and the management operation reason will be displayed at the same time.', + 27 => 'setting_functions_user_reasons', + 28 => 'User Rating Reason Options', + 29 => 'This settings will be displayed when the user performs a rating. One reason per line, the blank line will show a separator "--------", Users can select one of preset reasons or enter their own', + 30 => 'setting_functions_mod_bannedmessages', + 31 => 'Hide censored content', + 32 => 'Select what to do if a censored word apper in a post - delete post or hide user info.', + 33 => 'setting_functions_mod_warninglimit', + 34 => 'Auto Ban after N warnings', + 35 => 'Set how many times a user may be warned before automatical ban to post in a time period', + 36 => 'setting_functions_mod_warningexpiration', + 37 => 'Warning period (days)', + 38 => 'The default is 30 days', + 39 => 'setting_functions_mod_rewardexpiration', + 40 => 'Reward thread expiration', + 41 => 'Set the reward thread effective days, when the reward is valid even after the theme has not been issued more than reward, moderators or administrators have the right to grant on behalf of the theme of reward. 0 or blank means no moderator or administrator to do this', + 42 => 'setting_functions_mod_moddetail', + 43 => 'Moderator panel displays the number of items to audit', + 44 => 'Set the moderator panel detailed display pending the specific number of threads, posts and users', + ), + ), + 237 => + array ( + 'index' => + array ( + 'Site modules' => 'action=setting&operation=functions', + 'Hot threads' => 'action=setting&operation=functions&anchor=heatthread', + ), + 'text' => + array ( + 0 => 'Site modules » Hot threads', + 1 => 'setting_functions_heatthread_tips', + 2 => 'The threat heat will be involved in the attendance basis including replies, review, collection, sharing, rating, it is recommended', + 3 => 'setting_functions_heatthread_period', + 4 => 'User heat period (days)', + 5 => 'in days, a period the user has participated in a theme, an increase of only one heat. 0 for no set period of time as long as participation, increase heat to 1. To avoid heat users brush is not recommended to 0. (Reply, reviews, comments, favorites, and so be counted as participation in sharing the theme of action)', + 6 => 'setting_functions_heatthread_iconlevels', + 7 => 'Display a thread popularity level', + 8 => 'Set the icon list for each thread heat level, the default gradation is for 3 levels. Separate heat values with a comma, i.e.: "50,100,200" - this means level 1 if a thread heat greater than 50, Level 2 when heat large than 100, Level 3 when a heat more than 200. Leave blank that for not display the level icon', + ), + ), + 238 => + array ( + 'index' => + array ( + 'Site modules' => 'action=setting&operation=functions', + 'Thread rate' => 'action=setting&operation=functions&anchor=recommend', + ), + 'text' => + array ( + 0 => 'Site modules » Thread rate', + 1 => 'setting_functions_recommend_tips', + 2 => 'Members of different user groups can have different values of thread rate. You can set up "message related" items for each group.', + 3 => 'setting_functions_recommend_status', + 4 => 'Enable thread rating', + 5 => 'Thread rating enable users to increase the thread popularity. You can set how many times per day a user can rate a thread.', + 6 => 'setting_functions_recommend_addtext', + 7 => 'Good Rate extra text', + 8 => 'Set a short extra text for a rate operation, like "top", "support", etc.', + 9 => 'setting_functions_recommend_subtracttext', + 10 => 'Bad Rate extra text', + 11 => 'Set a short extra text for a rate operation, like "bad", "against", etc.', + 12 => 'setting_functions_recommend_daycount', + 13 => 'Rate daily limit', + 14 => 'How many times per day a user can rate threads, 0 or blank for not limit', + 15 => 'setting_functions_recommend_ownthread', + 16 => 'Enable to rate own threads', + 17 => 'Set whether to allow to rate of user own threads. Rate own thhread will not give any points', + 18 => 'setting_functions_recommend_iconlevels', + 19 => 'Rated level icons', + 20 => 'Set a list of rating level icons, one icon per each level. Recommended to use three levels, separated with a comma, i.e.: "0,100,200" means level 1 for rated from 0 to 100, level 2 for rated more than 100,and Level 2 for rated more than 200. Threads wit a level 1 and above will appear in "Recommended threads" list. Set blank or 0 for disable level icon.', + ), + ), + 239 => + array ( + 'index' => + array ( + 'Site modules' => 'action=setting&operation=functions', + 'Post Comment' => 'action=setting&operation=functions&anchor=comment', + ), + 'text' => + array ( + 0 => 'Site modules » Post Comment', + 1 => 'setting_functions_comment_allow', + 2 => 'Comment method', + 3 => 'Set of reviewed published methods, such comments do not choose that feature is not enabled. Open any of the comments they need a comment in the user group permissions set "direct comment"that through the post every floor in the "Comments"link in comments published "floor back" of each floor through post "Reply"link published Replies, automatically generated comments on the floor', + 4 => 'setting_functions_comment_number', + 5 => 'Number of comments', + 6 => 'Shows a number of comments. Set to 0 for not calculate comments. After creating a thread, it is required to set permissions for user groups to comment.', + 7 => 'setting_functions_comment_postself', + 8 => 'Allow to comment own threads', + 9 => 'This settings enable to comment your own threads, but disable to view published by you comments.', + 10 => 'setting_functions_comment_firstpost', + 11 => 'Allow to comment the starting post', + 12 => 'Set whether to allow the owner to post a first comment, other members can only comment replies.', + 13 => 'setting_functions_comment_commentitem_0', + 14 => 'Preset the General Comment List', + 15 => 'Set predefined general comment list, displayed as a drop-down menu. One comment per line. If there is an empty line, a user will be enabled to enter his alternative point of view.', + 16 => 'setting_functions_comment_commentitem_1', + 17 => 'Poll vote predefined comments', + 18 => 'Set predefined general comment list, displayed as a drop-down menu. One comment per line. If there is an empty line, a user will be enabled to enter his alternative point of view.', + 19 => 'setting_functions_comment_commentitem_2', + 20 => 'Product rate predefined comments', + 21 => 'Set predefined general comment list, displayed as a drop-down menu. One comment per line. If there is an empty line, a user will be enabled to enter his alternative point of view.', + 22 => 'setting_functions_comment_commentitem_3', + 23 => 'Reward vote predefined comments', + 24 => 'Set predefined general comment list, displayed as a drop-down menu. One comment per line. If there is an empty line, a user will be enabled to enter his alternative point of view.', + 25 => 'setting_functions_comment_commentitem_4', + 26 => 'Thread rate predefined comments', + 27 => 'Set predefined general comment list, displayed as a drop-down menu. One comment per line. If there is an empty line, a user will be enabled to enter his alternative point of view.', + 28 => 'setting_functions_comment_commentitem_5', + 29 => 'Debate predefined comments', + 30 => 'Set predefined general comment list, displayed as a drop-down menu. One comment per line. If there is an empty line, a user will be enabled to enter his alternative point of view.', + ), + ), + 240 => + array ( + 'index' => + array ( + 'Site modules' => 'action=setting&operation=functions', + 'Post replies' => 'action=setting&operation=functions&anchor=threadexp', + ), + 'text' => + array ( + 0 => 'Site modules » Post replies', + 1 => 'setting_functions_threadexp_repliesrank', + 2 => 'Enable reply to poll', + 3 => 'If turned on, users can reply to a poll like "Support", "Disagree"', + 4 => 'setting_functions_threadexp_blacklist', + 5 => 'Enable to hide blacklisted users', + 6 => 'If turned on, users can hide posts from users placed in a blacklist', + 7 => 'setting_functions_threadexp_hotreplies', + 8 => 'Number of Hot Replies', + 9 => 'The system will calculate hot replies and filtered posts, and show this number in the title of the first page. Set to 0 for not display.', + 10 => 'setting_functions_threadexp_filter', + 11 => 'Post Filter', + 12 => 'When the system determine filter conditions, the post will be determined as filtered if number of posts is less than this value', + 13 => 'setting_functions_threadexp_nofilteredpost', + 14 => 'Hot replies for non-filtered posts', + 15 => 'If enabled, the number of Hot Replies will be shown on the first page, and the corresponding number of non-filtered posts', + 16 => 'setting_functions_threadexp_hidefilteredpost', + 17 => 'Hide filtered posts', + 18 => 'If enabled, all the detected filtered posts will be hidden', + 19 => 'setting_functions_threadexp_filterednovote', + 20 => 'Disable vote for filtered posts', + 21 => 'If enabled, all the detected filtered posts will not participate in the post voting', + ), + ), + 241 => + array ( + 'index' => + array ( + 'Site modules' => 'action=setting&operation=functions', + 'Other' => 'action=setting&operation=functions&anchor=other', + ), + 'text' => + array ( + 0 => 'Site modules » Other', + 1 => 'setting_tips', + 2 => 'Options marked by red dotted line are related to the system efficiency, load capacity and resource consumption (can improve or reduce the efficiency). It is recommended to make adjustments according to your server situation.', + 3 => 'setting_functions_other_pwdsafety', + 4 => 'Enable password encryption', + 5 => 'Select "Yes", if a password must be encrypted before transmitted to the server', + 6 => 'setting_functions_other_uidlogin', + 7 => 'Enable Login by UID', + 8 => 'Select "Yes" for allow login by the UID', + 9 => 'setting_functions_other_autoidselect', + 10 => 'Enable automatic account detection while login', + 11 => 'Select "Yes" for autodetect the user account by first matching of a user name, UID or E-mail', + 12 => 'setting_functions_other_submitlock', + 13 => 'Enable the form anti-concurrency function', + 14 => 'Selecting "Yes" will prevent users from submitting multiple forms at the same time, which can effectively prevent the problem of possible points. Note: In the case of not using memory cache (Redis, Memcached), this function may increase the burden on the server', + 15 => 'setting_functions_other_rssstatus', + 16 => 'Enable RSS', + 17 => 'Select "Yes" for allow users to use RSS client software to receive the latest Forum posts. Note: If a forum has many sub-forums, this feature may increase the server loading.', + 18 => 'setting_functions_other_rssttl', + 19 => 'RSS TTL (minutes)', + 20 => 'TTL (Time to Live) is a property of RSS 2.0, and used to control the automatic refresh time of subscription. The shorter TTL give more real-time information, but increase the server loading. Recommended value: 30 ~ 180.', + 21 => 'setting_functions_other_oltimespan', + 22 => 'Users online time update time (minutes)', + 23 => 'Discuz! Available statistics for each user, and total online time of the month, updated the setting to set the time and frequency users online time. For example, set to 10, the user updated every 10 minutes every record online. The smaller the value of this setting, the more precise statistics, but the greater the consumption of resources. Recommended setting is 5 to 30 range, 0 to not record user online time ', + 24 => 'setting_functions_other_debug', + 25 => 'Show Runtime Info', + 26 => 'Select "Yes" for display an execution time and a number of database queries in the footer.', + 27 => 'setting_functions_other_onlyacceptfriendpm', + 28 => 'Full stop is the default short message only accept friends', + 29 => 'Select "Yes"to the short message in the personal settings, the default receive only friend a short message', + 30 => 'setting_functions_other_pmreportuser', + 31 => 'Informants receive short messages (UID, many people use the comma separated)', + 32 => 'Report based on the received short message to remind the user can send junk messages in the timely processing of the user, leave blank to report short message function is not enabled', + 33 => 'setting_functions_other_at_anyone', + 34 => 'Can use @name for post to anybody', + 35 => 'Select "No" for use @ only for a list of friends', + 36 => 'setting_functions_other_chatpmrefreshtime', + 37 => 'Group chat message content automatically refresh interval (seconds)', + 38 => 'Refresh for a group chat message content, the shorter the interval the greater the pressure on the server, 0 for no refresh', + 39 => 'setting_functions_other_collectionteamworkernum', + 40 => 'Collection team size', + 41 => 'The number of people who can maintain each collection together.', + 42 => 'setting_functions_other_shortcut', + 43 => 'Credit reminder lower limit', + 44 => 'If a user credits are not less than this limit, then the credit reminder will be shown at the top bar reminder. Leave empty or set to 0 for disable this feature.', + 45 => 'setting_functions_other_closeforumorderby', + 46 => 'Close the thread list page sorting function', + 47 => 'If selected, users will view only default thread sort, Otherwise users can select the ordering method. This feature increase the server loading.', + 48 => 'setting_functions_other_disableipnotice', + 49 => 'Disable Login security notice', + 50 => 'If selected "Yes", then the user login regions exception safety notice will be disabled', + 51 => 'setting_functions_other_darkroom', + 52 => 'Open dark room', + 53 => 'After select "Yes" a dark room will be open, and user can enter the dark room in the right-lower corner of the navigation, and will view the Read Only and Banned user access.', + 54 => 'setting_functions_other_global_sign', + 55 => 'Global signature', + 56 => 'The setting must be turned on after the signature validation. If the user does not set the signature then the global signature will be shown.', + ), + ), + 242 => + array ( + 'index' => + array ( + 'Site modules' => 'action=setting&operation=functions', + 'Guide settings' => 'action=setting&operation=functions&anchor=guide', + ), + 'text' => + array ( + 0 => 'Site modules » Guide settings', + 1 => 'setting_functions_heatthread_guidelimit', + 2 => 'Heat lower limit for aggregate', + 3 => 'Guidance Function Collected Hot Threads when the heat value ig greater than this lower limit. Default value is "3"', + 4 => 'setting_functions_guide_hotdt', + 5 => 'Hot post aggregation time range', + 6 => 'setting_functions_guide_digestdt', + 7 => 'Digest aggregation time range', + ), + ), + 243 => + array ( + 'index' => + array ( + 'Site modules' => 'action=setting&operation=functions', + 'Event thread' => 'action=setting&operation=functions&anchor=activity', + ), + 'text' => + array ( + 0 => 'Site modules » Event thread', + 1 => 'setting_functions_activity_type', + 2 => 'Built-in types', + 3 => 'This setting will be displayed types of event when the user initiate an event, one type per line', + 4 => 'setting_functions_activity_field', + 5 => '(Click here to add optional data entry) optional data item', + 6 => 'Client-initiated events, choose the data item', + 7 => 'setting_functions_activity_extnum', + 8 => 'Number of extended fields', + 9 => 'Client-initiated event, the number of custom data items, 0 to not allow custom data entry.', + 10 => 'setting_functions_activity_credit', + 11 => 'Use the points', + 12 => 'Participation in the event will consume with this number of points', + 13 => 'setting_functions_activity_pp', + 14 => 'List of users', + 15 => 'Number of participants shown at the user list page', + ), + ), + 244 => + array ( + 'index' => + array ( + 'User Permissions' => 'action=setting&operation=permissions', + ), + 'text' => + array ( + 0 => 'User Permissions', + 1 => 'setting_permissions_allowviewuserthread', + 2 => 'Allow to view other authors threads and posts', + 3 => 'This setting allowed to view topics and posts published by other users. Choose the appropriate forum so personal space "theme" modules and links.', + 4 => 'setting_permissions_allowviewuserthread_fids', + 5 => 'Enable view other Forums', + 6 => 'Set up which forum topics and posts of other users are allowed to be viewed, you can hold down CTRL to select multiple items', + 7 => 'setting_permissions_allowmoderatingthread', + 8 => 'Prompt the moderator if he have not reviewed thread or post', + 9 => 'Select "Yes" for notify a moderator to review the pending posts, so he will be able to see the tips in the post list page.', + 10 => 'setting_permissions_memliststatus', + 11 => 'Enable to view member list', + 12 => 'setting_permissions_minpostsize', + 13 => 'Minimal post size (characters)', + 14 => 'Set 0 for no limit. Note: This setting not affected for Management Groups.', + 15 => 'setting_permissions_minpostsize_mobile', + 16 => 'Minimum post size for Mobile client (bytes)', + 17 => 'Whether to use a separated post size setting for a mobile client (bytes). Set to 0 for use the default global forum setting.', + 18 => 'setting_permissions_maxpostsize', + 19 => 'Maximum post size (characters)', + 20 => 'Note: This setting is not affected for Management Groups.', + 21 => 'setting_permissions_alloweditpost', + 22 => 'Enable users to edit own posts', + 23 => 'Selected user groups will not limited by "Edit post time", and can edit posts at any time.', + 24 => 'setting_permissions_post_append', + 25 => 'Enable Post append function', + 26 => 'When enabled, users can not edit their posts, but can add content', + 27 => 'setting_permissions_mailinterval', + 28 => 'Mail sending interval', + 29 => 'Set the mail sending interval, the default is 300 seconds', + 30 => 'setting_permissions_maxpolloptions', + 31 => 'Max Poll options:', + 32 => 'Set maximum number of poll options in a poll', + 33 => 'setting_permissions_editby', + 34 => 'Enable "Edited by" remark', + 35 => 'Editing after 60 seconds from created time will add a remark "Post edited by xxx at xxxx-xx-xx". Administrators can avoid this restriction.', + 36 => 'setting_permissions_nsprofiles', + 37 => 'Personal information is not displayed in the personal space', + 38 => 'Personal information will not be displayed in the personal space after activation', + 39 => 'setting_permissions_modasban', + 40 => 'Do not ignore review keywords', + 41 => 'If such keywords are found in a module that does not support audit keywords after being enabled, the posting will be rejected, and posting will be allowed if closed', + 42 => 'nav_setting_rate', + 43 => 'Ratings', + 44 => 'setting_permissions_karmaratelimit', + 45 => 'Rate time limit (hours)', + 46 => 'Other users can not rate after specified time of thread published. This limit is not affect for Moderators and administrators. Set to 0 for no limit.', + 47 => 'setting_permissions_modratelimit', + 48 => 'Moderator rate limit', + 49 => 'Moderators can rate ordinary users and Super Moderators only in own moderated forums. Administrators not affected by this restriction, so if they have rating permissions, they can rate in all the forums.', + 50 => 'setting_permissions_dupkarmarate', + 51 => 'Enable duplicated rates', + 52 => 'Select "Yes" to allow users to rate the same post several times, the default is "no"', + 53 => 'setting_permissions_editperdel', + 54 => 'Allow users to edit posts marked to delete', + 55 => 'Select "Yes" will allow users to edit the post marked to delete, default is "No"', + 56 => 'setting_permissions_hideexpiration', + 57 => 'Maximum effective time for the post [hide] tag', + 58 => 'Number of days from posting time after which the hide tag is expired automatically. Set to or empty for not restrict', + ), + ), + 245 => + array ( + 'index' => + array ( + 'Credits Setttings' => 'action=setting&operation=credits', + 'Basic settings' => 'action=setting&operation=credits&anchor=base', + ), + 'text' => + array ( + 0 => 'Credits Setttings » Basic settings', + 1 => 'setting_credits_extended', + 2 => 'Exchange Credits ratio', + 3 => 'Set the exchanging ratio between internal Credits and external currencies. Once the exchange ratio is set, a user can exchange their points to external currency and backward. If you do not want to use Credits conversion, set the exchange ratio to 0.', + 4 => 'setting_credits', + 5 => 'Credits Setttings', + 6 => 'setting_credits_trans', + 7 => 'Transaction points', + 8 => 'Transaction is transferring of points between users, such as sale transaction or publishing a reward points thread. You can specify such points as trading points. If you do not specify the trading points, a feature of transfer points between users will not be used. Note: Do not change once enabled and set a transaction points. Otherwise, may cause problems while tracking transaction records.', + 9 => 'setting_credits_trans9', + 10 => 'Use Points Transfer', + 11 => 'Set to enable points transfer', + 12 => 'setting_credits_trans1', + 13 => 'Thread Attachments credits', + 14 => 'Thread Attachments transactions', + 15 => 'setting_credits_trans2', + 16 => 'Reward points', + 17 => 'Set to use Reward points', + 18 => 'setting_credits_trans3', + 19 => 'Magic, decoration usin points', + 20 => 'Set the magic that use points for decoration', + 21 => 'setting_credits_trans5', + 22 => 'Products points', + 23 => 'Set to use points for product threads', + 24 => 'setting_credits_trans6', + 25 => 'Space consumption points', + 26 => 'Set to use points in space consumtion', + 27 => 'setting_credits_trans7', + 28 => 'Application points', + 29 => 'Set to use points in applications', + 30 => 'setting_credits_trans10', + 31 => 'Replies bonus', + 32 => 'This reward used when a user replied a thread', + 33 => 'setting_credits_trans8', + 34 => 'Notify users about points', + 35 => 'Set to notify users about any points changing on the user account', + 36 => 'setting_credits_trans11', + 37 => 'Grab floor points limit', + 38 => 'Minimum number of points for participate in grab floor post', + 39 => 'setting_credits_trans12', + 40 => 'Consume Credits for group creation', + 41 => 'How many credits decreased when a group created', + 42 => 'setting_credits_tax', + 43 => 'Transaction tax', + 44 => 'Set the value of transaction tax (decrease points) for each user points transfer, exchange, buying and selling. The value must be of floating point format, and in a range between 0 and 1. For example, if the value is 0.2, then a user will loss 20% (20 points from each 100 points). Set to 0 for disable the tax.', + 45 => 'setting_credits_mintransfer', + 46 => 'Minimum transfer summ', + 47 => 'Requires a user to have this minimum balance value (points) after comleting a transfer. Using this feature, you can set restrict users to make transactions if a balance is less than this value. Also you can set a negative balance limit, so transfers within this limit can be overdrawn (credited).', + 48 => 'setting_credits_minexchange', + 49 => 'Minimum exchange balance', + 50 => 'The minimum value of user balance after the required points be redeemed. Using this feature, you can set restrictions for a user balance, so that the user points less than this value can not be converted. Also you can set a negative balance limit, so a user can exchange within the quota overdraft (credited).', + 51 => 'setting_credits_maxincperthread', + 52 => 'Single thread (Attach) maximum income tax', + 53 => 'Set the maximum tax for a single sale thread (attach) income points. If a purchase exceeds this limit, it will still deduct a buyer points, but the thread (Attach) income points will not rise. The restrictions applied only for a thread (Attach) buying/selling. Set to 0 for no limit.', + 54 => 'setting_credits_maxchargespan', + 55 => 'Single thread (Attach) sale time (hours)', + 56 => 'Set a time (in hours) when a thread (Attach) may be on sale after publishing. After this time a thread become a common (free) thread (Attach), and a reader will not have to pay for it, and an author will no longer receive corresponding benefit. Set to 0 for no limit.', + ), + ), + 246 => + array ( + 'index' => + array ( + 'Mail Settings' => 'action=setting&operation=mail', + 'Settings' => 'action=setting&operation=mail&anchor=setting', + ), + 'text' => + array ( + 0 => 'Mail Settings » Settings', + 1 => 'setting_mail_setting_send', + 2 => 'Send mail method', + 3 => 'If you need to use SSL encrypted SMTP sending, please add ssl:// before the server address and adjust the port number.', + 4 => 'setting_mail_setting_delimiter', + 5 => 'Message header separator', + 6 => 'Please set your mail server to additional parameters', + 7 => 'setting_mail_setting_includeuser', + 8 => 'Recipient address contains a user name', + 9 => 'Select "Yes" if the recipient e-mail address contains the user name', + 10 => 'setting_mail_setting_silent', + 11 => 'Hide all errors while e-mail send', + ), + ), + 247 => + array ( + 'index' => + array ( + 'Mail Settings' => 'action=setting&operation=mail', + 'Test' => 'action=setting&operation=mail&anchor=check', + ), + 'text' => + array ( + 0 => 'Mail Settings » Test', + 1 => 'setting_mail_check_test_from', + 2 => 'Test sender', + 3 => 'setting_mail_check_test_to', + 4 => 'Test recipient', + 5 => 'If you want to test e-mail address containing a user name, use the next format: "username <user@domain.com>". Separate multiple addresses by commas.', + ), + ), + 248 => + array ( + 'index' => + array ( + 'Account bodyguard' => 'action=setting&operation=sec', + 'Registration form name' => 'action=setting&operation=sec&anchor=accountguard', + ), + 'text' => + array ( + 0 => 'Account bodyguard » Registration form name', + 1 => 'setting_sec_accountguard_postqqonly', + 2 => 'Bind QQ before posting', + 3 => 'User must first bind QQ number before posting anything', + 4 => 'setting_sec_accountguard_loginpwcheck', + 5 => 'Weak password detection', + 6 => 'When the user password strength does not meet the system settings (Global -> Registration and Access Control -> Registration -> Enforce password complexity), then the user will be promted to modify the password. The user account will be frozen until the user modified weak password.', + 7 => 'setting_sec_accountguard_loginoutofdate', + 8 => 'Abnormal log in detecting', + 9 => 'When the user has logged in for more than a certain period of time, the account will enter the unaudited group, and the user can unfreeze the account by verifying the mailbox or appealing, and the QQ login user will not be affected by this feature. Audit users', + 10 => 'setting_sec_accountguard_loginoutofdatenum', + 11 => 'Number of days for abnormal login detection', + 12 => 'Configure the number of days for abnormal login detection, the default value is 90 days', + 13 => 'setting_sec_accountguard_forcelogin', + 14 => 'Secure Login', + 15 => 'Force some user groups to use the specified login method', + ), + ), + 249 => + array ( + 'index' => + array ( + 'Authentication Settings' => 'action=setting&operation=sec', + 'Security Code settings' => 'action=setting&operation=sec&anchor=seccode', + ), + 'text' => + array ( + 0 => 'Authentication Settings » Security Code settings', + 1 => 'setting_sec_code_tips', + 2 => 'If an image used as verification code, the image must contain only this 24 characters: "2346789BCEFGHJKMPQRTVWXY", and must be a GIF format image with a transparent background, and a black as a first indexed color. Image size is not restricted, but the recommended width must be not more than 1/4 of the text verification code width. The height must be not grater than a height of verification code. After new images completed, create a new directory with any name under the static/image/seccode/gif/ directory, and upload 24 new GIF images into this subdirectory.For using another background image for verification code, upload JPG images to the static/image/seccode/background/ directory. The site will randomly choose an image from this directory as a background for the verification code.For use another TTF fonts in verification code, upload the English TTF font files to static/image/seccode/font/en/directory, the site will randomly use fonts from this directory in a verification code.Before using of Chinese fonts in verification code, you need to upload full Chinese characters TTF font to the static/image/seccode/font/ch/ directory, the site will randomly use fonts from this directory for generating a verification code.System verification code placed in source/class/seccode directory, verification code Plug-in is located in source/plugin/seccode/ directory.', + 3 => 'setting_sec_seccode_rule_setting', + 4 => 'Rule Setting', + 5 => 'setting_sec_seccode_rule_register', + 6 => 'Registration Captcha', + 7 => 'Set the rule for enable verification code on registration', + 8 => 'setting_sec_seccode_rule_register_numlimit', + 9 => 'Limit registrations in the time period', + 10 => 'When a user exceeds a number of registrations in the selected time period, the verification code (captcha) will be turned on. Set to 0 for disable this feture.', + 11 => 'setting_sec_seccode_rule_register_timelimit', + 12 => 'Choose the time period', + 13 => 'setting_sec_seccode_rule_login', + 14 => 'Use Captcha on Login', + 15 => 'Set the rule for enable verification code on login', + 16 => 'setting_sec_seccode_rule_login_nolocal', + 17 => 'Enable remote login', + 18 => 'Enable verification code if a user is logging from non-locally IP', + 19 => 'setting_sec_seccode_rule_login_pwsimple', + 20 => 'Enable for simple password', + 21 => 'When at login a user used a short or simple password that is not correspond the current settings', + 22 => 'setting_sec_seccode_rule_login_pwerror', + 23 => 'Enabled after 2 attempts with a wrong password', + 24 => 'setting_sec_seccode_rule_login_outofday', + 25 => 'Not logged time (days)', + 26 => 'If a timeout between last and current login exceeds this value, then the verification code is turned on. Set to 0 for disable this rule.', + 27 => 'setting_sec_seccode_rule_login_numiptry', + 28 => 'Limit wrong password attempts from the IP range', + 29 => 'When a number of invalid passwords at selected time period from this IP range exceeds this number, the verification code will be turned on. Set to 0 for disable this feature.', + 30 => 'setting_sec_seccode_rule_login_timeiptry', + 31 => 'Choose time period', + 32 => 'setting_sec_seccode_rule_post', + 33 => 'Use Captcha on Post', + 34 => 'This rule enables a verification code when publishing any post', + 35 => 'setting_sec_seccode_rule_post_numlimit', + 36 => 'Limit number of posts in a time period', + 37 => 'If a user in that time period tried to publish more posts than this limit, the verification code will be turned on. Set to 0 for disable this rule.', + 38 => 'setting_sec_seccode_rule_post_timelimit', + 39 => 'Choose time period', + 40 => 'setting_sec_seccode_rule_post_nplimit', + 41 => 'Thread flood time (seconds)', + 42 => 'If a time between creating of two threads is less than this limit, then the verification code will be turned on. Set to 0 for disable this rule.', + 43 => 'setting_sec_seccode_rule_post_vplimit', + 44 => 'Reply flood time (seconds)', + 45 => 'If a time between two user replies is less than this limit, then the verification code will be turned on. Set to 0 for disable this rule.', + 46 => 'setting_sec_seccode_rule_password', + 47 => 'Use Captcha on Change Password', + 48 => 'Set whether to enable verification code on password changing', + 49 => 'setting_sec_seccode_rule_card', + 50 => 'Use Captcha on prepaid card closed', + 51 => 'Set whether to enable verification code secret prepaid card (It is recommended to enable)', + 52 => 'setting_sec_seccode_minposts', + 53 => 'Post number for avoid Code', + 54 => 'Number of posts the user must have for remove the verification code. 0 means that ALL members must enter a code.', + 55 => 'setting_sec_seccode_type_setting', + 56 => 'Show type setting', + 57 => 'setting_sec_seccode_type', + 58 => 'Code type', + 59 => 'Set the type of authentication code. Chinese image verification code require for the host support of FreeType library. To display the Flash verification code, we recommend that your host support the Ming library to improve the securityCode Preview', + 60 => 'setting_sec_seccode_width', + 61 => 'Image width', + 62 => 'Set a width of verification code image in range of 100 - 200 px.', + 63 => 'setting_sec_seccode_height', + 64 => 'Image height', + 65 => 'Set a height of verification code image in range of 50 - 80 px.', + 66 => 'setting_sec_seccode_scatter', + 67 => 'Image scatter', + 68 => 'Enter the scatter (break up) level for the resulting image of verification code. Set 0 for not use scatter.', + 69 => 'setting_sec_seccode_background', + 70 => 'Random background image', + 71 => 'Select "Yes" to use random JPG image from static/image/seccode/background/ directory as a background for the verification code. Select "No" for use a random background color.', + 72 => 'setting_sec_seccode_adulterate', + 73 => 'Random background noice', + 74 => 'Select "Yes" for increase a random graphical noice at a verification code background.', + 75 => 'setting_sec_seccode_ttf', + 76 => 'Random TTF fonts', + 77 => 'Select "Yes" for use random TTF font from static/image/seccode/font/en/ directory. Select "No" for use random TTF fonts from static/image/seccode/gif/ directory. Chinese image verification code will use random TTF font from static/image/seccode/font/ch/ directory without the need for this setting.', + 78 => 'setting_sec_seccode_angle', + 79 => 'Random angle', + 80 => 'Select "Yes" for use a random text inclination for the verification code. This setting take effect only for TTF fonts.', + 81 => 'setting_sec_seccode_warping', + 82 => 'Random distortion', + 83 => 'Select "Yes" for use a random twist in verification code text, effective only for TTF fonts.', + 84 => 'setting_sec_seccode_color', + 85 => 'Random color', + 86 => 'Select "Yes" for use random text and background color of verification code', + 87 => 'setting_sec_seccode_size', + 88 => 'Random size', + 89 => 'Select "Yes" for use random text size in verification code', + 90 => 'setting_sec_seccode_shadow', + 91 => 'Text shadow', + 92 => 'Select "Yes" for use a shadow effect in verification code', + 93 => 'setting_sec_seccode_animator', + 94 => 'Animated GIF', + 95 => 'Select "Yes" for use the verification code will appear as animated GIF, select "No" use a static inage mode', + ), + ), + 250 => + array ( + 'index' => + array ( + 'Authentication Settings' => 'action=setting&operation=sec', + 'Security Q & A' => 'action=setting&operation=sec&anchor=secqaa', + ), + 'text' => + array ( + 0 => 'Authentication Settings » Security Q & A', + 1 => 'setting_sec_qaa_tips', + 2 => 'Validation questions should be concise, unambiguous, so normal people are able to answer the question correctly. Please verify that the questions and answers updated frequently in order to prevent guess and speculations!To install a new validation Q & A script, upload it to the source/class/secqaa/ directory. Plugin for validate questions is placed in the source/plugin/secqaa/ directory.Before programming a new Questions & Answers validation plug-in, you have to read the «Discuz! Technical Documentation».', + 3 => 'setting_sec_secqaa', + 4 => 'Security Q & A', + 5 => 'Security questions and answers when registering or posting enable to prevent malicious effects because of more significant difficulty. Recommended to set more than 10 questions and answers. Note: HTML code supported, the answer mus be not longer than 50 characters.', + 6 => 'setting_sec_secqaa_status', + 7 => 'Enable security Q & A', + 8 => 'If enabled, the system will require members for correct answer for security question, randomly selected to continue operation and avoid bad faith registration or post publishing. For complete the operation it is required to select the security question and answer. Note: Enabling this feature will increase the operation difficulty. Recommended to enable only when necessary.', + 9 => 'setting_sec_secqaa_minposts', + 10 => 'Posts limit for disable Q & A', + 11 => 'Do not use sequrity Q & A for members posted more times than this value. Set to 0 for show Q & A from ALL members.', + 12 => 'setting_sec_secqaa_qaa', + 13 => 'Set questions and answers', + ), + ), + 251 => + array ( + 'index' => + array ( + 'Anti-spam settings' => 'action=setting&operation=sec', + 'Basic anti-spam settings' => 'action=setting&operation=sec&anchor=base', + ), + 'text' => + array ( + 0 => 'Anti-spam settings » Basic anti-spam settings', + 1 => 'setting_sec_floodctrl', + 2 => 'Post Flood Control (seconds)', + 3 => 'Between two post interval must be not less than this time, 0 for no limit', + 4 => 'setting_sec_base_need_email', + 5 => 'Force new users to activate email', + 6 => 'Members must verify their mailboxes before they can post anything.', + 7 => 'setting_sec_base_need_avatar', + 8 => 'Force new users to upload avatar', + 9 => 'Select Yes, for enable any posting only after an avatar uloaded.', + 10 => 'setting_sec_base_need_friendnum', + 11 => 'Force new users to add a minimum of friends', + 12 => 'Set the number of friends, new user must have before he can post anything.', + ), + ), + 252 => + array ( + 'index' => + array ( + 'Anti-spam settings' => 'action=setting&operation=sec', + 'Registration form name' => 'action=setting&operation=sec&anchor=reginput', + ), + 'text' => + array ( + 0 => 'Anti-spam settings » Registration form name', + 1 => 'setting_sec_reginput', + 2 => 'Registration form name', + 3 => 'setting_sec_reginput_username', + 4 => 'Username settings', + 5 => 'Default username, only a combination of letters and numbers must begin with a letter. Modified form name will make it more difficult to play a role in RI', + 6 => 'setting_sec_reginput_password', + 7 => 'Password settings', + 8 => 'Default password, only a combination of letters and numbers must begin with a letter. Modified form name will make it more difficult to play a role in RI', + 9 => 'setting_sec_reginput_password2', + 10 => 'Repeat password settings', + 11 => 'Default password2, only a combination of letters and numbers must begin with a letter. Modified form name will make it more difficult to play a role in RI', + 12 => 'setting_sec_reginput_email', + 13 => 'Email settings', + 14 => 'Default email, only a combination of letters and numbers must begin with a letter. Modified form name will make it more difficult to play a role in RI', + ), + ), + 253 => + array ( + 'index' => + array ( + 'Anti-spam settings' => 'action=setting&operation=sec', + 'Registration form name' => 'action=setting&operation=sec&anchor=postperiodtime', + ), + 'text' => + array ( + 0 => 'Anti-spam settings » Registration form name', + 1 => 'setting_sec_postperiodtime', + 2 => 'Post time restriction', + 3 => 'setting_datetime_postbanperiods', + 4 => 'R/O periods,', + 5 => 'Every day time period when users can not make posts. Please use the 24-hour period format. One time period per line, if you need across the zero. Leave blank for no limit. For example:A day late 11:25 to 5:05 the next morning can be set to: 23:25-5:05Daily 2:30 as early as 9:00 pm the same day can be set as follows: 9:00-14:30Note: incorrect format may lead to unexpected problems, such as opening "from the time period limit" option, then the group from time to any time to set constraints in the user group. All time settings are site system default time zone, from the user-defined time zone', + 6 => 'setting_datetime_postmodperiods', + 7 => 'Premoderation period', + 8 => 'Any postings made in this period will not shown until moderators/administrators manually approve the posting.', + 9 => 'setting_datetime_postignorearea', + 10 => 'Ignore no posting time location', + 11 => 'When the user address is present in this list, posting is not restricted by the time period. One region per line, such as "Beijing" (without quotation marks). Leave it blank to not set. Note: If you want to accurately determine the region where your IP address is located, please download the qqwry.dat IP address database file from the Internet and upload it to the "data/ipdata/" directory and rename it to wry.dat', + 12 => 'setting_datetime_postignoreip', + 13 => 'IP ignored the No Posting time restrictions', + 14 => 'When a user IP address is in this list, the posting time restriction is not applied. One IP per line, a full address or beginning of IP range, For example "192.168." (without quotes) matches all IP adresses in range of 192.168.0.0~192.168.255.255. Leave blank to not set.', + ), + ), + 254 => + array ( + 'index' => + array ( + 'Time settings' => 'action=setting&operation=datetime', + ), + 'text' => + array ( + 0 => 'Time settings', + 1 => 'setting_datetime_format', + 2 => 'Date and time format', + 3 => 'setting_datetime_dateformat', + 4 => 'Default date format', + 5 => 'Use yyyy or yy for the year, mm for the month, dd for the day. I.e. yyyy-mm-dd will display 2000-12-31', + 6 => 'setting_datetime_timeformat', + 7 => 'Default time format', + 8 => 'setting_datetime_dateconvert', + 9 => 'Human Time Format', + 10 => 'Select "Yes" for display time like "n minutes ago", "Yesterday", "n days ago", etc.', + 11 => 'setting_datetime_timeoffset', + 12 => 'Default time offset', + 13 => 'Set your local time offset from GMT (Time zone). For example, you can enter: -7.5 for the Summer Time in China.', + 14 => 'setting_datetime_periods', + 15 => 'Time period settings', + 16 => 'setting_datetime_visitbanperiods', + 17 => 'Disable access time', + 18 => 'Set some time of day period when users can not access to the site. Use the 24-hours time format, one time period per line. if necessary, a time can cross zero (midnight). Leave blank to not limit. For example:Nightly near the midnight: 23:25-05:05Daily from 9:00 pm to 2:30: 09:00-14:30Note: incorrect time format may cause some unexpected problems! I.e. User groups with "without time limit" option may have an access constraints from time to time. All the time settings must be set using the system default time zone.', + 19 => 'setting_datetime_ban_downtime', + 20 => 'No downloads period', + 21 => 'Set a time period when users can not download attachments', + 22 => 'setting_datetime_searchbanperiods', + 23 => 'No search period', + 24 => 'Set a time period when users can not use the full-text search.', + ), + ), + 255 => + array ( + 'index' => + array ( + 'Upload Settings' => 'action=setting&operation=attach', + 'Base settings' => 'action=setting&operation=attach&anchor=basic', + ), + 'text' => + array ( + 0 => 'Upload Settings » Base settings', + 1 => 'setting_attach_basic_dir', + 2 => 'Attachment directory', + 3 => 'Set the absolute server path without ending slash ("/"). It must have attributes 777 and must be accessible by web.', + 4 => 'setting_attach_basic_url', + 5 => 'Attachments URL', + 6 => 'Enter relative path from the web-server root, or an absolute URL starting from http://, without ending "/".', + 7 => 'setting_attach_image_lib', + 8 => 'Image processing library', + 9 => 'Select a library to handle thumbnails and watermark image. GD is the most widely used library, but require more resources. ImageMagick eat less system resources, but require the execute the command line instructions. If you want to use this program, please go to http://www.imagemagick.org for download, and follow the installation instruction.', + 10 => 'setting_attach_image_gdlimit', + 11 => 'GD image pixel limit', + 12 => 'Set the upper limit of GD image pixels. The larger the value, the more server memory is required. Sites that exceed the default value of 16777216 need to set a larger memory_limit in php.ini to adapt to this configuration', + 13 => 'setting_attach_image_thumbquality', + 14 => 'Thumbnail quality', + 15 => 'Set a quality of the thumbnail image in range of 0 - 100 (integer value). Larger quality give a better result, but require greater image size.', + 16 => 'setting_attach_image_disabledmobile', + 17 => 'Generate thumbnails for mobile version', + 18 => 'Set whether to generate a thumbnail of each attachment for mobile version', + 19 => 'setting_attach_image_preview', + 20 => 'Preview', + 21 => 'No need to save the settings to preview', + ), + ), + 256 => + array ( + 'index' => + array ( + 'Upload Settings' => 'action=setting&operation=attach', + 'Forum attachments' => 'action=setting&operation=attach&anchor=forumattach', + ), + 'text' => + array ( + 0 => 'Upload Settings » Forum attachments', + 1 => 'setting_attach_basic_imgpost', + 2 => 'Display attached images in a post', + 3 => 'Show the post attached images directly without the need to click the attachment link', + 4 => 'setting_attach_basic_allowattachurl', + 5 => 'Enable attachment URL for media player', + 6 => 'After opening the attachment URL address, the address of the uploaded attachment can be quoted in any post using the tag "attach://aid.ext", and supports direct playback of media attachments. This setting needs to be set in User Group. The user group must be allowed to use multimedia codes in the post, and ensure that the local file reading mode configured by config_global.php is 1 or 4 before it takes effect', + 7 => 'setting_attach_image_thumbstatus', + 8 => 'Thumbnail settings for post attachments', + 9 => 'Set a method for show images: create a thumblail image or shrink the original image to specified size. Supported JPG/PNG/GIF images. Animated GIF format is not supported.', + 10 => 'setting_attach_image_thumbwidthheight', + 11 => 'Thumbnail size', + 12 => 'Set a thumbnail size. I an image is smaller than the size, the thumbnail will not generated.', + 13 => 'setting_attach_basic_thumbsource', + 14 => 'Direct resize original image', + 15 => 'Select "Yes" for resize the original image, without generating a thumbnail file', + 16 => 'setting_attach_image_thumbsourcewidthheight', + 17 => 'Original image zoom size', + 18 => 'Set the size of original image. If attached image width/height is greater than this size, the image will be resized automatically to this size (thumbnail created).', + 19 => 'setting_attach_antileech_expire', + 20 => 'Attachment links expiration', + 21 => 'Unit: hours. Set to 0 or blank for permanent attachment links. Expired links are updated automatically. This feature can prevent the attachment leeching and bulk downloads, but it will cause inconvenience for normal members to download.', + 22 => 'setting_attach_antileech_refcheck', + 23 => 'Check the attachment referer', + 24 => 'Select "Yes" for check a referer when download attachments from other sites or sites banned for downloads. Note: This feature will display a "message about image attachment", and will increase the server loading.', + ), + ), + 257 => + array ( + 'index' => + array ( + 'Upload Settings' => 'action=setting&operation=attach', + 'Remote Attachments' => 'action=setting&operation=attach&anchor=remote', + ), + 'text' => + array ( + 0 => 'Upload Settings » Remote Attachments', + 1 => 'setting_attach_remote_enabled', + 2 => 'Enable Remote Attachments', + 3 => 'setting_attach_remote_enabled_ssl', + 4 => 'Enable SSL connections', + 5 => 'Note: FTP server must support the SSL', + 6 => 'setting_attach_remote_ftp_host', + 7 => 'FTP server address', + 8 => 'Enter the FTP server IP address or domain name', + 9 => 'setting_attach_remote_ftp_port', + 10 => 'FTP server port', + 11 => 'Default is 21', + 12 => 'setting_attach_remote_ftp_user', + 13 => 'FTP account', + 14 => 'The account must have the following permissions: read the file, write files, delete files, create directories, subdirectories inherit', + 15 => 'setting_attach_remote_ftp_pass', + 16 => 'FTP password', + 17 => 'According to the security considerations, will be shown only the first and the last FTP passwords, in the middle shows the eight "*".', + 18 => 'setting_attach_remote_ftp_pasv', + 19 => 'Passive mode (pasv) connection', + 20 => 'A normal mode connection is used usually. If you have problems with uploading, try to use this setting.', + 21 => 'setting_attach_remote_dir', + 22 => 'Remote Attachment directory', + 23 => 'Enter the Remote Attachment directory absolute or relative path (from the FTP home directory). Do not add the ending slash "/". FTP home directory is ".".', + 24 => 'setting_attach_remote_url', + 25 => 'Remote Access URL', + 26 => 'HTTP and FTP protocols supported. Do not use ending slash "/". If you use the FTP protocol, the FTP server must support PASV mode. For safety reasons, do not use FTP connection account with set write/list permissions.', + 27 => 'setting_attach_remote_timeout', + 28 => 'FTP transmission timeout', + 29 => 'Unit: seconds. Set 0 for use the server default', + 30 => 'setting_attach_remote_preview', + 31 => 'Connection Test', + 32 => 'No need to save the settings to test, and then save the tested', + 33 => 'setting_attach_remote_allowedexts', + 34 => 'Enabled attachment extensions', + 35 => 'Allow only these extensions for remote attachments, one per line, case insensitive. Leave blank to no limit.', + 36 => 'setting_attach_remote_disallowedexts', + 37 => 'Disabled attachment extensions', + 38 => 'Disllow these extensions for remote attachments, one per line, case insensitive. Leave blank to no limit.', + 39 => 'setting_attach_remote_minsize', + 40 => 'Minimal attachment size', + 41 => 'Unit: KB. Allow to upload remote attachments only if the size is larger than the value. Set to 0 or leave blank to no limit.', + 42 => 'setting_attach_antileech_remote_hide_dir', + 43 => 'Hide the real attachment path', + 44 => 'This option will increase the server loading, and significantly increase the local server traffic. Choose whether a download/upload attachment file name must be hidden.', + ), + ), + 258 => + array ( + 'index' => + array ( + 'Upload Settings' => 'action=setting&operation=attach', + 'Album settings' => 'action=setting&operation=attach&anchor=albumattach', + ), + 'text' => + array ( + 0 => 'Upload Settings » Album settings', + 1 => 'setting_attach_album_maxtimage', + 2 => 'Image maximum dimensions', + 3 => 'When you upload a large image, the program will generate a corresponding small image, the default size is 300*300px.', + ), + ), + 259 => + array ( + 'index' => + array ( + 'Upload Settings' => 'action=setting&operation=attach', + 'Article Attachments' => 'action=setting&operation=attach&anchor=portalarticle', + ), + 'text' => + array ( + 0 => 'Upload Settings » Article Attachments', + 1 => 'setting_attach_portal_article_img_thumb_closed', + 2 => 'Enable thumbnails for articles', + 3 => 'Make thumbnails from uploaded article images', + 4 => 'setting_attach_portal_article_imgsize', + 5 => 'Thumbnail size for article images', + 6 => 'When you upload a large image, the program will generate a corresponding small image, the default size is 300*300px.', + ), + ), + 260 => + array ( + 'index' => + array ( + 'Watermark' => 'action=setting&operation=imgwater', + 'Articles' => 'action=setting&operation=imgwater&anchor=portal', + ), + 'text' => + array ( + 0 => 'Watermark » Articles', + 1 => 'setting_imgwater_image_watermarks_portal', + 2 => 'Article image watermark setting', + 3 => 'setting_imgwater_image_watermarkstatus', + 4 => 'Watermark', + 5 => 'You can set the automatically adding watermark for upload JPG/PNG/GIF images, and select a watermark location (from optional 3x3 locations). Animated GIF format is not supported.', + 6 => 'setting_imgwater_image_watermarkminwidthheight', + 7 => 'Watermark size conditions', + 8 => 'If an image is smaller than this size, the watermark will not used. Set to 0 in order to a watrmark allways.', + 9 => 'setting_imgwater_image_watermarktype', + 10 => 'Watermark image type', + 11 => 'If you set a GIF watermark, the file static/image/common/watermark.gif will used as watermark. If you set a PNG watermark, the watermark will use the static/image/common/watermark.png file. You can replace this watermark files with your preferrd images. If you set the TEXT watermark, the image will processed using the GD library, and require to support the FreeType library.', + 12 => 'setting_imgwater_image_watermarktrans', + 13 => 'Watermark transparency', + 14 => 'Set a watermark transparency value for GIF type watermark in range 1 - 100. The greater value results the lower watermark transparency. PNG type watermark will ignore this setting with because containing this parameter inside the watermark file itself. This feature require to enable a valid watermark type.', + 15 => 'setting_imgwater_image_watermarkquality', + 16 => 'JPEG watermark quality', + 17 => 'Set the resulting JPEG image quality after watermark applied. The range is 0 - 100 (integer value). The larger value means a better result, but produce a larger image size. This feature require to enable a valid watermark type.', + 18 => 'setting_imgwater_image_watermarktext_text', + 19 => 'TEXT watermark content', + 20 => 'If you specify a TrueType font for Chinese font, you can write a text watermark in Chinese language', + 21 => 'setting_imgwater_image_watermarktext_fontpath', + 22 => 'TEXT watermark TrueType font file name', + 23 => 'Enter the TTF font file name located in the static/image/seccode/font/ch/ or static/image/seccode/font/en/ directory. For support Chinese characters you have to use of Chinese TTF fonts including a complete Chinese characters.', + 24 => 'setting_imgwater_image_watermarktext_size', + 25 => 'TEXT watermark font size', + 26 => 'Set the appropriate text font size for a watermark', + 27 => 'setting_imgwater_image_watermarktext_angle', + 28 => 'TEXT watermark angle', + 29 => 'Set a text rotation angle starting from 0 degrees', + 30 => 'setting_imgwater_image_watermarktext_color', + 31 => 'TEXT watermark font color', + 32 => 'Enter a color of watermark in a hexadecimal format, i.e. 99CCFF', + 33 => 'setting_imgwater_image_watermarktext_shadowx', + 34 => 'TEXT watermark horizontal shadow offset', + 35 => 'Set a horizontal offset for the shadow of a text watermark.', + 36 => 'setting_imgwater_image_watermarktext_shadowy', + 37 => 'TEXT watermark vertical shadow offset', + 38 => 'Set a vertical offset for the shadow of a text watermark.', + 39 => 'setting_imgwater_image_watermarktext_shadowcolor', + 40 => 'Shadow color', + 41 => 'Enter a shadow color in a hexadecimal format, i.e. 99CCFF', + 42 => 'setting_imgwater_image_watermarktext_imtranslatex', + 43 => 'TEXT watermark horizontal offset (ImageMagick)', + 44 => 'Set the watermark horizontal offset. This settingapplies only for ImageMagick library.', + 45 => 'setting_imgwater_image_watermarktext_imtranslatey', + 46 => 'TEXT watermark vertical offset (ImageMagick)', + 47 => 'Set the watermark vertical offset. This setting applies only for ImageMagick library.', + 48 => 'setting_imgwater_image_watermarktext_imskewx', + 49 => 'TEXT watermark horizontal angle (ImageMagick)', + 50 => 'Set the watermark horizontal angle. This setting applies only for ImageMagick library.', + 51 => 'setting_imgwater_image_watermarktext_imskewy', + 52 => 'TEXT watermark vertical tilt (ImageMagick)', + 53 => 'Set the watermark vertical angle. This setting applies only for ImageMagick library.', + 54 => 'setting_imgwater_preview', + 55 => 'Preview', + 56 => 'Please preview before submit', + ), + ), + 261 => + array ( + 'index' => + array ( + 'Watermark' => 'action=setting&operation=imgwater', + 'Forum' => 'action=setting&operation=imgwater&anchor=forum', + ), + 'text' => + array ( + 0 => 'Watermark » Forum', + 1 => 'setting_imgwater_image_watermarks_forum', + 2 => 'Forum attached images watermark settings', + 3 => 'setting_imgwater_image_watermarkstatus', + 4 => 'Watermark', + 5 => 'You can set the automatically adding watermark for upload JPG/PNG/GIF images, and select a watermark location (from optional 3x3 locations). Animated GIF format is not supported.', + 6 => 'setting_imgwater_image_watermarkminwidthheight', + 7 => 'Watermark size conditions', + 8 => 'If an image is smaller than this size, the watermark will not used. Set to 0 in order to a watrmark allways.', + 9 => 'setting_imgwater_image_watermarktype', + 10 => 'Watermark image type', + 11 => 'If you set a GIF watermark, the file static/image/common/watermark.gif will used as watermark. If you set a PNG watermark, the watermark will use the static/image/common/watermark.png file. You can replace this watermark files with your preferrd images. If you set the TEXT watermark, the image will processed using the GD library, and require to support the FreeType library.', + 12 => 'setting_imgwater_image_watermarktrans', + 13 => 'Watermark transparency', + 14 => 'Set a watermark transparency value for GIF type watermark in range 1 - 100. The greater value results the lower watermark transparency. PNG type watermark will ignore this setting with because containing this parameter inside the watermark file itself. This feature require to enable a valid watermark type.', + 15 => 'setting_imgwater_image_watermarkquality', + 16 => 'JPEG watermark quality', + 17 => 'Set the resulting JPEG image quality after watermark applied. The range is 0 - 100 (integer value). The larger value means a better result, but produce a larger image size. This feature require to enable a valid watermark type.', + 18 => 'setting_imgwater_image_watermarktext_text', + 19 => 'TEXT watermark content', + 20 => 'If you specify a TrueType font for Chinese font, you can write a text watermark in Chinese language', + 21 => 'setting_imgwater_image_watermarktext_fontpath', + 22 => 'TEXT watermark TrueType font file name', + 23 => 'Enter the TTF font file name located in the static/image/seccode/font/ch/ or static/image/seccode/font/en/ directory. For support Chinese characters you have to use of Chinese TTF fonts including a complete Chinese characters.', + 24 => 'setting_imgwater_image_watermarktext_size', + 25 => 'TEXT watermark font size', + 26 => 'Set the appropriate text font size for a watermark', + 27 => 'setting_imgwater_image_watermarktext_angle', + 28 => 'TEXT watermark angle', + 29 => 'Set a text rotation angle starting from 0 degrees', + 30 => 'setting_imgwater_image_watermarktext_color', + 31 => 'TEXT watermark font color', + 32 => 'Enter a color of watermark in a hexadecimal format, i.e. 99CCFF', + 33 => 'setting_imgwater_image_watermarktext_shadowx', + 34 => 'TEXT watermark horizontal shadow offset', + 35 => 'Set a horizontal offset for the shadow of a text watermark.', + 36 => 'setting_imgwater_image_watermarktext_shadowy', + 37 => 'TEXT watermark vertical shadow offset', + 38 => 'Set a vertical offset for the shadow of a text watermark.', + 39 => 'setting_imgwater_image_watermarktext_shadowcolor', + 40 => 'Shadow color', + 41 => 'Enter a shadow color in a hexadecimal format, i.e. 99CCFF', + 42 => 'setting_imgwater_image_watermarktext_imtranslatex', + 43 => 'TEXT watermark horizontal offset (ImageMagick)', + 44 => 'Set the watermark horizontal offset. This settingapplies only for ImageMagick library.', + 45 => 'setting_imgwater_image_watermarktext_imtranslatey', + 46 => 'TEXT watermark vertical offset (ImageMagick)', + 47 => 'Set the watermark vertical offset. This setting applies only for ImageMagick library.', + 48 => 'setting_imgwater_image_watermarktext_imskewx', + 49 => 'TEXT watermark horizontal angle (ImageMagick)', + 50 => 'Set the watermark horizontal angle. This setting applies only for ImageMagick library.', + 51 => 'setting_imgwater_image_watermarktext_imskewy', + 52 => 'TEXT watermark vertical tilt (ImageMagick)', + 53 => 'Set the watermark vertical angle. This setting applies only for ImageMagick library.', + 54 => 'setting_imgwater_preview', + 55 => 'Preview', + 56 => 'Please preview before submit', + ), + ), + 262 => + array ( + 'index' => + array ( + 'Watermark' => 'action=setting&operation=imgwater', + 'Space albums' => 'action=setting&operation=imgwater&anchor=album', + ), + 'text' => + array ( + 0 => 'Watermark » Space albums', + 1 => 'setting_imgwater_image_watermarks_album', + 2 => 'Space album photo watermark settings', + 3 => 'setting_imgwater_image_watermarkstatus', + 4 => 'Watermark', + 5 => 'You can set the automatically adding watermark for upload JPG/PNG/GIF images, and select a watermark location (from optional 3x3 locations). Animated GIF format is not supported.', + 6 => 'setting_imgwater_image_watermarkminwidthheight', + 7 => 'Watermark size conditions', + 8 => 'If an image is smaller than this size, the watermark will not used. Set to 0 in order to a watrmark allways.', + 9 => 'setting_imgwater_image_watermarktype', + 10 => 'Watermark image type', + 11 => 'If you set a GIF watermark, the file static/image/common/watermark.gif will used as watermark. If you set a PNG watermark, the watermark will use the static/image/common/watermark.png file. You can replace this watermark files with your preferrd images. If you set the TEXT watermark, the image will processed using the GD library, and require to support the FreeType library.', + 12 => 'setting_imgwater_image_watermarktrans', + 13 => 'Watermark transparency', + 14 => 'Set a watermark transparency value for GIF type watermark in range 1 - 100. The greater value results the lower watermark transparency. PNG type watermark will ignore this setting with because containing this parameter inside the watermark file itself. This feature require to enable a valid watermark type.', + 15 => 'setting_imgwater_image_watermarkquality', + 16 => 'JPEG watermark quality', + 17 => 'Set the resulting JPEG image quality after watermark applied. The range is 0 - 100 (integer value). The larger value means a better result, but produce a larger image size. This feature require to enable a valid watermark type.', + 18 => 'setting_imgwater_image_watermarktext_text', + 19 => 'TEXT watermark content', + 20 => 'If you specify a TrueType font for Chinese font, you can write a text watermark in Chinese language', + 21 => 'setting_imgwater_image_watermarktext_fontpath', + 22 => 'TEXT watermark TrueType font file name', + 23 => 'Enter the TTF font file name located in the static/image/seccode/font/ch/ or static/image/seccode/font/en/ directory. For support Chinese characters you have to use of Chinese TTF fonts including a complete Chinese characters.', + 24 => 'setting_imgwater_image_watermarktext_size', + 25 => 'TEXT watermark font size', + 26 => 'Set the appropriate text font size for a watermark', + 27 => 'setting_imgwater_image_watermarktext_angle', + 28 => 'TEXT watermark angle', + 29 => 'Set a text rotation angle starting from 0 degrees', + 30 => 'setting_imgwater_image_watermarktext_color', + 31 => 'TEXT watermark font color', + 32 => 'Enter a color of watermark in a hexadecimal format, i.e. 99CCFF', + 33 => 'setting_imgwater_image_watermarktext_shadowx', + 34 => 'TEXT watermark horizontal shadow offset', + 35 => 'Set a horizontal offset for the shadow of a text watermark.', + 36 => 'setting_imgwater_image_watermarktext_shadowy', + 37 => 'TEXT watermark vertical shadow offset', + 38 => 'Set a vertical offset for the shadow of a text watermark.', + 39 => 'setting_imgwater_image_watermarktext_shadowcolor', + 40 => 'Shadow color', + 41 => 'Enter a shadow color in a hexadecimal format, i.e. 99CCFF', + 42 => 'setting_imgwater_image_watermarktext_imtranslatex', + 43 => 'TEXT watermark horizontal offset (ImageMagick)', + 44 => 'Set the watermark horizontal offset. This settingapplies only for ImageMagick library.', + 45 => 'setting_imgwater_image_watermarktext_imtranslatey', + 46 => 'TEXT watermark vertical offset (ImageMagick)', + 47 => 'Set the watermark vertical offset. This setting applies only for ImageMagick library.', + 48 => 'setting_imgwater_image_watermarktext_imskewx', + 49 => 'TEXT watermark horizontal angle (ImageMagick)', + 50 => 'Set the watermark horizontal angle. This setting applies only for ImageMagick library.', + 51 => 'setting_imgwater_image_watermarktext_imskewy', + 52 => 'TEXT watermark vertical tilt (ImageMagick)', + 53 => 'Set the watermark vertical angle. This setting applies only for ImageMagick library.', + 54 => 'setting_imgwater_preview', + 55 => 'Preview', + 56 => 'Please preview before submit', + ), + ), + 263 => + array ( + 'index' => + array ( + 'Search Settings' => 'action=setting&operation=search', + ), + 'text' => + array ( + 0 => 'Search Settings', + 1 => 'setting_search_status', + 2 => 'Enable search', + 3 => 'Check the areas you want to enable search', + 4 => 'setting_search_srchsetting', + 5 => 'Search option settings', + 6 => 'setting_search_srchcensor', + 7 => 'Search is controlled by word filtering', + 8 => 'setting_search_srchhotkeywords', + 9 => 'Popular keywords', + 10 => 'One keyword per line', + 11 => 'settings_sphinx', + 12 => 'Sphinx full text search settings', + 13 => 'settings_sphinx_sphinxon', + 14 => 'Enable Sphinx', + 15 => 'Before to enable this setting, you have to install and configure the sphinx full-text search engine.', + 16 => 'settings_sphinx_sphinxhost', + 17 => 'Set the sphinx host name, or a sphinx service socket address', + 18 => 'Enter the complete sphinx Host Name: i.e. "localhost", or fill out the sphinx service socket address as the absolute address: i.e. /tmp/sphinx.sock.', + 19 => 'settings_sphinx_sphinxport', + 20 => 'Sphinx host port', + 21 => 'Enter the sphinx host port: i.e. 3312 if host name used. Leave empty if socket address used.', + 22 => 'settings_sphinx_sphinxsubindex', + 23 => 'Index name title', + 24 => 'Enter the title of sphinx configuration name and a title of the main index name increment. For example, "threads, threads_minute".Note: The index symbols must be separated by comma ",". The index must be completed in accordance with the sphinx configuration file.', + 25 => 'settings_sphinx_sphinxmsgindex', + 26 => 'Full-text index name', + 27 => 'Enter the title of sphinx configuration name and a title of the main index name increment. For example, "posts, posts_mintue". Note: The index symbols must be separated by comma ",". The index must be completed in accordance with the sphinx configuration file.', + 28 => 'settings_sphinx_sphinxmaxquerytime', + 29 => 'Maximum search query time', + 30 => 'Enter a maximum search time in milliseconds. Parameter must be non-negative integer. The default value is 0, that means no restriction.', + 31 => 'settings_sphinx_sphinxlimit', + 32 => 'Maximum number of search results', + 33 => 'Enter a maximum number of matches to return, must be non-negative integer, the default value of 10000.', + 34 => 'settings_sphinx_sphinxrank', + 35 => 'Full-text index rank mode', + 36 => '(1) SPH_RANK_PROXIMITY_BM, the default mode, using phrases rank and BM25 rank, and will be a combination of both. [Default] + (2) SPH_RANK_BM25, statistical correlation calculation mode, use only the BM25 rank calculation (full text search engine with most of the same). This mode is faster, but may contain more than the result of a query term decline in the quality. + (3) SPH_RANK_NONE, Disable ranking mode, which is the fastest mode. Fact that the same model as a Boolean search. All the matches are given weight 1.', + ), + ), + 264 => + array ( + 'index' => + array ( + 'UCenter settings' => 'action=setting&operation=uc', + ), + 'text' => + array ( + 0 => 'UCenter settings', + 1 => 'setting_uc_tips', + 2 => 'In general, after installation all the UC seetings was set automatically and not require any changing. Note: before modify make a backup of config/config_ucenter.php file to prevent modifications errors when a site can not run.', + 3 => 'setting_uc_appid', + 4 => 'UCenter application ID', + 5 => 'The current site application ID registered in UCenter. Usually not required to change.', + 6 => 'setting_uc_key', + 7 => 'UCenter communication key', + 8 => 'UCenter communication key is for the encryption an information transfer, it can contain any letters and numbers, and be the same in UCenter an Discuz! to ensure that the two systems can normal communicate.', + 9 => 'setting_uc_api', + 10 => 'UCenter API access address', + 11 => 'If your have changed the UCenter location, please change this setting too. Incorrect setting may cause the site misfunction, please be careful in modification.Format: http://www.sitename.com/uc_server (do not add the last slash)', + 12 => 'setting_uc_ip', + 13 => 'UCenter IP address', + 14 => 'If your server can not access UCenter domain name, you can enter the UCenter server IP address', + 15 => 'setting_uc_connect', + 16 => 'UCenter connection', + 17 => 'If the Ucenter site is placed on other server, you can communicate with it by a remote way. If the UCenter is placed on the same server, we recommend you to use a database connection way, it will be more faster.', + 18 => 'setting_uc_dbhost', + 19 => 'UCenter database host', + 20 => 'Database host may be local or remote. If a MySQL port is not default 3306, please use the following form: 127.0.0.1:6033', + 21 => 'setting_uc_dbuser', + 22 => 'UCenter database username', + 23 => 'setting_uc_dbpass', + 24 => 'UCenter database password', + 25 => 'setting_uc_dbname', + 26 => 'UCenter database name', + 27 => 'setting_uc_dbtablepre', + 28 => 'UCenter table prefix', + 29 => 'setting_uc_activation', + 30 => 'Enable other applications to activate the site member', + 31 => 'Some members can be registered by other applications, not by this site. Set "Yes" if you allow these users to access the site.', + 32 => 'setting_uc_fastactivation', + 33 => 'Allow direct activation', + 34 => 'If select "Yes", a user registratin will be automatically activated. If select "No", users must complete the required profile settings before the user be activated.', + 35 => 'setting_uc_avatarmethod', + 36 => 'Avatar method', + 37 => 'Set a method to show user avatars', + ), + ), + 265 => + array ( + 'index' => + array ( + 'E-Commerce Settings' => 'action=setting&operation=ec', + 'Basic settings' => 'action=setting&operation=ec', + ), + 'text' => + array ( + 0 => 'E-Commerce Settings » Basic settings', + 1 => 'setting_ec_credittrade', + 2 => 'Points Exchange settings', + 3 => 'setting_ec_ratio', + 4 => 'Cash/points exchange ratio', + 5 => 'Set an exchange ratio between the real money cash (in USD) and intenal points. For example, if is set to 10, 1 USD can be exchanged to 10 points. This feature is required to enable sale operations with points, and an access to the related external paymet system (i.e. Alipay). Set to 0 for prohibit the use of cash and a conversion to points.', + 6 => 'setting_ec_mincredits', + 7 => 'Minimal amount of credits for single purchase', + 8 => 'Set the user minimal summ to pay in points for buy the smallest transaction. Set to 0 for no limit.', + 9 => 'setting_ec_maxcredits', + 10 => 'Maximal amount of credits to single purchase', + 11 => 'Set the user maximum summ to pay in points for a single transaction. Set to 0 for no limit.', + 12 => 'setting_ec_maxcreditspermonth', + 13 => 'Largest amount of points to buy per month', + 14 => 'Set a maximum summ the user can spent to pay per each month. Set to 0 for no limit.', + ), + ), + 266 => + array ( + 'index' => + array ( + 'Optimization' => 'action=setting&operation=seo', + 'Memory optimization' => 'action=setting&operation=memory', + ), + 'text' => + array ( + 0 => 'Optimization » Memory optimization', + 1 => 'setting_memory_tips', + 2 => 'Memory optimization program will greatly enhance a performance and decrease the server loading. Memory optimization feature require the server support appropriate PHP extension.Currently supported the next Memory Optimization Interfaces: Memcache, eAccelerator, Alternative PHP Cache (APC), Xcache, Redis, YAC, APCu. Optimize system will be based on the current server environment, followed by optional interfaces.For enable Memory optimization you can edit the config_global.php for advanced settings.', + 3 => 'setting_memory_status', + 4 => 'Current status of memory optimization', + 5 => 'setting_memory_function', + 6 => 'Memory optimization settings', + ), + ), + 267 => + array ( + 'index' => + array ( + 'Optimization' => 'action=setting&operation=seo', + 'Memory cache management' => 'action=setting&operation=memorydata', + ), + 'text' => + array ( + 0 => 'Optimization » Memory cache management', + 1 => 'setting_memorydata', + 2 => 'Memory cache management', + ), + ), + 268 => + array ( + 'index' => + array ( + 'Rank List' => 'action=setting&operation=ranklist', + ), + 'text' => + array ( + 0 => 'Rank List', + 1 => 'setting_ranklist_status', + 2 => 'Rank list is turned on', + 3 => 'setting_ranklist_index_cache_time', + 4 => 'Top List cache time', + 5 => 'Unit: Hours', + 6 => 'setting_ranklist_index_select', + 7 => 'Select the Rank list page leave time', + 8 => 'setting_ranklist_ignorefid', + 9 => 'Ignore Forum/Group rating', + 10 => 'Enter the forum ID or group ID, Corresponds forum and group threads will not appear in the list. Separate multiple ID with a comma.', + 11 => 'setting_ranklist_member_show', + 12 => 'The bidding ranking function is turned on', + 13 => 'Enable the bidding ranking function under the user module', + 14 => 'setting_ranklist_member_show_announcement', + 15 => 'Bid ranking function announcement information', + 16 => 'Fill in the bidding ranking function announcement information', + 17 => 'setting_ranklist_block_set', + 18 => 'Rank list detailed block settings', + 19 => 'setting_ranklist_update_cache_choose', + 20 => 'Choose to update the module cache', + ), + ), + 269 => + array ( + 'index' => + array ( + 'Mobile access settings' => 'action=setting&operation=mobile', + ), + 'text' => + array ( + 0 => 'Mobile access settings', + 1 => 'setting_mobile_status_tips', + 2 => 'Convenient way to view mobile pages, This feature is used only within the Forum.The mobile version page supports only mobile browser with WAP2.0 (XHTML mode) or higher.Mobile View image thumbnails width is 200 pixels or less.', + 3 => 'setting_mobile_status', + 4 => 'Mobile Global Settings', + 5 => 'setting_mobile_allowmobile', + 6 => 'Enable Mobile', + 7 => 'If this function is turn on, Mobile phone users accessed the standard forum, Will be automatically redirected to the mobile version interface.Please enter the domain configuration for access by mobile phone: Global -> Domain settings -> Application DomainIn the bottom of the navigation settings, go to: Interface -> Navigation settings -> Bottom navigation', + 8 => 'setting_mobile_mobileforward', + 9 => 'Enable the auto redirection for phone browser', + 10 => 'After the user opens a page by the phone browser to visit the forum, the user will be automatically redirected to the forum home page', + 11 => 'setting_mobile_otherindex', + 12 => 'Allow non-forum page as homepage', + 13 => 'If enabled then the mobile version can also set a plugin, portal or other page as a homepage', + 14 => 'setting_mobile_register', + 15 => 'Enable mobile registration', + 16 => 'When the Mobile registration feature is turned on, Phone up the user part not required in the registration page to detectOpen carefully!', + 17 => 'setting_mobile_hotthread', + 18 => 'Show hot threads', + 19 => 'If enabled then hot threads displayed at the Home page', + 20 => 'setting_mobile_displayorder3', + 21 => 'Show sticky threads', + 22 => 'If enabled then sticky threads displayed at the Home page', + 23 => 'setting_mobile_simpletype', + 24 => 'Enable no-images mode', + 25 => 'Images are displayed by default. When this option is turned on, the "touch screen version" does not display post images, and the "simple (WML) version" does not display post images, small icons, thread list dates and other page elements', + 26 => 'setting_mobile_topicperpage', + 27 => 'Topics per page', + 28 => 'Number of topics per page in topic list pages, recommended value is 10', + 29 => 'setting_mobile_postperpage', + 30 => 'Posts per page within the thread', + 31 => 'Number of topic posts displayed on each page, recommended value is 5', + 32 => 'setting_mobile_cachetime', + 33 => 'Cache live time', + 34 => 'Set a time to store visited by phone pages, Set empty or 0 for no cache.Unit: seconds.', + 35 => 'setting_mobile_index_forumview', + 36 => 'Forum Home display mode', + 37 => 'Such as "put away", Forum Home will show by default only forum titlesUsers need to click a forum link to view thread list under this Forum', + 38 => 'setting_mobile_come_from', + 39 => 'Mark Mobile posts', + 40 => 'Default is blank. If completed, a post will be marked by "From mobile phone". You can add a custom text or iconSuch as: <a href="http://m.x.com">Mobile Channel</a>HTML tags supported: <a><font><span><strong><b><img>If you use the icon, Please ensure the image height is 16px (pixels) or less', + 41 => 'setting_mobile_wml', + 42 => 'Whether to enable WML version', + 43 => 'WML version is the content for some earlier devices that only support the WML language to browse the website', + 44 => 'setting_mobile_allowmnew', + 45 => 'Enable localized micro-community front end', + 46 => 'Use the localized micro-community front-end, the URL of the localized micro-community front-end is "m/".After opening, this front-end system will replace the original mobile version system, but it is not supported third-party plug-ins and search engines, please use it with caution!', + ), + ), + 270 => + array ( + 'index' => + array ( + 'Anti-grab settings' => 'action=setting&operation=antitheft', + ), + 'text' => + array ( + 0 => 'Anti-grab settings', + 1 => 'setting_antitheft_iplist', + 2 => 'Access list', + 3 => 'setting_antitheft_tips', + 4 => 'Anti-grab function does not affect normal users to browse content.It prevents the site thread, article or block content be illegally collected.If IP exists in both Black and White lists, the Whitelist have a larger priority.After enabling the anti-capture function, the Posts Preview feature will not be available.', + 5 => 'setting_antitheft_status', + 6 => 'Anti-grab global settings', + 7 => 'setting_antitheft_allow', + 8 => 'Whether to open the anti-grab function', + 9 => 'setting_antitheft_24_max', + 10 => 'Maximum daily visits', + 11 => 'Set maximum daily visits for a single IP, default is 200.', + 12 => 'setting_antitheft_white', + 13 => 'Whitelist Anti-grab filtering IP', + 14 => 'If user is present in this IP list, the Anti-grab filtration function is turned off. Enter one IP per row, either complete IP address or the IP beginning only, for example, "e;192.168."e; (without the quotes) means all the IP inside the range of 192.168.0.0~192.168.255.255. Leave blank for not set whitelist.', + 15 => 'setting_antitheft_black', + 16 => 'Blacklist Anti-grab filtering IP', + 17 => 'If user is present in this IP list, the Anti-grab filtration function is turned on. Enter one IP per row, either complete IP address or the IP beginning only, for example, "e;192.168."e; (without the quotes) means all the IP inside the range of 192.168.0.0~192.168.255.255. Leave blank for not set filtering.', + 18 => 'setting_antitheft_disable', + 19 => 'Disable Anti-grab content function', + ), + ), + 271 => + array ( + 'index' => + array ( + 'Language Settings' => 'action=setting&operation=language', + ), + 'text' => + array ( + 0 => 'Language Settings', + 1 => 'setting_language_tips', + 2 => 'Add/Modify your language packs', + ), + ), + 272 => + array ( + 'index' => + array ( + 'Share Management' => 'action=share', + ), + 'text' => + array ( + 0 => 'Share Management', + 1 => 'share_tips', + 2 => 'Share management used to bulk remove shares.Reminder: click the Delete button on the search results page will delete the relevant information directly!', + ), + ), + 273 => + array ( + 'index' => + array ( + 'Share Management' => 'action=share', + 'Search' => 'action=share&search=true', + ), + 'text' => + array ( + 0 => 'Share Management » Search', + 1 => 'share_search_detail', + 2 => 'Show detailed share list', + 3 => 'share_search_perpage', + 4 => 'Items per page', + 5 => 'share_search_icon', + 6 => 'Share type', + 7 => 'share_search_uid', + 8 => 'User UID', + 9 => 'Separate multiple UID with a comma ","', + 10 => 'share_search_user', + 11 => 'Share author name', + 12 => 'Separate multiple user names by a comma ","', + 13 => 'share_search_sid', + 14 => 'Share ID', + 15 => 'Separate multiple ID with a comma ","', + 16 => 'share_search_hot', + 17 => 'Hot', + 18 => 'share_search_time', + 19 => 'Post Time range', + 20 => 'Format: yyyy-mm-dd', + ), + ), + 274 => + array ( + 'index' => + array ( + 'Smile management' => 'action=smilies', + 'Smile category' => 'action=smilies', + ), + 'text' => + array ( + 0 => 'Smile management » Smile category', + 1 => 'smilies_tips_smileytypes', + 2 => 'For the smiles be classified by categories, uload smile images to the corresponding sub-directories via FTP.Please do not create mush smile categories, so they can be displayed in a window.You can set the default displayed smile category. For remove all smiles in a certain category you can just delete this category.', + ), + ), + 275 => + array ( + 'index' => + array ( + 'Smile management' => 'action=smilies', + 'Import smiles' => 'action=smilies&operation=import', + ), + 'text' => + array ( + 0 => 'Smile management » Import smiles', + 1 => 'smilies_tips', + 2 => 'For add a smile, upload the corresponding image to the static/image/smiley/YOUR_SMILEY_CATEGORY/ directory.Supported format: JPG, GIF, PNG. Smile image filename may consist of only latin letters, digits, and this special symbols <>_-.&[](). File name length can not exceed 30 bytes, otherwise it will not be recognized.Please do not set too much smiles because of smile parsing require too much server resources.', + ), + ), + 276 => + array ( + 'index' => + array ( + 'Tag Management' => 'action=tag', + ), + 'text' => + array ( + 0 => 'Tag Management', + 1 => 'tagname', + 2 => 'Tag name', + 3 => 'feed_search_perpage', + 4 => 'Items per page', + 5 => 'misc_tag_status', + 6 => 'Status', + ), + ), + 277 => + array ( + 'index' => + array ( + 'Batch thread management' => 'action=threads', + 'New list' => 'action=threads', + ), + 'text' => + array ( + 0 => 'Batch thread management » New list', + 1 => 'threads_tips', + 2 => 'Thread mass management. You can search threads and bulk delete, move, set category, set/cancel top, set/cancel digest, open/close/delete attachments, etc.Please search threads with your conditions, and then select the appropriate action.', + ), + ), + 278 => + array ( + 'index' => + array ( + 'Batch thread management' => 'action=threads', + 'Search' => 'action=threads&search=true', + ), + 'text' => + array ( + 0 => 'Batch thread management » Search', + 1 => 'threads_search_detail', + 2 => 'Show detailed list of topics', + 3 => 'threads_search_perpage', + 4 => 'Threads per page', + 5 => 'threads_search_time', + 6 => 'Post Time range', + 7 => 'Format: yyyy-mm-dd. Set to 0 for no restrictions', + 8 => 'threads_search_user', + 9 => 'Started by user', + 10 => 'Separate multiple user names by a comma ","', + 11 => 'threads_search_keyword', + 12 => 'Keywords', + 13 => 'Separate multiple keywords by a comma ","', + 14 => 'threads_search_sort', + 15 => 'Search category info', + 16 => 'threads_search_viewrange', + 17 => 'Views range', + 18 => 'threads_search_replyrange', + 19 => 'Replies range', + 20 => 'threads_search_readpermmore', + 21 => 'Read permissions higher than', + 22 => 'threads_search_pricemore', + 23 => 'Price higher than', + 24 => 'threads_search_noreplyday', + 25 => 'How many days of no new replies', + 26 => 'threads_search_type', + 27 => 'Search in categories', + 28 => 'threads_search_sticky', + 29 => 'Whether included sticked posts', + 30 => 'threads_search_digest', + 31 => 'Is have digest', + 32 => 'threads_search_attach', + 33 => 'Contains attachments', + 34 => 'threads_rate', + 35 => 'Contains the rate quote', + 36 => 'threads_highlight', + 37 => 'Whether to include highlighted threads', + 38 => 'threads_save', + 39 => 'Whether to include draft threads', + 40 => 'threads_hide', + 41 => 'Whether to include hidden threads', + ), + ), + 279 => + array ( + 'index' => + array ( + 'Split Thread' => 'action=threadsplit', + 'Thread split' => 'action=threadsplit&operation=manage', + ), + 'text' => + array ( + 0 => 'Split Thread » Thread split', + 1 => 'threadsplit_manage_tips', + 2 => 'Thread table is for join forum and threads (forum_thread), including the thread title, create time and other information, but does not include the thread content and replies. Multiple data can points to the table.Archive thread tables are intended for store moved to the archive threads.For each Forum can be established an archive table (the name can be customized), that will store all the moved to archive threads.Archive table threads can be only viewed, but not replied or rated, and can not be bulk managed, but can be removed or moved to the non-archive table.', + 3 => 'threadsplit_manage_table_orig', + 4 => 'Main thread table info', + 5 => 'threadsplit_manage_table_archive', + 6 => 'Archive thread table info', + ), + ), + 280 => + array ( + 'index' => + array ( + 'Split Thread' => 'action=threadsplit', + 'Thread move' => 'action=threadsplit&operation=move', + ), + 'text' => + array ( + 0 => 'Split Thread » Thread move', + 1 => 'threadsplit_move_tips', + 2 => 'Thread move functionality can be used for move a particular thread from main table (forum_thread) to the archive table.Before moving a thread, make sure there is at least one archive thread table (with table name like forum_thread_1, forum_thread_2 ...). For complete the thread movement, you have to search threads you want to move by thread filtering, and then select the target table.', + 3 => 'threads_search_detail', + 4 => 'Show detailed list of topics', + 5 => 'threads_search_sourcetable', + 6 => 'Search the following thread table', + 7 => 'threads_search_forum', + 8 => 'Search in Forums', + 9 => 'threadsplit_move_tidrange', + 10 => 'Thread ID range', + 11 => 'threads_search_noreplyday', + 12 => 'How many days of no new replies', + 13 => 'threads_search_time', + 14 => 'Post Time range', + 15 => 'Format: yyyy-mm-dd. Set to 0 for no restrictions', + 16 => 'threads_search_type', + 17 => 'Search in categories', + 18 => 'threads_search_sort', + 19 => 'Search category info', + 20 => 'threads_search_viewrange', + 21 => 'Views range', + 22 => 'threads_search_replyrange', + 23 => 'Replies range', + 24 => 'threads_search_readpermmore', + 25 => 'Read permissions higher than', + 26 => 'threads_search_pricemore', + 27 => 'Price higher than', + 28 => 'threads_search_keyword', + 29 => 'Keywords', + 30 => 'Separate multiple keywords by a comma ","', + 31 => 'threads_search_user', + 32 => 'Started by user', + 33 => 'Separate multiple user names by a comma ","', + 34 => 'threads_search_sticky', + 35 => 'Whether included sticked posts', + 36 => 'threads_search_digest', + 37 => 'Is have digest', + 38 => 'threads_search_attach', + 39 => 'Contains attachments', + 40 => 'threads_rate', + 41 => 'Contains the rate quote', + 42 => 'threads_highlight', + 43 => 'Whether to include highlighted threads', + 44 => 'threads_list', + 45 => 'Thread list', + 46 => 'threadsplit_move_threads_per_time', + 47 => 'Number of threads to move per time', + 48 => 'recommended no more than 1000', + ), + ), + 281 => + array ( + 'index' => + array ( + 'Update cache' => 'action=tools&operation=updatecache', + ), + 'text' => + array ( + 0 => 'Update cache', + 1 => 'tools_updatecache_tips', + 2 => 'When the site work abnormal or after the data recovery or upgrades, you can use this function to regenerate the site cache. Updating the cache require a lot of the server resources, so do not use this function at the peak time of members visits. + Data cache: Updates the site configuration and all the data cache. + Template cache: Updates the site templates, style cache files. Used when you modify a template or a style, but not see an immediate effect. + DIY module cache: Updates the DIY blocks. Use to force show when you installed or modified any DIY modules. + ', + ), + ), + 282 => + array ( + 'index' => + array ( + 'User Groups' => 'action=usergroups', + ), + 'text' => + array ( + 0 => 'User Groups', + 1 => 'usergroups_tips', + 2 => 'System user groups and special user groups are intended to identify a group member points and privileges. The system groups and special groups can not be changed by a member himself.System groups and special groups do not require to specify the user points range. Discuz! reserved eight built-in entitled system groups (from guests to the site administrator). Special user groups require a member must be edited for add to the group.A user group points lower limit must bes equal or less than 0, otherwise it will be access problems for the group members.', + ), + ), + 283 => + array ( + 'index' => + array ( + 'User Groups' => 'action=usergroups', + 'Basic settings' => 'action=usergroups&operation=edit&anchor=system', + ), + 'text' => + array ( + 0 => 'User Groups » Basic settings', + 1 => 'usergroups_edit_system_public', + 2 => 'Public user groups', + 3 => 'Set the user group as public. Note: Use this feature before you actually need to determine whether, or when a user can join the group on their own. Even after setting the group to non-public, users still can not remove from the bulk of the group, except to delete the user group. Public User Groups must not be associated with system management groups to avoid potential safety problems.', + 4 => 'usergroups_edit_system_dailyprice', + 5 => 'Public User Group Daily Charge', + 6 => 'Set a points amount the user can pay for every day acces to the group. For example, if is set to 2, and a user want to purchase a 30-day access, he have to pay 2 * 30 = 60 points. After the 30 days the user will automatically exit the group. If set to 0, then this group is a FREE public user group.', + 7 => 'usergroups_edit_system_minspan', + 8 => 'Minimum access time for purchase (days)', + 9 => 'Set the minimum number of days a user can purchase access to this group. The minimum available value is 1 day. For example, the daily price is set to 2, and the shortest time to buy is set to 10 days, so the user must pay at least 2 * 10 = 20 points for join this group and have access in 10 days.', + ), + ), + 284 => + array ( + 'index' => + array ( + 'User Groups' => 'action=usergroups', + 'Basic settings' => 'action=usergroups&operation=edit&anchor=basic', + ), + 'text' => + array ( + 0 => 'User Groups » Basic settings', + 1 => 'usergroups_edit_basic', + 2 => 'Basic settings', + 3 => 'usergroups_edit_basic_title', + 4 => 'User group title', + 5 => 'usergroups_icon', + 6 => 'Group icon', + 7 => 'usergroups_edit_basic_visit', + 8 => 'Allow access to the site', + 9 => 'Select "No" for total disable access to any site pageWhen the site open, you can normally browse pagesuper access: even if the site is shut down can also access, generally used for the test administrator or in the stationgroup', + 10 => 'usergroups_edit_basic_read_access', + 11 => 'Read permissions', + 12 => 'Set user permission level for browse posts or attachments, ranging from 0 to 255. Set to 0 for prevent users from browsing any posts or attachments. When the user read permissions less than this setting (default is 1), then the user will not be able to read posts or download attachments.', + 13 => 'usergroups_edit_basic_max_friend_number', + 14 => 'Max number of friends', + 15 => 'Set to 0 for Unlimited', + 16 => 'usergroups_edit_basic_domain_length', + 17 => 'Minimum length of the second level domain name', + 18 => 'Set to 0 for disable the second level domain names. The maximum length is 15 characters. Set to more than 2 character to be effective.', + 19 => 'usergroups_edit_basic_invisible', + 20 => 'Allow Stealth mode', + 21 => 'Set whether to allow user to log in without appear in the online list', + 22 => 'usergroups_edit_basic_allowtransfer', + 23 => 'Allow transfer points', + 24 => 'Set whether to allow users to transfer points to other users. Note: This function is enabled only if the global settings "Enable points transfer" enabled.', + 25 => 'usergroups_edit_basic_allowsendpm', + 26 => 'Allow send private messages', + 27 => 'Set whether to allow users to send short messages', + 28 => 'usergroups_edit_pm_sendpmmaxnum', + 29 => 'Maximum number of PM per 24 hours', + 30 => 'Set the maximum number of published short messages for the user group within 24 hours. It is effective for prevent bulk PM spamming. Set to 0 for no restriction.', + 31 => 'usergroups_edit_pm_sendallpm', + 32 => 'Whether to allow to send PM to all', + 33 => 'If Select No, then users can only send/accept PM to/from friends only, and will not be able to send PM to all others', + 34 => 'usergroups_edit_post_html', + 35 => 'Allow to use HTML code', + 36 => 'Note: HTML code will cause safety problems, please use with caution! Recommended to enable only in cases of extreme necessity, and enable it only to core management team.', + 37 => 'usergroups_edit_post_url', + 38 => 'Allow publish outside URL', + 39 => 'Whether to allow include URL in a post. This setting can effectively reduce the amount of advertising posts.', + 40 => 'usergroups_edit_basic_allow_statdata', + 41 => 'Allowed to view the site statistics', + 42 => 'usergroups_edit_basic_search_post', + 43 => 'Allow full text search', + 44 => 'This setting is effective only on the search forums. Note: When the volume of data is large, the full-text search would be very expensive to the server resources, so use with caution.', + 45 => 'usergroups_edit_basic_search', + 46 => 'Allow use search', + 47 => 'Select the user groups you want to enable the search for this item', + 48 => 'usergroups_edit_basic_reasonpm', + 49 => 'PM notification with a reason of action', + 50 => 'Set whether to require to enter the reason and notice on user rates or other management operations', + 51 => 'usergroups_edit_basic_cstatus', + 52 => 'Allow Custom title', + 53 => 'Set whether to allow users to set their own title and display the title in a post', + 54 => 'usergroups_edit_basic_disable_periodctrl', + 55 => 'Silent period', + 56 => 'Set a period of time when new user can not post anything', + 57 => 'usergroups_edit_basic_hour_threads', + 58 => 'Threads per hour limit', + 59 => 'This setting allows the maximum number of published threads per hour. Used for prevent a spam by limiting the bulk postings. The range is 1...255. Set to 0 for no restrictions. This feature will slightly increase the server loading, and is not used for guests', + 60 => 'usergroups_edit_basic_hour_posts', + 61 => 'Posts per hour limit', + 62 => 'Set a maximum number of posts that allowed to users to post per hour. This is usefull for restrict on irrigation or flood. Can be set to range of values 1 ~ 255, 0 for no limit. This feature will slightly increase the server loading, and not affects to guests.', + 63 => 'usergroups_edit_basic_seccode', + 64 => 'Enable verification code or Q&A verification mechanism', + 65 => 'Enable the verification mechanism to prevent spam bots logins, etc., but it will increase user ease of operation. Changing the password is not subject to this restriction. The setting is valid after opening the verification code or verifying Q&A', + 66 => 'usergroups_edit_basic_forcesecques', + 67 => 'Mandatory set the security questions', + 68 => 'If selected "Yes", then users of this user group must set the security question before the login to management panel, config for global switch.', + 69 => 'usergroups_edit_basic_forcelogin', + 70 => 'Safe login method', + 71 => 'Select the security login method for the user group', + 72 => 'usergroups_edit_basic_disable_postctrl', + 73 => 'Post restriction', + 74 => 'Set the maximum number of post characters for prevent irrigation.', + 75 => 'usergroups_edit_basic_ignore_censor', + 76 => 'Ignore the censor review', + 77 => 'If selected "Yes", then the users in the group will not trigger the need to review their content', + 78 => 'usergroups_edit_basic_allowcreatecollection', + 79 => 'Allowed number of collections', + 80 => 'Set to "0" for disable collection creating', + 81 => 'usergroups_edit_basic_allowfollowcollection', + 82 => 'Maximum number of followed collections', + 83 => 'Allow users to follow only this limited number of collections', + 84 => 'usergroups_edit_basic_close_ad', + 85 => 'Disable advertising', + 86 => 'If selected "Yes", then this user group members will not see the site ads', + ), + ), + 285 => + array ( + 'index' => + array ( + 'User Groups' => 'action=usergroups', + 'Special thread' => 'action=usergroups&operation=edit&anchor=special', + ), + 'text' => + array ( + 0 => 'User Groups » Special thread', + 1 => 'usergroups_edit_special', + 2 => 'Special thread', + 3 => 'usergroups_edit_special_activity', + 4 => 'Allow create events', + 5 => 'Select "Yes" for allow add new events', + 6 => 'usergroups_edit_special_poll', + 7 => 'Allow create poll', + 8 => 'Select "Yes" to allow add new polls', + 9 => 'usergroups_edit_special_vote', + 10 => 'Allow to vote', + 11 => 'Select "Yes" to allow vote the Forum polls', + 12 => 'usergroups_edit_special_reward', + 13 => 'Allow create reward', + 14 => 'Select "Yes" for allow add new rewards', + 15 => 'usergroups_edit_special_reward_min', + 16 => 'Minimum reward points', + 17 => 'Set minimal reward points for each reward (minimum is 1)', + 18 => 'usergroups_edit_special_reward_max', + 19 => 'Maximum reward points', + 20 => 'Set maximal reward points for each reward (maximum is 65535, set to 0 for no limits)', + 21 => 'usergroups_edit_special_trade', + 22 => 'Allow sale products', + 23 => 'Select "Yes" to allow publish the forum thread for sale products', + 24 => 'usergroups_edit_special_trade_min', + 25 => 'Minimum transaction amount', + 26 => 'Set the minimum transaction amount per trade (unit: USD or points, the minimal value is 1 per transaction)', + 27 => 'usergroups_edit_special_trade_max', + 28 => 'Maximum transaction amount', + 29 => 'Set the maximum transaction amount per trade (unit: USD or points, Set to 0 for no limit)', + 30 => 'usergroups_edit_special_trade_stick', + 31 => 'Maximum number of recommended products', + 32 => 'Set a number of recommended products at user home', + 33 => 'usergroups_edit_special_debate', + 34 => 'Allow create debate', + 35 => 'Select "Yes" for allow add new debate', + 36 => 'usergroups_edit_special_rushreply', + 37 => 'Protect quoted replies', + 38 => 'Does not allow users to delete quoted replies', + 39 => 'usergroups_edit_special_allowthreadplugin', + 40 => 'Allow use plugins in special thread', + 41 => 'Set whether to allow use plugins in special thread', + ), + ), + 286 => + array ( + 'index' => + array ( + 'User Groups' => 'action=usergroups', + 'Post related permissions' => 'action=usergroups&operation=edit&anchor=post', + ), + 'text' => + array ( + 0 => 'User Groups » Post related permissions', + 1 => 'usergroups_edit_post', + 2 => 'Post related permissions', + 3 => 'usergroups_edit_post_new', + 4 => 'Allow create new thread', + 5 => 'Set whether to allow create a new thread. Note: user can create a new thread only when the user group READ permissions is higher than 0.', + 6 => 'usergroups_edit_post_reply', + 7 => 'Allow reply a thread', + 8 => 'Set whether to allow users to reply. Note: user can publis a reply only when the user group READ permissions is higher than 0.', + 9 => 'usergroups_edit_post_direct', + 10 => 'Allow direct posting', + 11 => 'Whether to allow publish thread or reply directly or require a verification. This setting has no effect if the Forum does not require verification.', + 12 => 'usergroups_edit_post_allow_down_remote_img', + 13 => 'Allow to download remote images', + 14 => 'Save remote image as local files', + 15 => 'usergroups_edit_post_anonymous', + 16 => 'Allow anonymous postings', + 17 => 'Whether to allow users to reply and create thread in anonymous mode, if it is enabled in user group or the forum settings. Anonymous posting is different from guest posting, users need to log in before use this, and moderators and administrators can view the real author.', + 18 => 'usergroups_edit_post_set_read_perm', + 19 => 'Allow to set post permissions', + 20 => 'This setting allow users to specify a post read permissions', + 21 => 'usergroups_edit_post_maxprice', + 22 => 'Thread (Attachment) highest price', + 23 => 'Thread or Attachment can be chargeable. This means the thread content or attachment will be hidden until the user pay for view the thread or attachment. Set here the maximum price allowed for seller. Set to 0 for disable sell. Note: This function take effect only if the global trading points settings enabled. If you want to enable moderators and administrators to edit charged threads (Attachment), set the maximum price higher than for ordinary user groups, so that after editing the post price will not be cutted.', + 24 => 'usergroups_edit_post_hide_code', + 25 => 'Allow to use [hide] tag', + 26 => 'Set whether to allow to use [hide] tag in a post', + 27 => 'usergroups_edit_post_mediacode', + 28 => 'Allow to use [audio] [video] [flash] and other multimedia code', + 29 => 'Set whether to enable to use [audio] [video] [flash] and other multimedia code', + 30 => 'usergroups_edit_post_begincode', + 31 => 'Allow to use the [begin] code', + 32 => 'Set whether to allow to use the [begin] tag code in a post for starting animation', + 33 => 'usergroups_edit_post_sig_bbcode', + 34 => 'Allow BB-Codes in signature', + 35 => 'Whether to allow users to use BB-Codes in their signature', + 36 => 'usergroups_edit_post_sig_img_code', + 37 => 'Allow [img] BB-Code in signature', + 38 => 'Whether to allow users to use [img] Code in their signature', + 39 => 'usergroups_edit_post_max_sig_size', + 40 => 'Maximum signature length', + 41 => 'Set the maximum number of characters in a user signature, Set to 0 for disable signature', + 42 => 'usergroups_edit_post_recommend', + 43 => 'Allow to recomend topic', + 44 => 'Set how many times a user can recommend a theme. The thread rating is a number of user recommendations. Set to 0 for disable users to recommend threads.', + 45 => 'usergroups_edit_post_edit_time_limit', + 46 => 'Edit Post time limit (minutes)', + 47 => 'Set a time period after posting, when a user can edit the post content. Moderators and administrators can edit posts at any time. Set to 0 for no limit.', + 48 => 'usergroups_edit_post_allowreplycredit', + 49 => 'Allow to set award for Replies', + 50 => 'Allow users to publish certain topics as for Replies reward points. Replies reward points can be specified in the Default global - Points settings', + 51 => 'usergroups_edit_post_tag', + 52 => 'Allow to use tags', + 53 => 'Set whether to allow to use tags when publish new thread', + 54 => 'usergroups_edit_post_allowcommentpost', + 55 => 'Post Comment', + 56 => 'Set whether to allow users to comment posts. Note: this setting take effect only if the global settings allows post comments.', + 57 => 'usergroups_edit_post_allowcommentreply', + 58 => 'Reply Comments floor', + 59 => 'Allows the user to posts by clicking the "Reply" at the others Replies, comments order generated automatically.Note: Only Global - Site features - Post comment recovery features in the open floor, the settings to take effect; Click on a subject in the "Reply" link, will not comment on the subject have', + 60 => 'usergroups_edit_post_allowcommentitem', + 61 => 'Allow users to express their views when Comments', + 62 => 'Whether to allow users to view their comments. Note: the setting take effect only if the global setting is set to enable view post comment after posting.', + 63 => 'usergroups_edit_post_allowat', + 64 => 'Number of @name used', + 65 => 'Set to 0 for disable using of @name (including the followings and friends)', + 66 => 'usergroups_edit_post_allowsetpublishdate', + 67 => 'Allow to set the publish time', + 68 => 'Allow users to set the specified post time when publishing of thread. It can be set only in every half hour (such as 13:00 or 13:30) for automatically published.', + 69 => 'usergroups_edit_post_allowcommentcollection', + 70 => 'Allow collection comments', + 71 => 'Allow users to comment threads in collections.', + 72 => 'usergroups_edit_post_allowimgcontent', + 73 => 'Allow to generate image of the thread content', + 74 => 'This function allows to generate and show an image of the textual thread content.', + 75 => 'usergroups_edit_attach', + 76 => 'Attachment permissions', + 77 => 'usergroups_edit_attach_get', + 78 => 'Allow to download/view attachments', + 79 => 'Whether to allow users to download/view attachments', + 80 => 'usergroups_edit_attach_getimage', + 81 => 'Allow to view images', + 82 => 'Set whether to allow special privileges in the forum is not set to view images', + 83 => 'usergroups_edit_attach_post', + 84 => 'Allow upload attachments', + 85 => 'Whether to allow users to upload attachments. Refer to the Management Center for check if upload is enabled in PHP.', + 86 => 'usergroups_edit_attach_set_perm', + 87 => 'Allow to set attachment permissions', + 88 => 'Whether to allow users to set permissions for download attachment', + 89 => 'usergroups_edit_image_post', + 90 => 'Allow upload images', + 91 => 'Whether to allow users to upload images. Refer to the Management Center for check if upload is enabled in PHP.', + 92 => 'usergroups_edit_attach_max_size', + 93 => 'Maximum attachment size (Kb)', + 94 => 'Set the maximum attachment size (in Kb, 1Mb = 1024Kb). Set to 0 for not limit. Refer to the Management Center for check PHP enabled upload size.', + 95 => 'usergroups_edit_attach_max_size_per_day', + 96 => 'Daily maximum attachment size (Kb)', + 97 => 'Set the total attachments volume (in Kb), that users can upload every 24 hours. Set to 0 for no limit. Note: This feature will add the server loading, it is recommended to use only when necessary.', + 98 => 'usergroups_edit_attach_max_number_per_day', + 99 => 'Max number of attachments per day', + 100 => 'Set the number of attachments, that users may upload every 24 hours. Set to 0 for no limit.', + 101 => 'usergroups_edit_attach_ext', + 102 => 'Enabled attachment type', + 103 => 'Set enabled attachments extensions, separate multiple extensions with a comma ",". Leave blank for not limit.', + ), + ), + 287 => + array ( + 'index' => + array ( + 'User Groups' => 'action=usergroups', + 'Magic related' => 'action=usergroups&operation=edit&anchor=magic', + ), + 'text' => + array ( + 0 => 'User Groups » Magic related', + 1 => 'usergroups_edit_magic', + 2 => 'Magic related', + 3 => 'usergroups_edit_magic_permission', + 4 => 'Allow to use magic', + 5 => 'Permit the use of magic, including the sale and present permissions', + 6 => 'usergroups_edit_magic_discount', + 7 => 'Buy magic discount', + 8 => 'Set a buy magic discount value, range from 1 to 9. The smaller value will give less discount. Set to 0 for no discount.', + 9 => 'usergroups_edit_magic_max', + 10 => 'Magic package capacity', + 11 => 'Set a maximum weight of magic for this user group, range from 0 to 60000.', + ), + ), + 288 => + array ( + 'index' => + array ( + 'User Groups' => 'action=usergroups', + 'Registration related' => 'action=usergroups&operation=edit&anchor=invite', + ), + 'text' => + array ( + 0 => 'User Groups » Registration related', + 1 => 'usergroups_edit_invite', + 2 => 'Registration related', + 3 => 'usergroups_edit_invite_permission', + 4 => 'Allow to purchase an invitation code', + 5 => 'Whether to allow users to buy invitation code', + 6 => 'usergroups_edit_invite_send_permission', + 7 => 'Allow to send invitation for Registration', + 8 => 'Whether to allow sending an invitation code by the site mail system', + 9 => 'usergroups_edit_invite_price', + 10 => 'Invitation code price', + 11 => 'Set a price of invitation code, the user group members to buy', + 12 => 'usergroups_edit_invite_buynum', + 13 => 'The maximum number of invitation codes can be purchased within 24 hours', + 14 => 'The invitation code maximum number, the user group members can buy in 24 hours, more than this amount will not be able to buy', + 15 => 'usergroups_edit_invite_maxinviteday', + 16 => 'Invitation code valid time', + 17 => 'The maximum period of days, the user group memberscan use the purchased invitation code. After this period the invitation code will automatically expired. Default is 10.', + ), + ), + 289 => + array ( + 'index' => + array ( + 'User Groups' => 'action=usergroups', + 'Points related' => 'action=usergroups&operation=edit&anchor=credit', + ), + 'text' => + array ( + 0 => 'User Groups » Points related', + 1 => 'usergroups_edit_credit', + 2 => 'Points related', + 3 => 'usergroups_edit_credit_exempt_sendpm', + 4 => 'Not decrease points for Send PM', + 5 => 'usergroups_edit_credit_exempt_search', + 6 => 'Not decrease points for Search', + 7 => 'usergroups_edit_credit_exempt_getattch', + 8 => 'Not decrease points for download attachments', + 9 => 'usergroups_edit_credit_exempt_attachpay', + 10 => 'Direct download attachment fee', + 11 => 'usergroups_edit_credit_exempt_threadpay', + 12 => 'Direct thread view fee', + 13 => 'usergroups_edit_credit_allowrate', + 14 => 'Allow to rate members', + ), + ), + 290 => + array ( + 'index' => + array ( + 'User Groups' => 'action=usergroups', + 'Space related' => 'action=usergroups&operation=edit&anchor=home', + ), + 'text' => + array ( + 0 => 'User Groups » Space related', + 1 => 'usergroups_edit_home', + 2 => 'Space related', + 3 => 'usergroups_edit_attach_max_space_size', + 4 => 'Space size (Mb)', + 5 => 'Set the maximum space size (Mb), 0 for not limit', + 6 => 'usergroups_edit_home_allow_blog', + 7 => 'Publish blog', + 8 => 'usergroups_edit_home_allow_blog_mod', + 9 => 'Published blogs must be verified', + 10 => 'usergroups_edit_home_allow_doing', + 11 => 'Write Doing', + 12 => 'usergroups_edit_home_allow_doing_mod', + 13 => 'Published doings must be verified', + 14 => 'usergroups_edit_home_allow_upload', + 15 => 'Upload image', + 16 => 'usergroups_edit_home_allow_upload_mod', + 17 => 'Uploaded images must be verified', + 18 => 'usergroups_edit_home_image_max_size', + 19 => 'Personal image album maximum size', + 20 => 'Set the maximum size of personal image album (in K 1M = 1024K). 0 for no limit, Need to set up to allow PHP to be effective, Please refer to Management Center Home', + 21 => 'usergroups_edit_home_allow_share', + 22 => 'Make Share', + 23 => 'usergroups_edit_home_allow_share_mod', + 24 => 'Published shares must be verified', + 25 => 'usergroups_edit_home_allow_poke', + 26 => 'Send Greeting', + 27 => 'usergroups_edit_home_allow_friend', + 28 => 'Add friend', + 29 => 'usergroups_edit_home_allow_click', + 30 => 'Rate', + 31 => 'usergroups_edit_home_allow_comment', + 32 => 'Post Comment', + 33 => 'usergroups_edit_home_allow_myop', + 34 => 'Use Apps', + 35 => 'usergroups_edit_home_allow_video_photo_ignore', + 36 => 'Ignore restrictions of video certification', + 37 => 'usergroups_edit_home_allow_view_video_photo', + 38 => 'Allow to view video certified photo', + 39 => 'usergroups_edit_home_allow_space_diy_html', + 40 => 'Allow to use HTML in layout module', + 41 => 'Note: enable HTML features can cause the safety problems, please use with caution. Recommended to use only in cases of extreme necessity, and limit this feature only for yhe core management team.', + 42 => 'usergroups_edit_home_allow_space_diy_bbcode', + 43 => 'Allow to use BBCode in layout module', + 44 => 'Whether to enable use of BBCODE in layout module for personal home style set', + 45 => 'usergroups_edit_home_allow_space_diy_imgcode', + 46 => 'Allow to use [img] code in layout module', + 47 => 'Whether to enable use of [img] code in layout module for personal home style set', + ), + ), + 291 => + array ( + 'index' => + array ( + 'User Groups' => 'action=usergroups', + 'Groups related' => 'action=usergroups&operation=edit&anchor=group', + ), + 'text' => + array ( + 0 => 'User Groups » Groups related', + 1 => 'usergroups_edit_group', + 2 => 'Groups related', + 3 => 'usergroups_edit_group_build', + 4 => 'Allowed number of groups to create', + 5 => 'Range is 1-255, set to 0 for disable create a group', + 6 => 'usergroups_edit_group_buildcredits', + 7 => 'Need credits for Create group', + 8 => 'How many credits required for Creating a group. Set to 0 for do not require credits', + 9 => 'usergroups_edit_post_direct_group', + 10 => 'Allow direct post', + 11 => 'usergroups_edit_post_url_group', + 12 => 'Whether to allow to post the external URLs', + ), + ), + 292 => + array ( + 'index' => + array ( + 'User Groups' => 'action=usergroups', + 'Portal related' => 'action=usergroups&operation=edit&anchor=portal', + ), + 'text' => + array ( + 0 => 'User Groups » Portal related', + 1 => 'usergroups_edit_portal', + 2 => 'Portal related', + 3 => 'usergroups_edit_portal_allow_comment_article', + 4 => 'Number of words in a comment', + 5 => 'Set the user group comment word limit published an article. Set to 0 for disable comments for this user level.', + 6 => 'usergroups_edit_portal_allow_post_article', + 7 => 'Publish article', + 8 => 'usergroups_edit_portal_allow_down_local_img', + 9 => 'Allow to download the local images', + 10 => 'Download a remote image and allow to regenerate a local image', + 11 => 'usergroups_edit_portal_allow_post_article_moderate', + 12 => 'Published articles must be verified', + ), + ), + 293 => + array ( + 'index' => + array ( + 'User Tags' => 'action=usertag', + ), + 'text' => + array ( + 0 => 'User Tags', + 1 => 'usertag_add_tips', + 2 => 'You can add multiple user tags hereFor the first time the tag list is empty, and you can add some tagsIf the list of labels and user has input, Note to specified user batch tag paste', + 3 => 'usertag_add_tags', + 4 => 'Tags', + 5 => 'You can enter multiple tags, separate multiple tags with a space or comma', + 6 => 'usertag_add_usernames', + 7 => 'User List', + 8 => 'You can enter multiple users, one user name per line', + ), + ), ); +?> \ No newline at end of file diff --git a/upload/source/language/lang_optimizer.php b/upload/source/language/lang_optimizer.php index dc7ce535..b704789f 100644 --- a/upload/source/language/lang_optimizer.php +++ b/upload/source/language/lang_optimizer.php @@ -17,6 +17,8 @@ 'optimizer_dbbackup_lastback' => 'The last data backup was made at ', 'optimizer_dbbackup_clean_safe' => 'Database backup file not detected, No security problems', 'optimizer_dbbackup_clean_delete' => 'Detected {filecount} backup files, (Directory: ./data/backup_xxx),
    Please copy the backup to a safe location as soon as possible, and then delete these files!', + 'optimizer_dbbackup_visit_safe' => 'No accessible database backup files detected, no security issues', + 'optimizer_dbbackup_visit_delete' => 'Detected that {filecount} data backup files (directory: ./data/backup_xxx) can be accessed through the Web,
    Please delete the database backup file on the database recovery page or set the database backup file to be unavailable Access via URL', 'optimizer_filecheck_advice' => 'You did not verified the file checksum more than 3 months, it is recommended to verify it right now.', 'optimizer_filecheck_lastcheck' => 'Last file checksum', 'optimizer_log_clean' => 'have {count} log records, can clean up for optimisation', @@ -71,6 +73,10 @@ 'optimizer_emailregister_tip' => 'This setting can enhance the user quality', 'optimizer_pwlength_need' => 'Minimum password length is too low, it is unsafe!', 'optimizer_pwlength_no_need' => 'Detected after testing that the password length is set to normal', + 'optimizer_filesafe_need' => 'Old directory, utility directory, installer, data recovery program or one of the duplicate administrator entries was not deleted', + 'optimizer_filesafe_no_need' => 'File safety detection is normal', + 'optimizer_remote_need' => 'You have turned on the remote calling function that does not need to be turned on for normal sites, please check whether it is actively turned on', + 'optimizer_remote_no_need' => 'Remote call function is closed', 'optimizer_regmaildomain_need' => 'Need to optimize the blacklist', 'optimizer_regmaildomain_tip' => 'You can set restrictions for mail domains at registration to prevent a spam', 'optimizer_ipregctrl_no_need' => 'Registration IP restriction list is set', diff --git a/upload/source/language/mobile/lang_template.php b/upload/source/language/mobile/lang_template.php index fc63b126..40490065 100644 --- a/upload/source/language/mobile/lang_template.php +++ b/upload/source/language/mobile/lang_template.php @@ -156,6 +156,8 @@ 'uploadstatusmsg9' => 'ไม่มีไฟล์แนบที่จะอัปโหลดได้', 'uploadstatusmsg10' => 'การดำเนินการไม่ถูกต้อง', 'uploadstatusmsg11' => 'วันนี้คุณไม่สามารถอัปโหลดไฟล์แนบที่มีขนาดใหญ่ได้', + 'uploadstatusmsg12' => 'ส่งไม่สำเร็จ เนื่องจากชื่อไฟล์มีคำที่ละเอียดอ่อน', + 'uploadstatusmsg13' => 'ข้อจำกัดของเซิร์ฟเวอร์จึงไม่สามารถอัปโหลดไฟล์แนบที่มีความละเอียดสูงได้', 'postreplyneedmod' => 'โพสต์ต้องรอการตรวจสอบ โพสต์ของคุณจะปรากฏขึ้นหลังจากผ่านการตรวจสอบ', 'replylist' => 'รายการตอบกลับ', 'last_thread' => 'กระทู้ก่อนหน้านี้', diff --git a/upload/source/module/forum/forum_misc.php b/upload/source/module/forum/forum_misc.php index 7d8e0561..40a268aa 100644 --- a/upload/source/module/forum/forum_misc.php +++ b/upload/source/module/forum/forum_misc.php @@ -105,6 +105,11 @@ $attach['netprice'] = $status != 2 ? round($attach['price'] * (1 - $_G['setting']['creditstax'])) : 0; $lockid = 'attachpay_'.$_G['uid']; if(!submitcheck('paysubmit')) { + $post = C::t('forum_post')->fetch('tid:'.$attach['tid'], $attach['pid']); + if($post['anonymous'] && !$_G['forum']['ismoderator']) { + $attach['uid'] = 0; + $attach['author'] = $_G['setting']['anonymoustext']; + } include template('forum/attachpay'); } elseif(!discuz_process::islocked($lockid)) { if(!empty($_GET['buyall'])) { @@ -947,6 +952,15 @@ function forum_misc_commentmore_callback_1($matches, $action = 0) { if(!submitcheck('paysubmit')) { + if(empty($thread['author'])) { + if($_G['forum']['ismoderator']) { + $authorinfo = getuserbyuid($thread['authorid']); + $thread['author'] = $authorinfo['username']; + } else { + $thread['authorid'] = 0; + $thread['author'] = $_G['setting']['anonymoustext']; + } + } include template('forum/pay'); } else { diff --git a/upload/source/module/forum/forum_viewthread.php b/upload/source/module/forum/forum_viewthread.php index bbbde7ef..bc63bca7 100644 --- a/upload/source/module/forum/forum_viewthread.php +++ b/upload/source/module/forum/forum_viewthread.php @@ -178,7 +178,7 @@ if(!$_G['forum']['viewperm'] && !$_G['group']['readaccess']) { showmessage('group_nopermission', NULL, array('grouptitle' => $_G['group']['grouptitle']), array('login' => 1)); } elseif($_G['forum']['viewperm'] && !forumperm($_G['forum']['viewperm'])) { - showmessagenoperm('viewperm', $_G['fid']); + showmessagenoperm('viewperm', $_G['fid'], $_G['forum']['formulaperm']); } } elseif($_G['forum']['allowview'] == -1) { @@ -618,7 +618,7 @@ } if($updatedisablepos && !$rushreply) { C::t('forum_threaddisablepos')->insert(array('tid' => $_G['tid']), false, true); - dheader('Location:'.$_G['siteurl'].'forum.php?mod=viewthread&tid='.$_G['tid']); + dheader('Location:'.$_G['siteurl'].'forum.php?mod=viewthread&tid='.$_G['tid'].($_G['forum_auditstatuson'] ? '&modthreadkey='.$_GET['modthreadkey'] : '').($_G['page'] > 1 ? '&page=' . $_G['page'] : '')); } $ordertype != 1 ? ksort($postarr) : krsort($postarr); } @@ -787,6 +787,7 @@ if(getstatus($post['status'], 6)) { $locationpids[] = $pid; } + $postusers[$post['authorid']]['field_position'] = $postusers[$post['authorid']]['position']; $post = array_merge($postlist[$pid], (array)$postusers[$post['authorid']]); $postlist[$pid] = viewthread_procpost($post, $_G['member']['lastvisit'], $ordertype, $maxposition); } diff --git a/upload/source/module/member/member_activate.php b/upload/source/module/member/member_activate.php deleted file mode 100644 index cc393f6b..00000000 --- a/upload/source/module/member/member_activate.php +++ /dev/null @@ -1,45 +0,0 @@ - $paramv){ - $param[$parammatchs[4][$paramk]] = $paramv; - } -} -$uid = isset($_GET['uid']) ? $_GET['uid'] : $param['uid']; -$id = isset($_GET['id']) ? $_GET['id'] : $param['id']; - -if($uid && $id) { - - $member = getuserbyuid($uid); - if($member && $member['groupid'] == 8) { - $member = array_merge(C::t('common_member_field_forum')->fetch($member['uid']), $member); - } else { - showmessage('activate_illegal', 'index.php'); - } - list($dateline, $operation, $idstring) = explode("\t", $member['authstr']); - - if($operation == 2 && $idstring == $id) { - $newgroup = C::t('common_usergroup')->fetch_by_credits($member['credits']); - C::t('common_member')->update($member['uid'], array('groupid' => $newgroup['groupid'], 'emailstatus' => '1')); - C::t('common_member_field_forum')->update($member['uid'], array('authstr' => '')); - showmessage('activate_succeed', 'index.php', array('username' => $member['username'])); - } else { - showmessage('activate_illegal', 'index.php'); - } - -} -?> \ No newline at end of file diff --git a/upload/source/module/member/member_emailverify.php b/upload/source/module/member/member_emailverify.php deleted file mode 100644 index 1cc9ed2b..00000000 --- a/upload/source/module/member/member_emailverify.php +++ /dev/null @@ -1,47 +0,0 @@ -fetch($member['uid']), $member); -} - -if($_G['setting']['regverify'] == 2) { - showmessage('register_verify_invalid'); -} - -list($dateline, $type, $idstring) = explode("\t", $member['authstr']); -if($type == 2 && TIMESTAMP - $dateline < 86400) { - showmessage('email_verify_invalid'); -} - -$idstring = $type == 2 && $idstring ? $idstring : random(6); -C::t('common_member_field_forum')->update($_G['uid'], array('authstr'=>"$_G[timestamp]\t2\t$idstring")); -$verifyurl = $_G['setting']['securesiteurl']."member.php?mod=activate&uid={$_G[uid]}&id=$idstring"; -$email_verify_message = lang('email', 'email_verify_message', array( - 'username' => $_G['member']['username'], - 'bbname' => $_G['setting']['bbname'], - 'siteurl' => $_G['setting']['securesiteurl'], - 'url' => $verifyurl -)); -include_once libfile('function/mail'); -if(!sendmail("{$_G[member][username]} <$_GET[email]>", lang('email', 'email_verify_subject'), $email_verify_message)) { - runlog('sendmail', "$_GET[email] sendmail failed."); -} -showmessage('email_verify_succeed'); - -?> \ No newline at end of file diff --git a/upload/source/plugin/mobile/api/1/viewthread.php b/upload/source/plugin/mobile/api/1/viewthread.php index 7ced3069..e588c2fd 100644 --- a/upload/source/plugin/mobile/api/1/viewthread.php +++ b/upload/source/plugin/mobile/api/1/viewthread.php @@ -88,6 +88,31 @@ function output() { preg_match('/\[tthread=(.+?),(.+?)\](.*?)\[\/tthread\]/', $variable['postlist'][$k]['message'], $matches); $variable['postlist'][$k]['message'] = preg_replace('/\[tthread=(.+?)\](.*?)\[\/tthread\]/', lang('plugin/qqconnect', 'connect_tthread_message', array('username' => $matches[1], 'nick' => $matches[2])), $variable['postlist'][$k]['message']); } + $firstpost = current($GLOBALS['postarr']); + if($firstpost['first'] && strpos($firstpost['message'],'[/hide]') !== FALSE ){ + $authorreplyexist = false; + if(!$_G['forum']['ismoderator']) { + if($_G['uid']) { + $_post = C::t('forum_post')->fetch('tid:'.$_G['tid'], $pid); + $authorreplyexist = $_post['tid'] == $_G['tid'] ? C::t('forum_post')->fetch_pid_by_tid_authorid($_G['tid'], $_G['uid']) : false; + } + } else { + $authorreplyexist = true; + } + if(!$authorreplyexist){ + $aids = array(); + preg_match_all("/\[hide(.*?)?\]\s*(.*?)\s*\[\/hide\]/is",$firstpost['message'],$matches); + foreach ($matches[2] as $match){ + preg_match_all("/\[attach\](\d+)\[\/attach\]/i",$match,$matchaids); + $aids = array_merge($aids,$matchaids[1]); + } + foreach($aids as $aid){ + unset($variable['postlist'][$k]['attachments'][$aid]); + } + $variable['postlist'][$k]['attachlist'] = array_diff($variable['postlist'][$k]['attachlist'],$aids); + $variable['postlist'][$k]['imagelist'] = array_diff($variable['postlist'][$k]['imagelist'],$aids); + } + } } foreach($GLOBALS['aimgs'] as $pid => $aids) { diff --git a/upload/source/plugin/mobile/api/4/viewthread.php b/upload/source/plugin/mobile/api/4/viewthread.php index d46c60df..7d8e386c 100644 --- a/upload/source/plugin/mobile/api/4/viewthread.php +++ b/upload/source/plugin/mobile/api/4/viewthread.php @@ -131,6 +131,29 @@ function output() { $variable['postlist'][$k]['message'] = preg_replace('/( ){2,}/', '', $variable['postlist'][$k]['message']); $variable['postlist'][$k]['dateline'] = strip_tags($post['dateline']); $variable['postlist'][$k]['groupiconid'] = mobile_core::usergroupIconId($post['groupid']); + if($firstpost['first'] && strpos($firstpost['message'],'[/hide]') !== FALSE ){ + $authorreplyexist = false; + if(!$_G['forum']['ismoderator']) { + if($_G['uid']) { + $_post = C::t('forum_post')->fetch('tid:'.$_G['tid'], $pid); + $authorreplyexist = $_post['tid'] == $_G['tid'] ? C::t('forum_post')->fetch_pid_by_tid_authorid($_G['tid'], $_G['uid']) : false; + } + } else { + $authorreplyexist = true; + } + if(!$authorreplyexist){ + $aids = array(); + preg_match_all("/\[hide(.*?)?\]\s*(.*?)\s*\[\/hide\]/is",$firstpost['message'],$matches); + foreach ($matches[2] as $match){ + preg_match_all("/\[attach\](\d+)\[\/attach\]/i",$match,$matchaids); + $aids = array_merge($aids,$matchaids[1]); + } + foreach($aids as $aid){ + unset($variable['postlist'][$k]['attachments'][$aid]); + } + $variable['postlist'][$k]['attachlist'] = array_diff($variable['postlist'][$k]['attachlist'],$aids); + } + } } if (!empty($GLOBALS['polloptions'])) { diff --git a/upload/source/plugin/qqconnect/connect.class.php b/upload/source/plugin/qqconnect/connect.class.php index d668741c..7519bc62 100644 --- a/upload/source/plugin/qqconnect/connect.class.php +++ b/upload/source/plugin/qqconnect/connect.class.php @@ -29,11 +29,7 @@ function common_base() { global $_G; if(!isset($_G['connect'])) { - $_G['connect']['url'] = 'http://connect.discuz.qq.com'; - $_G['connect']['api_url'] = 'http://api.discuz.qq.com'; - $_G['connect']['avatar_url'] = 'http://avatar.connect.discuz.qq.com'; - - $_G['connect']['qzone_public_share_url'] = 'http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey'; + $_G['connect']['qzone_public_share_url'] = 'https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey'; $_G['connect']['referer'] = !$_G['inajax'] && CURSCRIPT != 'member' ? $_G['basefilename'].($_SERVER['QUERY_STRING'] ? '?'.$_SERVER['QUERY_STRING'] : '') : dreferer(); $_G['connect']['login_url'] = $_G['siteurl'].'connect.php?mod=login&op=init&referer='.urlencode($_G['connect']['referer'] ? $_G['connect']['referer'] : 'index.php'); @@ -90,7 +86,7 @@ function common() { function discuzcode($param) { global $_G; if($param['caller'] == 'discuzcode') { - $_G['discuzcodemessage'] = preg_replace('/\[wb=(.+?)\](.+?)\[\/wb\]/', '', $_G['discuzcodemessage']); + $_G['discuzcodemessage'] = preg_replace('/\[wb=(.+?)\](.+?)\[\/wb\]/', '', $_G['discuzcodemessage']); } if($param['caller'] == 'messagecutstr') { $_G['discuzcodemessage'] = preg_replace('/\[tthread=(.+?)\](.*?)\[\/tthread\]/', '', $_G['discuzcodemessage']); @@ -137,6 +133,33 @@ function _allowconnectt() { function _viewthread_share_method_output() { global $_G; $_G['connect']['qq_share_url'] = $_G['siteurl'] . 'home.php?mod=spacecp&ac=plugin&id=qqconnect:spacecp&pluginop=share&sh_type=4&thread_id=' . $_G['tid']; + $_G['connect']['first_post'] = $postlist[$_G['forum_firstpid']]; + if ($_G['connect']['first_post']['anonymous']) { + $_G['connect']['first_post']['authorid'] = 0; + $_G['connect']['first_post']['author'] = ''; + } + if ($_G['group']['allowgetimage'] && $_G['thread']['price'] == 0) { + if (trim($_G['forum']['viewperm'])) { + $allowViewPermGroupIds = explode("\t", trim($_G['forum']['viewperm'])); + } + if (trim($_G['forum']['getattachperm'])) { + $allowViewAttachGroupIds = explode("\t", trim($_G['forum']['getattachperm'])); + } + $bigWidth = '400'; + $bigHeight = '400'; + $share_images = array(); + foreach ($_G['connect']['first_post']['attachments'] as $attachment) { + if ($attachment['isimage'] == 0 || $attachment['price'] > 0 + || $attachment['readperm'] > $_G['group']['readaccess'] + || ($allowViewPermGroupIds && !in_array($_G['groupid'], $allowViewPermGroupIds)) + || ($allowViewAttachGroupIds && !in_array($_G['groupid'], $allowViewAttachGroupIds))) { + continue; + } + $bigImageURL = $_G['siteurl'] . getforumimg($attachment['aid'], 1, $bigWidth, $bigHeight, 'fixnone'); + $share_images[] = urlencode($bigImageURL); + } + $_G['connect']['share_images'] = implode('|', $share_images); + } return tpl_viewthread_share_method($jsurl); } diff --git a/upload/source/plugin/qqconnect/discuz_plugin_qqconnect.xml b/upload/source/plugin/qqconnect/discuz_plugin_qqconnect.xml index 36932a1b..e9e9d3d6 100644 --- a/upload/source/plugin/qqconnect/discuz_plugin_qqconnect.xml +++ b/upload/source/plugin/qqconnect/discuz_plugin_qqconnect.xml @@ -11,7 +11,7 @@ - + @@ -95,8 +95,6 @@ - - @@ -105,7 +103,7 @@ - QQ登录,马上完善授权]]> + QQ登录,马上完善授权]]> @@ -256,12 +254,8 @@ - - - - - - + + @@ -277,48 +271,18 @@ - - - - - - - - - - - - - - - - - - +
    点击QQ登录页面将发生跳转,请确保您已保存好帖子数据]]>

    点击QQ登录页面将发生跳转]]>
    - 创建密码]]> 更换其他QQ账号]]> - - - - - - - - - - - - - 提示:点击这里退出后,重新使用QQ账号登录。]]> + 提示:点击这里退出后,重新使用QQ账号登录。]]> diff --git a/upload/source/plugin/qqconnect/template/module.htm b/upload/source/plugin/qqconnect/template/module.htm index 27e2de0c..44457883 100644 --- a/upload/source/plugin/qqconnect/template/module.htm +++ b/upload/source/plugin/qqconnect/template/module.htm @@ -47,6 +47,7 @@ } {lang qqconnect:connect_viewthread_share_to_qq}{lang qqconnect:connect_viewthread_share_to_qq} + {lang qqconnect:connect_viewthread_share_to_qzone}{lang qqconnect:connect_viewthread_share_to_qzone} {eval @@ -57,23 +58,14 @@ } diff --git a/upload/source/plugin/wechat/api_setting.inc.php b/upload/source/plugin/wechat/api_setting.inc.php index 841d2f3a..ea6f670d 100644 --- a/upload/source/plugin/wechat/api_setting.inc.php +++ b/upload/source/plugin/wechat/api_setting.inc.php @@ -39,42 +39,49 @@ showtips(lang('plugin/wechat', 'wechatapi_tips')); -$apihook = WeChatHook::getAPIHook(); +showformheader('plugins&operation=config&do='.$pluginid.'&identifier=wechat&pmod=api_setting'); -$plugins = DB::fetch_all('SELECT identifier, name FROM %t', array('common_plugin'), 'identifier'); +$mobilewechatsetting = C::t('common_setting')->fetch_all(array('mobilewechat')); +$mobilewechatsetting = (array)unserialize($mobilewechatsetting['mobilewechat']); -showformheader('plugins&operation=config&do='.$pluginid.'&identifier=wechat&pmod=api_setting'); -showtableheader(lang('plugin/wechat', 'api_wsq')); -echo ''.lang('plugin/wechat', 'api_hook').''.cplang('plugins_name').''.cplang('enable').'/'.cplang('display_order').''.lang('plugin/wechat', 'api_method').''; - -foreach($apihook as $page => $hooks) { - foreach($hooks as $hook => $rows) { - $i = 0; - foreach($rows as $plugin => $row) { - if(!$plugins[$plugin]) { - $deleteplugins[] = $plugin; +if($mobilewechatsetting['wsq_sitetoken']) { + + $apihook = WeChatHook::getAPIHook(); + + $plugins = DB::fetch_all('SELECT identifier, name FROM %t', array('common_plugin'), 'identifier'); + + showtableheader(lang('plugin/wechat', 'api_wsq')); + echo ''.lang('plugin/wechat', 'api_hook').''.cplang('plugins_name').''.cplang('enable').'/'.cplang('display_order').''.lang('plugin/wechat', 'api_method').''; + + foreach($apihook as $page => $hooks) { + foreach($hooks as $hook => $rows) { + $i = 0; + foreach($rows as $plugin => $row) { + if(!$plugins[$plugin]) { + $deleteplugins[] = $plugin; + } + $row['plugin'] = $plugin; + echo ''.(!$i ? $page.'_'.$hook : '').''. + ''.$plugins[$plugin]['name'].''. + ''. + ($hook != 'variables' ? + '' : + ''). + ''.formathook($row).''; + $i++; } - $row['plugin'] = $plugin; - echo ''.(!$i ? $page.'_'.$hook : '').''. - ''.$plugins[$plugin]['name'].''. - ''. - ($hook != 'variables' ? - '' : - ''). - ''.formathook($row).''; - $i++; } } -} -if($deleteplugins) { - WeChatHook::delAPIHook($deleteplugins); -} + if($deleteplugins) { + WeChatHook::delAPIHook($deleteplugins); + } -showsubmit('orderssubmit'); -showtablefooter(); + showsubmit('orderssubmit'); + showtablefooter(); -showformfooter(); + showformfooter(); +} $redirect = WeChatHook::getRedirect(); $response = WeChatHook::getResponse(); diff --git a/upload/source/plugin/wechat/discuz_plugin_wechat.xml b/upload/source/plugin/wechat/discuz_plugin_wechat.xml index 9978f46c..cbd2c511 100644 --- a/upload/source/plugin/wechat/discuz_plugin_wechat.xml +++ b/upload/source/plugin/wechat/discuz_plugin_wechat.xml @@ -11,7 +11,7 @@ - + @@ -293,6 +293,7 @@ ]]> + diff --git a/upload/source/plugin/wechat/setting.class.php b/upload/source/plugin/wechat/setting.class.php index 434e2aba..4558abfb 100644 --- a/upload/source/plugin/wechat/setting.class.php +++ b/upload/source/plugin/wechat/setting.class.php @@ -52,22 +52,35 @@ function menu() { EOF; echo '
    '; - showsubmenu(lang('plugin/wechat', 'menu_root'), array( - array(array('menu' => lang('plugin/wechat', 'menu_wsq'), 'submenu' => array( - array(lang('plugin/wechat', 'menu_wsq_base'), 'plugins&operation=config&identifier=wechat&pmod=wsq_setting', $_GET['pmod'] == 'wsq_setting'), - array(lang('plugin/wechat', 'menu_wsq_show'), 'plugins&operation=config&identifier=wechat&pmod=showactivity_setting', $_GET['pmod'] == 'showactivity_setting'), - array(lang('plugin/wechat', 'menu_wsq_stat'), 'plugins&operation=config&identifier=wechat&pmod=wsq_stat', $_GET['pmod'] == 'wsq_stat'), - ))), - array(array('menu' => lang('plugin/wechat', 'menu_wechat'), 'submenu' => array( - array(lang('plugin/wechat', 'menu_wechat_base'), 'plugins&operation=config&identifier=wechat&pmod=wechat_setting', $_GET['pmod'] == 'wechat_setting'), - array(lang('plugin/wechat', 'menu_wechat_msg'), 'plugins&operation=config&identifier=wechat&pmod=response_setting', $_GET['pmod'] == 'response_setting'), - array(lang('plugin/wechat', 'menu_wechat_menu'), 'plugins&operation=config&identifier=wechat&pmod=menu_setting', $_GET['pmod'] == 'menu_setting'), - array(lang('plugin/wechat', 'menu_wechat_resource'), 'plugins&operation=config&identifier=wechat&pmod=resource_setting', $_GET['pmod'] == 'resource_setting'), - array(lang('plugin/wechat', 'menu_wechat_masssend'), 'plugins&operation=config&identifier=wechat&pmod=masssend_setting', $_GET['pmod'] == 'masssend_setting'), - ))), - array(lang('plugin/wechat', 'menu_app'), 'plugins&operation=config&identifier=wechat&pmod=wsq_app', $_GET['pmod'] == 'wsq_app'), - array(lang('plugin/wechat', 'menu_api'), 'plugins&operation=config&identifier=wechat&pmod=api_setting', $_GET['pmod'] == 'api_setting'), - )); + if($_G['wechat']['setting']['wsq_sitetoken']) { + showsubmenu(lang('plugin/wechat', 'menu_root'), array( + array(array('menu' => lang('plugin/wechat', 'menu_wsq'), 'submenu' => array( + array(lang('plugin/wechat', 'menu_wsq_base'), 'plugins&operation=config&identifier=wechat&pmod=wsq_setting', $_GET['pmod'] == 'wsq_setting'), + array(lang('plugin/wechat', 'menu_wsq_show'), 'plugins&operation=config&identifier=wechat&pmod=showactivity_setting', $_GET['pmod'] == 'showactivity_setting'), + array(lang('plugin/wechat', 'menu_wsq_stat'), 'plugins&operation=config&identifier=wechat&pmod=wsq_stat', $_GET['pmod'] == 'wsq_stat'), + ))), + array(array('menu' => lang('plugin/wechat', 'menu_wechat'), 'submenu' => array( + array(lang('plugin/wechat', 'menu_wechat_base'), 'plugins&operation=config&identifier=wechat&pmod=wechat_setting', $_GET['pmod'] == 'wechat_setting'), + array(lang('plugin/wechat', 'menu_wechat_msg'), 'plugins&operation=config&identifier=wechat&pmod=response_setting', $_GET['pmod'] == 'response_setting'), + array(lang('plugin/wechat', 'menu_wechat_menu'), 'plugins&operation=config&identifier=wechat&pmod=menu_setting', $_GET['pmod'] == 'menu_setting'), + array(lang('plugin/wechat', 'menu_wechat_resource'), 'plugins&operation=config&identifier=wechat&pmod=resource_setting', $_GET['pmod'] == 'resource_setting'), + array(lang('plugin/wechat', 'menu_wechat_masssend'), 'plugins&operation=config&identifier=wechat&pmod=masssend_setting', $_GET['pmod'] == 'masssend_setting'), + ))), + array(lang('plugin/wechat', 'menu_app'), 'plugins&operation=config&identifier=wechat&pmod=wsq_app', $_GET['pmod'] == 'wsq_app'), + array(lang('plugin/wechat', 'menu_api'), 'plugins&operation=config&identifier=wechat&pmod=api_setting', $_GET['pmod'] == 'api_setting'), + )); + } else { + showsubmenu(lang('plugin/wechat', 'menu_root'), array( + array(array('menu' => lang('plugin/wechat', 'menu_wechat'), 'submenu' => array( + array(lang('plugin/wechat', 'menu_wechat_base'), 'plugins&operation=config&identifier=wechat&pmod=wechat_setting', $_GET['pmod'] == 'wechat_setting'), + array(lang('plugin/wechat', 'menu_wechat_msg'), 'plugins&operation=config&identifier=wechat&pmod=response_setting', $_GET['pmod'] == 'response_setting'), + array(lang('plugin/wechat', 'menu_wechat_menu'), 'plugins&operation=config&identifier=wechat&pmod=menu_setting', $_GET['pmod'] == 'menu_setting'), + array(lang('plugin/wechat', 'menu_wechat_resource'), 'plugins&operation=config&identifier=wechat&pmod=resource_setting', $_GET['pmod'] == 'resource_setting'), + array(lang('plugin/wechat', 'menu_wechat_masssend'), 'plugins&operation=config&identifier=wechat&pmod=masssend_setting', $_GET['pmod'] == 'masssend_setting'), + ))), + array(lang('plugin/wechat', 'menu_api'), 'plugins&operation=config&identifier=wechat&pmod=api_setting', $_GET['pmod'] == 'api_setting'), + )); + } echo '
    '; if($_G['wechat']['setting']['wsq_siteid']) { diff --git a/upload/source/plugin/wechat/showactivity_setting.inc.php b/upload/source/plugin/wechat/showactivity_setting.inc.php index 8aeeb43c..48571505 100644 --- a/upload/source/plugin/wechat/showactivity_setting.inc.php +++ b/upload/source/plugin/wechat/showactivity_setting.inc.php @@ -21,9 +21,16 @@ require_once DISCUZ_ROOT.'./source/plugin/wechat/setting.class.php'; WeChatSetting::menu(); +if(!$setting['wsq_sitetoken']) { + cpmsg(lang('plugin/wechat', 'wsq_api_register_close'), '', 'error'); +} + if(!$ac) { $ppp = 20; + if(!is_array($setting['showactivity']['tids'])) { + $setting['showactivity']['tids'] = array(); + } arsort($setting['showactivity']['tids']); $page = max(1, $_GET['page']); $tids = array_slice($setting['showactivity']['tids'], ($page - 1) * $ppp, $ppp); diff --git a/upload/source/plugin/wechat/wsq_app.inc.php b/upload/source/plugin/wechat/wsq_app.inc.php index be7236f9..f37765b7 100644 --- a/upload/source/plugin/wechat/wsq_app.inc.php +++ b/upload/source/plugin/wechat/wsq_app.inc.php @@ -14,6 +14,10 @@ $setting = C::t('common_setting')->fetch_all(array('mobilewechat')); $setting = (array)unserialize($setting['mobilewechat']); +if(!$setting['wsq_sitetoken']) { + cpmsg(lang('plugin/wechat', 'wsq_api_register_close'), '', 'error'); +} + require_once DISCUZ_ROOT.'./source/plugin/wechat/wechat.lib.class.php'; require_once DISCUZ_ROOT.'./source/plugin/wechat/wsq.class.php'; require_once DISCUZ_ROOT.'./source/plugin/wechat/setting.class.php'; diff --git a/upload/source/plugin/wechat/wsq_setting.inc.php b/upload/source/plugin/wechat/wsq_setting.inc.php index e7fb67be..29a082bd 100644 --- a/upload/source/plugin/wechat/wsq_setting.inc.php +++ b/upload/source/plugin/wechat/wsq_setting.inc.php @@ -29,6 +29,10 @@ require_once DISCUZ_ROOT.'./source/plugin/wechat/setting.class.php'; WeChatSetting::menu(); +if(!$setting['wsq_sitetoken']) { + cpmsg(lang('plugin/wechat', 'wsq_api_register_close'), '', 'error'); +} + if(!empty($_GET['recheck'])) { wsq::recheck(); $siteinfo = wsq::info(); diff --git a/upload/source/plugin/wechat/wsq_stat.inc.php b/upload/source/plugin/wechat/wsq_stat.inc.php index 4de272de..cc149ab5 100644 --- a/upload/source/plugin/wechat/wsq_stat.inc.php +++ b/upload/source/plugin/wechat/wsq_stat.inc.php @@ -15,6 +15,12 @@ require_once DISCUZ_ROOT . './source/plugin/wechat/setting.class.php'; WeChatSetting::menu(); +$setting = C::t('common_setting')->fetch_all(array('mobilewechat')); +$setting = (array)unserialize($setting['mobilewechat']); +if(!$setting['wsq_sitetoken']) { + cpmsg(lang('plugin/wechat', 'wsq_api_register_close'), '', 'error'); +} + showtips(lang('plugin/wechat', 'discuzqr_tips')); $data = wsq::stat(); diff --git a/upload/static/js/forum_post.js b/upload/static/js/forum_post.js index daff2e4a..9117be1c 100644 --- a/upload/static/js/forum_post.js +++ b/upload/static/js/forum_post.js @@ -28,7 +28,9 @@ var STATUSMSG = { '8' : 'ไม่สามารถบันทึกไฟล์แนบ', '9' : 'ไม่มีไฟล์แนบที่จะอัปโหลด', '10' : 'การดำเนินการผิดพลาด', - '11' : 'วันนี้คุณไม่สามารถอัปโหลดไฟล์แนบที่มีขนาดใหญ่ได้' + '11' : 'วันนี้คุณไม่สามารถอัปโหลดไฟล์แนบที่มีขนาดใหญ่ได้', + '12' : 'ส่งไม่สำเร็จเนื่องจากชื่อไฟล์มีคำที่ละเอียดอ่อน', + '13' : 'เนื่องด้วยข้อจำกัดของเซิร์ฟเวอร์ไม่สามารถอัปโหลดไฟล์แนบที่มีความละเอียดสูงได้' }; EXTRAFUNC['validator'] = []; diff --git a/upload/static/js/forum_viewthread.js b/upload/static/js/forum_viewthread.js index d0a320f1..cb15f9a8 100644 --- a/upload/static/js/forum_viewthread.js +++ b/upload/static/js/forum_viewthread.js @@ -404,48 +404,6 @@ function replyNotice() { } } -var connect_share_loaded = 0; -function connect_share(connect_share_url, connect_uin) { - if(parseInt(discuz_uid) <= 0) { - return true; - } else { - if(connect_uin) { - setTimeout(function () { - if(!connect_share_loaded) { - showDialog('การเชื่อมต่อล้มเหลว ไม่สามารถแชร์ได้ กรุณาลองอีกครั้งในภายหลัง', 'notice'); - $('append_parent').removeChild($('connect_load_js')); - } - }, 5000); - connect_load(connect_share_url); - } else { - showDialog($('connect_share_unbind').innerHTML, 'info', 'กรุณาเชื่อมต่อด้วยบัญชี QQ'); - } - return false; - } -} - -function connect_load(src) { - var e = document.createElement('script'); - e.type = "text/javascript"; - e.id = 'connect_load_js'; - e.src = src + '&_r=' + Math.random(); - e.async = true; - $('append_parent').appendChild(e); -} - -function connect_show_dialog(title, html, type) { - var type = type ? type : 'info'; - showDialog(html, type, title, null, 0); -} - -function connect_get_thread() { - connect_thread_info.subject = $('connect_thread_title').value; - if ($('postmessage_' + connect_thread_info.post_id)) { - connect_thread_info.html_content = preg_replace(["'"], ['%27'], encodeURIComponent(preg_replace(['แก้ไขครั้งสุดท้ายโดย .*? เมื่อ .*? ',' ','คัดลอกโค้ด'], ['',' ', ''], $('postmessage_' + connect_thread_info.post_id).innerHTML))); - } - return connect_thread_info; -} - function lazyload(className) { var obj = this; lazyload.className = className; diff --git a/upload/static/js/qshare.js b/upload/static/js/qshare.js deleted file mode 100644 index beab56a0..00000000 --- a/upload/static/js/qshare.js +++ /dev/null @@ -1,125 +0,0 @@ -/* - [Discuz!] (C)2001-2099 Comsenz Inc. - This is NOT a freeware, use is subject to license terms - - $Id$ -*/ - -var _share_tencent_weibo = function() { - var share_btn = function(_arr) { - if (_arr[0]) { - return _arr[0]; - } - else { - var o = document.createElement("a"), - _ostyle = "width:92px;height:22px;background:url(http://open.t.qq.com/apps/qshare/images/icon.gif) no-repeat #f00;position:absolute;display:none;"; - o.setAttribute("style", _ostyle); - o.style.cssText = _ostyle; - o.setAttribute("href", "javascript:;"); - document.body.insertBefore(o, document.body.childNodes[0]); - return o; - } - } (arguments); - var share_area = function(_arr) { - if (_arr[1]) { - if ((typeof _arr[1] == "object" && _arr[1].length) || (_arr[1].constructor == Array)) { - return _arr[1]; - } else { - return [_arr[1]]; - } - } - else { - return [document.body]; - } - } (arguments); - var current_area = share_area[0]; - var _site = arguments[2] ? arguments[2] : ""; - var _appkey = encodeURI(arguments[3] ? arguments[3] : ""); - var _web = { - "name": arguments[4] || "", - "href": location.href, - "hash": location.hash - }; - var _pic = function(area) { - var _imgarr = area.getElementsByTagName("img"); - var _srcarr = []; - for (var i = 0; i < _imgarr.length; i++) { - _srcarr.push(_imgarr[i].src); - } - return _srcarr.join("|"); - }; - var _u = 'http://v.t.qq.com/share/share.php?url=$url$&appkey=' + _appkey + '&site=' + _site + '&title=$title$&pic=$pic$'; - var _select = function() { - return (document.selection ? document.selection.createRange().text: document.getSelection()).toString().replace(/[\s\n]+/g, " "); - }; - if ( !! window.find) { - HTMLElement.prototype.contains = function(B) { - return this.compareDocumentPosition(B) - 19 > 0 - } - } - String.prototype.elength = function() { - return this.replace(/[^\u0000-\u00ff]/g, "aa").length; - } - document.onmouseup = function(e) { - e = e || window.event; - var o = e.target || e.srcElement; - for (var i = 0; i < share_area.length; i++) { - if (share_area[i].contains(o) || share_area[i] == o) { - var _e = { - "x": e.clientX, - "y": e.clientY - }; - var _o = { - "w": share_btn.clientWidth, - "h": share_btn.clientHeight - }; - var _d = window.pageYOffset || (document.documentElement || document.body).scrollTop || 0; - var x = (_e.x - _o.w < 0) ? _e.x + _o.w: _e.x - _o.w, - y = (_e.y - _o.h < 0) ? _e.y + _d - _o.h: _e.y + _d - _o.h + ( - [1, ] ? 10 : 0); - if (_select() && _select().length >= 10) { - with(share_btn.style) { - display = "inline-block"; - left = (x - 5) + "px"; - top = y + "px"; - position = "absolute"; - zIndex = "999999"; - } - current_area = share_area[i]; - break; - } else { - share_btn.style.display = "none"; - } - - } else { - share_btn.style.display = "none"; - } - } - }; - share_btn.onclick = function() { - var _str = _select(); - var _strmaxlen = 280 - ("\u6211\u6765\u81EA\u4E8E\u817E\u8BAF\u5FAE\u535A\u5F00\u653E\u5E73\u53F0" + " " + _web.name).elength(); - var _resultstr = ""; - if (_str.elength() > _strmaxlen) { - _strmaxlen = _strmaxlen - 3; - for (var i = _strmaxlen >> 1; i <= _strmaxlen; i++) { - if ((_str.slice(0, i)).elength() > _strmaxlen) { - break; - } - else { - _resultstr = _str.slice(0, i); - } - } - _resultstr += "..."; - } else { - _resultstr = _str; - } - if (_str) { - var url = _u.replace("$title$", encodeURIComponent(_resultstr + " " + _web.name)).replace("$pic$", _pic(current_area)); - url = url.replace("$url$", encodeURIComponent(_web.href.replace(_web.hash, "") + "#" + (current_area["name"] || current_area["id"] || ""))); - if (!- [1, ]) { - url = url.substr(0, 2048); - } - window.open(url, 'null', 'width=700,height=680,top=0,left=0,toolbar=no,menubar=no,scrollbars=no,location=yes,resizable=no,status=no'); - } - }; -}; \ No newline at end of file diff --git a/upload/template/default/forum/attachpay.htm b/upload/template/default/forum/attachpay.htm index 5483fbb2..742a811f 100644 --- a/upload/template/default/forum/attachpay.htm +++ b/upload/template/default/forum/attachpay.htm @@ -24,7 +24,7 @@

    - + diff --git a/upload/template/default/forum/guide.htm b/upload/template/default/forum/guide.htm index edcab8cb..d6f5c113 100644 --- a/upload/template/default/forum/guide.htm +++ b/upload/template/default/forum/guide.htm @@ -12,7 +12,7 @@
    -
    +
    diff --git a/upload/template/default/forum/pay.htm b/upload/template/default/forum/pay.htm index 66397b1d..37e754aa 100644 --- a/upload/template/default/forum/pay.htm +++ b/upload/template/default/forum/pay.htm @@ -24,7 +24,7 @@

    {lang author}$attach[author]$attach['author']$attach['author']
    {lang attachment}
    - + diff --git a/upload/template/default/forum/viewthread_album.htm b/upload/template/default/forum/viewthread_album.htm index 68d4331e..4b88b368 100644 --- a/upload/template/default/forum/viewthread_album.htm +++ b/upload/template/default/forum/viewthread_album.htm @@ -45,7 +45,7 @@

    $_G[forum_thread][subject]

    {lang home_view_num}: $_G[forum_thread][views] | {lang comment_num}: $_G[forum_thread][replies] | {lang thread_favorite} {$_G['forum_thread']['favtimes']} - |{lang post_add_aboutcounter}{lang edit} + |{lang post_add_aboutcounter}{lang edit}
    @@ -251,7 +251,9 @@

    $_G[forum_thread][subject]

    - + diff --git a/upload/template/default/home/space_thread_nav.htm b/upload/template/default/home/space_thread_nav.htm index d04dab42..cf88f399 100644 --- a/upload/template/default/home/space_thread_nav.htm +++ b/upload/template/default/home/space_thread_nav.htm @@ -6,6 +6,7 @@

    {lang post}

  • {lang poll}
  • {lang reward}
  • {lang trade}
  • +
  • {lang debate}
  • $module[name] diff --git a/upload/template/default/home/spacecp_common.htm b/upload/template/default/home/spacecp_common.htm index b66fae86..875459cc 100644 --- a/upload/template/default/home/spacecp_common.htm +++ b/upload/template/default/home/spacecp_common.htm @@ -14,7 +14,7 @@

    {lang shield_notice} {lang close}

    - + diff --git a/upload/template/default/home/spacecp_favorite.htm b/upload/template/default/home/spacecp_favorite.htm index bb1e4be3..f217d991 100644 --- a/upload/template/default/home/spacecp_favorite.htm +++ b/upload/template/default/home/spacecp_favorite.htm @@ -51,6 +51,7 @@

    diff --git a/upload/template/default/member/login_simple.htm b/upload/template/default/member/login_simple.htm index 9946516a..123f344b 100644 --- a/upload/template/default/member/login_simple.htm +++ b/upload/template/default/member/login_simple.htm @@ -34,6 +34,7 @@

    {lang author}$thread[author]$thread['author']$thread['author']
    {lang price}({$_G['setting']['extcredits'][$_G['setting']['creditstransextra'][1]][title]})
    + + $_G[forum_thread][author] diff --git a/upload/template/default/forum/viewthread_preview_node.htm b/upload/template/default/forum/viewthread_preview_node.htm index 58dd36dc..52cee465 100644 --- a/upload/template/default/forum/viewthread_preview_node.htm +++ b/upload/template/default/forum/viewthread_preview_node.htm @@ -18,7 +18,7 @@ - {lang post_add_aboutcounter}{lang edit} + {lang post_add_aboutcounter}{lang edit} diff --git a/upload/template/default/home/space_album_pic.htm b/upload/template/default/home/space_album_pic.htm index 4029e6ff..7ebd96c3 100644 --- a/upload/template/default/home/space_album_pic.htm +++ b/upload/template/default/home/space_album_pic.htm @@ -47,7 +47,7 @@

    {lang album}

    « {lang return_pic_list} |{lang current_pic}  -   {$friendsname[$value[friend]]} +   {$friendsname[$album[friend]]}
    diff --git a/upload/template/default/home/space_notice.htm b/upload/template/default/home/space_notice.htm index cadeb1b4..6b2067e3 100644 --- a/upload/template/default/home/space_notice.htm +++ b/upload/template/default/home/space_notice.htm @@ -54,13 +54,22 @@

    pm { function errorhandle_pokeignore(msg, values) { deleteQueryNotice(values['uid'], 'pokeQuery'); } + function succeedhandle_noticeignore(url,msg, values) { + if(values['type'] == "poke") { + deleteQueryNotice(values['uid'], 'pokeQuery'); + } else if(values['type'] == "friend" ) { + deleteQueryNotice(values['uid'], 'pendingFriend'); + } else { + deleteQueryNotice(values['id'], 'notice'); + } + }
    -
    +
    @@ -69,7 +78,7 @@

    pm {

    - {lang shield} + {lang shield}
    diff --git a/upload/template/default/home/space_pm.htm b/upload/template/default/home/space_pm.htm index d3304bf4..043bd02c 100644 --- a/upload/template/default/home/space_pm.htm +++ b/upload/template/default/home/space_pm.htm @@ -384,8 +384,8 @@

    $value
    - {lang menu} -

      {$post[message]}......   {$post[message]}......
     $_G['setting']['reglinkname']
    +

    diff --git a/upload/template/default/touch/forum/pay.htm b/upload/template/default/touch/forum/pay.htm index c742e3f5..a2267cca 100644 --- a/upload/template/default/touch/forum/pay.htm +++ b/upload/template/default/touch/forum/pay.htm @@ -17,7 +17,7 @@ - + diff --git a/upload/template/default/touch/forum/post.htm b/upload/template/default/touch/forum/post.htm index d573dd4e..a3354a5f 100644 --- a/upload/template/default/touch/forum/post.htm +++ b/upload/template/default/touch/forum/post.htm @@ -176,7 +176,9 @@ '8' : '{lang uploadstatusmsg8}', '9' : '{lang uploadstatusmsg9}', '10' : '{lang uploadstatusmsg10}', - '11' : '{lang uploadstatusmsg11}' + '11' : '{lang uploadstatusmsg11}', + '12' : '{lang uploadstatusmsg12}', + '13' : '{lang uploadstatusmsg13}' }; var form = $('#postform'); $(document).on('change', '#filedata', function() { diff --git a/upload/uc_client/control/app.php b/upload/uc_client/control/app.php index 5945f9bb..26b447e3 100644 --- a/upload/uc_client/control/app.php +++ b/upload/uc_client/control/app.php @@ -37,12 +37,6 @@ function onadd() { function onucinfo() { } - function _random($length, $numeric = 0) { - } - - function _generate_key() { - } - function _format_notedata($notedata) { } } diff --git a/upload/uc_server/api/dbbak.php b/upload/uc_server/api/dbbak.php index 68405f46..2b636098 100644 --- a/upload/uc_server/api/dbbak.php +++ b/upload/uc_server/api/dbbak.php @@ -511,6 +511,10 @@ function halt($message = '', $sql = '') { $get['volume'] = 0; } + if(!preg_match('/^backup_(\d+)_\w+$/', $get['sqlpath']) || !preg_match('/^\d+_\w+\-(\d+).sql$/', $get['dumpfile'])) { + api_msg('bak_file_lose', $get['dumpfile']); + } + $get['volume']++; $next_dumpfile = preg_replace('/^(\d+)\_(\w+)\-(\d+)\.sql$/', '\\1_\\2-'.$get['volume'].'.sql', $get['dumpfile']); if(!is_file(BACKUP_DIR.$get['sqlpath'].'/'.$get['dumpfile'])) { @@ -554,7 +558,7 @@ function halt($message = '', $sql = '') { $directory = dir(BACKUP_DIR); while($entry = $directory->read()) { $filename = BACKUP_DIR.$entry; - if(is_dir($filename) && preg_match('/backup_(\d+)_\w+$/', $filename, $match)) { + if(is_dir($filename) && preg_match('/^backup_(\d+)_\w+$/', $entry, $match)) { $str .= "\t\n"; $str .= "\t\t$filename\n"; $str .= "\t\t$match[1]\n"; diff --git a/upload/uc_server/control/admin/admin.php b/upload/uc_server/control/admin/admin.php index ad31f89f..54955c86 100644 --- a/upload/uc_server/control/admin/admin.php +++ b/upload/uc_server/control/admin/admin.php @@ -80,6 +80,7 @@ function onls() { $oldpw = getgpc('oldpw', 'P'); $newpw = getgpc('newpw', 'P'); $newpw2 = getgpc('newpw2', 'P'); + $reconfkey = getgpc('reconfkey', 'P'); if(UC_FOUNDERPW == md5(md5($oldpw).UC_FOUNDERSALT)) { $configfile = UC_ROOT.'./data/config.inc.php'; if(!is_writable($configfile)) { @@ -93,6 +94,10 @@ function onls() { $md5newpw = md5(md5($newpw).$salt); $config = preg_replace("/define\('UC_FOUNDERSALT',\s*'.*?'\);/i", "define('UC_FOUNDERSALT', '$salt');", $config); $config = preg_replace("/define\('UC_FOUNDERPW',\s*'.*?'\);/i", "define('UC_FOUNDERPW', '$md5newpw');", $config); + if($reconfkey) { + $uckey = $this->generate_key(64); + $config = preg_replace("/define\('UC_KEY',\s*'.*?'\);/i", "define('UC_KEY', '$uckey');", $config); + } $fp = @fopen($configfile, 'w'); @fwrite($fp, $config); @fclose($fp); diff --git a/upload/uc_server/control/admin/app.php b/upload/uc_server/control/admin/app.php index 47f31f34..c5d5e26c 100644 --- a/upload/uc_server/control/admin/app.php +++ b/upload/uc_server/control/admin/app.php @@ -136,6 +136,12 @@ function onping() { } + function ongeneratekey() { + $newkey = $this->generate_key(64); + header("Content-Type: application/javascript"); + echo 'document.getElementsByName("authkey")[0].value = "'.$newkey.'";'; + } + function ondetail() { $appid = getgpc('appid'); $updated = false; diff --git a/upload/uc_server/control/admin/frame.php b/upload/uc_server/control/admin/frame.php index f7134205..fb836775 100644 --- a/upload/uc_server/control/admin/frame.php +++ b/upload/uc_server/control/admin/frame.php @@ -61,7 +61,7 @@ function onmain() { $serverinfo = PHP_OS.' / PHP v'.PHP_VERSION; $serverinfo .= @ini_get('safe_mode') ? ' Safe Mode' : NULL; $dbversion = $this->db->result_first("SELECT VERSION()"); - $fileupload = @ini_get('file_uploads') ? ini_get('upload_max_filesize') : ''.$lang['no'].''; + $fileupload = @ini_get('file_uploads') ? (min(min(ini_get('upload_max_filesize'), ini_get('post_max_size')), ini_get('memory_limit'))) : ''.$lang['no'].''; $dbsize = 0; $tablepre = UC_DBTABLEPRE; $query = $tables = $this->db->fetch_all("SHOW TABLE STATUS LIKE '$tablepre%'"); diff --git a/upload/uc_server/control/admin/ucfiles.md5 b/upload/uc_server/control/admin/ucfiles.md5 index 14f5fb20..7042c8af 100644 --- a/upload/uc_server/control/admin/ucfiles.md5 +++ b/upload/uc_server/control/admin/ucfiles.md5 @@ -12,7 +12,7 @@ ccf267e9dcaf9ff2d315012060a7e1d6 *./lib 2bdbd8d3dddf47a9dad09787c54c8751 *./model f576f07ce12ea5a7bf644f4ad5b235a5 *./plugin d093e4cdf86aa6a86a460b237b8b30da *./release -15dde9868cbc402f19261bd376496d38 *./robots.txt +daadebe24cc397eaedb16c5aef40a306 *./robots.txt 1f4899a85658c8e1931ad3b7d43b4560 *./view 7215ee9c7d9dc229d2921a40e899ec5f *data/avatar/index.htm 7215ee9c7d9dc229d2921a40e899ec5f *data/backup/index.htm @@ -21,17 +21,17 @@ d41d8cd98f00b204e9800998ecf8427e *data/cache/index.htm 7215ee9c7d9dc229d2921a40e899ec5f *data/logs/index.htm d41d8cd98f00b204e9800998ecf8427e *data/tmp/index.htm d41d8cd98f00b204e9800998ecf8427e *data/view/index.htm -3c85f10655ccd54a2e5905046966a422 *api/dbbak.php +1849c6dbe449093eb1bec893b35b09da *api/dbbak.php d41d8cd98f00b204e9800998ecf8427e *api/index.htm -90b101dd0e881816c7587f04df2c3db0 *control/admin/admin.php -7aa86ce6075f58f5afdd5b119cd662c9 *control/admin/app.php +09bc093a87ad22670b181836788d2349 *control/admin/admin.php +d79eb0c260ac74f61c2b4842d23cedee *control/admin/app.php bb19aa03231cb8ffa29cbdb41449dfdf *control/admin/badword.php 72a4339c80c4a1dea4a2e644fa783e53 *control/admin/cache.php b5b55c54eb4d74731c01e4c8982042cd *control/admin/credit.php c0c8cbc576cb72e129274c887a24676c *control/admin/db.php f53e0119b7e5a24c2ac6dfa68913d631 *control/admin/domain.php 9139008dd986bca1b8f9f203de4fde81 *control/admin/feed.php -f697e0fec08c84c27f84f22c019d2fae *control/admin/frame.php +9f729d309b4b4882b9445c5a04684ba8 *control/admin/frame.php d41d8cd98f00b204e9800998ecf8427e *control/admin/index.htm 6970e00023140a42a8101f88c9da08b3 *control/admin/log.php 85b0228e317d1c458cace7a3478b6426 *control/admin/mail.php @@ -41,7 +41,7 @@ dea62a81dcb69b255a4deaac38602e0d *control/admin/plugin.php 0e9c93d9204b5f232eea6617ca594979 *control/admin/seccode.php 95add7a1e35b9abde44db45d5c95fc8d *control/admin/setting.php d7b3b665ae3fe33c1cfa906df9d3ebac *control/admin/user.php -73848d3c004bbf8341138005fc58865f *control/app.php +d9a01e68a40776159820300c196acf2e *control/app.php 45f65148d59e61a608d57af8544ff5e5 *control/credit.php aba07c0e38ad0875a303ef418658afc2 *control/domain.php 42a0f7a167224fbcba01a9a6dc561493 *control/feed.php @@ -56,7 +56,7 @@ fa6e51baef21c1104e6a9c9bea515b93 *control/version.php 97352f61eb1eb3a1528e0c6d752a8591 *model/admin.php 4a0b4c85f1e53dd995b9785f8811846a *model/app.php 5cbfa5b5ff6bf0bfd4aee2419bdc72c4 *model/badword.php -9de96acc884c8fc05be8f236161f4d2e *model/base.php +d92bb06788889c6896c73037760f4810 *model/base.php f715376b3450807e6a9382c1314107c1 *model/cache.php d4fde3d32ba28d296f8b7b069bff016c *model/cron.php 74b4e3c17a429bfba12edee20d4e13ba *model/domain.php @@ -86,6 +86,10 @@ d41d8cd98f00b204e9800998ecf8427e *plugin/filecheck/index.htm c46605109aaaccfd8fc1665bd45cfb40 *plugin/filecheck/plugin.xml 5259f76ce41387e0218eb54c38a616c9 *plugin/filecheck/plugin_filecheck.htm d41d8cd98f00b204e9800998ecf8427e *plugin/index.htm +d41d8cd98f00b204e9800998ecf8427e *plugin/replacemykey/index.htm +7ee707d30e4ded10991b3d7138bf4f29 *plugin/replacemykey/plugin.php +65c11c1d3215e1a78490c8d237157b1c *plugin/replacemykey/plugin.xml +d48eef5264297ddcd31685562f11d607 *plugin/replacemykey/plugin_replacemykey.htm 33b23d0c676f17d2b76a35ce0f0a2391 *images/admincp.css d3af6beed6f4c5941d8474d8c30de6ab *images/bg_login.gif 4fbf05bd615747043ff441b3be626935 *images/bg_repno.gif @@ -183,12 +187,12 @@ c8323955b8b6a4393372de9e122853a3 *js/calendar.js 904fbd9ee2c415bbee0fa4f9ccce4f83 *js/pm_editor.js 0ab45bb9ded2cfd294563e3724b8f0be *release/release.php f5ca4573eda7e4e57c93e7f56893b354 *view/default/admin.lang.php -f878f37931d5d3035d19a3b594cafac8 *view/default/admin_admin.htm -d71241f811ae76e0defb2193d17d8ddf *view/default/admin_app.htm +69fd09d092f61d05e4b31e8e6ad09dbd *view/default/admin_admin.htm +c535ef1e2e66bf778a7f45ef38f07b5b *view/default/admin_app.htm 8c2c7c164be3d2e880fc34ae29de11fe *view/default/admin_badword.htm e7c9d9336c808d322ddd304d583d8523 *view/default/admin_cache.htm 9c0247562c6e7c19fa499862d387ada2 *view/default/admin_credit.htm -7113e801ffc5ad601399a5b59eed6142 *view/default/admin_db.htm +79dac3dd3a49bc1c1cfdeb7b493416bd *view/default/admin_db.htm 80fe9acb37c5416736e0d59f992c3e82 *view/default/admin_domain.htm 602038f1ec76c304dc5730597357fdce *view/default/admin_feed.htm 30dae5e21c3ac339675069db37efefc0 *view/default/admin_frame_header.htm @@ -213,7 +217,7 @@ d76bda70ef15b7bfc3956868c87be639 *view/default/header_client.htm 7215ee9c7d9dc229d2921a40e899ec5f *view/default/index.htm 4de688514cd4908403ac6dac1cccef23 *view/default/main.lang.php 998b620c83be4e7caff9311f767327ae *view/default/message.htm -024dcb18e8b8486a25d4c4a7bedec396 *view/default/messages.lang.php +a32f7fac8c570abb1199c423f0e86eb6 *view/default/messages.lang.php 7819252a557b50879b0e80396013683d *view/default/message_client.htm 21d15220756918b854defbd846c8aaa9 *view/default/plugin_footer.htm 095dca5a72759647bedd89afde4ac738 *view/default/plugin_header.htm @@ -224,6 +228,6 @@ cfcf3bb6aeff9a878f5bf8061f19a707 *view/default/pm_blackls.htm 78cfbfb3fadc76e11e449f2a0ffbf8c0 *view/default/pm_nav.htm 2c71a1f8a58da016cb293ef68ce5a4c0 *view/default/pm_send.htm 1dcfb1c220e5381901fa44b300b234bd *view/default/pm_view.htm -6ffe7f0edffe37aa70ca7534ec014b56 *view/default/templates.lang.php +585a1d9ee12d3ec1e39d4e30948b27b1 *view/default/templates.lang.php 42fa0f40e601b24e3dbdd91ac05ce696 *view/default/user_avatar.htm 7215ee9c7d9dc229d2921a40e899ec5f *view/index.htm diff --git a/upload/uc_server/control/app.php b/upload/uc_server/control/app.php index 874d4ba7..425279a7 100644 --- a/upload/uc_server/control/app.php +++ b/upload/uc_server/control/app.php @@ -60,7 +60,7 @@ function onadd() { $app = $this->db->fetch_first("SELECT * FROM ".UC_DBTABLEPRE."applications WHERE url='$appurl' AND type='$apptype'"); if(empty($app)) { - $authkey = $this->_generate_key(); + $authkey = $this->generate_key(64); $apptagtemplates = $this->serialize($apptagtemplates, 1); $this->db->query("INSERT INTO ".UC_DBTABLEPRE."applications SET name='$appname', @@ -118,31 +118,6 @@ function onucinfo() { exit("UC_STATUS_OK|".UC_SERVER_VERSION."|".UC_SERVER_RELEASE."|".UC_CHARSET."|".UC_DBCHARSET."|".$apptypes); } - function _random($length, $numeric = 0) { - PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000); - if($numeric) { - $hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1)); - } else { - $hash = ''; - $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'; - $max = strlen($chars) - 1; - for($i = 0; $i < $length; $i++) { - $hash .= $chars[mt_rand(0, $max)]; - } - } - return $hash; - } - - function _generate_key() { - $random = $this->_random(32); - $info = md5($_SERVER['SERVER_SOFTWARE'].$_SERVER['SERVER_NAME'].$_SERVER['SERVER_ADDR'].$_SERVER['SERVER_PORT'].$_SERVER['HTTP_USER_AGENT'].time()); - $return = array(); - for($i=0; $i<32; $i++) { - $return[$i] = $random[$i].$info[$i]; - } - return implode('', $return); - } - function _format_notedata($notedata) { $arr = array(); foreach($notedata as $key => $note) { diff --git a/upload/uc_server/install/func.inc.php b/upload/uc_server/install/func.inc.php index 1d50f765..f4539a40 100644 --- a/upload/uc_server/install/func.inc.php +++ b/upload/uc_server/install/func.inc.php @@ -132,7 +132,7 @@ function env_check(&$env_items) { if($key == 'php') { $env_items[$key]['current'] = PHP_VERSION; } elseif($key == 'attachmentupload') { - $env_items[$key]['current'] = @ini_get('file_uploads') ? ini_get('upload_max_filesize') : 'unknow'; + $env_items[$key]['current'] = @ini_get('file_uploads') ? (min(min(ini_get('upload_max_filesize'), ini_get('post_max_size')), ini_get('memory_limit'))) : 'unknow'; } elseif($key == 'gdversion') { $tmp = function_exists('gd_info') ? gd_info() : array(); $env_items[$key]['current'] = empty($tmp['GD Version']) ? 'noext' : $tmp['GD Version']; @@ -632,15 +632,14 @@ function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) { } -function generate_key() { - $random = random(32); +function generate_key($length = 32) { + $random = random($length); $info = md5($_SERVER['SERVER_SOFTWARE'].$_SERVER['SERVER_NAME'].$_SERVER['SERVER_ADDR'].$_SERVER['SERVER_PORT'].$_SERVER['HTTP_USER_AGENT'].time()); - $return = array(); - for($i=0; $i<64; $i++) { - $p = intval($i/2); - $return[$i] = $i % 2 ? $random[$p] : $info[$p]; + $return = ''; + for($i=0; $i<$length; $i++) { + $return .= $random[$i].$info[$i]; } - return implode('', $return); + return $return; } function show_install() { diff --git a/upload/uc_server/install/var.inc.php b/upload/uc_server/install/var.inc.php index 807e7022..083be6d3 100644 --- a/upload/uc_server/install/var.inc.php +++ b/upload/uc_server/install/var.inc.php @@ -99,7 +99,7 @@ 'dbhost' => array('type' => 'text', 'required' => 1, 'reg' => '/^.*$/', 'value' => array('type' => 'string', 'var' => 'localhost')), 'dbname' => array('type' => 'text', 'required' => 1, 'reg' => '/^.*$/', 'value' => array('type' => 'string', 'var' => 'ucenter')), 'dbuser' => array('type' => 'text', 'required' => 0, 'reg' => '/^.*$/', 'value' => array('type' => 'string', 'var' => 'root')), - 'dbpw' => array('type' => 'password', 'required' => 0, 'reg' => '/^.*$/', 'value' => array('type' => 'string', 'var' => '')), + 'dbpw' => array('type' => 'text', 'required' => 0, 'reg' => '/^.*$/', 'value' => array('type' => 'string', 'var' => '')), 'tablepre' => array('type' => 'text', 'required' => 0, 'reg' => '/^.*$/', 'value' => array('type' => 'string', 'var' => 'uc_')), ), 'admininfo' => array diff --git a/upload/uc_server/model/base.php b/upload/uc_server/model/base.php index 3a3c55ed..ee023919 100644 --- a/upload/uc_server/model/base.php +++ b/upload/uc_server/model/base.php @@ -513,6 +513,31 @@ function detectescape($basepath, $relativepath) { return TRUE; } + function random($length, $numeric = 0) { + PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000); + if($numeric) { + $hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1)); + } else { + $hash = ''; + $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'; + $max = strlen($chars) - 1; + for($i = 0; $i < $length; $i++) { + $hash .= $chars[mt_rand(0, $max)]; + } + } + return $hash; + } + + function generate_key($length = 32) { + $random = $this->random($length); + $info = md5($_SERVER['SERVER_SOFTWARE'].$_SERVER['SERVER_NAME'].$_SERVER['SERVER_ADDR'].$_SERVER['SERVER_PORT'].$_SERVER['HTTP_USER_AGENT'].time()); + $return = ''; + for($i=0; $i<$length; $i++) { + $return .= $random[$i].$info[$i]; + } + return $return; + } + } ?> \ No newline at end of file diff --git a/upload/uc_server/release/20080429/control/index.htm b/upload/uc_server/plugin/replacemykey/index.htm similarity index 100% rename from upload/uc_server/release/20080429/control/index.htm rename to upload/uc_server/plugin/replacemykey/index.htm diff --git a/upload/uc_server/plugin/replacemykey/plugin.php b/upload/uc_server/plugin/replacemykey/plugin.php new file mode 100644 index 00000000..ccedf741 --- /dev/null +++ b/upload/uc_server/plugin/replacemykey/plugin.php @@ -0,0 +1,54 @@ +pluginbase(); + } + + function onindex() { + + if($this->submitcheck()) { + if(!getgpc('reconfkey', 'P')) { + $this->message('replacemykey_no_confirm', 'BACK'); + } + if($this->_replacemykey()) { + $this->message('replacemykey_succeed', 'BACK'); + } else { + $this->message('replacemykey_false', 'BACK'); + } + } + + $this->view->display('plugin_replacemykey'); + } + + function _replacemykey() { + $oldmykey = UC_MYKEY; + $newmykey = $this->generate_key(); + $configfile = UC_ROOT.'./data/config.inc.php'; + if(!is_writable($configfile)) { + return false; + } + $config = file_get_contents($configfile); + $config = preg_replace("/define\('UC_MYKEY',\s*'.*?'\);/i", "define('UC_MYKEY', '$newmykey');", $config); + if(file_put_contents($configfile, $config, LOCK_EX) === false) { + return false; + } + $apps = $this->db->fetch_all("SELECT appid, authkey FROM ".UC_DBTABLEPRE."applications", 'appid'); + foreach($apps as $k => $v) { + if($tmp = $this->authcode($v['authkey'], 'DECODE', $oldmykey)) { + $appid = $v['appid']; + $appkey = $this->authcode($tmp, 'ENCODE', $newmykey); + $this->db->query("UPDATE ".UC_DBTABLEPRE."applications SET authkey='$appkey' WHERE appid='$appid'"); + if($this->db->errno()) { + return false; + } + } + } + return true; + } + +} \ No newline at end of file diff --git a/upload/uc_server/plugin/replacemykey/plugin.xml b/upload/uc_server/plugin/replacemykey/plugin.xml new file mode 100644 index 00000000..13df1117 --- /dev/null +++ b/upload/uc_server/plugin/replacemykey/plugin.xml @@ -0,0 +1,16 @@ + + + 密钥更新 + 1.0.0 + Discuz! X Community Team + 2022-1-30 + 2022-1-30 + Discuz! X Community Team + 2 + 当站点沦陷时您应该考虑进行密钥更新,以避免黑客通过已知的 UC_MYKEY 密钥破解 UC_KEY 密钥。 + + 在操作之前建议您选择低峰期操作或临时关闭下挂网站,并做好 UCenter 以及各应用的数据、文件备份工作。 + 确认 + 我已了解上述风险,并已经做好网站备份工作。 + + \ No newline at end of file diff --git a/upload/uc_server/plugin/replacemykey/plugin_replacemykey.htm b/upload/uc_server/plugin/replacemykey/plugin_replacemykey.htm new file mode 100644 index 00000000..dbf74ee1 --- /dev/null +++ b/upload/uc_server/plugin/replacemykey/plugin_replacemykey.htm @@ -0,0 +1,18 @@ +{template plugin_header} +

    {lang plugin_replacemykey_tips}

    + + +
    {lang author}$thread[author]$thread['author']$thread['author']
    {lang price}({$_G['setting']['extcredits'][$_G['setting']['creditstransextra'][1]][title]})
    + + + + + + + + +
    {lang plugin_replacemykey_confirm}:
    + +
    + +{template plugin_footer} \ No newline at end of file diff --git a/upload/uc_server/release/20080429/control/pm.php b/upload/uc_server/release/20080429/control/pm.php deleted file mode 100644 index 66e1d060..00000000 --- a/upload/uc_server/release/20080429/control/pm.php +++ /dev/null @@ -1,194 +0,0 @@ -pmcontrol(); - } - - function pmcontrol() { - parent::__construct(); - $this->load('user'); - $this->load('pm'); - } - - function oncheck_newpm() { - $this->init_input(); - $this->user['uid'] = intval($this->input('uid')); - $more = $this->input('more'); - $result = $_ENV['pm']->check_newpm($this->user['uid'], $more); - if($more == 3) { - require_once UC_ROOT.'lib/uccode.class.php'; - $this->uccode = new uccode(); - $result['lastmsg'] = $this->uccode->complie($result['lastmsg']); - } - return $result; - } - - function onsendpm() { - $this->init_input(); - $fromuid = $this->input('fromuid'); - $msgto = $this->input('msgto'); - $subject = $this->input('subject'); - $message = $this->input('message'); - $replypmid = $this->input('replypmid'); - $isusername = $this->input('isusername'); - if($fromuid) { - $user = $_ENV['user']->get_user_by_uid($fromuid); - $user = daddslashes($user, 1); - if(!$user) { - return 0; - } - $this->user['uid'] = $user['uid']; - $this->user['username'] = $user['username']; - } else { - $this->user['uid'] = 0; - $this->user['username'] = ''; - } - if($replypmid) { - $isusername = 1; - $pms = $_ENV['pm']->get_pmnode_by_pmid($this->user['uid'], $replypmid, 3); - if($pms['msgfromid'] == $this->user['uid']) { - $user = $_ENV['user']->get_user_by_uid($pms['msgtoid']); - } else { - $user = $_ENV['user']->get_user_by_uid($pms['msgfromid']); - } - $msgto = $user['username']; - } - - $msgto = array_unique(explode(',', $msgto)); - $isusername && $msgto = $_ENV['user']->name2id($msgto); - $blackls = $_ENV['pm']->get_blackls($this->user['uid'], $msgto); - $lastpmid = 0; - foreach($msgto as $uid) { - if(!$fromuid || !in_array('{ALL}', $blackls[$uid])) { - $blackls[$uid] = $_ENV['user']->name2id($blackls[$uid]); - if(!$fromuid || isset($blackls[$uid]) && !in_array($this->user['uid'], $blackls[$uid])) { - $lastpmid = $_ENV['pm']->sendpm($subject, $message, $this->user, $uid, 0, $replypmid); - } - } - } - return $lastpmid; - } - - function ondelete() { - $this->init_input(); - $this->user['uid'] = intval($this->input('uid')); - $id = $_ENV['pm']->deletepm($this->user['uid'], $this->input('pmids')); - return $id; - } - - function onignore() { - $this->init_input(); - $this->user['uid'] = intval($this->input('uid')); - return $_ENV['pm']->set_ignore($this->user['uid']); - } - - function onls() { - $this->init_input(); - $pagesize = $this->input('pagesize'); - $folder = $this->input('folder'); - $filter = $this->input('filter'); - $page = $this->input('page'); - $folder = in_array($folder, array('newbox', 'inbox')) ? $folder : 'inbox'; - $filter = $filter ? (in_array($filter, array('newpm', 'privatepm', 'systempm', 'announcepm')) ? $filter : '') : ''; - $msglen = $this->input('msglen'); - $this->user['uid'] = intval($this->input('uid')); - $pmnum = $_ENV['pm']->get_num($this->user['uid'], $folder, $filter); - if($pagesize > 0) { - $pms = $_ENV['pm']->get_pm_list($this->user['uid'], $pmnum, $folder, $filter, $page, $pagesize); - if(is_array($pms) && !empty($pms)) { - foreach($pms as $key => $pm) { - if($msglen) { - $pms[$key]['message'] = $_ENV['pm']->removecode($pms[$key]['message'], $msglen); - } else { - unset($pms[$key]['message']); - } - $pms[$key]['dateline'] = $pms[$key]['dbdateline']; - unset($pms[$key]['dbdateline'], $pms[$key]['folder']); - } - } - $result['data'] = $pms; - } - $result['count'] = $pmnum; - return $result; - } - - function onviewnode() { - $this->init_input(); - $this->user['uid'] = intval($this->input('uid')); - $pmid = $_ENV['pm']->pmintval($this->input('pmid')); - $type = $this->input('type'); - $pm = $_ENV['pm']->get_pmnode_by_pmid($this->user['uid'], $pmid, $type); - if($pm) { - require_once UC_ROOT.'lib/uccode.class.php'; - $this->uccode = new uccode(); - $pm['message'] = $this->uccode->complie($pm['message']); - return $pm; - } - } - - function onview() { - $this->init_input(); - $this->user['uid'] = intval($this->input('uid')); - $pmid = $_ENV['pm']->pmintval($this->input('pmid')); - $pm = $_ENV['pm']->get_pmnode_by_pmid($this->user['uid'], $pmid, 3); - $touid = $pm['msgfromid'] == $this->user['uid'] ? $pm['msgtoid'] : $pm['msgfromid']; - $pmid = $touid ? '' : $pmid; - if(empty($pmid)) { - $endtime = $this->time; - $pms = $_ENV['pm']->get_pm_by_touid($this->user['uid'], $touid, 0, $endtime); - } else { - $pms = $_ENV['pm']->get_pm_by_pmid($this->user['uid'], $pmid); - } - - require_once UC_ROOT.'lib/uccode.class.php'; - $this->uccode = new uccode(); - $status = FALSE; - foreach($pms as $key => $pm) { - $pms[$key]['message'] = $this->uccode->complie($pms[$key]['message']); - !$status && $status = $pm['msgtoid'] && $pm['new']; - } - $status && $_ENV['pm']->set_pm_status($this->user['uid'], $touid); - return $pms; - } - - function onblackls_get() { - $this->init_input(); - $this->user['uid'] = intval($this->input('uid')); - return $_ENV['pm']->get_blackls($this->user['uid']); - } - - function onblackls_set() { - $this->init_input(); - $this->user['uid'] = intval($this->input('uid')); - $blackls = $this->input('blackls'); - return $_ENV['pm']->set_blackls($this->user['uid'], $blackls); - } - - function onblackls_add() { - $this->init_input(); - $this->user['uid'] = intval($this->input('uid')); - $username = $this->input('username'); - return $_ENV['pm']->update_blackls($this->user['uid'], $username, 1); - } - - function onblackls_delete($arr) { - $this->init_input(); - $this->user['uid'] = intval($this->input('uid')); - $username = $this->input('username'); - return $_ENV['pm']->update_blackls($this->user['uid'], $username, 2); - } - -} - -?> \ No newline at end of file diff --git a/upload/uc_server/release/20080429/index.htm b/upload/uc_server/release/20080429/index.htm deleted file mode 100644 index e69de29b..00000000 diff --git a/upload/uc_server/release/20080429/lib/index.htm b/upload/uc_server/release/20080429/lib/index.htm deleted file mode 100644 index e69de29b..00000000 diff --git a/upload/uc_server/release/20080429/lib/xml.class.php b/upload/uc_server/release/20080429/lib/xml.class.php deleted file mode 100644 index 88ecde04..00000000 --- a/upload/uc_server/release/20080429/lib/xml.class.php +++ /dev/null @@ -1,136 +0,0 @@ -parse($xml); - $xml_parser->destruct(); - $arr = xml_format_array($data); - return $arr['root']; -} - -function xml_serialize(&$data, $htmlon = 0, $level = 1) { - $space = str_repeat("\t", $level); - $cdatahead = $htmlon ? '' : ''; - $s = ''; - if(!empty($data)) { - foreach($data as $key => $val) { - if(!is_array($val)) { - $val = "$cdatahead$val$cdatafoot"; - if(is_numeric($key)) { - $s .= "$space$val"; - } elseif($key === '') { - $s .= ''; - } else { - $s .= "$space<$key>$val"; - } - } else { - if(is_numeric($key)) { - $s .= "$space".xml_serialize($val, $htmlon, $level+1)."$space"; - } elseif($key === '') { - $s .= ''; - } else { - $s .= "$space<$key>".xml_serialize($val, $htmlon, $level+1)."$space"; - } - } - } - } - $s = preg_replace("/([\x01-\x09\x0b-\x0c\x0e-\x1f])+/", ' ', $s); - return ($level == 1 ? "" : '').$s.($level == 1 ? '' : ''); -} - -function xml_format_array($arr, $level = 0) { - foreach((array)$arr as $key => $val) { - if(is_array($val)) { - $val = xml_format_array($val, $level + 1); - } - if(is_string($key) && strpos($key, 'item_') === 0) { - $arr[intval(substr($key, 5))] = $val; - unset($arr[$key]); - } else { - $arr[$key] = $val; - } - } - return $arr; -} - -class XML { - var $parser; - var $document; - var $parent; - var $stack; - var $last_opened_tag; - - function XML() { - $this->parser = xml_parser_create('ISO-8859-1'); - xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, false); - xml_set_object($this->parser, $this); - xml_set_element_handler($this->parser, 'open','close'); - xml_set_character_data_handler($this->parser, 'data'); - } - - function destruct() { - xml_parser_free($this->parser); - } - - function parse(&$data) { - $this->document = array(); - $this->stack = array(); - $this->parent = &$this->document; - return xml_parse($this->parser, $data, true) ? $this->document : NULL; - } - - function open(&$parser, $tag, $attributes) { - $this->data = ''; - $this->last_opened_tag = $tag; - if(is_array($this->parent) and array_key_exists($tag,$this->parent)) { - if(is_array($this->parent[$tag]) and array_key_exists(0,$this->parent[$tag])) { - $key = count_numeric_items($this->parent[$tag]); - }else{ - if(array_key_exists($tag.'_attr',$this->parent)) { - $arr = array('0_attr'=>&$this->parent[$tag.'_attr'], &$this->parent[$tag]); - unset($this->parent[$tag.'_attr']); - } else { - $arr = array(&$this->parent[$tag]); - } - $this->parent[$tag] = &$arr; - $key = 1; - } - $this->parent = &$this->parent[$tag]; - } else { - $key = $tag; - } - if($attributes) { - $this->parent[$key.'_attr'] = $attributes; - } - $this->parent = &$this->parent[$key]; - $this->stack[] = &$this->parent; - } - - function data(&$parser, $data) { - if($this->last_opened_tag != NULL) - $this->data .= $data; - } - - function close(&$parser, $tag) { - if($this->last_opened_tag == $tag) { - $this->parent = $this->data; - $this->last_opened_tag = NULL; - } - array_pop($this->stack); - if($this->stack) $this->parent = &$this->stack[count($this->stack)-1]; - } -} - -function count_numeric_items(&$array) { - return is_array($array) ? count(array_filter(array_keys($array), 'is_numeric')) : 0; -} - -?> \ No newline at end of file diff --git a/upload/uc_server/release/20080429/model/index.htm b/upload/uc_server/release/20080429/model/index.htm deleted file mode 100644 index e69de29b..00000000 diff --git a/upload/uc_server/release/20080429/model/pm.php b/upload/uc_server/release/20080429/model/pm.php deleted file mode 100644 index 633447bc..00000000 --- a/upload/uc_server/release/20080429/model/pm.php +++ /dev/null @@ -1,352 +0,0 @@ -pmmodel($base); - } - - function pmmodel(&$base) { - $this->base = $base; - $this->db = $base->db; - } - - function pmintval($pmid) { - return @is_numeric($pmid) ? $pmid : 0; - } - - function get_pm_by_pmid($uid, $pmid) { - $arr = array(); - $arr = $this->db->fetch_all("SELECT * FROM ".UC_DBTABLEPRE."pms WHERE related='$pmid' AND (msgtoid='$uid' OR msgfromid='$uid') ORDER BY dateline"); - if(!$arr) { - $arr = $this->db->fetch_all("SELECT * FROM ".UC_DBTABLEPRE."pms WHERE pmid='$pmid' AND (msgtoid IN ('$uid','0') OR msgfromid='$uid')"); - } - return $arr; - } - - function get_pm_by_touid($uid, $touid, $starttime, $endtime) { - $arr1 = $this->db->fetch_all("SELECT * FROM ".UC_DBTABLEPRE."pms WHERE msgfromid='$uid' AND msgtoid='$touid' AND dateline>='$starttime' AND dateline<'$endtime' AND related>'0' AND delstatus IN (0,2) ORDER BY dateline"); - $arr2 = $this->db->fetch_all("SELECT * FROM ".UC_DBTABLEPRE."pms WHERE msgfromid='$touid' AND msgtoid='$uid' AND dateline>='$starttime' AND dateline<'$endtime' AND related>'0' AND delstatus IN (0,1) ORDER BY dateline"); - $arr = array_merge($arr1, $arr2); - uasort($arr, 'pm_datelinesort'); - return $arr; - } - - function get_pmnode_by_pmid($uid, $pmid, $type = 0) { - $arr = array(); - if($type == 1) { - $arr = $this->db->fetch_first("SELECT * FROM ".UC_DBTABLEPRE."pms WHERE msgfromid='$uid' and folder='inbox' ORDER BY dateline DESC LIMIT 1"); - } elseif($type == 2) { - $arr = $this->db->fetch_first("SELECT * FROM ".UC_DBTABLEPRE."pms WHERE msgtoid='$uid' and folder='inbox' ORDER BY dateline DESC LIMIT 1"); - } else { - $arr = $this->db->fetch_first("SELECT * FROM ".UC_DBTABLEPRE."pms WHERE pmid='$pmid'"); - } - return $arr; - } - - function set_pm_status($uid, $touid) { - $this->db->query("UPDATE ".UC_DBTABLEPRE."pms SET new='0' WHERE msgfromid='$touid' AND msgtoid='$uid' AND new='1'", 'UNBUFFERED'); - } - - function get_pm_num($uid, $folder, $filter, $a) { - $folder = $folder; - $get_pm_num = 0; - $pm_num = isset($_COOKIE['uc_pmnum']) && ($pm_num = explode('|', $_COOKIE['uc_pmnum'])) && $pm_num[0] == $uid ? $pm_num : array(0,0,0,0); - switch($folder) { - case 'newbox': - $get_pm_num = $this->get_num($uid, 'newbox'); - break; - case 'inbox': - if(!$filter && $a != 'view') { - $get_pm_num = $this->get_num($uid, 'inbox'); - } else { - $get_pm_num = $pm_num[1]; - } - break; - } - if($a == 'ls') { - $get_announcepm_num = $this->get_num($uid, 'inbox', 'announcepm'); - $get_systempm_num = $this->get_num($uid, 'inbox', 'systempm'); - $get_newinbox_num = $this->get_num($uid, 'inbox', 'newpm'); - } else { - list(, $get_newinbox_num, $get_systempm_num, $get_announcepm_num) = $pm_num; - } - if($pm_num[2] != $get_newinbox_num || $pm_num[3] != $get_systempm_num || $pm_num[4] != $get_announcepm_num) { - header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"'); - $this->base->setcookie('uc_pmnum', $uid.'|'.$get_pm_num.'|'.$get_systempm_num.'|'.$get_announcepm_num, 3600); - } - return array($get_pm_num, $get_newinbox_num, 0, $get_systempm_num, $get_announcepm_num); - } - - function get_num($uid, $folder, $filter = '') { - switch($folder) { - case 'newbox': - $sql = "SELECT count(*) FROM ".UC_DBTABLEPRE."pms WHERE msgtoid='$uid' AND (related='0' AND msgfromid>'0' OR msgfromid='0') AND folder='inbox' AND new='1'"; - $num = $this->db->result_first($sql); - return $num; - case 'inbox': - if($filter == 'newpm') { - $filteradd = "msgtoid='$uid' AND (related='0' AND msgfromid>'0' OR msgfromid='0') AND folder='inbox' AND new='1'"; - } elseif($filter == 'systempm') { - $filteradd = "msgtoid='$uid' AND msgfromid='0' AND folder='inbox'"; - } elseif($filter == 'privatepm') { - $filteradd = "msgtoid='$uid' AND related='0' AND msgfromid>'0' AND folder='inbox'"; - } elseif($filter == 'announcepm') { - $filteradd = "msgtoid='0' AND folder='inbox'"; - } else { - $filteradd = "msgtoid='$uid' AND related='0' AND folder='inbox'"; - } - $sql = "SELECT count(*) FROM ".UC_DBTABLEPRE."pms WHERE $filteradd"; - break; - } - $num = $this->db->result_first($sql); - return $num; - } - - function get_pm_list($uid, $pmnum, $folder, $filter, $page, $ppp = 10, $new = 0) { - $ppp = $ppp ? $ppp : 10; - $start_limit = $this->base->page_get_start($page, $ppp, $pmnum); - switch($folder) { - case 'newbox': - $folder = 'inbox'; - $filter = 'newpm'; - case 'inbox': - if($filter == 'newpm') { - $filteradd = "pm.msgtoid='$uid' AND (pm.related='0' AND pm.msgfromid>'0' OR pm.msgfromid='0') AND pm.folder='inbox' AND pm.new='1'"; - } elseif($filter == 'systempm') { - $filteradd = "pm.msgtoid='$uid' AND pm.msgfromid='0' AND pm.folder='inbox'"; - } elseif($filter == 'privatepm') { - $filteradd = "pm.msgtoid='$uid' AND pm.related='0' AND pm.msgfromid>'0' AND pm.folder='inbox'"; - } elseif($filter == 'announcepm') { - $filteradd = "pm.msgtoid='0' AND pm.folder='inbox'"; - } else { - $filteradd = "pm.msgtoid='$uid' AND pm.related='0' AND pm.folder='inbox'"; - } - $sql = "SELECT pm.*,m.username as msgfrom FROM ".UC_DBTABLEPRE."pms pm - LEFT JOIN ".UC_DBTABLEPRE."members m ON pm.msgfromid = m.uid - WHERE $filteradd ORDER BY pm.dateline DESC LIMIT $start_limit, $ppp"; - break; - } - $query = $this->db->query($sql); - $array = array(); - $today = $this->base->time - ($this->base->time + $this->base->settings['timeoffset']) % 86400; - while($data = $this->db->fetch_array($query)) { - $daterange = 5; - if($data['dateline'] >= $today) { - $daterange = 1; - } elseif($data['dateline'] >= $today - 86400) { - $daterange = 2; - } elseif($data['dateline'] >= $today - 172800) { - $daterange = 3; - } elseif($data['dateline'] >= $today - 604800) { - $daterange = 4; - } - $data['daterange'] = $daterange; - $data['daterangetext'] = !empty($this->lang['pm_daterange_'.$daterange]) ? $this->lang['pm_daterange_'.$daterange] : $daterange; - $data['dbdateline'] = $data['dateline']; - $data['datelinetime'] = $this->base->date($data['dateline'], 1); - $data['dateline'] = $this->base->date($data['dateline']); - $data['subject'] = $data['subject'] != '' ? htmlspecialchars($data['subject']) : $this->lang['pm_notitle']; - $data['newstatus'] = $data['new']; - $data['touid'] = $data['avataruid'] = $uid == $data['msgfromid'] ? $data['msgtoid'] : $data['msgfromid']; - $data['message'] = $this->removecode($data['message'], 80); - $array[] = $data; - } - if($folder == 'inbox') { - $this->db->query("DELETE FROM ".UC_DBTABLEPRE."newpm WHERE uid='$uid'", 'UNBUFFERED'); - } - return $array; - } - - function sendpm($subject, $message, $msgfrom, $msgto, $pmid = 0, $related = 0) { - //note 过滤关键词 - $_CACHE['badwords'] = $this->base->cache('badwords'); - if($_CACHE['badwords']['findpattern']) { - $subject = @preg_replace($_CACHE['badwords']['findpattern'], $_CACHE['badwords']['replace'], $subject); - $message = @preg_replace($_CACHE['badwords']['findpattern'], $_CACHE['badwords']['replace'], $message); - } - - if($msgfrom['uid'] && $msgfrom['uid'] == $msgto) { - return 0; - } - $box = 'inbox'; - $subject = trim($subject); - if($subject == '' && !$related) { - $subject = $this->removecode(trim($message), 75); - } else { - $subject = $this->base->cutstr(trim($subject), 75, ''); - } - - if($msgfrom['uid']) { - if($msgto) { - $sessionexist = $this->db->result_first("SELECT count(*) FROM ".UC_DBTABLEPRE."pms WHERE msgfromid='$msgfrom[uid]' AND msgtoid='$msgto' AND folder='inbox' AND related='0'"); - } else { - $sessionexist = 0; - } - if(!$sessionexist || $sessionexist > 1) { - if($sessionexist > 1) { - $this->db->query("DELETE FROM ".UC_DBTABLEPRE."pms WHERE msgfromid='$msgfrom[uid]' AND msgtoid='$msgto' AND folder='inbox' AND related='0'"); - } - $this->db->query("INSERT INTO ".UC_DBTABLEPRE."pms (msgfrom,msgfromid,msgtoid,folder,new,subject,dateline,related,message,fromappid) VALUES - ('".$msgfrom['username']."','".$msgfrom['uid']."','$msgto','$box','1','$subject','".$this->base->time."','0','$message','".$this->base->app['appid']."')"); - $lastpmid = $this->db->insert_id(); - } else { - $this->db->query("UPDATE ".UC_DBTABLEPRE."pms SET subject='$subject', message='$message', dateline='".$this->base->time."', new='1', fromappid='".$this->base->app['appid']."' - WHERE msgfromid='$msgfrom[uid]' AND msgtoid='$msgto' AND folder='inbox' AND related='0'"); - } - if($msgto) { - $sessionexist = $this->db->result_first("SELECT count(*) FROM ".UC_DBTABLEPRE."pms WHERE msgfromid='$msgto' AND msgtoid='$msgfrom[uid]' AND folder='inbox' AND related='0'"); - if($msgfrom['uid'] && !$sessionexist) { - $this->db->query("INSERT INTO ".UC_DBTABLEPRE."pms (msgfrom,msgfromid,msgtoid,folder,new,subject,dateline,related,message,fromappid) VALUES - ('".$msgfrom['username']."','$msgto','".$msgfrom['uid']."','$box','0','$subject','".$this->base->time."','0','$message','0')"); - } - $this->db->query("INSERT INTO ".UC_DBTABLEPRE."pms (msgfrom,msgfromid,msgtoid,folder,new,subject,dateline,related,message,fromappid) VALUES - ('".$msgfrom['username']."','".$msgfrom['uid']."','$msgto','$box','1','$subject','".$this->base->time."','".($msgfrom['uid'] ? 1 : 0)."','$message','".$this->base->app['appid']."')"); - $lastpmid = $this->db->insert_id(); - } - if($msgto) { - $this->db->query("REPLACE INTO ".UC_DBTABLEPRE."newpm (uid) VALUES ('$msgto')"); - } - } else { - $this->db->query("INSERT INTO ".UC_DBTABLEPRE."pms (msgfrom,msgfromid,msgtoid,folder,new,subject,dateline,related,message,fromappid) VALUES - ('".$msgfrom['username']."','".$msgfrom['uid']."','$msgto','$box','1','$subject','".$this->base->time."','0','$message','".$this->base->app['appid']."')"); - $lastpmid = $this->db->insert_id(); - } - return $lastpmid; - } - - function set_ignore($uid) { - $this->db->query("DELETE FROM ".UC_DBTABLEPRE."newpm WHERE uid='$uid'"); - } - - function check_newpm($uid, $more) { - if($more < 2) { - $newpm = $this->db->result_first("SELECT count(*) FROM ".UC_DBTABLEPRE."newpm WHERE uid='$uid'"); - if($newpm) { - $newpm = $this->db->result_first("SELECT count(*) FROM ".UC_DBTABLEPRE."pms WHERE (related='0' AND msgfromid>'0' OR msgfromid='0') AND msgtoid='$uid' AND folder='inbox' AND new='1'"); - if($more) { - $newprvpm = $this->db->result_first("SELECT count(*) FROM ".UC_DBTABLEPRE."pms WHERE related='0' AND msgfromid>'0' AND msgtoid='$uid' AND folder='inbox' AND new='1'"); - return array('newpm' => $newpm, 'newprivatepm' => $newprvpm); - } else { - return $newpm; - } - } - } else { - $newpm = $this->db->result_first("SELECT count(*) FROM ".UC_DBTABLEPRE."pms WHERE (related='0' AND msgfromid>'0' OR msgfromid='0') AND msgtoid='$uid' AND folder='inbox' AND new='1'"); - $newprvpm = $this->db->result_first("SELECT count(*) FROM ".UC_DBTABLEPRE."pms WHERE related='0' AND msgfromid>'0' AND msgtoid='$uid' AND folder='inbox' AND new='1'"); - if($more == 2 || $more == 3) { - $annpm = $this->db->result_first("SELECT count(*) FROM ".UC_DBTABLEPRE."pms WHERE related='0' AND msgtoid='0' AND folder='inbox'"); - $syspm = $this->db->result_first("SELECT count(*) FROM ".UC_DBTABLEPRE."pms WHERE related='0' AND msgtoid='$uid' AND folder='inbox' AND msgfromid='0'"); - } - if($more == 2) { - return array('newpm' => $newpm, 'newprivatepm' => $newprvpm, 'announcepm' => $annpm, 'systempm' => $syspm); - } if($more == 4) { - return array('newpm' => $newpm, 'newprivatepm' => $newprvpm); - } else { - $pm = $this->db->fetch_first("SELECT pm.dateline,pm.msgfromid,m.username as msgfrom,pm.message FROM ".UC_DBTABLEPRE."pms pm LEFT JOIN ".UC_DBTABLEPRE."members m ON pm.msgfromid = m.uid WHERE (pm.related='0' OR pm.msgfromid='0') AND pm.msgtoid='$uid' AND pm.folder='inbox' ORDER BY pm.dateline DESC LIMIT 1"); - return array('newpm' => $newpm, 'newprivatepm' => $newprvpm, 'announcepm' => $annpm, 'systempm' => $syspm, 'lastdate' => $pm['dateline'], 'lastmsgfromid' => $pm['msgfromid'], 'lastmsgfrom' => $pm['msgfrom'], 'lastmsg' => $pm['message']); - } - } - } - - function deletepm($uid, $pmids) { - $this->db->query("DELETE FROM ".UC_DBTABLEPRE."pms WHERE msgtoid='$uid' AND pmid IN (".$this->base->implode($pmids).")"); - $delnum = $this->db->affected_rows(); - return $delnum; - } - - function get_blackls($uid, $uids = array()) { - if(!$uids) { - $blackls = $this->db->result_first("SELECT blacklist FROM ".UC_DBTABLEPRE."memberfields WHERE uid='$uid'"); - } else { - $uids = $this->base->implode($uids); - $blackls = array(); - $query = $this->db->query("SELECT uid, blacklist FROM ".UC_DBTABLEPRE."memberfields WHERE uid IN ($uids)"); - while($data = $this->db->fetch_array($query)) { - $blackls[$data['uid']] = explode(',', $data['blacklist']); - } - } - return $blackls; - } - - function set_blackls($uid, $blackls) { - $this->db->query("UPDATE ".UC_DBTABLEPRE."memberfields SET blacklist='$blackls' WHERE uid='$uid'"); - return $this->db->affected_rows(); - } - - function update_blackls($uid, $username, $action = 1) { - $username = !is_array($username) ? array($username) : $username; - if($action == 1) { - if(!in_array('{ALL}', $username)) { - $usernames = $this->base->implode($username); - $query = $this->db->query("SELECT username FROM ".UC_DBTABLEPRE."members WHERE username IN ($usernames)"); - $usernames = array(); - while($data = $this->db->fetch_array($query)) { - $usernames[addslashes($data['username'])] = addslashes($data['username']); - } - if(!$usernames) { - return 0; - } - $blackls = addslashes($this->db->result_first("SELECT blacklist FROM ".UC_DBTABLEPRE."memberfields WHERE uid='$uid'")); - if($blackls) { - $list = explode(',', $blackls); - foreach($list as $k => $v) { - if(in_array($v, $usernames)) { - unset($usernames[$v]); - } - } - } - if(!$usernames) { - return 1; - } - $listnew = implode(',', $usernames); - $blackls .= $blackls !== '' ? ','.$listnew : $listnew; - } else { - $blackls = addslashes($this->db->result_first("SELECT blacklist FROM ".UC_DBTABLEPRE."memberfields WHERE uid='$uid'")); - $blackls .= ',{ALL}'; - } - } else { - $blackls = addslashes($this->db->result_first("SELECT blacklist FROM ".UC_DBTABLEPRE."memberfields WHERE uid='$uid'")); - $list = $blackls = explode(',', $blackls); - foreach($list as $k => $v) { - if(in_array($v, $username)) { - unset($blackls[$k]); - } - } - $blackls = implode(',', $blackls); - } - $this->db->query("UPDATE ".UC_DBTABLEPRE."memberfields SET blacklist='$blackls' WHERE uid='$uid'"); - return 1; - } - - function removecode($str, $length) { - return trim($this->base->cutstr(preg_replace(array( - "/\[(email|code|quote|img)=?.*\].*?\[\/(email|code|quote|img)\]/siU", - "/\[\/?(b|i|url|u|color|size|font|align|list|indent|float)=?.*\]/siU", - "/\r\n/", - ), '', $str), $length)); - } - -} - -function pm_datelinesort($a, $b) { - if ($a['dateline'] == $b['dateline']) { - return 0; - } - return ($a['dateline'] < $b['dateline']) ? -1 : 1; -} - -?> \ No newline at end of file diff --git a/upload/uc_server/robots.txt b/upload/uc_server/robots.txt index 083a9dd7..55807863 100644 --- a/upload/uc_server/robots.txt +++ b/upload/uc_server/robots.txt @@ -1,3 +1,3 @@ User-agent: * - +Allow: /data/avatar/ Disallow: * \ No newline at end of file diff --git a/upload/uc_server/upgrade/index.htm b/upload/uc_server/upgrade/index.htm deleted file mode 100644 index e69de29b..00000000 diff --git a/upload/uc_server/upgrade/upgrade2.php b/upload/uc_server/upgrade/upgrade2.php deleted file mode 100644 index 8cf02f74..00000000 --- a/upload/uc_server/upgrade/upgrade2.php +++ /dev/null @@ -1,599 +0,0 @@ -'); -REPLACE INTO uc_settings (k, v) VALUES ('mailauth_username', 'username@21cn.com'); -REPLACE INTO uc_settings (k, v) VALUES ('mailauth_password', 'password'); -REPLACE INTO uc_settings (k, v) VALUES ('maildelimiter', '0'); -REPLACE INTO uc_settings (k, v) VALUES ('mailusername', '1'); -REPLACE INTO uc_settings (k, v) VALUES ('mailsilent', '1'); -REPLACE INTO uc_settings (k, v) VALUES ('pmlimit1day','100'); -REPLACE INTO uc_settings (k, v) VALUES ('pmfloodctrl','15'); -REPLACE INTO uc_settings (k, v) VALUES ('pmcenter','1'); -REPLACE INTO uc_settings (k, v) VALUES ('sendpmseccode','1'); -REPLACE INTO uc_settings (k, v) VALUES ('pmsendregdays','0'); -EOT; - -if(file_exists($lock_file) && $action != 'upgsecques') { - showheader(); - showerror('升级被锁定,应该是已经升级过了,如果已经恢复数据请手动删除
    '.str_replace(UC_ROOT, '', $lock_file).'
    之后再来刷新页面'); - showfooter(); -} - -if(!$action) { - - showheader(); - -?> - -

    本程序用于升级 UCenter 1.0 到 UCenter 1.5

    -

    运行本升级程序之前,请确认已经上传 UCenter 1.5 的全部文件和目录

    -

    强烈建议您升级之前备份数据库资料

    -

    如果您已确认完成上面的步骤,请点这里升级

    - -connect(UC_DBHOST, UC_DBUSER, UC_DBPW, UC_DBNAME, UC_DBCHARSET); - - runquery($sql); - dir_clear(UC_ROOT.'./data/view'); - dir_clear(UC_ROOT.'./data/cache'); - if(is_dir(UC_ROOT.'./plugin/setting')) { - dir_clear(UC_ROOT.'./plugin/setting'); - @unlink(UC_ROOT.'./plugin/setting/index.htm'); - @rmdir(UC_ROOT.'./plugin/setting'); - } - - //note 升级uc_applications.viewprourl - $db->query("UPDATE ".UC_DBTABLEPRE."applications SET viewprourl='/space.php?uid=%s'"); - $query = $db->query("SELECT * FROM ".UC_DBTABLEPRE."applications"); - while($app = $db->fetch_array($query)) { - if(authcode($app['authkey'], 'DECODE', UC_MYKEY)) continue; - $authkey = authcode($app['authkey'], 'ENCODE', UC_MYKEY); - $appid = $app['appid']; - $db->query("UPDATE ".UC_DBTABLEPRE."applications SET authkey='$authkey' WHERE appid='$appid'"); - } - - header("Location: upgrade2.php?action=pm&forward=".urlencode($forward)); - -} elseif($action == 'pm') { - - showheader(); - - echo "

    处理短消息数据

    "; - - $db = new db; - $db->connect(UC_DBHOST, UC_DBUSER, UC_DBPW, UC_DBNAME, UC_DBCHARSET); - - $total = getgpc('total'); - $start = intval(getgpc('start')); - $limit = 1000; - if(!$total) { - $total = $db->result_first("SELECT COUNT(*) FROM ".UC_DBTABLEPRE."pms WHERE related=0"); - } - - if(!$total || $total <= $start) { - $db->query("REPLACE INTO ".UC_DBTABLEPRE."settings (k, v) VALUES('version', '1.5.0')");//note 记录数据库版本 - @touch($lock_file); - if($forward) { - echo "


    浏览器会自动跳转页面,无需人工干预。除非当您的浏览器长时间没有自动跳转时,请点击这里"; - echo ""; - } else { - echo "升级完成。"; - } - } else { - $query = $db->query("SELECT * FROM ".UC_DBTABLEPRE."pms WHERE related=0 LIMIT $start, $limit"); - while($data = $db->fetch_array($query)) { - $data['msgfrom'] = addslashes($data['msgfrom']); - $data['subject'] = addslashes($data['subject']); - $data['message'] = addslashes($data['message']); - $db->query("REPLACE INTO ".UC_DBTABLEPRE."pms SET msgfrom='$data[msgfrom]', - msgfromid='$data[msgfromid]',msgtoid='$data[msgtoid]',folder='$data[folder]',new='$data[new]',subject='$data[subject]', - dateline='$data[dateline]',message='$data[message]',delstatus='$data[delstatus]',related='".time()."'", 'SILENT'); - } - - $end = $start + $limit; - echo "短消息数据已处理 $start / $total ..."; - $url_forward = "upgrade2.php?action=pm&start=$end&total=$total&forward=".urlencode($forward); - echo "


    浏览器会自动跳转页面,无需人工干预。除非当您的浏览器长时间没有自动跳转时,请点击这里"; - echo ""; - } - - showfooter(); - -} elseif($action == 'upgsecques') { - - $lock_file = UC_ROOT.'./data/upgsecques.lock'; - if(file_exists($lock_file)) { - showheader(); - showerror('升级被锁定,应该是已经升级过了安全提问,如果已经恢复数据请手动删除
    '.str_replace(UC_ROOT, '', $lock_file).'
    之后再来刷新页面'); - } - $uc_authcode = getgpc('uc_authcode', 'C'); - - if(empty($uc_authcode) || authcode($uc_authcode, 'DECODE', UC_KEY) != UC_FOUNDERPW) { - $uc_founderpw = getgpc('uc_founderpw'); - if(empty($uc_founderpw) || UC_FOUNDERPW != md5(md5($uc_founderpw).UC_FOUNDERSALT)) { - echo '
    '; - echo '请输入UCenter创始人密码: '; - exit; - } else { - setcookie('uc_authcode', authcode(UC_FOUNDERPW, 'ENCODE', UC_KEY)); - header("Location: upgrade2.php?action=upgsecques"); - exit; - } - } - - if(!is_dir(UC_ROOT.'./data/upgsecques')) { - showheader(); - showerror('请先将论坛下 ./forumdata/upgsecques 目录上传到UCenter 目录 ./data/ 下,之后刷新此页面'); - } - $num = getgpc('num'); - $num = $num ? intval($num) : 1; - $random = getgpc('random'); - if(empty($random)) { - $dir = UC_ROOT.'./data/upgsecques'; - $directory = dir($dir); - while($entry = $directory->read()) { - if(preg_match('/^secques_(\w+)_\d+/', $entry, $match)) { - break; - } - } - $random = $match[1]; - }; - - $dump_file = UC_ROOT.'./data/upgsecques/secques_'.$random.'_'.$num.'.sql'; - if(!file_exists($dump_file)) {//note 升级完毕 - @touch($lock_file); - dir_clear(UC_ROOT.'./data/upgsecques'); - setcookie('uc_authcode', ''); - showheader(); - echo '安全提问升级完成,感谢您使用本程序'; - } else { - showheader(); - $sql = file_get_contents($dump_file); - $db = new db; - $db->connect(UC_DBHOST, UC_DBUSER, UC_DBPW, UC_DBNAME, UC_DBCHARSET); - runquery($sql); - $num++; - echo "安全提问正在导入"; - $url_forward = "upgrade2.php?action=upgsecques&num=$num&random=$random"; - echo "


    浏览器会自动跳转页面,无需人工干预。除非当您的浏览器长时间没有自动跳转时,请点击这里"; - echo ""; - } - - showfooter(); - -} - -function dir_clear($dir) { - $directory = dir($dir); - while($entry = $directory->read()) { - $filename = $dir.'/'.$entry; - if(is_file($filename)) { - @unlink($filename); - } - } - @touch($dir.'/index.htm'); - $directory->close(); -} - -function random($length, $numeric = 0) { - PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000); - if($numeric) { - $hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1)); - } else { - $hash = ''; - $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'; - $max = strlen($chars) - 1; - for($i = 0; $i < $length; $i++) { - $hash .= $chars[mt_rand(0, $max)]; - } - } - return $hash; -} - -function generate_key() { - $random = random(32); - $info = md5($_SERVER['SERVER_SOFTWARE'].$_SERVER['SERVER_NAME'].$_SERVER['SERVER_ADDR'].$_SERVER['SERVER_PORT'].$_SERVER['HTTP_USER_AGENT'].time()); - $return = array(); - for($i=0; $i<64; $i++) { - $p = intval($i/2); - $return[$i] = $i % 2 ? $random[$p] : $info[$p]; - } - return implode('', $return); -} - -function createtable($sql, $dbcharset) { - $type = strtoupper(preg_replace("/^\s*CREATE TABLE\s+.+\s+\(.+?\).*(ENGINE|TYPE)\s*=\s*([a-z]+?).*$/isU", "\\2", $sql)); - $type = in_array($type, array('MYISAM', 'HEAP')) ? $type : 'MYISAM'; - return preg_replace("/^\s*(CREATE TABLE\s+.+\s+\(.+?\)).*$/isU", "\\1", $sql). - (mysql_get_server_info() > '4.1' ? " ENGINE=$type default CHARSET=".UC_DBCHARSET : " TYPE=$type"); -} - -function runquery($query) { - global $db; - - $query = str_replace("\r", "\n", str_replace(' uc_', ' '.UC_DBTABLEPRE, $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, UC_DBCHARSET)); - } elseif (strtoupper(substr($sql, 0, 11)) == 'ALTER TABLE') { - runquery_altertable($sql); - } else { - $db->query($sql); - } - } -} - -function getgpc($k, $var='R') { - switch($var) { - case 'G': $var = &$_GET; break; - case 'P': $var = &$_POST; break; - case 'C': $var = &$_COOKIE; break; - case 'R': $var = &$_REQUEST; break; - } - return isset($var[$k]) ? $var[$k] : NULL; -} - -function showheader() { - global $version_old, $version_new; - - $charset = UC_CHARSET; - print <<< EOT - - - - -UCenter 升级程序( $version_old >> $version_new) - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    >> -UCenter 升级程序( $version_old >> $version_new)
    -
    -
    -本升级程序只能从 $version_old 升级到 $version_new ,运行之前,请确认已经上传所有文件,并做好数据备份
    -升级当中有任何问题请访问技术支持站点 http://www.discuz.net
    -
    -
    -
    -EOT; -} - -function showfooter() { - echo <<< EOT -
     
    - - -EOT; - exit(); -} - -function showerror($message, $break = 1) { - echo '

    '.$message.'

    '; - if($break) showfooter(); -} - -function redirect($url) { - - $url = $url.(strstr($url, '&') ? '&' : '?').'t='.time(); - - echo <<< EOT -
    - -

    ->>浏览器会自动跳转页面,无需人工干预。除非当您的浏览器长时间没有自动跳转时,请点击这里 -

    -EOT; - showfooter(); -} - -function get_table_columns($table) { - global $db; - $tablecolumns = array(); - if($db->version() > '4.1') { - $query = $db->query("SHOW FULL COLUMNS FROM $table", 'SILENT'); - } else { - $query = $db->query("SHOW COLUMNS FROM $table", 'SILENT'); - } - while($field = @$db->fetch_array($query)) { - $tablecolumns[$field['Field']] = $field; - } - return $tablecolumns; -} - -function parse_alter_table_sql($s) { - $arr = array(); - preg_match("/ALTER TABLE (\w+)/i", $s, $m); - $tablename = substr($m[1], strlen(UC_DBTABLEPRE)); - preg_match_all("/add column (\w+) ([^\n;]+)/is", $s, $add); - preg_match_all("/drop column (\w+)([^\n;]*)/is", $s, $drop); - preg_match_all("/change (\w+) ([^\n;]+)/is", $s, $change); - preg_match_all("/add key ([^\n;]+)/is", $s, $keys); - preg_match_all("/add unique ([^\n;]+)/is", $s, $uniques); - foreach($add[1] as $k => $colname) { - $attr = preg_replace("/(.+),$/", "\\1", trim($add[2][$k])); - $arr[] = array($tablename, 'ADD', $colname, $attr); - } - foreach($drop[1] as $k => $colname) { - $attr = preg_replace("/(.+),$/", "\\1", trim($drop[2][$k])); - $arr[] = array($tablename, 'DROP', $colname, $attr); - } - foreach($change[1] as $k => $colname) { - $attr = preg_replace("/(.+),$/", "\\1", trim($change[2][$k])); - $arr[] = array($tablename, 'CHANGE', $colname, $attr); - } - foreach($keys[1] as $k => $colname) { - $attr = preg_replace("/(.+),$/", "\\1", trim($keys[0][$k])); - $arr[] = array($tablename, 'INDEX', '', $attr); - } - foreach($uniques[1] as $k => $colname) { - $attr = preg_replace("/(.+),$/", "\\1", trim($uniques[0][$k])); - $arr[] = array($tablename, 'INDEX', '', $attr); - } - return $arr; -} - -function runquery_altertable($sql) { - global $db; - $tablepre = UC_DBTABLEPRE; - $dbcharset = UC_DBCHARSET; - - $updatesqls = parse_alter_table_sql($sql); - - foreach($updatesqls as $updatesql) { - $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 = get_table_columns($tablepre.$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 upg_pms() { - global $db; - $query = $db->query("SELECT * FROM ".UC_DBTABLEPRE."pms WHERE related=0"); - while($data = $db->fetch_array($query)) { - $data['msgfrom'] = addslashes($data['msgfrom']); - $data['subject'] = addslashes($data['subject']); - $data['message'] = addslashes($data['message']); - $db->query("REPLACE INTO ".UC_DBTABLEPRE."pms SET msgfrom='$data[msgfrom]', - msgfromid='$data[msgfromid]',msgtoid='$data[msgtoid]',folder='$data[folder]',new='$data[new]',subject='$data[subject]', - dateline='$data[dateline]',message='$data[message]',delstatus='$data[delstatus]',related='".time()."'", 'SILENT'); - } -} - -function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) { - - $ckey_length = 4; // 随机密钥长度 取值 0-32; - // 加入随机密钥,可以令密文无任何规律,即便是原文和密钥完全相同,加密结果也会每次不同,增大破解难度。 - // 取值越大,密文变动规律越大,密文变化 = 16 的 $ckey_length 次方 - // 当此值为 0 时,则不产生随机密钥 - - $key = md5($key ? $key : UC_KEY); - $keya = md5(substr($key, 0, 16)); - $keyb = md5(substr($key, 16, 16)); - $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : ''; - - $cryptkey = $keya.md5($keya.$keyc); - $key_length = strlen($cryptkey); - - $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string; - $string_length = strlen($string); - - $result = ''; - $box = range(0, 255); - - $rndkey = array(); - for($i = 0; $i <= 255; $i++) { - $rndkey[$i] = ord($cryptkey[$i % $key_length]); - } - - for($j = $i = 0; $i < 256; $i++) { - $j = ($j + $box[$i] + $rndkey[$i]) % 256; - $tmp = $box[$i]; - $box[$i] = $box[$j]; - $box[$j] = $tmp; - } - - for($a = $j = $i = 0; $i < $string_length; $i++) { - $a = ($a + 1) % 256; - $j = ($j + $box[$a]) % 256; - $tmp = $box[$a]; - $box[$a] = $box[$j]; - $box[$j] = $tmp; - $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256])); - } - - if($operation == 'DECODE') { - if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) { - return substr($result, 26); - } else { - return ''; - } - } else { - return $keyc.str_replace('=', '', base64_encode($result)); - } - -} - -?> \ No newline at end of file diff --git a/upload/uc_server/upgrade/upgrade3.php b/upload/uc_server/upgrade/upgrade3.php deleted file mode 100644 index 9ad2fd75..00000000 --- a/upload/uc_server/upgrade/upgrade3.php +++ /dev/null @@ -1,754 +0,0 @@ -'.str_replace(UC_ROOT, '', $lock_file).'
    之后再来刷新页面'); - showfooter(); -} - -if(!$action) { - - showheader(); - -?> - -

    本程序用于升级 UCenter 1.5.2 到 UCenter 1.6.0

    -

    运行本升级程序之前,请确认已经上传 UCenter 1.6.0 的全部文件和目录

    -

    强烈建议您升级之前备份数据库资料

    -

    如果您已确认完成上面的步骤,请点这里升级

    - -connect(UC_DBHOST, UC_DBUSER, UC_DBPW, UC_DBNAME, UC_DBCHARSET); - - runquery($sql); - dir_clear(UC_ROOT.'./data/view'); - dir_clear(UC_ROOT.'./data/cache'); - if(is_dir(UC_ROOT.'./plugin/setting')) { - dir_clear(UC_ROOT.'./plugin/setting'); - @unlink(UC_ROOT.'./plugin/setting/index.htm'); - @rmdir(UC_ROOT.'./plugin/setting'); - } - - header("Location: upgrade3.php?action=pm&forward=".urlencode($forward)); - -} elseif($action == 'pm') { - - showheader(); - - echo "

    处理短消息数据

    "; - - $db = new ucserver_db(); - $db->connect(UC_DBHOST, UC_DBUSER, UC_DBPW, UC_DBNAME, UC_DBCHARSET); - - $total = getgpc('total'); - $start = getgpc('start') ? getgpc('start') : 0; - $limit = 1000; - $next = 0; - if(!$total) { - $db->query("truncate table ".UC_DBTABLEPRE."pm_indexes"); - $db->query("truncate table ".UC_DBTABLEPRE."pm_members"); - for($i=0; $i<10; $i++) { - $db->query("truncate table ".UC_DBTABLEPRE."pm_messages_$i"); - } - $db->query("truncate table ".UC_DBTABLEPRE."pm_lists"); - $total = $db->result_first("SELECT MAX(pmid) FROM ".UC_DBTABLEPRE."pms WHERE related=1"); - } - - if($total) { - $query = $db->query("SELECT * FROM ".UC_DBTABLEPRE."pms WHERE pmid>'$start' AND related=1 ORDER BY pmid LIMIT $limit"); - while($data = $db->fetch_array($query)) { - $next = $data['pmid']; - if(!$data['msgfromid'] || !$data['msgtoid'] || $data['msgfromid'] == $data['msgtoid']) { - continue; - } - $plid = $founderid = 0; - $data['msgfrom'] = addslashes($data['msgfrom']); - $data['subject'] = addslashes($data['subject']); - $data['message'] = addslashes($data['message']); - $relationship = relationship($data['msgfromid'], $data['msgtoid']); - $querythread = $db->query("SELECT plid, authorid FROM ".UC_DBTABLEPRE."pm_lists WHERE min_max='$relationship'"); - if($thread = $db->fetch_array($querythread)) { - $plid = $thread['plid']; - $founderid = $thread['authorid']; - } - if(!$plid) { - $db->query("INSERT INTO ".UC_DBTABLEPRE."pm_lists(authorid, pmtype, subject, members, min_max, dateline) VALUES('$data[msgfromid]', 1, '', 2, '$relationship', '$data[dateline]')"); - $plid = $db->insert_id(); - $db->query("INSERT INTO ".UC_DBTABLEPRE."pm_members(plid, uid, isnew, lastupdate) VALUES('$plid', '$data[msgfromid]', 0, 0)"); - $db->query("INSERT INTO ".UC_DBTABLEPRE."pm_members(plid, uid, isnew, lastupdate) VALUES('$plid', '$data[msgtoid]', 0, 0)"); - } - $db->query("INSERT INTO ".UC_DBTABLEPRE."pm_indexes(plid) VALUES('$plid')"); - $pmid = $db->insert_id(); - if($founderid == $data['msgfromid']) { - $delstatus = $data['delstatus']; - } else { - $delstatus = ($data['delstatus'] == 1) ? 2 : ($data['delstatus'] == 2 ? 1 : 0); - } - if($data['subject'] && strcmp($data['subject'], $data['message'])) { - $data['message'] = $data['subject']."\r\n".$data['message']; - } - $db->query("INSERT INTO ".UC_DBTABLEPRE.getposttablename($plid)."(pmid, plid, authorid, message, delstatus, dateline) VALUES('$pmid', '$plid', '$data[msgfromid]', '".$data['message']."', '$delstatus', '$data[dateline]')"); - } - - if($next > 0) { - $end = $next; - echo "短消息数据已处理 $start / $total ..."; - $url_forward = "upgrade3.php?action=pm&start=$end&total=$total&forward=".urlencode($forward); - echo "


    浏览器会自动跳转页面,无需人工干预。除非当您的浏览器长时间没有自动跳转时,请点击这里"; - echo ""; - } else { - header("Location: upgrade3.php?action=pmstats&forward=".urlencode($forward)); - } - } else { - @touch($lock_file); - echo "升级完成。"; - } - - showfooter(); - -} elseif($action == 'pmstats') { - - showheader(); - - echo "

    处理短消息其它数据

    "; - - $db = new ucserver_db(); - $db->connect(UC_DBHOST, UC_DBUSER, UC_DBPW, UC_DBNAME, UC_DBCHARSET); - - $total = getgpc('total'); - $start = getgpc('start') ? getgpc('start') : 0; - $limit = 1000; - $next = 0; - if(!$total) { - $total = $db->result_first("SELECT MAX(plid) FROM ".UC_DBTABLEPRE."pm_lists"); - } - if($total) { - $query = $db->query("SELECT * FROM ".UC_DBTABLEPRE."pm_lists WHERE plid>'$start' ORDER BY plid LIMIT $limit"); - while($data = $db->fetch_array($query)) { - $next = $data['plid']; - $users = explode('_', $data['min_max']); - $pmsarr = $db->fetch_first("SELECT * FROM ".UC_DBTABLEPRE."pms WHERE msgfromid IN ('$users[0]','$users[1]') AND msgtoid IN ('$users[0]', '$users[1]') ORDER BY dateline DESC LIMIT 1"); - $pmsarr['msgfrom'] = addslashes($pmsarr['msgfrom']); - $pmsarr['subject'] = addslashes($pmsarr['subject']); - $pmsarr['message'] = addslashes($pmsarr['message']); - if($pmsarr['subject'] && strcmp($pmsarr['subject'], $pmsarr['message'])) { - $pmsarr['message'] = $pmsarr['subject']."\r\n".$pmsarr['message']; - } - if($users[0] == $data['authorid']) { - $touid = $users[1]; - } else { - $touid = $users[0]; - } - $lastsummary = removecode(trim($pmsarr['message']), 150); - $lastmessage = array('lastauthorid' => $pmsarr['msgfromid'], 'lastauthor' => $pmsarr['msgfrom'], 'lastsummary' => $lastsummary); - $lastmessage = addslashes(serialize($lastmessage)); - $db->query("UPDATE ".UC_DBTABLEPRE."pm_lists SET lastmessage='$lastmessage' WHERE plid='$data[plid]'"); - $db->query("UPDATE ".UC_DBTABLEPRE."pm_members SET lastdateline='$pmsarr[dateline]' WHERE plid='$data[plid]'"); - - if($count = $db->result_first("SELECT COUNT(*) FROM ".UC_DBTABLEPRE.getposttablename($data['plid'])." WHERE plid='$data[plid]' AND delstatus IN (0, 1)")) { - $db->query("UPDATE ".UC_DBTABLEPRE."pm_members SET pmnum='$count' WHERE plid='$data[plid]' AND uid='$touid'"); - } else { - $db->query("DELETE FROM ".UC_DBTABLEPRE."pm_members WHERE plid='$data[plid]' AND uid='$touid'"); - } - if($count = $db->result_first("SELECT COUNT(*) FROM ".UC_DBTABLEPRE.getposttablename($data['plid'])." WHERE plid='$data[plid]' AND delstatus IN (0, 2)")) { - $db->query("UPDATE ".UC_DBTABLEPRE."pm_members SET pmnum='$count' WHERE plid='$data[plid]' AND uid='$data[authorid]'"); - } else { - $db->query("DELETE FROM ".UC_DBTABLEPRE."pm_members WHERE plid='$data[plid]' AND uid='$data[authorid]'"); - } - } - } - - if($next > 0) { - $end = $next; - echo "短消息其它数据已处理 $start / $total ..."; - $url_forward = "upgrade3.php?action=pmstats&start=$end&total=$total&forward=".urlencode($forward); - echo "


    浏览器会自动跳转页面,无需人工干预。除非当您的浏览器长时间没有自动跳转时,请点击这里"; - echo ""; - } else { - @touch($lock_file); - echo "升级完成。"; - } - - showfooter(); -} - -function removecode($str, $length) { - static $uccode = null; - if($uccode === null) { - require_once UC_ROOT.'lib/uccode.class.php'; - $uccode = new uccode(); - } - $str = $uccode->complie($str); - return trim(cutstr(strip_tags($str), $length)); -} - -function cutstr($string, $length, $dot = ' ...') { - if(strlen($string) <= $length) { - return $string; - } - $string = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string); - - $strcut = ''; - if(strtolower(UC_CHARSET) == 'utf-8') { - - $n = $tn = $noc = 0; - while($n < strlen($string)) { - - $t = ord($string[$n]); - if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) { - $tn = 1; $n++; $noc++; - } elseif(194 <= $t && $t <= 223) { - $tn = 2; $n += 2; $noc += 2; - } elseif(224 <= $t && $t < 239) { - $tn = 3; $n += 3; $noc += 2; - } elseif(240 <= $t && $t <= 247) { - $tn = 4; $n += 4; $noc += 2; - } elseif(248 <= $t && $t <= 251) { - $tn = 5; $n += 5; $noc += 2; - } elseif($t == 252 || $t == 253) { - $tn = 6; $n += 6; $noc += 2; - } else { - $n++; - } - - if($noc >= $length) { - break; - } - - } - if($noc > $length) { - $n -= $tn; - } - - $strcut = substr($string, 0, $n); - - } else { - for($i = 0; $i < $length; $i++) { - $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i]; - } - } - - $strcut = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $strcut); - - return $strcut.$dot; -} - -function dir_clear($dir) { - $directory = dir($dir); - while($entry = $directory->read()) { - $filename = $dir.'/'.$entry; - if(is_file($filename)) { - @unlink($filename); - } - } - @touch($dir.'/index.htm'); - $directory->close(); -} - -function random($length, $numeric = 0) { - PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000); - if($numeric) { - $hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1)); - } else { - $hash = ''; - $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'; - $max = strlen($chars) - 1; - for($i = 0; $i < $length; $i++) { - $hash .= $chars[mt_rand(0, $max)]; - } - } - return $hash; -} - -function generate_key() { - $random = random(32); - $info = md5($_SERVER['SERVER_SOFTWARE'].$_SERVER['SERVER_NAME'].$_SERVER['SERVER_ADDR'].$_SERVER['SERVER_PORT'].$_SERVER['HTTP_USER_AGENT'].time()); - $return = array(); - for($i=0; $i<64; $i++) { - $p = intval($i/2); - $return[$i] = $i % 2 ? $random[$p] : $info[$p]; - } - return implode('', $return); -} - -function createtable($sql, $dbcharset) { - $type = strtoupper(preg_replace("/^\s*CREATE TABLE\s+.+\s+\(.+?\).*(ENGINE|TYPE)\s*=\s*([a-z]+?).*$/isU", "\\2", $sql)); - $type = in_array($type, array('MYISAM', 'HEAP')) ? $type : 'MYISAM'; - return preg_replace("/^\s*(CREATE TABLE\s+.+\s+\(.+?\)).*$/isU", "\\1", $sql). - (mysql_get_server_info() > '4.1' ? " ENGINE=$type default CHARSET=".UC_DBCHARSET : " TYPE=$type"); -} - -function runquery($query) { - global $db; - - $query = str_replace("\r", "\n", str_replace(' uc_', ' '.UC_DBTABLEPRE, $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, UC_DBCHARSET)); - } elseif (strtoupper(substr($sql, 0, 11)) == 'ALTER TABLE') { - runquery_altertable($sql); - } else { - $db->query($sql); - } - } -} - -function getgpc($k, $var='R') { - switch($var) { - case 'G': $var = &$_GET; break; - case 'P': $var = &$_POST; break; - case 'C': $var = &$_COOKIE; break; - case 'R': $var = &$_REQUEST; break; - } - return isset($var[$k]) ? $var[$k] : NULL; -} - -function relationship($fromuid, $touid) { - if($fromuid < $touid) { - return $fromuid.'_'.$touid; - } elseif($fromuid > $touid) { - return $touid.'_'.$fromuid; - } else { - return ''; - } -} - -function getposttablename($plid) { - $id = substr((string)$plid, -1, 1); - return 'pm_messages_'.$id; -} - -function showheader() { - global $version_old, $version_new; - ob_start(); - $charset = UC_CHARSET; - print <<< EOT - - - - -UCenter 升级程序( $version_old >> $version_new) - - - - - - - - - - - -
    - - - - - - - - - - - - - -
    >> -UCenter 升级程序( $version_old >> $version_new)
    -
    -
    -本升级程序只能从 $version_old 升级到 $version_new ,运行之前,请确认已经上传所有文件,并做好数据备份
    -升级当中有任何问题请访问技术支持站点 http://www.discuz.net
    -
    -
    -
    -EOT; -} - -function showfooter() { - echo <<< EOT -
     
    - - -EOT; - ob_flush(); - exit(); -} - -function showerror($message, $break = 1) { - echo '

    '.$message.'

    '; - if($break) showfooter(); -} - -function redirect($url) { - - $url = $url.(strstr($url, '&') ? '&' : '?').'t='.time(); - - echo <<< EOT -
    - -

    ->>浏览器会自动跳转页面,无需人工干预。除非当您的浏览器长时间没有自动跳转时,请点击这里 -

    -EOT; - showfooter(); -} - -function get_table_columns($table) { - global $db; - $tablecolumns = array(); - if($db->version() > '4.1') { - $query = $db->query("SHOW FULL COLUMNS FROM $table", 'SILENT'); - } else { - $query = $db->query("SHOW COLUMNS FROM $table", 'SILENT'); - } - while($field = @$db->fetch_array($query)) { - $tablecolumns[$field['Field']] = $field; - } - return $tablecolumns; -} - -function parse_alter_table_sql($s) { - $arr = array(); - preg_match("/ALTER TABLE (\w+)/i", $s, $m); - $tablename = substr($m[1], strlen(UC_DBTABLEPRE)); - preg_match_all("/add column (\w+) ([^\n;]+)/is", $s, $add); - preg_match_all("/drop column (\w+)([^\n;]*)/is", $s, $drop); - preg_match_all("/change (\w+) ([^\n;]+)/is", $s, $change); - preg_match_all("/add key ([^\n;]+)/is", $s, $keys); - preg_match_all("/add unique ([^\n;]+)/is", $s, $uniques); - foreach($add[1] as $k => $colname) { - $attr = preg_replace("/(.+),$/", "\\1", trim($add[2][$k])); - $arr[] = array($tablename, 'ADD', $colname, $attr); - } - foreach($drop[1] as $k => $colname) { - $attr = preg_replace("/(.+),$/", "\\1", trim($drop[2][$k])); - $arr[] = array($tablename, 'DROP', $colname, $attr); - } - foreach($change[1] as $k => $colname) { - $attr = preg_replace("/(.+),$/", "\\1", trim($change[2][$k])); - $arr[] = array($tablename, 'CHANGE', $colname, $attr); - } - foreach($keys[1] as $k => $colname) { - $attr = preg_replace("/(.+),$/", "\\1", trim($keys[0][$k])); - $arr[] = array($tablename, 'INDEX', '', $attr); - } - foreach($uniques[1] as $k => $colname) { - $attr = preg_replace("/(.+),$/", "\\1", trim($uniques[0][$k])); - $arr[] = array($tablename, 'INDEX', '', $attr); - } - return $arr; -} - -function runquery_altertable($sql) { - global $db; - $tablepre = UC_DBTABLEPRE; - $dbcharset = UC_DBCHARSET; - - $updatesqls = parse_alter_table_sql($sql); - - foreach($updatesqls as $updatesql) { - $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 = get_table_columns($tablepre.$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; -} - -?> \ No newline at end of file diff --git a/upload/uc_server/view/default/admin_admin.htm b/upload/uc_server/view/default/admin_admin.htm index 0782ffb4..bc01e819 100644 --- a/upload/uc_server/view/default/admin_admin.htm +++ b/upload/uc_server/view/default/admin_admin.htm @@ -119,6 +119,10 @@ {lang repeatpw}: + + {lang reconfkey}: + + diff --git a/upload/uc_server/view/default/admin_app.htm b/upload/uc_server/view/default/admin_app.htm index 99b51255..f96b4bea 100644 --- a/upload/uc_server/view/default/admin_app.htm +++ b/upload/uc_server/view/default/admin_app.htm @@ -11,6 +11,12 @@ } run++; } +function generatekey() { + var scriptNode = document.createElement('script'); + scriptNode.type = 'text/javascript'; + scriptNode.src = 'admin.php?m=app&a=generatekey&inajax=1&sid=$sid'; + document.getElementsByTagName('head')[0].appendChild(scriptNode); +} window.onload = testlink;
    @@ -135,7 +141,7 @@

    {lang app_add} - {lang app_key_comment} + {lang app_key_comment} {lang app_key_generate} @@ -267,7 +273,7 @@

    {lang app_setting} - {lang app_key_comment} + {lang app_key_comment} {lang app_key_generate} diff --git a/upload/uc_server/view/default/admin_db.htm b/upload/uc_server/view/default/admin_db.htm index 9b0b5d7f..86ea7e9a 100644 --- a/upload/uc_server/view/default/admin_db.htm +++ b/upload/uc_server/view/default/admin_db.htm @@ -11,6 +11,9 @@

    {lang db_list_tips}

    +
    +

    {lang db_security_tips}

    +
    @@ -86,6 +89,9 @@

    {lang db_export} {lang db_list}

    +
    +

    {lang db_security_tips}

    +
    diff --git a/upload/uc_server/view/default/messages.lang.php b/upload/uc_server/view/default/messages.lang.php index facd4496..a28e511e 100644 --- a/upload/uc_server/view/default/messages.lang.php +++ b/upload/uc_server/view/default/messages.lang.php @@ -70,4 +70,7 @@ 'pm_send_floodctrl_error' => 'ขออภัย ระยะเวลาในการส่งข้อความครั้งต่อไป ของคุณเร็วเกินไป กรุณารอซักครู่ แล้วลองใหม่ภายหลัง', 'file_check_failed' => 'ไม่พบไฟล์ ไม่สามารถตรวจสอบได้', + 'replacemykey_succeed' => 'อัปเดตคีย์สำเร็จแล้ว กรุณาอัปเดตแคชและตรวจสอบสถานะของแอปพลิเคชันที่ดาวน์โหลด', + 'replacemykey_false' => 'การอัปเดตคีย์ไม่สำเร็จ กรุณาตรวจสอบว่าไฟล์สามารถเขียนได้หรือฐานข้อมูลเป็นปกติอยู่ หากจำเป็นต้องดำเนิน กรุณากำหนดค่า UC_KEY ของแต่ละแอปพลิเคชันใหม่เพื่อให้แน่ใจว่าการทำงานยังคงปกติดี', + 'replacemykey_no_confirm' => 'กรุณายืนยันคำเตือนความเสี่ยงก่อนดำเนินการต่อ', ); \ No newline at end of file diff --git a/upload/uc_server/view/default/templates.lang.php b/upload/uc_server/view/default/templates.lang.php index 19271fb1..bd4fa1a0 100644 --- a/upload/uc_server/view/default/templates.lang.php +++ b/upload/uc_server/view/default/templates.lang.php @@ -14,7 +14,7 @@ 'shortcut_tips' => 'คลิกแก้ไขและบันทึก', 'welcome' => 'ยินดีต้อนรับเข้าสู่', 'edit' => 'แก้ไข', - 'plugin' => 'ตรวจสอบไฟล์', + 'plugin' => 'ศูนย์ปลั๊กอิน', 'to' => 'ถึง', 'menu' => 'เมนู', @@ -158,6 +158,7 @@ 'app_ip_comment' => 'ปรกติปล่อยว่างไว้. ถ้าการเชื่อมต่อ UCenter กับโดเมนเนมมีปัญหา, ลองตั้งค่าด้วยการใช้ IP ของ Server。', 'app_key' => 'คีย์สำหรับเชื่อมต่อ', 'app_key_comment' => 'ใช้ตัวอีกาณภาษาอังกฤษและตัวเลขเท่านั้น, สูงสุด 64 ไบต์. เพื่อให้โปรแกรมเชื่อมต่อโดยสมบูรณ์จำเป็นต้องมี คีย์ สำหรับเชื่อมต่อ, ไม่อย่างนั้นจะไม่สามารถทำการติดต่อ UCenter。และเชื่อมต่อกับโปรแกรมอื่นได้', + 'app_key_generate' => 'สร้างคีย์การสื่อสารที่ปลอดภัย', 'app_login' => 'เปิดให้เข้าระบบพร้อมกัน', 'app_login_comment' => 'เปิดให้เข้าระบบพร้อมกัน, เมื่อสมาชิกเข้าระบบจากโปรแกรมอื่นๆ, จะเข้าระบบโปรแกรมทั้งหมด', 'app_charset' => 'ภาษาของโปรแกรม', @@ -201,11 +202,11 @@ 'badword_add' => 'Add Bad Words', 'badword_add_succeed' => 'Bad Word Added Successfully.', 'badword_delete' => 'Delete', - 'badword_keyword' => 'Bad Words', + 'badword_keyword' => 'Sensitive Words', 'badword_replace' => 'Replace to', 'badword_admin' => 'Operator', 'badword_multi_add' => 'Bulk Add', - 'badword_multi_add_comment' => '
  • One item per each line, use "=" for separate the bad words and the replacement word.
  • + 'badword_multi_add_comment' => '
  • One group per line, use "=" to separate sensitive words and replacement words.
  • If you want to replace some words as **, Only need type that word here.
  • Example:
  • toobadword
  • @@ -406,6 +407,7 @@ 'db_start_export_dumpfile' => 'เริ่มสำรองข้อมูล โปรดรอสักครู่ กรุณาอย่าปิดเบราเซอร์', 'db_list_tips' => 'ตามตัวเลือกวันที่สำรองที่คุณต้องการเรียกคืนข้อมูลสำรอง คลิกที่ 「รายละเอียด」 หลังจากที่คุณเลือกรายการที่คุณต้องการเรียกคืนการสำรองข้อมูลของโปรแกรม', 'db_import_tips' => 'เลือกโปรแกรมที่คุณต้องการเรียกคืน หลังจากคลิก 「ส่ง」 ที่ปุ่มเรียกคืนข้อมูลสำรอง', + 'db_security_tips' => 'ด้วยเหตุผลด้านความปลอดภัย หลังจากดาวน์โหลดไฟล์สำรองฐานข้อมูลหรือตั้งค่าไฟล์สำรองฐานข้อมูล เราขอแนะนำให้คุณลบไฟล์สำรองฐานข้อมูลในหน้าการกู้คืนออกทุกครั้ง เพื่อให้มั่นใจในความปลอดภัยของเว็บไซต์และไม่สามารถเข้าถึงไฟล์ดังกล่าวผ่าน URL ได้', 'dumpfile_exists' => 'กำลังสำรอง', 'message_title'=>'ข้อมูลคำแนะนำ', @@ -482,6 +484,7 @@ 'oldpw' => 'รหัสผ่านเดิม', 'newpw' => 'รหัสผ่านใหม่', 'repeatpw' => 'ยืนยันรหัสผ่านใหม่', + 'reconfkey' => 'รีเซ็ต KEY', 'admin_list' => 'รายชื่อผู้ดูแลระบบ', 'confirm_delete' => 'คุณต้องการลบ?', 'profile' => 'ข้อมูล', diff --git a/utility/clearcloud.php b/utility/clearcloud.php deleted file mode 100644 index 3fd4be17..00000000 --- a/utility/clearcloud.php +++ /dev/null @@ -1,42 +0,0 @@ -cachelist = $cachelist; -$discuz->init_cron = false; -$discuz->init_setting = true; -$discuz->init_user = false; -$discuz->init_session = false; -$discuz->init_misc = false; - -$discuz->init(); - -$_G['siteurl'] = preg_replace('/\/install\/$/i', '/', $_G['siteurl']); - -$plugins = array('cloudstat', 'soso_smilies', 'security', 'pcmgr_url_safeguard', 'manyou', 'cloudcaptcha'); -foreach($plugins as $pluginid) { - $plugin = C::t('common_plugin')->fetch_by_identifier($pluginid); - if($plugin) { - $modules = unserialize($plugin['modules']); - $modules['system'] = 0; - $modules = serialize($modules); - C::t('common_plugin')->update($plugin['pluginid'], array('modules' => $modules)); - } -} - -echo "All the Cloud platform plug-ins have been downgraded to non-system-level plug-ins. Please remove the clearcloud.php tool"; - -?> \ No newline at end of file diff --git a/utility/convert/data/config.default.php b/utility/convert/data/config.default.php deleted file mode 100644 index 4a21550e..00000000 --- a/utility/convert/data/config.default.php +++ /dev/null @@ -1,33 +0,0 @@ - \ No newline at end of file diff --git a/utility/convert/include/bbcode.class.php b/utility/convert/include/bbcode.class.php deleted file mode 100644 index e0f9ac5f..00000000 --- a/utility/convert/include/bbcode.class.php +++ /dev/null @@ -1,101 +0,0 @@ -search_exp)) { - $this->search_exp = array( - "/\s*\[quote\][\n\r]*(.+?)[\n\r]*\[\/quote\]\s*/is", - "/\[url\]\s*(https?:\/\/|ftp:\/\/|gopher:\/\/|news:\/\/|telnet:\/\/|rtsp:\/\/|mms:\/\/|callto:\/\/|ed2k:\/\/){1}([^\[\"']+?)\s*\[\/url\]/i", - "/\[em:(.+?):\]/i", - ); - $this->replace_exp = array( - "
    \\1
    ", - "\\1\\2", - " " - ); - $this->search_str = array('[b]', '[/b]','[i]', '[/i]', '[u]', '[/u]'); - $this->replace_str = array('', '', '','', '', ''); - } - - if($parseurl==2) { - $this->search_exp[] = "/\[img\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/ies"; - $this->replace_exp[] = '$this->bb_img(\'\\1\')'; - $message = bbcode::parseurl($message); - } - - @$message = str_replace($this->search_str, $this->replace_str,preg_replace($this->search_exp, $this->replace_exp, $message, 20)); - return nl2br(str_replace(array("\t", ' ', ' '), array('        ', '   ', '  '), $message)); - } - - function parseurl($message) { - return preg_replace("/(?<=[^\]a-z0-9-=\"'\\/])((https?|ftp|gopher|news|telnet|mms|rtsp):\/\/)([a-z0-9\/\-_+=.~!%@?#%&;:$\\()|]+)/i", "[url]\\1\\3[/url]", ' '.$message); - } - - function html2bbcode($message) { - - if(empty($this->html_s_exp)) { - $this->html_s_exp = array( - "/\
    \(.*?)\<\/span\>\<\/div\>/is", - "/\
    \(.*?)\<\/blockquote\>\<\/div\>/is", - "/\/is", - "/(\r\n|\n|\r)/", - "//siU", - "/[ \t]*\[ \t]*/is", - "/\s*\\s*/is" - ); - $this->html_r_exp = array( - "[quote]\\1[/quote]", - "[quote]\\1[/quote]", - "\\1", - '', - "\n", - "[em:\\1:]", - "\n[img]\\1[/img]\n" - ); - $this->html_s_str = array('', '', '','', '', '', '        ', '   ', '  ', '<', '>', '&'); - $this->html_r_str = array('[b]', '[/b]','[i]', '[/i]', '[u]', '[/u]', "\t", ' ', ' ', '<', '>', '&'); - } - - @$message = str_replace($this->html_s_str, $this->html_r_str, - preg_replace($this->html_s_exp, $this->html_r_exp, $message)); - - $message = htmlspecialchars($message); - - return trim($message); - } - - function bb_img($url) { - $url = addslashes($url); - return ""; - } -} - -?> \ No newline at end of file diff --git a/utility/convert/include/common.inc.php b/utility/convert/include/common.inc.php deleted file mode 100644 index c9a24fb0..00000000 --- a/utility/convert/include/common.inc.php +++ /dev/null @@ -1,68 +0,0 @@ - 1, 'GLOBALS' => 1,'_GET' => 1,'_POST' => 1,'_REQUEST' => 1,'_COOKIE' => 1,'_SERVER' => 1,'_ENV' => 1,'_FILES' => 1); -foreach ($GLOBALS as $key => $value) { - if (!isset($superglobal[$key])) { - $GLOBALS[$key] = null; unset($GLOBALS[$key]); - } -} - -if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])) { - error('request_tainting'); -} - -if(!MAGIC_QUOTES_GPC) { - $_GET = daddslashes($_GET); - $_POST = daddslashes($_POST); - $_COOKIE = daddslashes($_COOKIE); - $_FILES = daddslashes($_FILES); -} - -$_REQUEST = array_merge($_POST, $_GET); -$_REQUEST['method'] = strtolower($_SERVER['REQUEST_METHOD']); -$_REQUEST['script'] = basename($_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']); - -$_config = array(); -if(!file_exists(DISCUZ_ROOT.'./data/config.inc.php')) { - define('CONFIG_EMPTY', true); - include DISCUZ_ROOT.'./data/config.default.php'; -} else { - include DISCUZ_ROOT.'./data/config.inc.php'; -} - -if(!defined('CONFIG_EMPTY')) { - if(empty($_config['source']['dbhost'])|| empty($_config['target']['dbhost'])) { - define('CONFIG_EMPTY', true); - } else { - define('CONFIG_EMPTY', false); - } -} - -$timeoffset = 8; -if(function_exists('date_default_timezone_set')) { - @date_default_timezone_set('Etc/GMT'.($timeoffset > 0 ? '-' : '+').(abs($timeoffset))); -} - -function debug($var) { - echo '
    ';
    -	print_r($var);
    -	exit;
    -}
    -
    -?>
    \ No newline at end of file
    diff --git a/utility/convert/include/db.class.php b/utility/convert/include/db.class.php
    deleted file mode 100644
    index c09fd4a2..00000000
    --- a/utility/convert/include/db.class.php
    +++ /dev/null
    @@ -1,248 +0,0 @@
    -set_config($config);
    -		}
    -	}
    -
    -	function set_config($config) {
    -		$this->config = &$config;
    -		$this->tablepre = "`{$config['dbname']}`.{$config['tablepre']}";
    -	}
    -
    -	function connect($halt = true) {
    -		$this->curlink = null;
    -		$this->_dbconnect(
    -			$this->config['dbhost'],
    -			$this->config['dbuser'],
    -			$this->config['dbpw'],
    -			$this->config['dbcharset'],
    -			$this->config['dbname'],
    -			$this->config['pconnect'],
    -			$halt
    -			);
    -		return $this->curlink ? true : false;
    -	}
    -
    -	function _dbconnect($dbhost, $dbuser, $dbpw, $dbcharset, $dbname, $pconnect, $halt = true) {
    -		$dbcharset = !$dbcharset ? 'binary' : $dbcharset;
    -		$link =$this->curlink = null;
    -		$func = empty($pconnect) ? 'mysql_connect' : 'mysql_pconnect';
    -		if(!$link = @$func($dbhost, $dbuser, $dbpw, 1)) {
    -			$halt && $this->halt('Connect Error');
    -		} else {
    -			$this->curlink = & $link;
    -			if($this->version() > '4.1') {
    -				$serverset = $dbcharset ? 'character_set_connection='.$dbcharset.', character_set_results='.$dbcharset.', character_set_client=binary' : '';
    -				$serverset .= $this->version() > '5.0.1' ? ((empty($serverset) ? '' : ',').'sql_mode=\'\'') : '';
    -				$serverset && mysql_query("SET $serverset", $link);
    -			}
    -
    -			if($dbname) {
    -				$return = $this->query("use `$dbname`", $halt ? '' : 'SILENT');
    -				if(!$return) {
    -					$this->curlink = null;
    -				}
    -			}
    -		}
    -		return $link;
    -	}
    -
    -	function table_name($tablename) {
    -		return $this->tablepre.$tablename;
    -	}
    -
    -	function select_db($dbname) {
    -		return mysql_select_db($dbname, $this->curlink);
    -	}
    -
    -	function fetch_array($query, $result_type = MYSQL_ASSOC) {
    -		return mysql_fetch_array($query, $result_type);
    -	}
    -
    -	function fetch_first($sql) {
    -		return $this->fetch_array($this->query($sql));
    -	}
    -
    -	function result_first($sql) {
    -		return $this->result($this->query($sql), 0);
    -	}
    -
    -	function query($sql, $type = '') {
    -
    -		if(defined('DISCUZ_DEBUG') && DISCUZ_DEBUG) {
    -			$starttime = dmicrotime();
    -		}
    -		$func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ?
    -		'mysql_unbuffered_query' : 'mysql_query';
    -		if(!($query = $func($sql, $this->curlink))) {
    -
    -			if(in_array($this->errno(), array(2006, 2013)) && substr($type, 0, 5) != 'RETRY') {
    -				$this->connect();
    -				return $this->query($sql, 'RETRY'.$type);
    -			}
    -			if($type != 'SILENT' && substr($type, 5) != 'SILENT') {
    -				$this->halt('query_error', $sql);
    -			}
    -		}
    -
    -		if(defined('DISCUZ_DEBUG') && DISCUZ_DEBUG) {
    -			$this->sqldebug[] = array($sql, number_format((dmicrotime() - $starttime), 6), debug_backtrace());
    -		}
    -
    -		$this->querynum++;
    -		return $query;
    -	}
    -
    -	function affected_rows() {
    -		return mysql_affected_rows($this->curlink);
    -	}
    -
    -	function error() {
    -		return (($this->curlink) ? mysql_error($this->curlink) : mysql_error());
    -	}
    -
    -	function errno() {
    -		return intval(($this->curlink) ? mysql_errno($this->curlink) : mysql_errno());
    -	}
    -
    -	function result($query, $row = 0) {
    -		$query = @mysql_result($query, $row);
    -		return $query;
    -	}
    -
    -	function num_rows($query) {
    -		$query = mysql_num_rows($query);
    -		return $query;
    -	}
    -
    -	function num_fields($query) {
    -		return mysql_num_fields($query);
    -	}
    -
    -	function free_result($query) {
    -		return mysql_free_result($query);
    -	}
    -
    -	function insert_id() {
    -		return ($id = mysql_insert_id($this->curlink)) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0);
    -	}
    -
    -	function fetch_row($query) {
    -		$query = mysql_fetch_row($query);
    -		return $query;
    -	}
    -
    -	function fetch_fields($query) {
    -		return mysql_fetch_field($query);
    -	}
    -
    -	function version() {
    -		if(empty($this->version)) {
    -			$this->version = mysql_get_server_info($this->curlink);
    -		}
    -		return $this->version;
    -	}
    -
    -	function close() {
    -		return $this->curlink ? mysql_close($this->curlink) : true;
    -	}
    -
    -	function table($table) {
    -		return $this->table_name($table);
    -	}
    -
    -	function insert($table, $data, $return_insert_id = false, $replace = false, $silent = false) {
    -
    -		$sql = $this->implode_field_value($data);
    -		$cmd = $replace ? 'REPLACE INTO' : 'INSERT INTO';
    -		$table = $this->table($table);
    -		$silent = $silent ? 'SILENT' : '';
    -		$return = $this->query("$cmd $table SET $sql", $silent);
    -		return $return_insert_id ? $this->insert_id() : $return;
    -
    -	}
    -
    -	function update($table, $data, $condition, $unbuffered = false, $low_priority = false) {
    -		$sql = $this->implode_field_value($data);
    -		$cmd = "UPDATE ".($low_priority ? 'LOW_PRIORITY' : '');
    -		$table = $this->table($table);
    -		$where = '';
    -		if(empty($condition)) {
    -			$where = '1';
    -		} elseif(is_array($condition)) {
    -			$where = $this->implode_field_value($condition, ' AND ');
    -		} else {
    -			$where = $condition;
    -		}
    -		$res = $this->query("$cmd $table SET $sql WHERE $where", $unbuffered ? 'UNBUFFERED' : '');
    -		return $res;
    -	}
    -
    -	function implode_field_value($array, $glue = ',') {
    -		$sql = $comma = '';
    -		foreach ($array as $k => $v) {
    -			$sql .= $comma."`$k`='$v'";
    -			$comma = $glue;
    -		}
    -		return $sql;
    -	}
    -
    -	function halt($message = '', $sql = '') {
    -		$dberror = $this->error();
    -		$dberrno = $this->errno();
    -		$phperror = '
    - - - - - - - - '; - foreach (debug_backtrace() as $error) { - $error['file'] = str_replace(DISCUZ_ROOT, '', $error['file']); - $phperror .= " - - - - - - - "; - } - $phperror .= '
    FileLineClassTypeFunction
    $error[file]$error[line] $error[class]$error[type]$error[function]
    '; - $help_link = "http://faq.comsenz.com/?type=mysql&dberrno=".rawurlencode($dberrno)."&dberror=".rawurlencode($dberror); - echo ""; - exit(); - - } - -} \ No newline at end of file diff --git a/utility/convert/include/db_error.inc.php b/utility/convert/include/db_error.inc.php deleted file mode 100644 index e72267bb..00000000 --- a/utility/convert/include/db_error.inc.php +++ /dev/null @@ -1,43 +0,0 @@ -error(); - $dberrno = $this->errno(); - if (!in_array($dberrno, array(1062, 1064, 1065, 1169, 1091)) || $GLOBALS['debug']){ - global $dberrnomsg; - $errnomsg = $dberrnomsg[$dberrno]; - if($message) { - $errmsg = "XConvert info: $message\n\n"; - } - $errmsg .= "Time: ".gmdate("Y-n-j g:ia", $GLOBALS['timestamp'] + ($GLOBALS['timeoffset'] * 3600))."\n"; - if($sql) { - $errmsg .= "SQL: ".htmlspecialchars($sql)."\n"; - } - $errmsg .= "Error: $dberror\n"; - $errmsg .= "Errormsg.: $errnomsg\n"; - $errmsg .= "Errno.: $dberrno\n"; - $errmsg = nl2br(str_replace($GLOBALS['tablepre'], '[Table]', $errmsg)); - showmessage($errmsg); - } -} elseif ($error_dbtype == 'access') { - if($sql) { - $errmsg = "SQL: ".htmlspecialchars($sql)."\n
    "; - } - $errmsg .= "Errormsg: ".$message; - showmessage($errmsg); -} elseif ($error_dbtype == 'mssql') { - if($sql) { - $errmsg = "SQL: ".htmlspecialchars($sql)."\n
    "; - } - $errmsg .= "Errormsg: ".$message; - ($GLOBALS['debug'] || $GLOBALS['action'] == 'check') && showmessage($errmsg); -} elseif ($error_dbtype == 'oracle') { - if($sql) { - $errmsg = "Oracle: ".htmlspecialchars($sql)."\n
    "; - } - $errmsg .= "Errormsg: ".$message; - ($GLOBALS['debug'] || $GLOBALS['action'] == 'check') && showmessage($errmsg); -} -unset($error_dbtype); -?> \ No newline at end of file diff --git a/utility/convert/include/do_config.inc.php b/utility/convert/include/do_config.inc.php deleted file mode 100644 index 8a586646..00000000 --- a/utility/convert/include/do_config.inc.php +++ /dev/null @@ -1,60 +0,0 @@ -connect(); - delete_process('all'); - showmessage('config_success', 'index.php?a=select&source='.$source); - } - } -} - -showtips('如果无法显示设置项目,请删除文件 data/config.inc.php'); -$config = loadconfig('config.inc.php'); -if(empty($config)) { - $config = $config_default; -} -show_form_header(); -show_config_input('source', $config['source'], $error['source']); -show_config_input('target', $config['target'], $error['target']); -if($setting['config']['ucenter']) { - show_config_input('ucenter', $config['ucenter'], $error['ucenter']); -} -show_form_footer('submit', 'config_save'); - -?> \ No newline at end of file diff --git a/utility/convert/include/do_convert.inc.php b/utility/convert/include/do_convert.inc.php deleted file mode 100644 index 6bfff1ba..00000000 --- a/utility/convert/include/do_convert.inc.php +++ /dev/null @@ -1,79 +0,0 @@ -connect(); - -$db_target = new db_mysql($config['target']); -$db_target->connect(); - -$db_uc = new db_mysql($config['ucenter']); -if($setting['config']['ucenter']) { - $db_uc->connect(); -} - -$process = load_process('main'); -if(empty($process)) { - showmessage("请首先选择转换程序", "index.php?action=select&source=$source"); -} - -$prg = getgpc('prg'); - -$prg_dir['tables'] = DISCUZ_ROOT.'./source/'.$source.'/table/'; -$prg_dir['start'] = DISCUZ_ROOT.'./source/'.$source.'/'; -$prg_dir['steps'] = DISCUZ_ROOT.'./source/'.$source.'/'; - -$prg_done = 0; -$prg_next = ''; -$prg_total = $prg_total = count($process['tables']) + count($process['start']) + count($process['steps']); - -foreach (array('start', 'tables', 'steps') as $program) { - if(!empty($process[$program]) && !$process[$program.'_is_end']) { - foreach ($process[$program] as $k => $v) { - if($v) { - $prg_done ++; - } elseif ($prg_next == '') { - $prg_next = $k; - } - } - if($prg_next) { - if(empty($prg) || !file_exists($prg_dir[$program].$prg)) { - $prg = $prg_next; - } - $prg_done ++; - - list($rday, $rhour, $rmin, $rsec) = remaintime(time() - $process['timestart']); - $stime = gmdate('Y-m-d H:i:s', $process['timestart'] + 3600* 8); - $timetodo = "升级开始时间:$stime, 升级程序已经执行了 $rday$rhour小时 $rmin$rsec秒"; - $timetodo .= "

    目前正在执行转换程序( $prg_done / $prg_total ) $prg,转换过程中需要多次跳转,请勿关闭浏览器。"; - $timetodo .= "

    如果程序中断或者需要重新开始当前程序,请点击 (重新开始)"; - - showtips($timetodo); - if(file_exists($prg_dir[$program].$prg)) { - define('PROGRAM_TYPE', $program); - require $prg_dir[$program].$prg; - save_process_main($prg); - showmessage("转换程序 $prg 执行完毕, 现在跳转到下一个程序", "index.php?a=convert&source=$source", null, 500); - } else { - showmessage('数据转换中断! 无法找到转换程序 '.$prg); - } - } else { - $process[$program.'_is_end'] = 1; - save_process('main', $process); - } - } else { - $prg_done = $prg_done + count($process[$program]); - } -} - -showmessage('转换程序全部运行完毕', "index.php?action=finish&source=$source"); - -function save_process_main($prg = '') { - global $process; - if(defined('PROGRAM_TYPE')) { - $prg = empty($prg) ? $GLOBALS['prg'] : $prg; - $process[PROGRAM_TYPE][$prg] = 1; - } - save_process('main', $process); -} -?> \ No newline at end of file diff --git a/utility/convert/include/do_finish.inc.php b/utility/convert/include/do_finish.inc.php deleted file mode 100644 index d29e62f2..00000000 --- a/utility/convert/include/do_finish.inc.php +++ /dev/null @@ -1,34 +0,0 @@ -connect(); - -$readme = DISCUZ_ROOT.'./source/'.$source.'/readme.txt'; -if(file_exists($readme)) { - $txt = file_get_contents($readme); -} else { - $txt = lang('finish'); -} - -$txt = nl2br(htmlspecialchars($txt)); -$txt = str_replace(' ', '  ', $txt); -$txt = str_replace("\t", '    ', $txt); - -$process = load_process('main'); -list($rday, $rhour, $rmin, $rsec) = remaintime(time() - $process['timestart']); -$stime = gmdate('Y-m-d H:i:s', $process['timestart'] + 3600* 8); -$etime = gmdate('Y-m-d H:i:s',time() + 3600* 8); -$timetodo = "您已经顺利的完成了数据转换!"; -$timetodo .= "

    本次升级开始时间: $stime
    本次升级结束时间: $etime"; -$timetodo .= "
    升级累计执行时间: $rday$rhour小时 $rmin$rsec秒"; -$timetodo .= "

    通常情况下,您可能还需要按照以下提示继续进行升级,从而使您的新程序正常运行"; - -showtips($timetodo); - -show_table_header(); -show_table_row(array('最后的说明(readme)'), 'title'); -show_table_row(array($txt)); -show_table_footer(); - -?> \ No newline at end of file diff --git a/utility/convert/include/do_select.inc.php b/utility/convert/include/do_select.inc.php deleted file mode 100644 index 3aa10424..00000000 --- a/utility/convert/include/do_select.inc.php +++ /dev/null @@ -1,102 +0,0 @@ -connect(); - -$db_target = new db_mysql($config['target']); -$db_target->connect(); - -$db_uc = new db_mysql($config['ucenter']); -if($setting['config']['ucenter']) { - $db_uc->connect(); -} - -$prgdir = DISCUZ_ROOT.'./source/'.$source.'/table/'; - -$process = array( -'timestart' => time(), -'start' => array(), -'tables' => array(), -'steps' => array(), -); - -if(submitcheck('submit')) { - $prgs = getgpc('prgs'); - if(is_array($prgs)) { - foreach ($prgs as $prg) { - if(substr($prg, 0, 6) == 's_prg_') { - $prg = substr($prg, 6); - $process['steps'][$prg] = 0; - }elseif(substr($prg, 0, 6) == 'c_prg_') { - $prg = substr($prg, 6); - $process['start'][$prg] = 0; - } else { - $process['tables'][$prg] = 0; - } - } - save_process('main', $process); - showmessage("您选择了 (".count($prgs).") 个转换程序,下面开始转换", "index.php?a=convert&s=$source"); - } -} - -showtips("
  • 通常情况下,您需要执行下面所有数据表的转换,除非您在执行过程中出现了意外的中断或者有特殊需求,才进行必要的选择
  • "); -show_form_header(); -show_table_header(); -show_table_row(array('配置转换过程'), 'title'); - -if($setting['start']) { - show_table_row(array('转换之前运行的程序'), 'bg1'); - echo "\n
      "; - foreach ($setting['start'] as $key => $value) { - echo "
    • "; - } - echo "
    \n"; -} - - -$tablelist = array(); -$cdir = dir($prgdir); -while(($entry = $cdir->read()) !== false) { - if(($entry != '.' && $entry != '..') && is_file($prgdir.$entry)) { - if(preg_match("/uc_/", $entry)) { - $table_source = str_replace('.php', '', $db_source->tablepre.$entry); - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - if(empty($source_exist)) { - continue; - } - } - $tablelist[] = $entry; - } -} -$cdir->close(); - -if($tablelist) { - sort($tablelist); - show_table_row(array('数据表转换程序'), 'bg1'); - echo "\n
      "; - foreach ($tablelist as $entry) { - echo "
    • "; - } - echo "
    \n"; -} - -if($setting['steps']) { - show_table_row(array('其他辅助转换程序'), 'bg1'); - echo "\n
      "; - foreach ($setting['steps'] as $key => $value) { - echo "
    • "; - } - echo "
    \n"; -} -show_table_footer(); -show_form_footer('submit', '开始转换'); -showfooter(); - -exit(); \ No newline at end of file diff --git a/utility/convert/include/do_setting.inc.php b/utility/convert/include/do_setting.inc.php deleted file mode 100644 index 4b533b31..00000000 --- a/utility/convert/include/do_setting.inc.php +++ /dev/null @@ -1,65 +0,0 @@ - $value) { - if(is_array($value) && !empty($value)) { - show_table_row(array(array('colspan="3" align="left"', '['.$key.']')), 'bg1'); - $disabled = in_array($key, array('program', 'config', 'steps', 'start', 'tablecheck')) ? ' disabled readonly' : ''; - foreach ($value as $k => $v) { - show_table_row( array( - lang($k), - array('class="bg2" width="70%"', ''.($disabled ? ' 只读' : '')) - ), 'bg2' - ); - } - } - } - show_table_footer(); - show_form_footer('submit', lang('submit')); - -} else { - $newsetting = getgpc('newsetting'); - if(is_array($newsetting)) { - $lines = file($sfile); - foreach ($lines as $num => $line) { - $lines[$num] = $line = trim($line); - $check = substr($line, 0, 1); - if($check !== '' && $check != ';') { - if($check == '[') { - $group = trim(str_replace(array('[', ']'), '', $line)); - } elseif ($group != '') { - list($key, $val) = explode('=', $line); - $key = trim($key); - if(isset($newsetting[$group][$key])) { - if(is_numeric($newsetting[$group][$key])) { - $lines[$num] = "$key = {$newsetting[$group][$key]}"; - } else { - $lines[$num] = "$key = \"{$newsetting[$group][$key]}\""; - } - } - } - } - } - if($fp = @fopen($sfile, 'w')) { - fwrite($fp, implode("\n", $lines)); - fclose($fp); - showmessage('设置已经更新完毕并成功保存', 'index.php', '', 1000); - } else { - showmessage('该设置文件为只读文件,无法保存,请返回'); - } - } - showmessage('您没有改变任何设置', 'index.php', '', 1000); -} \ No newline at end of file diff --git a/utility/convert/include/do_source.inc.php b/utility/convert/include/do_source.inc.php deleted file mode 100644 index c28f6d2f..00000000 --- a/utility/convert/include/do_source.inc.php +++ /dev/null @@ -1,45 +0,0 @@ -在开始转换之前,请确保本程序目录下的 data 目录为可写权限,否则无法存储转换设置
  • 如果有Discuz!和UChome同时需要升级,请务必先升级Discuz!论坛
  • 请正确选择转换程序,否则可能造成无法转换成功
  • 本转换程序不会破坏原始数据,所以转换需要2倍于原始数据空间
  • '); - -if(is_dir($datadir)) { - - $cdir = dir($datadir); - show_table_header(); - show_table_row(array( - '原始版本', - '目标版本', - array('width="50%"', '简介'), - array('width="5%"', '说明'), - array('width="5%"', '设置'), - array('width="5%"', ''), - ), 'header title'); - while(($entry = $cdir->read()) !== false) { - if(($entry != '.' && $entry != '..') && is_dir($datadir.$entry)) { - $settingfile = $datadir.$entry.'/setting.ini'; - $readmefile = $datadir.$entry.'/readme.txt'; - - $readme = file_exists($readmefile) ? '查看' : ''; - - if(file_exists($settingfile) && $setting = loadsetting($entry)) { - $trclass = $trclass == 'bg1' ? 'bg2' : 'bg1'; - show_table_row( - array( - $setting['program']['source'], - $setting['program']['target'], - $setting['program']['introduction'], - array('align="center"', $readme), - array('align="center"', '修改'), - array('align="center"', '开始'), - ), $trclass - ); - } - } - } - $cdir->close(); - show_table_footer(); -} else { - showmessage('config_child_error'); -} \ No newline at end of file diff --git a/utility/convert/include/editor.func.php b/utility/convert/include/editor.func.php deleted file mode 100644 index 676ad7d7..00000000 --- a/utility/convert/include/editor.func.php +++ /dev/null @@ -1,397 +0,0 @@ - 'face=', 'size' => 'size=', 'color' => 'color='); - $prependtags = $appendtags = ''; - - foreach($tags as $bbcode => $locate) { - $optionvalue = fetchoptionvalue($locate, $fontoptions); - if($optionvalue) { - $prependtags .= "[$bbcode=$optionvalue]"; - $appendtags = "[/$bbcode]$appendtags"; - } - } - - parsestyle($fontoptions, $prependtags, $appendtags); - - return $prependtags.recursion('font', $text, 'fonttag').$appendtags; -} - -function getoptionvalue($option, $text) { - preg_match("/$option(\s+?)?\=(\s+?)?[\"']?(.+?)([\"']|$|>)/is", $text, $matches); - return isset($matches[3]) ? trim($matches[3]) : ''; -} - -function html2bbcode($text) { - $text = strip_tags($text, ' - - - -

    系统提示

    $message

    $messageadd
    -EOT; - showfooter(); - exit; -} - -function showheader($action = '', $setting = array()) { - static $isshow; - if($isshow) { - return true; - } - $class[$action] = 'class="current"'; - $titleadd = !empty($setting['program']['source']) ? " ({$setting['program']['source']} --> {$setting['program']['target']})" : ''; - -echo << - - -Discuz! X 系列产品升级转换 - - - - - - - -
    -

    Discuz! X 系列产品升级/转换 向导 $titleadd

    -
    - - - - - - - - - - -EOT; - $isshow = true; -} - -function getfiletype($filename = '') { - $extnum = strrpos($filename, '.') + 1; - $exts = strtolower(substr($filename, $extnum)); - switch ($exts) { - case 'jpg': - return 'image/pjpeg'; - break; - case 'jpe': - return 'image/pjpeg'; - break; - case 'jpeg': - return 'image/pjpeg'; - break; - case 'pdf': - return 'application/pdf'; - break; - case 'gif': - return 'image/gif'; - break; - case 'bmp': - return 'image/bmp'; - break; - case 'png': - return 'image/png'; - break; - case 'rar': - return 'x-rar-compressed'; - break; - case 'txt': - return 'text/plain'; - break; - case 'swf': - return 'application/x-shockwave-flash'; - break; - case 'zip': - return 'application/zip'; - break; - case 'doc': - return 'application/msword'; - break; - default: - return 'application/octet-stream'; - break; - } -} - -function convertucpw($password) { - $salt = substr(uniqid(rand()), -6); - $pass = md5(strtolower($password).$salt); - return array('password'=>$pass, 'salt'=>$salt); -} - -function getgpc($k, $type='GP') { - $type = strtoupper($type); - switch($type) { - case 'G': $var = &$_GET; break; - case 'P': $var = &$_POST; break; - case 'C': $var = &$_COOKIE; break; - default: - if(isset($_GET[$k])) { - $var = &$_GET; - } else { - $var = &$_POST; - } - break; - } - - return isset($var[$k]) ? $var[$k] : NULL; - -} - -function show_table_header($show = true) { - $s = << - -EOT; - $s .= "\n"; - return output($s, $show); -} - -function show_table_footer($show = true) { - $s = '
    '."\n"; - return output($s, $show); -} - -function show_table_row($tds, $trclass = 'bg1', $show = true) { - $s = ''; - foreach ($tds as $td) { - if(is_array($td)) { - $s .= ''.$td[1].''; - } else { - $s .= ''.$td.''; - } - $s .= "\n"; - } - $s .= "\n"; - return output($s, $show); -} - -function output(&$s, $show) { - if($show) { - echo $s; - } - return $s; -} - -function showfooter($halt = false) { - static $isshow; - if(!$isshow) { - echo << - -
    - - -EOT; - } - $isshow = true; -} - -function submitcheck($var = 'submit', $allowget = false) { - $check = getgpc($var); - $ret = false; - if(empty($check)) { - - } elseif($allowget) { - $ret = true; - } elseif($_REQUEST['method'] == 'post') { - $ret = true; - } - return $ret; -} - -function loadsetting($folder) { - $folder = trim($folder); - $ret = array(); - if($folder != '' && !preg_match('/(\/)|(\.\.)|(\\\)/', $folder) && file_exists(DISCUZ_ROOT.'/source/'.$folder.'/setting.ini')) { - $ret = @parse_ini_file(DISCUZ_ROOT.'/source/'.$folder.'/setting.ini', true); - } - return $ret; -} - -function loadconfig($file = 'config.inc.php') { - $_config = array(); - @include DISCUZ_ROOT.'./data/'.$file; - return $_config; -} - -function showtips($tip) { - $title = lang('tips'); - $msg = lang($tip); - echo << - $title -
      $msg
    - - - -EOT; -} - -function lang($name, $vars = array()) { - static $language; - if($language === null) { - @include DISCUZ_ROOT.'./language/lang.php'; - if(empty($language)) { - $language = array(); - } - } - $ret = isset($language[$name]) ? $language[$name] : $name; - if(!empty($vars)) { - foreach ($vars as $key => $value) { - $ret = str_replace('{'.$key.'}', $value); - } - } - return $ret; -} - -function show_hidden_field($name, $value) { - echo ''."\n"; -} - -function show_form_header($method = 'post') { - echo << - - - -EOT; -} - -function show_form_footer($submitname = '', $submitvalue = 'submit') { - if($submitname != '') { - $submitvalue = lang($submitvalue); - echo << - - -EOT; - } - echo ''; -} - -function show_config_input($type, $config, $error = array()) { - $title = lang('config_type_'.$type); - show_table_header(); - show_table_row(array(array('colspan="3"', $title)), 'header title'); - if($type == 'target') { - show_table_row(array(array('colspan="3"', ''.lang('config_type_target_comment').'')), 'bg2'); - } - foreach ($config as $key => $value) { - $addmsg = $error && $key == 'dbhost' ? lang($error) : ''; - $tip = $key == 'pconnect' ? lang('tips_pconnect') : ''; - show_table_row( array( - array('width="150"', lang('config_'.$key)), - array('class="bg2"', ''), - array('class="bg2"', ''.$tip.''.$addmsg.'') - ), 'bg1' - ); - } - - show_table_footer(); - echo '
    '; -} - -function getvars($data, $type = 'VAR') { - $evaluate = ''; - foreach($data as $key => $val) { - if(!preg_match("/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/", $key)) { - continue; - } - if(is_array($val)) { - $evaluate .= buildarray($val, 0, "\${$key}")."\r\n"; - } else { - $val = addcslashes($val, '\'\\'); - $evaluate .= $type == 'VAR' ? "\$$key = '$val';\n" : "define('".strtoupper($key)."', '$val');\n"; - } - } - return $evaluate; -} - -function buildarray($array, $level = 0, $pre = '$_config') { - static $ks; - if($level == 0) { - $ks = array(); - $return = ''; - } - - foreach ($array as $key => $val) { - if(!preg_match("/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/", $key)) { - continue; - } - - if($level == 0) { - $newline = str_pad(' CONFIG '.strtoupper($key).' ', 50, '-', STR_PAD_BOTH); - $return .= "\r\n// $newline //\r\n"; - } - - $ks[$level] = $ks[$level - 1]."['$key']"; - if(is_array($val)) { - $ks[$level] = $ks[$level - 1]."['$key']"; - $return .= buildarray($val, $level + 1, $pre); - } else { - $val = !is_array($val) && (!preg_match("/^\-?[1-9]\d*$/", $val) || strlen($val) > 12) ? '\''.addcslashes($val, '\'\\').'\'' : $val; - $return .= $pre.$ks[$level - 1]."['$key']"." = $val;\r\n"; - } - } - return $return; -} - -function save_config_file($filename, $config, $default) { - $config = setdefault($config, $default); - $date = gmdate("Y-m-d H:i:s", time() + 3600 * 8); - $year = date('Y'); - $content = << $config)); - $content .= "\r\n// ".str_pad(' THE END ', 50, '-', STR_PAD_BOTH)." //\r\n\r\n?>"; - file_put_contents($filename, $content); -} - -function setdefault($var, $default) { - foreach ($default as $k => $v) { - if(!isset($var[$k])) { - $var[$k] = $default[$k]; - } elseif(is_array($v)) { - $var[$k] = setdefault($var[$k], $default[$k]); - } - } - return $var; -} - -function mysql_connect_test($config, $type) { - global $setting; - static $error_code = array('connect_error' => -1, 'table_error' => -2); - static $db; - $ret = true; - if($db === null) { - require_once(DISCUZ_ROOT.'./include/db.class.php'); - $db = new db_mysql(); - } - $db->set_config($config); - $check = $db->connect(false); - if(!$check) { - $ret = $error_code['connect_error']; - } else { - if(isset($setting['tablecheck'][$type])) { - $find = $db->fetch_first("SHOW TABLES LIKE '{$config[tablepre]}{$setting['tablecheck'][$type]}'"); - if(!$find) { - $ret = $error_code['table_error']; - } - } - } - $db->close(); - return $ret; -} - -function tablepre(&$db) { - $pre = $db->table_pre; - if(strexists($pre, '.')) { - $tablepre = substr($pre, strpos($pre, '.') + 1); - } else { - $tablepre = $pre; - } - return $tablepre; -} - -function implode_field_value($array, $glue = ',', $fields = array()) { - $sql = $comma = ''; - foreach ($array as $k => $v) { - if(empty($fields) || isset($fields[$k])) { - $sql .= $comma."`$k`='$v'"; - $comma = $glue; - } - } - return $sql; -} - -function load_process($key) { - global $db_target; - $table = $db_target->tablepre.CACHETABLE; - $data = $db_target->fetch_first("SELECT cachevalue FROM $table WHERE cachekey='$key'"); - if($data) { - $data = unserialize($data['cachevalue']); - } - return !is_array($data) ? array() : $data; -} - -function delete_process($key) { - global $db_target; - $table = $db_target->tablepre.CACHETABLE; - if(empty($key) || $key == 'all') { - $db_target->query("DELETE FROM $table"); - } else { - $db_target->query("DELETE FROM $table WHERE cachekey='$key'"); - } -} - -function save_process($key, $data) { - global $db_target; - $table = $db_target->tablepre.CACHETABLE; - $data = serialize($data); - $db_target->query("REPLACE INTO $table SET cachekey='$key', cachevalue='$data'"); -} - -function dimplode($array) { - if(!empty($array)) { - return "'".implode("','", is_array($array) ? $array : array($array))."'"; - } else { - return ''; - } -} - -function db_table_charset($dbobject, $tablename) { - $tablestruct = $dbobject->fetch_first("show create table {$dbobject->tablepre}$tablename"); - preg_match("/CHARSET=(\w+)/", $tablestruct['Create Table'], $m); - return $m[1]; -} - -function db_table_fields($db, $table) { - static $tables = array(); - $table = str_replace($db->tablepre, '', $table); - if(!isset($tables[$table])) { - $tables[$table] = array(); - if($db->version() > '4.1') { - $query = $db->query("SHOW FULL COLUMNS FROM {$db->tablepre}$table", 'SILENT'); - } else { - $query = $db->query("SHOW COLUMNS FROM {$db->tablepre}$table", 'SILENT'); - } - while($field = @$db->fetch_array($query)) { - $tables[$table][$field['Field']] = $field; - } - } - return $tables[$table]; -} - -function dstripslashes($string) { - if(is_array($string)) { - foreach($string as $key => $val) { - $string[$key] = dstripslashes($val); - } - } else { - $string = stripslashes($string); - } - return $string; -} - -function strexists($string, $find) { - return !(strpos($string, $find) === FALSE); -} - -if(!function_exists('file_put_contents')) { - if(!defined('FILE_APPEND')) define('FILE_APPEND', 8); - function file_put_contents($filename, $data, $flag = 0) { - $return = false; - if($fp = @fopen($filename, $flag != FILE_APPEND ? 'w' : 'a')) { - if($flag == LOCK_EX) @flock($fp, LOCK_EX); - $return = fwrite($fp, is_array($data) ? implode('', $data) : $data); - fclose($fp); - } - return $return; - } -} \ No newline at end of file diff --git a/utility/convert/index.php b/utility/convert/index.php deleted file mode 100644 index 5bb43b60..00000000 --- a/utility/convert/index.php +++ /dev/null @@ -1,44 +0,0 @@ - \ No newline at end of file diff --git a/utility/convert/language/lang.php b/utility/convert/language/lang.php deleted file mode 100644 index 276eac0d..00000000 --- a/utility/convert/language/lang.php +++ /dev/null @@ -1,61 +0,0 @@ - '数据库服务器', - 'config_dbuser' => '数据库用户名', - 'config_dbpw' => '数据库密码', - 'config_dbname' => '数据库', - 'config_tablepre' => '数据表前缀', - 'config_dbcharset' => '数据表字符集 (可选)', - 'config_pconnect' => '持久连接', - - 'config_type_source' => '数据源服务器设置 (原始版本的数据库)', - 'config_type_target' => '目标服务器设置 (已正确安装 Discuz! X 的数据库)', - 'config_type_ucenter' => 'UCenter 服务器设置 (已正确安装 UCenter 的数据库)', - - 'config_type_target_comment' => '注意:目标数据库的数据将会被替换或者更新,如当中含有重要内容,请先备份', - 'config_write_error' => '转换程序的 data/ 目录不可写,请确保此目录的可写权限,设置 777 属性', - - 'config_save' => '保存服务器设置', - 'config_usergroup' => '用户组配置', - 'config_from_usergroup' => '来源用户组', - 'config_target_usergroup' => '目标用户组', - 'config_extcredits' => '积分配置', - 'config_credit' => '积分', - 'config_from_credit' => '来源积分', - 'config_target_credit' => '目标积分', - 'config_experience' => '经验值', - 'config_convert_forum' => '数据转换配置', - 'config_from_data' => '源数据', - 'config_target_forum' => '目标版块', - 'config_poll' => '投票', - 'config_event' => '活动', - 'config_auto_create' => '自动创建', - 'config_convert' => '保存转换配置', - - 'submit' => '提 交', - - 'message_return' => '返回上一步', - 'message_stop' => '停止运行', - 'message_not_enabled_extcredit' => '新系统中至少应开启一个积分,否则无法进行下一步转换', - - 'ok' => ' 确  定 ', - 'cancel' => ' 取 消 ', - 'return' => '请返回', - 'tips' => '技巧提示', - 'tips_pconnect' => '注意:如果源数据库与目标数据库在同一服务器,该项必须设置为0,否则设置为1', - - 'mysql_config_error' => '配置不能为空', - 'mysql_connect_error' => '连接失败', - - 'config_success' => '服务器配置成功,现在进行下一步', - - 'setting_tips' => '
  • 修改转换程序设置可能导致您的转换效率降低或者无法正常完成转换,所以请您务必小心修改', - - 'mysql_connect_error_1' => '数据库连接错误,请检查数据库密码和帐号是否正确', - 'mysql_connect_error_2' => '数据表检查错误,您可能没有正确填写 “数据表前缀”或者您尚未安装该版本的程序', - - - -); \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/pollvoter.php b/utility/convert/source/d7.2_x1.0/pollvoter.php deleted file mode 100644 index e3425b2d..00000000 --- a/utility/convert/source/d7.2_x1.0/pollvoter.php +++ /dev/null @@ -1,46 +0,0 @@ -tablepre . 'polloptions'; -$table_target = $db_target->tablepre . 'forum_pollvoter'; - -$limit = 1000; - -$pstep = getgpc('pstep'); -$pstep = intval($pstep); - -$total = getgpc('total'); -$total = intval($total); - -$offset = $pstep * $limit; - -$continue = false; - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY polloptionid LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $voterids = trim($row['voterids']); - $voterids = explode("\t", $voterids); - foreach($voterids as $voterid) { - $options = $db_target->result_first("SELECT options FROM $table_target WHERE tid='{$row['tid']}' AND uid='$voterid'"); - $options = explode("\t", $options); - if(!in_array($row['polloptionid'], $options)) { - $options[] = $row['polloptionid']; - } - $options_str = trim(implode("\t", $options)); - $db_target->query("UPDATE $table_target SET options='$options_str' WHERE tid='{$row['tid']}' AND uid='$voterid'"); - } - $continue = true; - $total ++; -} - -$nextpstep = $pstep + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&pstep=$nextpstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/readme.txt b/utility/convert/source/d7.2_x1.0/readme.txt deleted file mode 100644 index 50666e88..00000000 --- a/utility/convert/source/d7.2_x1.0/readme.txt +++ /dev/null @@ -1,36 +0,0 @@ -==================================== -Discuz! 7.2 升级至 Discuz! X1 说明 -==================================== - -I 升级前的准备 ---------------- -1. 建立程序备份目录,例如 old/ -2. 将原论坛所有程序移动到 old/ 目录中 -3. 上传 Discuz! X 产品的 upload/ 目录中的程序到论坛目录 -4. 执行安装程序 /install - 如果您的论坛版本是完整版(含 uc_server/ 目录),则安装的时候选择全新安装 - 如果您的论坛版本是独立版本(自行安装的 uc_server/ 目录),则安装的时候请指定 UCenter 地址 - -II 升级论坛数据 ---------------- -1. 安装完毕,测试论坛可以正常运行以后,上传 Discuz! X Convert 程序到论坛更目录 -2. 执行 /convert -3. 选择相应的程序版本,开始转换 -4. 转换过程中不可擅自中断,直到程序自动执行完毕。 -5. 转换过程可能需要较长时间,且消耗较多服务器资源,您应当选择服务器空闲的时候执行 - -III 升级完毕, 还要做的几件事 --------------------------- -1. 编辑新论坛的 config/config_global.php 文件,设定好创始人 -2. 直接访问新论坛的 admin.php -3. 使用创始人帐号登录,进入后台更新缓存 -4. 新系统增加了很多设置项目,包括用户权限、组权限、论坛板块等等,您需要仔细的重新设置一次 -5. 转移旧附件目录(在转移之前,您的帖子将会无法找到任何附件) - a)进入 old/attachments/ 目录 - b)将所有文件移动到 新论坛目录/data/attachment/forum/ 目录中 -6. 转移用户头像(独立安装 UCenter 的用户不需要这个步骤) - a)进入 old/uc_server/data/avatar/ 目录 - b)将所有文件移动到 新论坛目录 uc_server/data/avatar/ -7. 删除 convert 程序,以免给您的论坛安装带来隐患 -8. 待测试新论坛的所有功能均正常后,可以删除旧的程序备份和数据备份 -9. 如果使用过分类信息,需要重新整理一次分类信息(后台->更新统计->分类信息整理)。 \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/setting.ini b/utility/convert/source/d7.2_x1.0/setting.ini deleted file mode 100644 index c0734533..00000000 --- a/utility/convert/source/d7.2_x1.0/setting.ini +++ /dev/null @@ -1,44 +0,0 @@ -;本文件格式兼容于 PHP.ini,您可以使用“;”作为注释内容 -;以下设置内容当中如果出现除字母和数字以外的特殊符号,请使用 "" 将内容包含起来 -;以下项目你可以根据自己的需要进行增减 - -[program] -;;程序简介 -introduction = "本程序用于 Discuz! 7.2 数据转换至 Discuz! X1。升级前请首先正确安装 Discuz! X1" -;;原始程序版本 -source= "Discuz! 7.2" -;;目标程序版本 -target= "Discuz! X1" - -[tablecheck] -; 数据表检测,当不含有以下数据表的时候,则认为数据库设置错误 -source = forumfields -target = common_cache - -;数据表转换之前执行的程序 -[start] - - -;数据表转换完毕以后执行的程序 -[steps] -pollvoter = 处理投票主题 -threadtype = 处理主题分类 - -[config] -ucenter = 0 - -;每次跳转时转换的数据量 -[limit] -attachments = 2000 -attachmentfields = 2000 -attachpaymentlog = 1000 -members = 1000 -orders = 1000 -paymentlog = 1000 -polloptions = 1000 -polls = 1000 -posts = 1000 -threads = 1500 -uc_members = 1000 -uc_memberfields = 1000 -uc_pms = 2000 \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/access.php b/utility/convert/source/d7.2_x1.0/table/access.php deleted file mode 100644 index dd79dce9..00000000 --- a/utility/convert/source/d7.2_x1.0/table/access.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'access'; -$table_target = $db_target->tablepre.'forum_access'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/activities.php b/utility/convert/source/d7.2_x1.0/table/activities.php deleted file mode 100644 index 3a5a6b1c..00000000 --- a/utility/convert/source/d7.2_x1.0/table/activities.php +++ /dev/null @@ -1,41 +0,0 @@ -tablepre.'activities'; -$table_source_aa = $db_source->tablepre.'activityapplies'; -$table_target = $db_target->tablepre.'forum_activity'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE tid>'$start' ORDER BY tid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['tid']; - - $row['applynumber'] = $db_source->result_first("SELECT COUNT(*) FROM $table_source_aa WHERE tid='$row[tid]' AND verified=1"); - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." tid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/activityapplies.php b/utility/convert/source/d7.2_x1.0/table/activityapplies.php deleted file mode 100644 index 02a91ed7..00000000 --- a/utility/convert/source/d7.2_x1.0/table/activityapplies.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'activityapplies'; -$table_target = $db_target->tablepre.'forum_activityapply'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE applyid>'$start' ORDER BY applyid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['applyid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." applyid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/addons.php b/utility/convert/source/d7.2_x1.0/table/addons.php deleted file mode 100644 index 60c6e717..00000000 --- a/utility/convert/source/d7.2_x1.0/table/addons.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'addons'; -$table_target = $db_target->tablepre.'common_addon'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/admingroups.php b/utility/convert/source/d7.2_x1.0/table/admingroups.php deleted file mode 100644 index 526bb4b9..00000000 --- a/utility/convert/source/d7.2_x1.0/table/admingroups.php +++ /dev/null @@ -1,46 +0,0 @@ -tablepre.'admingroups'; -$table_target = $db_target->tablepre.'common_admingroup'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("DELETE FROM $table_target WHERE admingid>'3'"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE admingid>'$start' ORDER BY admingid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['admingid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $gidexist = 0; - if($row['admingid'] < 4) { - $gidexist = $db_target->result_first("SELECT admingid FROM $table_target WHERE admingid='".$row['admingid']."'"); - } - if(!empty($gidexist)) { - $db_target->query("UPDATE $table_target SET $data WHERE admingid='".$row['admingid']."'"); - } else { - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." admingid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/adminnotes.php b/utility/convert/source/d7.2_x1.0/table/adminnotes.php deleted file mode 100644 index 2630f690..00000000 --- a/utility/convert/source/d7.2_x1.0/table/adminnotes.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'adminnotes'; -$table_target = $db_target->tablepre.'common_adminnote'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/advertisements.php b/utility/convert/source/d7.2_x1.0/table/advertisements.php deleted file mode 100644 index 6d964642..00000000 --- a/utility/convert/source/d7.2_x1.0/table/advertisements.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'advertisements'; -$table_target = $db_target->tablepre.'common_advertisement'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE advid>'$start' ORDER BY advid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['advid']; - $row['targets'] = 'forum'; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." advid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/announcements.php b/utility/convert/source/d7.2_x1.0/table/announcements.php deleted file mode 100644 index 8c5f45b7..00000000 --- a/utility/convert/source/d7.2_x1.0/table/announcements.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'announcements'; -$table_target = $db_target->tablepre.'forum_announcement'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/attachmentfields.php b/utility/convert/source/d7.2_x1.0/table/attachmentfields.php deleted file mode 100644 index 1aaa5f7f..00000000 --- a/utility/convert/source/d7.2_x1.0/table/attachmentfields.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'attachmentfields'; -$table_target = $db_target->tablepre.'forum_attachmentfield'; - -$limit = $setting['limit']['attachmentfields'] ? $setting['limit']['attachmentfields'] : 2500; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE aid>'$start' ORDER BY aid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['aid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." aid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/attachments.php b/utility/convert/source/d7.2_x1.0/table/attachments.php deleted file mode 100644 index b303caf0..00000000 --- a/utility/convert/source/d7.2_x1.0/table/attachments.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'attachments'; -$table_target = $db_target->tablepre.'forum_attachment'; - -$limit = $setting['limit']['attachments'] ? $setting['limit']['attachments'] : 2500; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE aid>'$start' ORDER BY aid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['aid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." aid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/attachpaymentlog.php b/utility/convert/source/d7.2_x1.0/table/attachpaymentlog.php deleted file mode 100644 index d7cd4871..00000000 --- a/utility/convert/source/d7.2_x1.0/table/attachpaymentlog.php +++ /dev/null @@ -1,76 +0,0 @@ -tablepre.'attachpaymentlog'; -$table_target = $db_target->tablepre.'common_credit_log'; - -$limit = $setting['limit']['attachpaymentlog'] ? $setting['limit']['attachpaymentlog'] : 2500; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start) && !$process['truncate_credit_log']) { - $start = 0; - $process['truncate_credit_log'] = 1; - save_process('main', $process); - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM ".$db_source->tablepre."settings WHERE variable IN ('creditstax', 'creditstrans')"); -while($setting = $db_source->fetch_array($query)) { - if($setting['variable'] == 'creditstrans') { - $creditstrans = explode(',', $setting['value']); - $ext = $creditstrans[1] ? $creditstrans[1] : $creditstrans[0]; - if(!$ext) { - $ext = 1; - } - } - if($setting['variable'] == 'creditstax') { - $creditstax = $setting['value']; - } -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $rownew = array(); - $rownew['uid'] = $row['uid']; - $rownew['operation'] = 'BAC'; - $rownew['relatedid'] = $row['aid']; - $rownew['dateline'] = $row['dateline']; - $rownew['extcredits'.$ext] = -$row['amount']; - - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - - $rownew = array(); - $rownew['uid'] = $row['authorid']; - $rownew['operation'] = 'SAC'; - $rownew['relatedid'] = $row['aid']; - $rownew['dateline'] = $row['dateline']; - $rownew['extcredits'.$ext] = $row['netamount']; - - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/attachtypes.php b/utility/convert/source/d7.2_x1.0/table/attachtypes.php deleted file mode 100644 index ea792aa2..00000000 --- a/utility/convert/source/d7.2_x1.0/table/attachtypes.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'attachtypes'; -$table_target = $db_target->tablepre.'forum_attachtype'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/banned.php b/utility/convert/source/d7.2_x1.0/table/banned.php deleted file mode 100644 index 00a8fbdb..00000000 --- a/utility/convert/source/d7.2_x1.0/table/banned.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'banned'; -$table_target = $db_target->tablepre.'common_banned'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/bbcodes.php b/utility/convert/source/d7.2_x1.0/table/bbcodes.php deleted file mode 100644 index 498b5d5e..00000000 --- a/utility/convert/source/d7.2_x1.0/table/bbcodes.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'bbcodes'; -$table_target = $db_target->tablepre.'forum_bbcode'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/creditslog.php b/utility/convert/source/d7.2_x1.0/table/creditslog.php deleted file mode 100644 index ff953557..00000000 --- a/utility/convert/source/d7.2_x1.0/table/creditslog.php +++ /dev/null @@ -1,97 +0,0 @@ -tablepre.'creditslog'; -$table_target = $db_target->tablepre.'common_credit_log'; - -$limit = 2000; -$nextid = 0; - -$start = intval(getgpc('start')); -if(empty($start) && !$process['truncate_credit_log']) { - $start = 0; - $process['truncate_credit_log'] = 1; - save_process('main', $process); - $db_target->query("TRUNCATE $table_target"); -} - -$rowlist = $userarr = array(); -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - $nextid = 1; - $rowlist[] = $row; - $userarr[$row['fromto']] = $row['fromto']; -} - -if($nextid) { - $userarr = daddslashes($userarr, 1); - $usernames = implode("', '", $userarr); - $query = $db_source->query("SELECT * FROM ".$db_source->tablepre."members WHERE username IN('$usernames')"); - while($row = $db_source->fetch_array($query)) { - $userarr[$row['username']] = $row['uid']; - } - - foreach($rowlist as $row) { - $rownew = array(); - if(in_array($row['operation'], array('AFD', 'TFR', 'RCV'))) { - $rownew['uid'] = $row['uid']; - if($row['operation'] == 'RCV' && $row['fromto'] == 'TASK REWARD') { - $rownew['operation'] = 'TRC'; - $rownew['relatedid'] = 0; - } else { - $rownew['operation'] = $row['operation']; - $rownew['relatedid'] = $userarr[$row['fromto']]; - } - - $rownew['dateline'] = $row['dateline']; - if($row['receive']) { - $rownew['extcredits'.$row['receivecredits']] = $row['receive']; - } - if($row['send']) { - $rownew['extcredits'.$row['sendcredits']] = -$row['send']; - } - } elseif($row['operation'] == 'UGP') { - $rownew['uid'] = $row['uid']; - $rownew['operation'] = $row['operation']; - $rownew['relatedid'] = 0; - $rownew['dateline'] = $row['dateline']; - if($row['receive']) { - $rownew['extcredits'.$row['receivecredits']] = $row['receive']; - } - if($row['send']) { - $rownew['extcredits'.$row['sendcredits']] = -$row['send']; - } - } elseif($row['operation'] == 'EXC') { - $rownew['uid'] = $row['uid']; - $rownew['operation'] = 'ECU'; - $rownew['relatedid'] = $row['uid']; - $rownew['dateline'] = $row['dateline']; - if($row['receive']) { - $rownew['extcredits'.$row['receivecredits']] = $row['receive']; - } - if($row['send']) { - $rownew['extcredits'.$row['sendcredits']] = -$row['send']; - } - } - if($rownew) { - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } - } -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/debateposts.php b/utility/convert/source/d7.2_x1.0/table/debateposts.php deleted file mode 100644 index 7fba5725..00000000 --- a/utility/convert/source/d7.2_x1.0/table/debateposts.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'debateposts'; -$table_target = $db_target->tablepre.'forum_debatepost'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE pid>'$start' ORDER BY pid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['pid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." pid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/debates.php b/utility/convert/source/d7.2_x1.0/table/debates.php deleted file mode 100644 index 8d7d1a01..00000000 --- a/utility/convert/source/d7.2_x1.0/table/debates.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'debates'; -$table_target = $db_target->tablepre.'forum_debate'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE tid>'$start' ORDER BY tid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['tid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." tid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/favorites.php b/utility/convert/source/d7.2_x1.0/table/favorites.php deleted file mode 100644 index 1d6c8348..00000000 --- a/utility/convert/source/d7.2_x1.0/table/favorites.php +++ /dev/null @@ -1,56 +0,0 @@ -tablepre.'favorites'; -$table_target = $db_target->tablepre.'home_favorite'; - -$limit = 100; -$nextid = 0; - -$start = getgpc('start'); -$nextstep = intval(getgpc('nextstep')); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row['id'] = 0; - $row['idtype'] = ''; - - if($row['tid']) { - $row['title'] = $db_source->result_first("SELECT subject FROM ".$db_source->tablepre."threads WHERE tid='".$row['tid']."'"); - $row['id'] = $row['tid']; - $row['idtype'] = 'tid'; - } elseif($row['fid']) { - $row['title'] = $db_source->result_first("SELECT name FROM ".$db_source->tablepre."forums WHERE fid='".$row['fid']."'"); - $row['id'] = $row['fid']; - $row['idtype'] = 'fid'; - } - $row = daddslashes($row, 1); - - if($row['id']) { - unset($row['tid'], $row['fid']); - $row['dateline'] = time(); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - } - -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/forumfields.php b/utility/convert/source/d7.2_x1.0/table/forumfields.php deleted file mode 100644 index eb85908d..00000000 --- a/utility/convert/source/d7.2_x1.0/table/forumfields.php +++ /dev/null @@ -1,80 +0,0 @@ -tablepre.'forumfields'; -$table_target = $db_target->tablepre.'forum_forumfield'; -$table_targetcreditrule = $db_target->tablepre.'common_credit_rule'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); - $db_target->query("UPDATE $table_targetcreditrule SET fids=''"); -} - -$rules = $ruleaction = array(); -$query = $db_target->query("SELECT * FROM $table_targetcreditrule WHERE action IN('reply', 'post', 'digest', 'postattach', 'getattach')"); -while($value = $db_target->fetch_array($query)) { - $rules[$value['rid']] = $value; - $ruleaction[$value['action']] = $value['rid']; -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE fid>'$start' ORDER BY fid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['fid']; - - $credits = array(); - $credits['post'] = unserialize($row['postcredits']); - $credits['reply'] = unserialize($row['replycredits']); - $credits['getattach'] = unserialize($row['getattachcredits']); - $credits['postattach'] = unserialize($row['postattachcredits']); - $credits['digest'] = unserialize($row['digestcredits']); - $row['creditspolicy'] = array(); - foreach($credits as $caction => $credits) { - if($credits) { - $rid = $ruleaction[$caction]; - $row['creditspolicy'] = $rules[$rid]; - foreach($credits as $i => $v) { - $row['creditspolicy']['extcredits'.$i] = $v; - } - $rules[$rid]['fids'] = $db_target->result_first("SELECT fids FROM $table_targetcreditrule WHERE rid='".$rid."'"); - $cpfids = explode(',', $rules[$rid]['fids']); - $cpfidsnew = array(); - foreach($cpfids as $cpfid) { - if(!$cpfid) { - continue; - } - if($cpfid != $row['fid']) { - $cpfidsnew[] = $cpfid; - } - } - $cpfidsnew[] = $row['fid']; - $db_target->query("UPDATE $table_targetcreditrule SET fids='".implode(',', $cpfidsnew)."' WHERE rid='".$rid."'"); - } - } - $row['creditspolicy'] = $row['creditspolicy'] ? serialize($row['creditspolicy']) : ''; - - unset($row['tradetypes'], $row['typemodels'], $row['postcredits'], $row['replycredits'], $row['getattachcredits'], $row['postattachcredits'], $row['digestcredits']); - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." fid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/forumlinks.php b/utility/convert/source/d7.2_x1.0/table/forumlinks.php deleted file mode 100644 index cf8fac77..00000000 --- a/utility/convert/source/d7.2_x1.0/table/forumlinks.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'forumlinks'; -$table_target = $db_target->tablepre.'common_friendlink'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/forumrecommend.php b/utility/convert/source/d7.2_x1.0/table/forumrecommend.php deleted file mode 100644 index 8d85138e..00000000 --- a/utility/convert/source/d7.2_x1.0/table/forumrecommend.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'forumrecommend'; -$table_target = $db_target->tablepre.'forum_forumrecommend'; - -$limit = 2500; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE tid>'$start' ORDER BY tid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['tid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." tid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/forums.php b/utility/convert/source/d7.2_x1.0/table/forums.php deleted file mode 100644 index 1722cc22..00000000 --- a/utility/convert/source/d7.2_x1.0/table/forums.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'forums'; -$table_target = $db_target->tablepre.'forum_forum'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE fid>'$start' ORDER BY fid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['fid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." fid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/imagetypes.php b/utility/convert/source/d7.2_x1.0/table/imagetypes.php deleted file mode 100644 index 310a0631..00000000 --- a/utility/convert/source/d7.2_x1.0/table/imagetypes.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'imagetypes'; -$table_target = $db_target->tablepre.'forum_imagetype'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE typeid>'$start' ORDER BY typeid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['typeid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." typeid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/itempool.php b/utility/convert/source/d7.2_x1.0/table/itempool.php deleted file mode 100644 index c79d4d84..00000000 --- a/utility/convert/source/d7.2_x1.0/table/itempool.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'itempool'; -$table_target = $db_target->tablepre.'common_secquestion'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/magiclog.php b/utility/convert/source/d7.2_x1.0/table/magiclog.php deleted file mode 100644 index efa9a56c..00000000 --- a/utility/convert/source/d7.2_x1.0/table/magiclog.php +++ /dev/null @@ -1,42 +0,0 @@ -tablepre.'magiclog'; -$table_target = $db_target->tablepre.'common_magiclog'; - -$limit = 2000; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row['targetid'] = $row['targettid'] ? $row['targettid'] : 0; - $row['idtype'] = $row['targettid'] ? 'tid' : ''; - unset($row['targettid'], $row['targetpid']); - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/magics.php b/utility/convert/source/d7.2_x1.0/table/magics.php deleted file mode 100644 index 700fabd2..00000000 --- a/utility/convert/source/d7.2_x1.0/table/magics.php +++ /dev/null @@ -1,62 +0,0 @@ -tablepre.'magics'; -$table_target = $db_target->tablepre.'common_magic'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$identifier = array( - 'CCK' => 'highlight', - 'MOK' => 'money', - 'SEK' => 'showip', - 'UPK' => 'bump', - 'TOK' => 'stick', - 'REK' => 'repent', - 'RTK' => 'checkonline', - 'CLK' => 'close', - 'OPK' => 'open', - 'YSK' => 'anonymouspost', - 'CBK' => 'namepost', -); - -$query = $db_source->query("SELECT * FROM $table_source WHERE magicid>'$start' ORDER BY magicid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['magicid']; - if($row['identifier'] == 'MVK') { - continue; - } - - unset($row['type'], $row['recommend'], $row['filename']); - $row['useevent'] = $row['identifier'] == 'MOK' ? 1 : 0; - $row['identifier'] = $identifier[$row['identifier']]; - if(!$row['identifier']) { - continue; - } - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." magicid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/medallog.php b/utility/convert/source/d7.2_x1.0/table/medallog.php deleted file mode 100644 index 086aab6d..00000000 --- a/utility/convert/source/d7.2_x1.0/table/medallog.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'medallog'; -$table_target = $db_target->tablepre.'forum_medallog'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE uid>'$start' ORDER BY uid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['uid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." uid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/medals.php b/utility/convert/source/d7.2_x1.0/table/medals.php deleted file mode 100644 index d6812cb6..00000000 --- a/utility/convert/source/d7.2_x1.0/table/medals.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'medals'; -$table_target = $db_target->tablepre.'forum_medal'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE medalid>'$start' ORDER BY medalid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['medalid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." medalid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/membermagics.php b/utility/convert/source/d7.2_x1.0/table/membermagics.php deleted file mode 100644 index 32224c15..00000000 --- a/utility/convert/source/d7.2_x1.0/table/membermagics.php +++ /dev/null @@ -1,50 +0,0 @@ -tablepre.'membermagics'; -$table_sourcemarket = $db_source->tablepre.'magicmarket'; -$table_target = $db_target->tablepre.'common_member_magic'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - $query = $db_source->query("SELECT * FROM $table_sourcemarket"); - while ($row = $db_source->fetch_array($query)) { - $row = daddslashes($row, 1); - $mm = $db_target->fetch_first("SELECT * FROM $table_target WHERE uid='$row[uid]' AND magicid='$row[magicid]'"); - if($mm) { - $db_target->query("UPDATE $table_target SET num=num+'$row[num]' WHERE uid='$row[uid]' AND magicid='$row[magicid]'"); - } else { - $db_target->query("INSERT INTO $table_target SET uid='$row[uid]', magicid='$row[magicid]', num='$row[num]'"); - } - } - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/memberrecommend.php b/utility/convert/source/d7.2_x1.0/table/memberrecommend.php deleted file mode 100644 index 6598b6b3..00000000 --- a/utility/convert/source/d7.2_x1.0/table/memberrecommend.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'memberrecommend'; -$table_target = $db_target->tablepre.'forum_memberrecommend'; - -$limit = 1000; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/members.php b/utility/convert/source/d7.2_x1.0/table/members.php deleted file mode 100644 index f0028076..00000000 --- a/utility/convert/source/d7.2_x1.0/table/members.php +++ /dev/null @@ -1,159 +0,0 @@ -tablepre.'members'; -$table_target = $db_target->tablepre.'common_member'; -$table_target_admincp = $db_target->tablepre.'common_admincp_member'; - -$limit = $setting['limit']['members'] ? $setting['limit']['members'] : 2000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); - $db_target->query("TRUNCATE $table_target_admincp"); - $db_target->query("TRUNCATE {$table_target}_count"); - $db_target->query("TRUNCATE {$table_target}_field_forum"); - $db_target->query("TRUNCATE {$table_target}_field_home"); - $db_target->query("TRUNCATE {$table_target}_log"); - $db_target->query("TRUNCATE {$table_target}_profile"); - $db_target->query("TRUNCATE {$table_target}_status"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE uid>'$start' ORDER BY uid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - if($row['adminid'] == 1) { - $adminrow = array('uid' => $row['uid'], 'cpgroupid' => '0', 'customperm' => ''); - $data = implode_field_value($adminrow); - $db_target->query("INSERT INTO {$table_target_admincp} SET $data"); - } - - $rowfield = $db_source->fetch_first("SELECT * FROM ".$db_source->tablepre."memberfields WHERE uid='$row[uid]'"); - $rowfield = daddslashes($rowfield, 1); - - $nextid = $row['uid']; - $emptyrow = array('uid' => $row['uid']); - $data = implode_field_value($emptyrow); - $db_target->query("INSERT INTO {$table_target}_count SET $data"); - $db_target->query("INSERT INTO {$table_target}_field_forum SET $data"); - $db_target->query("INSERT INTO {$table_target}_field_home SET $data"); - $db_target->query("INSERT INTO {$table_target}_log SET $data"); - $db_target->query("INSERT INTO {$table_target}_profile SET $data"); - $db_target->query("INSERT INTO {$table_target}_status SET $data"); - - $row = daddslashes($row, 1); - - $unset = array( - 'regip', - 'lastip', - 'lastvisit', - 'lastactivity', - 'lastpost', - 'posts', - 'threads', - 'digestposts', - 'oltime', - 'pageviews', - 'extcredits1', - 'extcredits2', - 'extcredits3', - 'extcredits4', - 'extcredits5', - 'extcredits6', - 'extcredits7', - 'extcredits8', - 'bday', - 'sigstatus', - 'tpp', - 'ppp', - 'styleid', - 'dateformat', - 'timeformat', - 'pmsound', - 'showemail', - 'newsletter', - 'invisible', - 'prompt', - 'editormode', - 'customshow', - 'xspacestatus', - 'customaddfeed', - 'newbietaskid', - 'secques', - 'gender', - ); - list($year, $month, $day) = explode('-', $row['bday']); - $row['notifysound'] = $row['pmsound']; - $update = array( - 'status' => array( - 'regip' => $row['regip'], - 'lastip' => $row['lastip'], - 'lastvisit' => $row['lastvisit'], - 'lastactivity' => $row['lastactivity'], - 'lastpost' => $row['lastpost'], - 'buyercredit' => $row['buyercredit'], - 'sellercredit' => $row['sellercredit'], - ), - 'count' => array( - 'posts' => $row['posts'], - 'threads' => $row['threads'], - 'digestposts' => $row['digestposts'], - 'extcredits1' => $row['extcredits1'], - 'extcredits2' => $row['extcredits2'], - 'extcredits3' => $row['extcredits3'], - 'extcredits4' => $row['extcredits4'], - 'extcredits5' => $row['extcredits5'], - 'extcredits6' => $row['extcredits6'], - 'extcredits7' => $row['extcredits7'], - 'extcredits8' => $row['extcredits8'], - ), - 'profile' => array( - 'birthyear' => $year, - 'birthmonth' => $month, - 'birthday' => $day, - 'gender' => $row['gender'], - 'site' => $rowfield['site'], - 'alipay' => $rowfield['alipay'], - 'icq' => $rowfield['icq'], - 'qq' => $rowfield['qq'], - 'yahoo' => $rowfield['yahoo'], - 'msn' => $rowfield['msn'], - 'taobao' => $rowfield['taobao'], - 'address' => $rowfield['location'], - 'bio' => $rowfield['bio'], - ), - 'field_forum' => array( - 'customshow' => $row['customshow'], - 'customstatus' => $rowfield['customstatus'], - 'medals' => $rowfield['medals'], - 'sightml' => $rowfield['sightml'], - 'groupterms' => $rowfield['groupterms'], - 'authstr' => $rowfield['authstr'], - ) - ); - foreach($unset as $k) { - unset($row[$k]); - } - foreach($update as $table => $trow) { - $data = implode_field_value($trow, ',', db_table_fields($db_target, $table_target.'_'.$table)); - $db_target->query("UPDATE {$table_target}_$table SET $data WHERE uid='$row[uid]'"); - } - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." uid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/moderators.php b/utility/convert/source/d7.2_x1.0/table/moderators.php deleted file mode 100644 index 752c7713..00000000 --- a/utility/convert/source/d7.2_x1.0/table/moderators.php +++ /dev/null @@ -1,41 +0,0 @@ -tablepre . 'moderators'; -$table_target = $db_target->tablepre . 'forum_moderator'; - -$limit = 1000; -$step = getgpc('step'); -$step = intval($step); - -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("TRUNCATE $table_target"); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/modworks.php b/utility/convert/source/d7.2_x1.0/table/modworks.php deleted file mode 100644 index e1d4bc16..00000000 --- a/utility/convert/source/d7.2_x1.0/table/modworks.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre . 'modworks'; -$table_target = $db_target->tablepre . 'forum_modwork'; - -$limit = 1000; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("TRUNCATE $table_target"); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/myrepeats.php b/utility/convert/source/d7.2_x1.0/table/myrepeats.php deleted file mode 100644 index cefdf10f..00000000 --- a/utility/convert/source/d7.2_x1.0/table/myrepeats.php +++ /dev/null @@ -1,45 +0,0 @@ -tablepre.'myrepeats'; -$table_target = $db_target->tablepre.'myrepeats'; - -$limit = 2000; -$nextid = 0; - -$query1 = $db_source->result($db_source->query("SHOW FIELDS FROM $table_source", 'SILENT'), 0); -$query2 = $db_target->result($db_target->query("SHOW FIELDS FROM $table_target", 'SILENT'), 0); -$pass = $query1 && $query2; - -if($pass) { - $start = getgpc('start'); - if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } - - $query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); - while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } - - if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); - } -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/mytasks.php b/utility/convert/source/d7.2_x1.0/table/mytasks.php deleted file mode 100644 index 4e6c0c9e..00000000 --- a/utility/convert/source/d7.2_x1.0/table/mytasks.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre . 'mytasks'; -$table_target = $db_target->tablepre . 'common_mytask'; - -$limit = 2500; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("TRUNCATE $table_target"); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/navs.php b/utility/convert/source/d7.2_x1.0/table/navs.php deleted file mode 100644 index 521033e1..00000000 --- a/utility/convert/source/d7.2_x1.0/table/navs.php +++ /dev/null @@ -1,48 +0,0 @@ -tablepre . 'navs'; -$table_target = $db_target->tablepre . 'common_nav'; - -$limit = 250; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("DELETE FROM $table_target WHERE type<>'0'"); - $maxid = $db_target->result_first("SELECT MAX(id) FROM $table_target"); - $maxid = intval($maxid); - $db_target->query("ALTER TABLE $table_target AUTO_INCREMENT=".($maxid+1)); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source WHERE type<>'0' ORDER BY parentid DESC LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row['available'] = '0'; - $row = daddslashes($row, 1); - $orig_id = $row['id']; - unset($row['id']); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $newid = $db_target->insert_id(); - $db_target->query("UPDATE $table_target SET parentid='$newid' WHERE parentid='$orig_id'"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/onlinelist.php b/utility/convert/source/d7.2_x1.0/table/onlinelist.php deleted file mode 100644 index 9a9016ca..00000000 --- a/utility/convert/source/d7.2_x1.0/table/onlinelist.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre . 'onlinelist'; -$table_target = $db_target->tablepre . 'forum_onlinelist'; - -$limit = 250; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("TRUNCATE $table_target"); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/orders.php b/utility/convert/source/d7.2_x1.0/table/orders.php deleted file mode 100644 index c274a2cb..00000000 --- a/utility/convert/source/d7.2_x1.0/table/orders.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre . 'orders'; -$table_target = $db_target->tablepre . 'forum_order'; - -$limit = $setting['limit']['orders'] ? $setting['limit']['orders'] : 2500; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("TRUNCATE $table_target"); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/paymentlog.php b/utility/convert/source/d7.2_x1.0/table/paymentlog.php deleted file mode 100644 index 51e72be6..00000000 --- a/utility/convert/source/d7.2_x1.0/table/paymentlog.php +++ /dev/null @@ -1,79 +0,0 @@ -tablepre . 'paymentlog'; -$table_target = $db_target->tablepre . 'common_credit_log'; - -$limit = $setting['limit']['paymentlog'] ? $setting['limit']['paymentlog'] : 2500; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; -if(!$step && !$process['truncate_credit_log']) { - $process['truncate_credit_log'] = 1; - save_process('main', $process); - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM ".$db_source->tablepre."settings WHERE variable IN ('creditstax', 'creditstrans')"); -while($setting = $db_source->fetch_array($query)) { - if($setting['variable'] == 'creditstrans') { - $creditstrans = explode(',', $setting['value']); - $ext = $creditstrans[1] ? $creditstrans[1] : $creditstrans[0]; - if(!$ext) { - $ext = 1; - } - } - if($setting['variable'] == 'creditstax') { - $creditstax = $setting['value']; - } -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - - $rownew = array(); - $rownew['uid'] = $row['uid']; - $rownew['operation'] = 'BTC'; - $rownew['relatedid'] = $row['tid']; - $rownew['dateline'] = $row['dateline']; - $rownew['extcredits'.$ext] = -$row['amount']; - - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - - $rownew = array(); - $rownew['uid'] = $row['authorid']; - $rownew['operation'] = 'STC'; - $rownew['relatedid'] = $row['tid']; - $rownew['dateline'] = $row['dateline']; - $rownew['extcredits'.$ext] = $row['netamount']; - - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/polloptions.php b/utility/convert/source/d7.2_x1.0/table/polloptions.php deleted file mode 100644 index f8d0522e..00000000 --- a/utility/convert/source/d7.2_x1.0/table/polloptions.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre . 'polloptions'; -$table_target = $db_target->tablepre . 'forum_polloption'; -$table_pollvoter = $db_target->tablepre . 'forum_pollvoter'; - -$limit = $setting['limit']['polloptions'] ? $setting['limit']['polloptions'] : 1000; - -$nextid = 0; -$start = getgpc('start'); -$continue = false; - -if(!$start) { - $db_target->query("TRUNCATE $table_target"); - $db_target->query("TRUNCATE $table_pollvoter"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE polloptionid>'$start' LIMIT $limit"); -while($row = $db_source->fetch_array($query)) { - $nextid = $row['polloptionid']; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - - $voterids = trim($row['voterids']); - $voterids = explode("\t", $voterids); - foreach($voterids as $voterid) { - $count = $db_target->result_first("SELECT COUNT(*) FROM $table_pollvoter WHERE tid='{$row['tid']}' AND uid='$voterid' LIMIT 1"); - if(!$count) { - $username = daddslashes($db_source->result_first("SELECT username FROM {$db_source->tablepre}members WHERE uid='$voterid'"), 1); - $db_target->query("INSERT INTO $table_pollvoter SET tid='{$row['tid']}', uid='$voterid', username='$username', options='', dateline='0'"); - } - } -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." polloptionid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/polls.php b/utility/convert/source/d7.2_x1.0/table/polls.php deleted file mode 100644 index 2d56f798..00000000 --- a/utility/convert/source/d7.2_x1.0/table/polls.php +++ /dev/null @@ -1,57 +0,0 @@ -tablepre . 'polls'; -$table_target = $db_target->tablepre . 'forum_poll'; - -$limit = $setting['limit']['polls'] ? $setting['limit']['polls'] : 1000; -$start = getgpc('start'); - -$nextid = 0; - -if(!$start) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE tid>'$start' LIMIT $limit"); -while($poll = $db_source->fetch_array($query)) { - $nextid = $poll['tid']; - $query_p = $db_source->query("SELECT voterids FROM {$db_source->tablepre}polloptions WHERE tid='{$poll['tid']}'"); - $voterids = array(); - while($option = $db_source->fetch_array($query_p)) { - $voters_t = explode("\t", $option['voterids']); - foreach($voters_t as $value) { - if(!empty($value)) { - $voterids[] = $value; - } - } - } - $voters = array_unique($voterids); - $voterscount = count($voters); - - $poll['voters'] = $voterscount; - - $polloptionpreview = ''; - $query_p = $db_source->query("SELECT polloption FROM {$db_source->tablepre}polloptions WHERE tid='{$poll['tid']}' ORDER BY displayorder LIMIT 2"); - while($option = $db_source->fetch_array($query_p)) { - $polloptvalue = preg_replace("/\[url=(https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|ed2k|thunder|synacast){1}:\/\/([^\[\"']+?)\](.+?)\[\/url\]/i", "\\3", $option['polloption']); - $polloptionpreview .= $polloptvalue."\t"; - } - - $poll['pollpreview'] = $polloptionpreview; - $poll = daddslashes($poll, 1); - $data = implode_field_value($poll, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source.",tid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/postposition.php b/utility/convert/source/d7.2_x1.0/table/postposition.php deleted file mode 100644 index 215b02a5..00000000 --- a/utility/convert/source/d7.2_x1.0/table/postposition.php +++ /dev/null @@ -1,44 +0,0 @@ -tablepre . 'postposition'; -$table_target = $db_target->tablepre . 'forum_postposition'; -$table_threads = $db_source->tablepre . 'threads'; - -$limit = 2500; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("TRUNCATE $table_target"); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT pp.*, t.fid FROM $table_source pp LEFT JOIN $table_threads t ON pp.tid=t.tid LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row = daddslashes($row, 1); - $row['stick'] = 0; - $row['dateline'] = 0; - $row['expiration'] = 0; - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/posts.php b/utility/convert/source/d7.2_x1.0/table/posts.php deleted file mode 100644 index 3e8aa46f..00000000 --- a/utility/convert/source/d7.2_x1.0/table/posts.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre . 'posts'; -$table_target = $db_target->tablepre . 'forum_post'; - -$limit = $setting['limit']['posts'] ? $setting['limit']['posts'] : 5000; -$start = getgpc('start'); -$start = intval($start); -$nextid = 0; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE pid>'$start' LIMIT $limit"); -while($row = $db_source->fetch_array($query)) { - $nextid = $row['pid']; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." pid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} else { - $maxpid = $db_target->result_first("SELECT MAX(pid) FROM $table_target"); - $maxpid = intval($maxpid) + 1; - $db_target->query("ALTER TABLE ".$db_target->tablepre.'forum_post_tableid'." AUTO_INCREMENT=$maxpid"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/promotions.php b/utility/convert/source/d7.2_x1.0/table/promotions.php deleted file mode 100644 index 4f2e8bf7..00000000 --- a/utility/convert/source/d7.2_x1.0/table/promotions.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre . 'promotions'; -$table_target = $db_target->tablepre . 'forum_promotion'; - -$limit = 1000; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("TRUNCATE $table_target"); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/ratelog.php b/utility/convert/source/d7.2_x1.0/table/ratelog.php deleted file mode 100644 index 6ccb4457..00000000 --- a/utility/convert/source/d7.2_x1.0/table/ratelog.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'ratelog'; -$table_target = $db_target->tablepre.'forum_ratelog'; - -$limit = 1000; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY dateline LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - $next = $start + $limit; - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=$next"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/regips.php b/utility/convert/source/d7.2_x1.0/table/regips.php deleted file mode 100644 index f80a121c..00000000 --- a/utility/convert/source/d7.2_x1.0/table/regips.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'regips'; -$table_target = $db_target->tablepre.'common_regip'; - -$limit = 1000; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY dateline LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - $next = $start + $limit; - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=$next"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/rewardlog.php b/utility/convert/source/d7.2_x1.0/table/rewardlog.php deleted file mode 100644 index 9ca5888e..00000000 --- a/utility/convert/source/d7.2_x1.0/table/rewardlog.php +++ /dev/null @@ -1,77 +0,0 @@ -tablepre.'rewardlog'; -$table_target = $db_target->tablepre.'common_credit_log'; - -$limit = 1000; -$nextid = 0; - -$start = intval(getgpc('start')); -if(empty($start) && !$process['truncate_credit_log']) { - $start = 0; - $process['truncate_credit_log'] = 1; - save_process('main', $process); - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM ".$db_source->tablepre."settings WHERE variable IN ('creditstax', 'creditstrans')"); -while($setting = $db_source->fetch_array($query)) { - if($setting['variable'] == 'creditstrans') { - $creditstrans = explode(',', $setting['value']); - $ext = $creditstrans[2] ? $creditstrans[2] : $creditstrans[0]; - if(!$ext) { - $ext = 1; - } - } - if($setting['variable'] == 'creditstax') { - $creditstax = $setting['value']; - } -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE netamount>'0' ORDER BY dateline LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - if($row['answererid'] > 0) { - $rownew = array(); - $rownew['uid'] = $row['answererid']; - $rownew['operation'] = 'RAC'; - $rownew['relatedid'] = $row['tid']; - $rownew['dateline'] = $row['dateline']; - $rownew['extcredits'.$ext] = $row['netamount']; - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } else { - $rownew = array(); - $rownew['uid'] = $row['authorid']; - $rownew['operation'] = 'RTC'; - $rownew['relatedid'] = $row['tid']; - $rownew['dateline'] = $row['dateline']; - $rownew['extcredits'.$ext] = -ceil($row['netamount'] / (1 - $creditstax)); - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } - -} - -if($nextid) { - $next = $start + $limit; - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=$next"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/settings.php b/utility/convert/source/d7.2_x1.0/table/settings.php deleted file mode 100644 index 7fb0c88d..00000000 --- a/utility/convert/source/d7.2_x1.0/table/settings.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'settings'; -$table_target = $db_target->tablepre.'common_setting'; - -$newsetting = array(); -$query = $db_target->query("SELECT * FROM $table_target"); -while($row = $db_source->fetch_array($query)) { - $newsetting[$row['skey']] = $row['skey']; -} - -$skips = array('attachdir', 'attachurl', 'cachethreaddir', 'jspath', 'my_status'); - -$query = $db_source->query("SELECT * FROM $table_source"); -while ($row = $db_source->fetch_array($query)) { - if(in_array($row['variable'], $skips)) continue; - if(isset($newsetting[$row['variable']])) { - $rownew = array(); - if($row['variable'] == 'my_search_status' && $row['value'] != -1) { - $row['value'] = 0; - } - $rownew['skey'] = $row['variable']; - $rownew['svalue'] = $row['value']; - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("REPLACE INTO $table_target SET $data"); - } -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/smilies.php b/utility/convert/source/d7.2_x1.0/table/smilies.php deleted file mode 100644 index ea51868e..00000000 --- a/utility/convert/source/d7.2_x1.0/table/smilies.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'smilies'; -$table_target = $db_target->tablepre.'common_smiley'; - -$limit = 100; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>$start ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid ", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/tasks.php b/utility/convert/source/d7.2_x1.0/table/tasks.php deleted file mode 100644 index 7d4f8ec0..00000000 --- a/utility/convert/source/d7.2_x1.0/table/tasks.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'tasks'; -$table_target = $db_target->tablepre.'common_task'; - -$limit = 100; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE newbietask=0 AND taskid>$start ORDER BY taskid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['taskid']; - - unset($row['newbietask'], $row['type']); - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." taskid > $nextid ", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/taskvars.php b/utility/convert/source/d7.2_x1.0/table/taskvars.php deleted file mode 100644 index 7a6f0fdb..00000000 --- a/utility/convert/source/d7.2_x1.0/table/taskvars.php +++ /dev/null @@ -1,45 +0,0 @@ -tablepre.'taskvars'; -$table_target = $db_target->tablepre.'common_taskvar'; - -$limit = 100; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$taskids = 0; -$query = $db_source->query("SELECT * FROM ".$db_source->tablepre.'tasks'); -while($row = $db_source->fetch_array($query)) { - $taskids .= ", $row[taskid]"; -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE taskid IN ($taskids) AND taskvarid>$start ORDER BY taskvarid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['taskvarid']; - - unset($row['extra']); - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." taskvarid > $nextid ", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/threads.php b/utility/convert/source/d7.2_x1.0/table/threads.php deleted file mode 100644 index 430c9fec..00000000 --- a/utility/convert/source/d7.2_x1.0/table/threads.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'threads'; -$table_target = $db_target->tablepre.'forum_thread'; - -$limit = $setting['limit']['threads'] ? $setting['limit']['threads'] : 2500; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE tid>'$start' ORDER BY tid LIMIT $limit"); -while ($thread = $db_source->fetch_array($query)) { - - $nextid = $thread['tid']; - - unset($thread['iconid'], $thread['itemid'], $thread['supe_pushstatus']); - - $thread = daddslashes($thread, 1); - - $data = implode_field_value($thread, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." tid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/threadsmod.php b/utility/convert/source/d7.2_x1.0/table/threadsmod.php deleted file mode 100644 index 04742dd2..00000000 --- a/utility/convert/source/d7.2_x1.0/table/threadsmod.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'threadsmod'; -$table_target = $db_target->tablepre.'forum_threadmod'; - -$limit = 100; -$next = FALSE; - -$start = $_GET['start'] ? getgpc('start') : 0; -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY tid LIMIT $start, $limit"); -while ($data = $db_source->fetch_array($query)) { - - $next = TRUE; - - $data = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($next) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start + $limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/threadtypes.php b/utility/convert/source/d7.2_x1.0/table/threadtypes.php deleted file mode 100644 index 43382d9b..00000000 --- a/utility/convert/source/d7.2_x1.0/table/threadtypes.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'threadtypes'; -$table_target = $db_target->tablepre.'forum_threadtype'; - -$limit = 100; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE typeid>'$start' AND special='1' ORDER BY typeid LIMIT $limit"); -while ($threadtype = $db_source->fetch_array($query)) { - - $nextid = $threadtype['typeid']; - - $threadtype = daddslashes($threadtype, 1); - - $data = implode_field_value($threadtype, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." typeid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/tradecomments.php b/utility/convert/source/d7.2_x1.0/table/tradecomments.php deleted file mode 100644 index d1188e35..00000000 --- a/utility/convert/source/d7.2_x1.0/table/tradecomments.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'tradecomments'; -$table_target = $db_target->tablepre.'forum_tradecomment'; - -$limit = 100; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($data = $db_source->fetch_array($query)) { - - $nextid = $data['id']; - - $data = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." typeid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/tradelog.php b/utility/convert/source/d7.2_x1.0/table/tradelog.php deleted file mode 100644 index 8cfebbaa..00000000 --- a/utility/convert/source/d7.2_x1.0/table/tradelog.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'tradelog'; -$table_target = $db_target->tablepre.'forum_tradelog'; - -$limit = 100; -$next = FALSE; - -$start = $_GET['start'] ? getgpc('start') : 0; -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY tid LIMIT $start, $limit"); -while ($data = $db_source->fetch_array($query)) { - - $next = TRUE; - - $data = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($next) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start + $limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/trades.php b/utility/convert/source/d7.2_x1.0/table/trades.php deleted file mode 100644 index 2f527cfa..00000000 --- a/utility/convert/source/d7.2_x1.0/table/trades.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'trades'; -$table_target = $db_target->tablepre.'forum_trade'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($data = $db_source->fetch_array($query)) { - - $nextid = 1; - - $data = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/typeoptions.php b/utility/convert/source/d7.2_x1.0/table/typeoptions.php deleted file mode 100644 index 6639b3c9..00000000 --- a/utility/convert/source/d7.2_x1.0/table/typeoptions.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'typeoptions'; -$table_target = $db_target->tablepre.'forum_typeoption'; - -$limit = 100; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE optionid>'$start' ORDER BY optionid LIMIT $limit"); -while ($data = $db_source->fetch_array($query)) { - - $nextid = $data['optionid']; - - $threadtype = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." optionid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/typeoptionvars.php b/utility/convert/source/d7.2_x1.0/table/typeoptionvars.php deleted file mode 100644 index 728cc19d..00000000 --- a/utility/convert/source/d7.2_x1.0/table/typeoptionvars.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'typeoptionvars'; -$table_target = $db_target->tablepre.'forum_typeoptionvar'; - -$limit = 1000; -$next = FALSE; - -$start = $_GET['start'] ? getgpc('start') : 0; -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY tid LIMIT $start, $limit"); -while ($data = $db_source->fetch_array($query)) { - - $next = TRUE; - - $data = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($next) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start + $limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/typevars.php b/utility/convert/source/d7.2_x1.0/table/typevars.php deleted file mode 100644 index 29567de3..00000000 --- a/utility/convert/source/d7.2_x1.0/table/typevars.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'typevars'; -$table_target = $db_target->tablepre.'forum_typevar'; - -$limit = 100; -$next = FALSE; - -$start = $_GET['start'] ? getgpc('start') : 0; -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($data = $db_source->fetch_array($query)) { - - $next = TRUE; - - $threadtype = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($next) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start + $limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/uc_admins.php b/utility/convert/source/d7.2_x1.0/table/uc_admins.php deleted file mode 100644 index da0a6023..00000000 --- a/utility/convert/source/d7.2_x1.0/table/uc_admins.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'uc_admins'; -$table_target = $db_target->tablepre.'ucenter_admins'; -$limit = 2000; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } -} - -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source WHERE uid>'$start' ORDER BY uid LIMIT $limit"); - while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['uid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." uid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/uc_badwords.php b/utility/convert/source/d7.2_x1.0/table/uc_badwords.php deleted file mode 100644 index 22b71a1e..00000000 --- a/utility/convert/source/d7.2_x1.0/table/uc_badwords.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'uc_badwords'; -$table_target = $db_target->tablepre.'ucenter_badwords'; -$limit = 2000; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } -} - -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); - while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/uc_domains.php b/utility/convert/source/d7.2_x1.0/table/uc_domains.php deleted file mode 100644 index f620d1d2..00000000 --- a/utility/convert/source/d7.2_x1.0/table/uc_domains.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'uc_domains'; -$table_target = $db_target->tablepre.'ucenter_domains'; -$limit = 2000; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } -} - -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); - while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/uc_friends.php b/utility/convert/source/d7.2_x1.0/table/uc_friends.php deleted file mode 100644 index 5d99aeff..00000000 --- a/utility/convert/source/d7.2_x1.0/table/uc_friends.php +++ /dev/null @@ -1,80 +0,0 @@ -tablepre.'uc_friends'; -$table_target = $db_target->tablepre.'ucenter_friends'; -$table_sourcemember = $db_source->tablepre.'uc_members'; -$table_targetfriend = $db_target->tablepre.'home_friend'; -$table_tfriendrequest = $db_target->tablepre.'home_friend_request'; -$limit = 2000; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - $db_target->query("TRUNCATE $table_targetfriend"); - $db_target->query("TRUNCATE $table_tfriendrequest"); - } -} - -$fusername = array(); -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source WHERE version>'$start' ORDER BY version LIMIT $limit"); - while ($row = $db_source->fetch_array($query)) { - $nextid = $row['version']; - - $row = daddslashes($row, 1); - $fusername[$row['friendid']] = $row['direction']; - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - if($row['direction'] == 3) { - $db_target->query("REPLACE INTO $table_targetfriend SET uid='$row[uid]', fuid='$row[friendid]', dateline='".time()."'"); - } else { - $db_target->query("REPLACE INTO $table_tfriendrequest SET uid='$row[uid]', fuid='$row[friendid]', dateline='".time()."'"); - } - if(count($fusername) == 200) { - $fquery = $db_source->query("SELECT uid, username FROM $table_sourcemember WHERE uid IN('".implode("','", array_keys($fusername))."')"); - while($frow = $db_source->fetch_array($fquery)) { - $frow = daddslashes($frow, 1); - if($fusername[$frow['uid']] == 3) { - $db_target->query("UPDATE $table_targetfriend SET fusername='$frow[username]' WHERE fuid='$frow[uid]'"); - } else { - $db_target->query("UPDATE $table_tfriendrequest SET fusername='$frow[username]' WHERE fuid='$frow[uid]'"); - } - } - $fusername = array(); - } - } - if(count($fusername)) { - $fquery = $db_source->query("SELECT uid, username FROM $table_sourcemember WHERE uid IN('".implode("','", array_keys($fusername))."')"); - while($frow = $db_source->fetch_array($fquery)) { - $frow = daddslashes($frow, 1); - if($fusername[$frow['uid']] == 3) { - $db_target->query("UPDATE $table_targetfriend SET fusername='$frow[username]' WHERE fuid='$frow[uid]'"); - } else { - $db_target->query("UPDATE $table_tfriendrequest SET fusername='$frow[username]' WHERE fuid='$frow[uid]'"); - } - } - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." version > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/uc_memberfields.php b/utility/convert/source/d7.2_x1.0/table/uc_memberfields.php deleted file mode 100644 index da2cd617..00000000 --- a/utility/convert/source/d7.2_x1.0/table/uc_memberfields.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'uc_memberfields'; -$table_target = $db_target->tablepre.'ucenter_memberfields'; -$limit = $setting['limit']['uc_memberfields'] ? $setting['limit']['uc_memberfields'] : 2500; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } -} - -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source WHERE uid>'$start' ORDER BY uid LIMIT $limit"); - while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['uid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." uid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/uc_members.php b/utility/convert/source/d7.2_x1.0/table/uc_members.php deleted file mode 100644 index 2e20e929..00000000 --- a/utility/convert/source/d7.2_x1.0/table/uc_members.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'uc_members'; -$table_target = $db_target->tablepre.'ucenter_members'; -$limit = $setting['limit']['uc_members'] ? $setting['limit']['uc_members'] : 2500; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } -} - -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source WHERE uid>'$start' ORDER BY uid LIMIT $limit"); - while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['uid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." uid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/uc_newpm.php b/utility/convert/source/d7.2_x1.0/table/uc_newpm.php deleted file mode 100644 index e0d8cf74..00000000 --- a/utility/convert/source/d7.2_x1.0/table/uc_newpm.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'uc_newpm'; -$table_target = $db_target->tablepre.'ucenter_newpm'; -$limit = 2000; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } -} - -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source WHERE uid>'$start' ORDER BY uid LIMIT $limit"); - while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['uid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." uid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/uc_notelist.php b/utility/convert/source/d7.2_x1.0/table/uc_notelist.php deleted file mode 100644 index 03013313..00000000 --- a/utility/convert/source/d7.2_x1.0/table/uc_notelist.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'uc_notelist'; -$table_target = $db_target->tablepre.'ucenter_notelist'; -$limit = 2000; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } -} - -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source WHERE noteid>'$start' ORDER BY noteid LIMIT $limit"); - while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['noteid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." noteid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/uc_pms.php b/utility/convert/source/d7.2_x1.0/table/uc_pms.php deleted file mode 100644 index f8761f3a..00000000 --- a/utility/convert/source/d7.2_x1.0/table/uc_pms.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'uc_pms'; -$table_target = $db_target->tablepre.'ucenter_pms'; -$limit = $setting['limit']['uc_pms'] ? $setting['limit']['uc_pms'] : 2500; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } -} - -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source WHERE pmid>'$start' ORDER BY pmid LIMIT $limit"); - while ($row = $db_source->fetch_array($query)) { - $row['fromappid'] = 0; - - $nextid = $row['pmid']; - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." pmid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/uc_settings.php b/utility/convert/source/d7.2_x1.0/table/uc_settings.php deleted file mode 100644 index 2883b58f..00000000 --- a/utility/convert/source/d7.2_x1.0/table/uc_settings.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'uc_settings'; -$table_target = $db_target->tablepre.'ucenter_settings'; -$limit = 2000; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } -} - -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); - while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/uc_vars.php b/utility/convert/source/d7.2_x1.0/table/uc_vars.php deleted file mode 100644 index fb955a29..00000000 --- a/utility/convert/source/d7.2_x1.0/table/uc_vars.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'uc_vars'; -$table_target = $db_target->tablepre.'ucenter_vars'; -$limit = 2000; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } -} - -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); - while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/usergroup.php b/utility/convert/source/d7.2_x1.0/table/usergroup.php deleted file mode 100644 index 46763c0b..00000000 --- a/utility/convert/source/d7.2_x1.0/table/usergroup.php +++ /dev/null @@ -1,54 +0,0 @@ -tablepre.'usergroups'; -$table_target = $db_target->tablepre.'common_usergroup'; -$table_target_field = $table_target.'_field'; - -$limit = 100; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); - $db_target->query("TRUNCATE $table_target_field"); -} - -$usergroup = array('groupid', 'radminid', 'type', 'system', 'grouptitle', 'creditshigher', 'creditslower', 'stars', 'color', 'allowvisit', 'allowsendpm', 'allowinvite', 'allowmailinvite', 'maxinvitenum', 'inviteprice', 'maxinviteday'); -$usergroup_field = array('groupid', 'readaccess', 'allowpost', 'allowreply', 'allowpostpoll', 'allowpostreward', 'allowposttrade', 'allowpostactivity', 'allowdirectpost', 'allowgetattach', 'allowpostattach', 'allowvote', 'allowmultigroups', 'allowsearch', 'allowcstatus', 'allowinvisible', 'allowtransfer', 'allowsetreadperm', 'allowsetattachperm', 'allowhidecode', 'allowhtml', 'allowhidecode', 'allowhtml', 'allowanonymous', 'allowsigbbcode', 'allowsigimgcode', 'disableperiodctrl', 'reasonpm', 'maxprice', 'maxsigsize', 'maxattachsize', 'maxsizeperday', 'maxpostsperhour', 'attachextensions', 'raterange', 'mintradeprice', 'maxtradeprice', 'allowhidecode', 'allowhtml', 'allowanonymous', 'allowsigbbcode', 'allowsigimgcode', 'disableperiodctrl', 'reasonpm', 'maxprice', 'maxsigsize', 'maxattachsize', 'maxsizeperday', 'maxpostsperhour', 'attachextensions', 'raterange', 'mintradeprice', 'maxtradeprice', 'minrewardprice', 'maxrewardprice', 'magicsdiscount', 'maxmagicsweight', 'allowpostdebate', 'tradestick', 'exempt', 'maxattachnum', 'allowposturl', 'allowrecommend', 'edittimelimit', 'allowpostrushreply'); - -$userdata = $userfielddata = array(); -$query = $db_source->query("SELECT * FROM $table_source WHERE groupid>'$start' ORDER BY groupid LIMIT $limit"); -while ($data = $db_source->fetch_array($query)) { - - $nextid = $data['groupid']; - - $data = daddslashes($data, 1); - - foreach($usergroup as $field) { - $userdata[$field]= $data[$field]; - } - - foreach($usergroup_field as $field) { - $userfielddata[$field]= $data[$field]; - } - - $userdatalist = implode_field_value($userdata, ',', db_table_fields($db_target, $table_target)); - $userfielddatalist = implode_field_value($userfielddata, ',', db_table_fields($db_target, $table_target_field)); - - $db_target->query("INSERT INTO $table_target SET $userdatalist"); - $db_target->query("INSERT INTO $table_target_field SET $userfielddatalist"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." groupid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/warnings.php b/utility/convert/source/d7.2_x1.0/table/warnings.php deleted file mode 100644 index 8c7661ce..00000000 --- a/utility/convert/source/d7.2_x1.0/table/warnings.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'warnings'; -$table_target = $db_target->tablepre.'forum_warning'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/table/words.php b/utility/convert/source/d7.2_x1.0/table/words.php deleted file mode 100644 index edcd6242..00000000 --- a/utility/convert/source/d7.2_x1.0/table/words.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'words'; -$table_target = $db_target->tablepre.'common_word'; - -$limit = 100; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($data = $db_source->fetch_array($query)) { - - $nextid = $data['id']; - - $data = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.0/threadtype.php b/utility/convert/source/d7.2_x1.0/threadtype.php deleted file mode 100644 index c7e5d6db..00000000 --- a/utility/convert/source/d7.2_x1.0/threadtype.php +++ /dev/null @@ -1,49 +0,0 @@ -tablepre.'forumfields'; -$table_target = $db_target->tablepre.'forum_threadclass'; -$table_target_thread = $db_target->tablepre.'forum_thread'; -$table_target_forumfield = $db_target->tablepre.'forum_forumfield'; - -$limit = 250; -$nextid = 0; -$start = intval(getgpc('start')); - -if(empty($start)) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT fid, threadtypes FROM $table_source WHERE threadtypes!='' LIMIT $start, $limit"); -while($row = $db_source->fetch_array($query)) { - $nextid = $row['fid']; - $threadtypes = (array)unserialize($row['threadtypes']); - $typenames = array(); - if(!is_array($threadtypes['types'])) { - $threadtypes['types'] = array(); - } - $threadtypes_types = $threadtypes['types']; - ksort($threadtypes_types); - foreach($threadtypes_types as $typeid => $name) { - $newtypeid = $db_target->insert('forum_threadclass', array('fid' => $nextid, 'name' => $name), 1); - $typenames[$newtypeid] = $name; - $db_target->query("UPDATE $table_target_thread SET typeid='$newtypeid' WHERE fid='$nextid' AND typeid='$typeid'"); - } - unset($threadtypes['selectbox'], $threadtypes['flat']); - $threadtypes['icons'] = array(); - $threadtypes['types'] = $typenames; - $db_target->query("UPDATE $table_target_forumfield SET threadtypes='".serialize($threadtypes)."' WHERE fid='{$row['fid']}'"); -} - -if($nextid) { - showmessage("继续转换主题分类数据表,fid=$nextid", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/pollvoter.php b/utility/convert/source/d7.2_x1.5/pollvoter.php deleted file mode 100644 index dbbef019..00000000 --- a/utility/convert/source/d7.2_x1.5/pollvoter.php +++ /dev/null @@ -1,46 +0,0 @@ -tablepre . 'polloptions'; -$table_target = $db_target->tablepre . 'forum_pollvoter'; - -$limit = 1000; - -$pstep = getgpc('pstep'); -$pstep = intval($pstep); - -$total = getgpc('total'); -$total = intval($total); - -$offset = $pstep * $limit; - -$continue = false; - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY polloptionid LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $voterids = trim($row['voterids']); - $voterids = explode("\t", $voterids); - foreach($voterids as $voterid) { - $options = $db_target->result_first("SELECT options FROM $table_target WHERE tid='{$row['tid']}' AND uid='$voterid'"); - $options = explode("\t", $options); - if(!in_array($row['polloptionid'], $options)) { - $options[] = $row['polloptionid']; - } - $options_str = trim(implode("\t", $options)); - $db_target->query("UPDATE $table_target SET options='$options_str' WHERE tid='{$row['tid']}' AND uid='$voterid'"); - } - $continue = true; - $total ++; -} - -$nextpstep = $pstep + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&pstep=$nextpstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/readme.txt b/utility/convert/source/d7.2_x1.5/readme.txt deleted file mode 100644 index 2de6d6e0..00000000 --- a/utility/convert/source/d7.2_x1.5/readme.txt +++ /dev/null @@ -1,36 +0,0 @@ -==================================== -Discuz! 7.2 升级至 Discuz! X1.5 说明 -==================================== - -I 升级前的准备 ---------------- -1. 建立程序备份目录,例如 old/ -2. 将原论坛所有程序移动到 old/ 目录中 -3. 上传 Discuz! X 产品的 upload/ 目录中的程序到论坛目录 -4. 执行安装程序 /install - 如果您的论坛版本是完整版(含 uc_server/ 目录),则安装的时候选择全新安装 - 如果您的论坛版本是独立版本(自行安装的 uc_server/ 目录),则安装的时候请指定 UCenter 地址 - -II 升级论坛数据 ---------------- -1. 安装完毕,测试论坛可以正常运行以后,上传 Discuz! X Convert 程序到论坛更目录 -2. 执行 /convert -3. 选择相应的程序版本,开始转换 -4. 转换过程中不可擅自中断,直到程序自动执行完毕。 -5. 转换过程可能需要较长时间,且消耗较多服务器资源,您应当选择服务器空闲的时候执行 - -III 升级完毕, 还要做的几件事 --------------------------- -1. 编辑新论坛的 config/config_global.php 文件,设定好创始人 -2. 直接访问新论坛的 admin.php -3. 使用创始人帐号登录,进入后台更新缓存 -4. 新系统增加了很多设置项目,包括用户权限、组权限、论坛板块等等,您需要仔细的重新设置一次 -5. 转移旧附件目录(在转移之前,您的帖子将会无法找到任何附件) - a)进入 old/attachments/ 目录 - b)将所有文件移动到 新论坛目录/data/attachment/forum/ 目录中 -6. 转移用户头像(独立安装 UCenter 的用户不需要这个步骤) - a)进入 old/uc_server/data/avatar/ 目录 - b)将所有文件移动到 新论坛目录 uc_server/data/avatar/ -7. 删除 convert 程序,以免给您的论坛安装带来隐患 -8. 待测试新论坛的所有功能均正常后,可以删除旧的程序备份和数据备份 -9. 如果使用过分类信息,需要重新整理一次分类信息(后台->更新统计->分类信息整理)。 \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/setting.ini b/utility/convert/source/d7.2_x1.5/setting.ini deleted file mode 100644 index ac89ec54..00000000 --- a/utility/convert/source/d7.2_x1.5/setting.ini +++ /dev/null @@ -1,45 +0,0 @@ -;本文件格式兼容于 PHP.ini,您可以使用“;”作为注释内容 -;以下设置内容当中如果出现除字母和数字以外的特殊符号,请使用 "" 将内容包含起来 -;以下项目你可以根据自己的需要进行增减 - -[program] -;;程序简介 -introduction = "本程序用于 Discuz! 7.2 数据转换至 Discuz! X1.5。升级前请首先正确安装 Discuz! X1.5" -;;原始程序版本 -source= "Discuz! 7.2" -;;目标程序版本 -target= "Discuz! X1.5" - -[tablecheck] -; 数据表检测,当不含有以下数据表的时候,则认为数据库设置错误 -source = forumfields -target = common_cache - -;数据表转换之前执行的程序 -[start] - - -;数据表转换完毕以后执行的程序 -[steps] -pollvoter = 处理投票主题 -threadtype = 处理主题分类 -stamp = 处理主题图章 - -[config] -ucenter = 0 - -;每次跳转时转换的数据量 -[limit] -attachments = 2000 -attachmentfields = 2000 -attachpaymentlog = 1000 -members = 1000 -orders = 1000 -paymentlog = 1000 -polloptions = 1000 -polls = 1000 -posts = 1000 -threads = 1500 -uc_members = 1000 -uc_memberfields = 1000 -uc_pms = 2000 \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/stamp.php b/utility/convert/source/d7.2_x1.5/stamp.php deleted file mode 100644 index 7a1ce1b6..00000000 --- a/utility/convert/source/d7.2_x1.5/stamp.php +++ /dev/null @@ -1,25 +0,0 @@ -tablepre . 'threads'; -$tablemod_source = $db_source->tablepre . 'threadsmod'; -$table_target = $db_target->tablepre . 'forum_thread'; - -$stampnew = $db_target->result_first("SELECT COUNT(*) FROM $table_target WHERE stamp>'0'"); -if(!$stampnew) { - $query = $db_source->query("SELECT t.tid, tm.stamp FROM $table_source t - INNER JOIN $tablemod_source tm ON t.tid=tm.tid AND tm.action='SPA' - WHERE t.status|16=t.status"); - $total = $db_source->num_rows($total); - while($row = $db_source->fetch_array($query)) { - $db_target->query("UPDATE $table_target SET stamp='$row[stamp]' WHERE tid='$row[tid]'"); - } -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/access.php b/utility/convert/source/d7.2_x1.5/table/access.php deleted file mode 100644 index dd79dce9..00000000 --- a/utility/convert/source/d7.2_x1.5/table/access.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'access'; -$table_target = $db_target->tablepre.'forum_access'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/activities.php b/utility/convert/source/d7.2_x1.5/table/activities.php deleted file mode 100644 index 3a5a6b1c..00000000 --- a/utility/convert/source/d7.2_x1.5/table/activities.php +++ /dev/null @@ -1,41 +0,0 @@ -tablepre.'activities'; -$table_source_aa = $db_source->tablepre.'activityapplies'; -$table_target = $db_target->tablepre.'forum_activity'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE tid>'$start' ORDER BY tid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['tid']; - - $row['applynumber'] = $db_source->result_first("SELECT COUNT(*) FROM $table_source_aa WHERE tid='$row[tid]' AND verified=1"); - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." tid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/activityapplies.php b/utility/convert/source/d7.2_x1.5/table/activityapplies.php deleted file mode 100644 index d8fa821c..00000000 --- a/utility/convert/source/d7.2_x1.5/table/activityapplies.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'activityapplies'; -$table_target = $db_target->tablepre.'forum_activityapply'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE applyid>'$start' ORDER BY applyid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['applyid']; - - !empty($row['contact']) && $row['message'] = $row['message'].' 联系方式:'.$row['contact']; - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." applyid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/addons.php b/utility/convert/source/d7.2_x1.5/table/addons.php deleted file mode 100644 index 7a9cdf00..00000000 --- a/utility/convert/source/d7.2_x1.5/table/addons.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'addons'; -$table_target = $db_target->tablepre.'common_addon'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/admincustom.php b/utility/convert/source/d7.2_x1.5/table/admincustom.php deleted file mode 100644 index 2da102bd..00000000 --- a/utility/convert/source/d7.2_x1.5/table/admincustom.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'admincustom'; -$table_target = $db_target->tablepre.'common_admincp_cmenu'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/admingroups.php b/utility/convert/source/d7.2_x1.5/table/admingroups.php deleted file mode 100644 index b7134c05..00000000 --- a/utility/convert/source/d7.2_x1.5/table/admingroups.php +++ /dev/null @@ -1,46 +0,0 @@ -tablepre.'admingroups'; -$table_target = $db_target->tablepre.'common_admingroup'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("DELETE FROM $table_target WHERE admingid>'3'"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE admingid>'$start' ORDER BY admingid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['admingid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $gidexist = 0; - if($row['admingid'] < 4) { - $gidexist = $db_target->result_first("SELECT admingid FROM $table_target WHERE admingid='".$row['admingid']."'"); - } - if(!empty($gidexist)) { - $db_target->query("UPDATE $table_target SET $data WHERE admingid='".$row['admingid']."'"); - } else { - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." admingid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/adminnotes.php b/utility/convert/source/d7.2_x1.5/table/adminnotes.php deleted file mode 100644 index 7f8a8f04..00000000 --- a/utility/convert/source/d7.2_x1.5/table/adminnotes.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'adminnotes'; -$table_target = $db_target->tablepre.'common_adminnote'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/advertisements.php b/utility/convert/source/d7.2_x1.5/table/advertisements.php deleted file mode 100644 index 2eb129b2..00000000 --- a/utility/convert/source/d7.2_x1.5/table/advertisements.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'advertisements'; -$table_target = $db_target->tablepre.'common_advertisement'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE advid>'$start' ORDER BY advid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['advid']; - $row['targets'] = 'forum'; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." advid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/announcements.php b/utility/convert/source/d7.2_x1.5/table/announcements.php deleted file mode 100644 index 8c5f45b7..00000000 --- a/utility/convert/source/d7.2_x1.5/table/announcements.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'announcements'; -$table_target = $db_target->tablepre.'forum_announcement'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/attachmentfields.php b/utility/convert/source/d7.2_x1.5/table/attachmentfields.php deleted file mode 100644 index 1aaa5f7f..00000000 --- a/utility/convert/source/d7.2_x1.5/table/attachmentfields.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'attachmentfields'; -$table_target = $db_target->tablepre.'forum_attachmentfield'; - -$limit = $setting['limit']['attachmentfields'] ? $setting['limit']['attachmentfields'] : 2500; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE aid>'$start' ORDER BY aid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['aid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." aid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/attachments.php b/utility/convert/source/d7.2_x1.5/table/attachments.php deleted file mode 100644 index b303caf0..00000000 --- a/utility/convert/source/d7.2_x1.5/table/attachments.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'attachments'; -$table_target = $db_target->tablepre.'forum_attachment'; - -$limit = $setting['limit']['attachments'] ? $setting['limit']['attachments'] : 2500; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE aid>'$start' ORDER BY aid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['aid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." aid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/attachpaymentlog.php b/utility/convert/source/d7.2_x1.5/table/attachpaymentlog.php deleted file mode 100644 index 4e5e6684..00000000 --- a/utility/convert/source/d7.2_x1.5/table/attachpaymentlog.php +++ /dev/null @@ -1,76 +0,0 @@ -tablepre.'attachpaymentlog'; -$table_target = $db_target->tablepre.'common_credit_log'; - -$limit = $setting['limit']['attachpaymentlog'] ? $setting['limit']['attachpaymentlog'] : 2500; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start) && !$process['truncate_credit_log']) { - $start = 0; - $process['truncate_credit_log'] = 1; - save_process('main', $process); - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM ".$db_source->tablepre."settings WHERE variable IN ('creditstax', 'creditstrans')"); -while($setting = $db_source->fetch_array($query)) { - if($setting['variable'] == 'creditstrans') { - $creditstrans = explode(',', $setting['value']); - $ext = $creditstrans[1] ? $creditstrans[1] : $creditstrans[0]; - if(!$ext) { - $ext = 1; - } - } - if($setting['variable'] == 'creditstax') { - $creditstax = $setting['value']; - } -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $rownew = array(); - $rownew['uid'] = $row['uid']; - $rownew['operation'] = 'BAC'; - $rownew['relatedid'] = $row['aid']; - $rownew['dateline'] = $row['dateline']; - $rownew['extcredits'.$ext] = -$row['amount']; - - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - - $rownew = array(); - $rownew['uid'] = $row['authorid']; - $rownew['operation'] = 'SAC'; - $rownew['relatedid'] = $row['aid']; - $rownew['dateline'] = $row['dateline']; - $rownew['extcredits'.$ext] = $row['netamount']; - - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/attachtypes.php b/utility/convert/source/d7.2_x1.5/table/attachtypes.php deleted file mode 100644 index ea792aa2..00000000 --- a/utility/convert/source/d7.2_x1.5/table/attachtypes.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'attachtypes'; -$table_target = $db_target->tablepre.'forum_attachtype'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/banned.php b/utility/convert/source/d7.2_x1.5/table/banned.php deleted file mode 100644 index 03b4fa83..00000000 --- a/utility/convert/source/d7.2_x1.5/table/banned.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'banned'; -$table_target = $db_target->tablepre.'common_banned'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/bbcodes.php b/utility/convert/source/d7.2_x1.5/table/bbcodes.php deleted file mode 100644 index 15414a92..00000000 --- a/utility/convert/source/d7.2_x1.5/table/bbcodes.php +++ /dev/null @@ -1,51 +0,0 @@ -tablepre.'usergroups'; -$table_source = $db_source->tablepre.'bbcodes'; -$table_target = $db_target->tablepre.'forum_bbcode'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$allowcusbbcodes = array(); -$query = $db_source->query("SELECT * FROM $table_source_usergroup"); -while($row = $db_source->fetch_array($query)) { - if($row['allowcusbbcode']) { - $allowcusbbcodes[] = $row['groupid']; - } -} - - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row['perm'] = implode("\t", $allowcusbbcodes); - - $row = daddslashes($row, 1); - - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/creditslog.php b/utility/convert/source/d7.2_x1.5/table/creditslog.php deleted file mode 100644 index 6b02ef65..00000000 --- a/utility/convert/source/d7.2_x1.5/table/creditslog.php +++ /dev/null @@ -1,97 +0,0 @@ -tablepre.'creditslog'; -$table_target = $db_target->tablepre.'common_credit_log'; - -$limit = 2000; -$nextid = 0; - -$start = intval(getgpc('start')); -if(empty($start) && !$process['truncate_credit_log']) { - $start = 0; - $process['truncate_credit_log'] = 1; - save_process('main', $process); - $db_target->query("TRUNCATE $table_target"); -} - -$rowlist = $userarr = array(); -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - $nextid = 1; - $rowlist[] = $row; - $userarr[$row['fromto']] = $row['fromto']; -} - -if($nextid) { - $userarr = daddslashes($userarr, 1); - $usernames = implode("', '", $userarr); - $query = $db_source->query("SELECT * FROM ".$db_source->tablepre."members WHERE username IN('$usernames')"); - while($row = $db_source->fetch_array($query)) { - $userarr[$row['username']] = $row['uid']; - } - - foreach($rowlist as $row) { - $rownew = array(); - if(in_array($row['operation'], array('AFD', 'TFR', 'RCV'))) { - $rownew['uid'] = $row['uid']; - if($row['operation'] == 'RCV' && $row['fromto'] == 'TASK REWARD') { - $rownew['operation'] = 'TRC'; - $rownew['relatedid'] = 0; - } else { - $rownew['operation'] = $row['operation']; - $rownew['relatedid'] = $userarr[$row['fromto']]; - } - - $rownew['dateline'] = $row['dateline']; - if($row['receive']) { - $rownew['extcredits'.$row['receivecredits']] = $row['receive']; - } - if($row['send']) { - $rownew['extcredits'.$row['sendcredits']] = -$row['send']; - } - } elseif($row['operation'] == 'UGP') { - $rownew['uid'] = $row['uid']; - $rownew['operation'] = $row['operation']; - $rownew['relatedid'] = 0; - $rownew['dateline'] = $row['dateline']; - if($row['receive']) { - $rownew['extcredits'.$row['receivecredits']] = $row['receive']; - } - if($row['send']) { - $rownew['extcredits'.$row['sendcredits']] = -$row['send']; - } - } elseif($row['operation'] == 'EXC') { - $rownew['uid'] = $row['uid']; - $rownew['operation'] = 'ECU'; - $rownew['relatedid'] = $row['uid']; - $rownew['dateline'] = $row['dateline']; - if($row['receive']) { - $rownew['extcredits'.$row['receivecredits']] = $row['receive']; - } - if($row['send']) { - $rownew['extcredits'.$row['sendcredits']] = -$row['send']; - } - } - if($rownew) { - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } - } -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/debateposts.php b/utility/convert/source/d7.2_x1.5/table/debateposts.php deleted file mode 100644 index 7fba5725..00000000 --- a/utility/convert/source/d7.2_x1.5/table/debateposts.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'debateposts'; -$table_target = $db_target->tablepre.'forum_debatepost'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE pid>'$start' ORDER BY pid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['pid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." pid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/debates.php b/utility/convert/source/d7.2_x1.5/table/debates.php deleted file mode 100644 index 8d7d1a01..00000000 --- a/utility/convert/source/d7.2_x1.5/table/debates.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'debates'; -$table_target = $db_target->tablepre.'forum_debate'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE tid>'$start' ORDER BY tid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['tid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." tid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/favorites.php b/utility/convert/source/d7.2_x1.5/table/favorites.php deleted file mode 100644 index de8da9f9..00000000 --- a/utility/convert/source/d7.2_x1.5/table/favorites.php +++ /dev/null @@ -1,56 +0,0 @@ -tablepre.'favorites'; -$table_target = $db_target->tablepre.'home_favorite'; - -$limit = 100; -$nextid = 0; - -$start = getgpc('start'); -$nextstep = intval(getgpc('nextstep')); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row['id'] = 0; - $row['idtype'] = ''; - - if($row['tid']) { - $row['title'] = $db_source->result_first("SELECT subject FROM ".$db_source->tablepre."threads WHERE tid='".$row['tid']."'"); - $row['id'] = $row['tid']; - $row['idtype'] = 'tid'; - } elseif($row['fid']) { - $row['title'] = $db_source->result_first("SELECT name FROM ".$db_source->tablepre."forums WHERE fid='".$row['fid']."'"); - $row['id'] = $row['fid']; - $row['idtype'] = 'fid'; - } - $row = daddslashes($row, 1); - - if($row['id']) { - unset($row['tid'], $row['fid']); - $row['dateline'] = time(); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - } - -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/forumfields.php b/utility/convert/source/d7.2_x1.5/table/forumfields.php deleted file mode 100644 index 13452e55..00000000 --- a/utility/convert/source/d7.2_x1.5/table/forumfields.php +++ /dev/null @@ -1,90 +0,0 @@ -tablepre.'forumfields'; -$table_target = $db_target->tablepre.'forum_forumfield'; -$table_targetcreditrule = $db_target->tablepre.'common_credit_rule'; -$table_sourceforum = $db_source->tablepre.'forums'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); - $db_target->query("UPDATE $table_targetcreditrule SET fids=''"); -} - -$rules = $ruleaction = array(); -$query = $db_target->query("SELECT * FROM $table_targetcreditrule WHERE action IN('reply', 'post', 'digest', 'postattach', 'getattach')"); -while($value = $db_target->fetch_array($query)) { - $rules[$value['rid']] = $value; - $ruleaction[$value['action']] = $value['rid']; -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE fid>'$start' ORDER BY fid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['fid']; - - $credits = array(); - $credits['post'] = unserialize($row['postcredits']); - $credits['reply'] = unserialize($row['replycredits']); - $credits['getattach'] = unserialize($row['getattachcredits']); - $credits['postattach'] = unserialize($row['postattachcredits']); - $credits['digest'] = unserialize($row['digestcredits']); - $row['creditspolicy'] = array(); - foreach($credits as $caction => $credits) { - if($credits) { - $rid = $ruleaction[$caction]; - $row['creditspolicy'] = $rules[$rid]; - foreach($credits as $i => $v) { - $row['creditspolicy']['extcredits'.$i] = $v; - } - $rules[$rid]['fids'] = $db_target->result_first("SELECT fids FROM $table_targetcreditrule WHERE rid='".$rid."'"); - $cpfids = explode(',', $rules[$rid]['fids']); - $cpfidsnew = array(); - foreach($cpfids as $cpfid) { - if(!$cpfid) { - continue; - } - if($cpfid != $row['fid']) { - $cpfidsnew[] = $cpfid; - } - } - $cpfidsnew[] = $row['fid']; - $db_target->query("UPDATE $table_targetcreditrule SET fids='".implode(',', $cpfidsnew)."' WHERE rid='".$rid."'"); - } - } - $row['creditspolicy'] = $row['creditspolicy'] ? serialize($row['creditspolicy']) : ''; - - unset($row['tradetypes'], $row['typemodels'], $row['postcredits'], $row['replycredits'], $row['getattachcredits'], $row['postattachcredits'], $row['digestcredits']); - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." fid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -$fids = array(); -$db_source->query("SELECT fid FROM $table_sourceforum WHERE status='2'"); -while($value = $db_source->fetch_array($query)) { - $fids[] = $value['fid']; -} -if($fids) { - $db_target->query("UPDATE $table_target SET hidemenu='1' WHERE fid IN ('".implode("','", $fids)."')"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/forumlinks.php b/utility/convert/source/d7.2_x1.5/table/forumlinks.php deleted file mode 100644 index 01527cd8..00000000 --- a/utility/convert/source/d7.2_x1.5/table/forumlinks.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'forumlinks'; -$table_target = $db_target->tablepre.'common_friendlink'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/forumrecommend.php b/utility/convert/source/d7.2_x1.5/table/forumrecommend.php deleted file mode 100644 index 4c663c4a..00000000 --- a/utility/convert/source/d7.2_x1.5/table/forumrecommend.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'forumrecommend'; -$table_target = $db_target->tablepre.'forum_forumrecommend'; - -$limit = 2500; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE tid>'$start' ORDER BY tid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['tid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." tid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/forums.php b/utility/convert/source/d7.2_x1.5/table/forums.php deleted file mode 100644 index eb118690..00000000 --- a/utility/convert/source/d7.2_x1.5/table/forums.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'forums'; -$table_target = $db_target->tablepre.'forum_forum'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE fid>'$start' ORDER BY fid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['fid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." fid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/imagetypes.php b/utility/convert/source/d7.2_x1.5/table/imagetypes.php deleted file mode 100644 index 0e0d8e7d..00000000 --- a/utility/convert/source/d7.2_x1.5/table/imagetypes.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'imagetypes'; -$table_target = $db_target->tablepre.'forum_imagetype'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE typeid>'$start' ORDER BY typeid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['typeid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." typeid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/itempool.php b/utility/convert/source/d7.2_x1.5/table/itempool.php deleted file mode 100644 index 3c25eafd..00000000 --- a/utility/convert/source/d7.2_x1.5/table/itempool.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'itempool'; -$table_target = $db_target->tablepre.'common_secquestion'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/magiclog.php b/utility/convert/source/d7.2_x1.5/table/magiclog.php deleted file mode 100644 index 080c9aaa..00000000 --- a/utility/convert/source/d7.2_x1.5/table/magiclog.php +++ /dev/null @@ -1,42 +0,0 @@ -tablepre.'magiclog'; -$table_target = $db_target->tablepre.'common_magiclog'; - -$limit = 2000; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row['targetid'] = $row['targettid'] ? $row['targettid'] : 0; - $row['idtype'] = $row['targettid'] ? 'tid' : ''; - unset($row['targettid'], $row['targetpid']); - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/magics.php b/utility/convert/source/d7.2_x1.5/table/magics.php deleted file mode 100644 index 470211bb..00000000 --- a/utility/convert/source/d7.2_x1.5/table/magics.php +++ /dev/null @@ -1,62 +0,0 @@ -tablepre.'magics'; -$table_target = $db_target->tablepre.'common_magic'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$identifier = array( - 'CCK' => 'highlight', - 'MOK' => 'money', - 'SEK' => 'showip', - 'UPK' => 'bump', - 'TOK' => 'stick', - 'REK' => 'repent', - 'RTK' => 'checkonline', - 'CLK' => 'close', - 'OPK' => 'open', - 'YSK' => 'anonymouspost', - 'CBK' => 'namepost', -); - -$query = $db_source->query("SELECT * FROM $table_source WHERE magicid>'$start' ORDER BY magicid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['magicid']; - if($row['identifier'] == 'MVK') { - continue; - } - - unset($row['type'], $row['recommend'], $row['filename']); - $row['useevent'] = $row['identifier'] == 'MOK' ? 1 : 0; - $row['identifier'] = $identifier[$row['identifier']]; - if(!$row['identifier']) { - continue; - } - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." magicid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/medallog.php b/utility/convert/source/d7.2_x1.5/table/medallog.php deleted file mode 100644 index 7bac7ff0..00000000 --- a/utility/convert/source/d7.2_x1.5/table/medallog.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'medallog'; -$table_target = $db_target->tablepre.'forum_medallog'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE uid>'$start' ORDER BY uid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['uid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." uid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/medals.php b/utility/convert/source/d7.2_x1.5/table/medals.php deleted file mode 100644 index c3df74b0..00000000 --- a/utility/convert/source/d7.2_x1.5/table/medals.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'medals'; -$table_target = $db_target->tablepre.'forum_medal'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE medalid>'$start' ORDER BY medalid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['medalid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." medalid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/membermagics.php b/utility/convert/source/d7.2_x1.5/table/membermagics.php deleted file mode 100644 index 003b3c4b..00000000 --- a/utility/convert/source/d7.2_x1.5/table/membermagics.php +++ /dev/null @@ -1,50 +0,0 @@ -tablepre.'membermagics'; -$table_sourcemarket = $db_source->tablepre.'magicmarket'; -$table_target = $db_target->tablepre.'common_member_magic'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - $query = $db_source->query("SELECT * FROM $table_sourcemarket"); - while ($row = $db_source->fetch_array($query)) { - $row = daddslashes($row, 1); - $mm = $db_target->fetch_first("SELECT * FROM $table_target WHERE uid='$row[uid]' AND magicid='$row[magicid]'"); - if($mm) { - $db_target->query("UPDATE $table_target SET num=num+'$row[num]' WHERE uid='$row[uid]' AND magicid='$row[magicid]'"); - } else { - $db_target->query("INSERT INTO $table_target SET uid='$row[uid]', magicid='$row[magicid]', num='$row[num]'"); - } - } - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/memberrecommend.php b/utility/convert/source/d7.2_x1.5/table/memberrecommend.php deleted file mode 100644 index 665ee9e2..00000000 --- a/utility/convert/source/d7.2_x1.5/table/memberrecommend.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'memberrecommend'; -$table_target = $db_target->tablepre.'forum_memberrecommend'; - -$limit = 1000; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/members.php b/utility/convert/source/d7.2_x1.5/table/members.php deleted file mode 100644 index 65461a02..00000000 --- a/utility/convert/source/d7.2_x1.5/table/members.php +++ /dev/null @@ -1,159 +0,0 @@ -tablepre.'members'; -$table_target = $db_target->tablepre.'common_member'; -$table_target_admincp = $db_target->tablepre.'common_admincp_member'; - -$limit = $setting['limit']['members'] ? $setting['limit']['members'] : 2000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); - $db_target->query("TRUNCATE $table_target_admincp"); - $db_target->query("TRUNCATE {$table_target}_count"); - $db_target->query("TRUNCATE {$table_target}_field_forum"); - $db_target->query("TRUNCATE {$table_target}_field_home"); - $db_target->query("TRUNCATE {$table_target}_log"); - $db_target->query("TRUNCATE {$table_target}_profile"); - $db_target->query("TRUNCATE {$table_target}_status"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE uid>'$start' ORDER BY uid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - if($row['adminid'] == 1) { - $adminrow = array('uid' => $row['uid'], 'cpgroupid' => '0', 'customperm' => ''); - $data = implode_field_value($adminrow); - $db_target->query("INSERT INTO {$table_target_admincp} SET $data"); - } - - $rowfield = $db_source->fetch_first("SELECT * FROM ".$db_source->tablepre."memberfields WHERE uid='$row[uid]'"); - $rowfield = daddslashes($rowfield, 1); - - $nextid = $row['uid']; - $emptyrow = array('uid' => $row['uid']); - $data = implode_field_value($emptyrow); - $db_target->query("INSERT INTO {$table_target}_count SET $data"); - $db_target->query("INSERT INTO {$table_target}_field_forum SET $data"); - $db_target->query("INSERT INTO {$table_target}_field_home SET $data"); - $db_target->query("INSERT INTO {$table_target}_log SET $data"); - $db_target->query("INSERT INTO {$table_target}_profile SET $data"); - $db_target->query("INSERT INTO {$table_target}_status SET $data"); - - $row = daddslashes($row, 1); - - $unset = array( - 'regip', - 'lastip', - 'lastvisit', - 'lastactivity', - 'lastpost', - 'posts', - 'threads', - 'digestposts', - 'pageviews', - 'extcredits1', - 'extcredits2', - 'extcredits3', - 'extcredits4', - 'extcredits5', - 'extcredits6', - 'extcredits7', - 'extcredits8', - 'bday', - 'sigstatus', - 'tpp', - 'ppp', - 'styleid', - 'dateformat', - 'timeformat', - 'pmsound', - 'showemail', - 'newsletter', - 'invisible', - 'prompt', - 'editormode', - 'customshow', - 'xspacestatus', - 'customaddfeed', - 'newbietaskid', - 'secques', - 'gender', - ); - list($year, $month, $day) = explode('-', $row['bday']); - $row['notifysound'] = $row['pmsound']; - $update = array( - 'status' => array( - 'regip' => $row['regip'], - 'lastip' => $row['lastip'], - 'lastvisit' => $row['lastvisit'], - 'lastactivity' => $row['lastactivity'], - 'lastpost' => $row['lastpost'], - 'buyercredit' => $row['buyercredit'], - 'sellercredit' => $row['sellercredit'], - ), - 'count' => array( - 'posts' => $row['posts'], - 'threads' => $row['threads'], - 'digestposts' => $row['digestposts'], - 'extcredits1' => $row['extcredits1'], - 'extcredits2' => $row['extcredits2'], - 'extcredits3' => $row['extcredits3'], - 'extcredits4' => $row['extcredits4'], - 'extcredits5' => $row['extcredits5'], - 'extcredits6' => $row['extcredits6'], - 'extcredits7' => $row['extcredits7'], - 'extcredits8' => $row['extcredits8'], - 'oltime' => $row['oltime'], - ), - 'profile' => array( - 'birthyear' => $year, - 'birthmonth' => $month, - 'birthday' => $day, - 'gender' => $row['gender'], - 'site' => $rowfield['site'], - 'alipay' => $rowfield['alipay'], - 'icq' => $rowfield['icq'], - 'qq' => $rowfield['qq'], - 'yahoo' => $rowfield['yahoo'], - 'msn' => $rowfield['msn'], - 'taobao' => $rowfield['taobao'], - 'address' => $rowfield['location'], - 'bio' => $rowfield['bio'], - ), - 'field_forum' => array( - 'customshow' => $row['customshow'], - 'customstatus' => $rowfield['customstatus'], - 'medals' => $rowfield['medals'], - 'sightml' => $rowfield['sightml'], - 'groupterms' => $rowfield['groupterms'], - 'authstr' => $rowfield['authstr'], - ) - ); - foreach($unset as $k) { - unset($row[$k]); - } - foreach($update as $table => $trow) { - $data = implode_field_value($trow, ',', db_table_fields($db_target, $table_target.'_'.$table)); - $db_target->query("UPDATE {$table_target}_$table SET $data WHERE uid='$row[uid]'"); - } - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." uid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/moderators.php b/utility/convert/source/d7.2_x1.5/table/moderators.php deleted file mode 100644 index 11467cf2..00000000 --- a/utility/convert/source/d7.2_x1.5/table/moderators.php +++ /dev/null @@ -1,41 +0,0 @@ -tablepre . 'moderators'; -$table_target = $db_target->tablepre . 'forum_moderator'; - -$limit = 1000; -$step = getgpc('step'); -$step = intval($step); - -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("TRUNCATE $table_target"); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/modworks.php b/utility/convert/source/d7.2_x1.5/table/modworks.php deleted file mode 100644 index fbb0f7aa..00000000 --- a/utility/convert/source/d7.2_x1.5/table/modworks.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre . 'modworks'; -$table_target = $db_target->tablepre . 'forum_modwork'; - -$limit = 1000; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("TRUNCATE $table_target"); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/myrepeats.php b/utility/convert/source/d7.2_x1.5/table/myrepeats.php deleted file mode 100644 index 39af1f8e..00000000 --- a/utility/convert/source/d7.2_x1.5/table/myrepeats.php +++ /dev/null @@ -1,45 +0,0 @@ -tablepre.'myrepeats'; -$table_target = $db_target->tablepre.'myrepeats'; - -$limit = 2000; -$nextid = 0; - -$query1 = $db_source->result($db_source->query("SHOW FIELDS FROM $table_source", 'SILENT'), 0); -$query2 = $db_target->result($db_target->query("SHOW FIELDS FROM $table_target", 'SILENT'), 0); -$pass = $query1 && $query2; - -if($pass) { - $start = getgpc('start'); - if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } - - $query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); - while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } - - if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); - } -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/mytasks.php b/utility/convert/source/d7.2_x1.5/table/mytasks.php deleted file mode 100644 index ba6b1eab..00000000 --- a/utility/convert/source/d7.2_x1.5/table/mytasks.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre . 'mytasks'; -$table_target = $db_target->tablepre . 'common_mytask'; - -$limit = 2500; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("TRUNCATE $table_target"); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/navs.php b/utility/convert/source/d7.2_x1.5/table/navs.php deleted file mode 100644 index ab4943af..00000000 --- a/utility/convert/source/d7.2_x1.5/table/navs.php +++ /dev/null @@ -1,49 +0,0 @@ -tablepre . 'navs'; -$table_target = $db_target->tablepre . 'common_nav'; - -$limit = 250; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("DELETE FROM $table_target WHERE type<>'0'"); - $maxid = $db_target->result_first("SELECT MAX(id) FROM $table_target"); - $maxid = intval($maxid); - $db_target->query("ALTER TABLE $table_target AUTO_INCREMENT=".($maxid+1)); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source WHERE type<>'0' ORDER BY parentid DESC LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row['available'] = '0'; - $row['icon'] = $row['subname'] = $row['suburl'] = ''; - $row = daddslashes($row, 1); - $orig_id = $row['id']; - unset($row['id']); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $newid = $db_target->insert_id(); - $db_target->query("UPDATE $table_target SET parentid='$newid' WHERE parentid='$orig_id'"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/onlinelist.php b/utility/convert/source/d7.2_x1.5/table/onlinelist.php deleted file mode 100644 index db43a7d4..00000000 --- a/utility/convert/source/d7.2_x1.5/table/onlinelist.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre . 'onlinelist'; -$table_target = $db_target->tablepre . 'forum_onlinelist'; - -$limit = 250; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("TRUNCATE $table_target"); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/onlinetime.php b/utility/convert/source/d7.2_x1.5/table/onlinetime.php deleted file mode 100644 index a59fb4ce..00000000 --- a/utility/convert/source/d7.2_x1.5/table/onlinetime.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'onlinetime'; -$table_target = $db_target->tablepre.'common_onlinetime'; - -$limit = 2000; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE uid>'$start' ORDER BY uid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['uid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." uid > $nextid ", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/orders.php b/utility/convert/source/d7.2_x1.5/table/orders.php deleted file mode 100644 index da473da0..00000000 --- a/utility/convert/source/d7.2_x1.5/table/orders.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre . 'orders'; -$table_target = $db_target->tablepre . 'forum_order'; - -$limit = $setting['limit']['orders'] ? $setting['limit']['orders'] : 2500; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("TRUNCATE $table_target"); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/paymentlog.php b/utility/convert/source/d7.2_x1.5/table/paymentlog.php deleted file mode 100644 index 44715446..00000000 --- a/utility/convert/source/d7.2_x1.5/table/paymentlog.php +++ /dev/null @@ -1,79 +0,0 @@ -tablepre . 'paymentlog'; -$table_target = $db_target->tablepre . 'common_credit_log'; - -$limit = $setting['limit']['paymentlog'] ? $setting['limit']['paymentlog'] : 2500; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; -if(!$step && !$process['truncate_credit_log']) { - $process['truncate_credit_log'] = 1; - save_process('main', $process); - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM ".$db_source->tablepre."settings WHERE variable IN ('creditstax', 'creditstrans')"); -while($setting = $db_source->fetch_array($query)) { - if($setting['variable'] == 'creditstrans') { - $creditstrans = explode(',', $setting['value']); - $ext = $creditstrans[1] ? $creditstrans[1] : $creditstrans[0]; - if(!$ext) { - $ext = 1; - } - } - if($setting['variable'] == 'creditstax') { - $creditstax = $setting['value']; - } -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - - $rownew = array(); - $rownew['uid'] = $row['uid']; - $rownew['operation'] = 'BTC'; - $rownew['relatedid'] = $row['tid']; - $rownew['dateline'] = $row['dateline']; - $rownew['extcredits'.$ext] = -$row['amount']; - - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - - $rownew = array(); - $rownew['uid'] = $row['authorid']; - $rownew['operation'] = 'STC'; - $rownew['relatedid'] = $row['tid']; - $rownew['dateline'] = $row['dateline']; - $rownew['extcredits'.$ext] = $row['netamount']; - - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/polloptions.php b/utility/convert/source/d7.2_x1.5/table/polloptions.php deleted file mode 100644 index df7f91d9..00000000 --- a/utility/convert/source/d7.2_x1.5/table/polloptions.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre . 'polloptions'; -$table_target = $db_target->tablepre . 'forum_polloption'; -$table_pollvoter = $db_target->tablepre . 'forum_pollvoter'; - -$limit = $setting['limit']['polloptions'] ? $setting['limit']['polloptions'] : 1000; - -$nextid = 0; -$start = getgpc('start'); -$continue = false; - -if(!$start) { - $db_target->query("TRUNCATE $table_target"); - $db_target->query("TRUNCATE $table_pollvoter"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE polloptionid>'$start' LIMIT $limit"); -while($row = $db_source->fetch_array($query)) { - $nextid = $row['polloptionid']; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - - $voterids = trim($row['voterids']); - $voterids = explode("\t", $voterids); - foreach($voterids as $voterid) { - $count = $db_target->result_first("SELECT COUNT(*) FROM $table_pollvoter WHERE tid='{$row['tid']}' AND uid='$voterid' LIMIT 1"); - if(!$count) { - $username = daddslashes($db_source->result_first("SELECT username FROM {$db_source->tablepre}members WHERE uid='$voterid'"), 1); - $db_target->query("INSERT INTO $table_pollvoter SET tid='{$row['tid']}', uid='$voterid', username='$username', options='', dateline='0'"); - } - } -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." polloptionid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/polls.php b/utility/convert/source/d7.2_x1.5/table/polls.php deleted file mode 100644 index e3fbab8d..00000000 --- a/utility/convert/source/d7.2_x1.5/table/polls.php +++ /dev/null @@ -1,57 +0,0 @@ -tablepre . 'polls'; -$table_target = $db_target->tablepre . 'forum_poll'; - -$limit = $setting['limit']['polls'] ? $setting['limit']['polls'] : 1000; -$start = getgpc('start'); - -$nextid = 0; - -if(!$start) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE tid>'$start' ORDER BY tid LIMIT $limit"); -while($poll = $db_source->fetch_array($query)) { - $nextid = $poll['tid']; - $query_p = $db_source->query("SELECT voterids FROM {$db_source->tablepre}polloptions WHERE tid='{$poll['tid']}'"); - $voterids = array(); - while($option = $db_source->fetch_array($query_p)) { - $voters_t = explode("\t", $option['voterids']); - foreach($voters_t as $value) { - if(!empty($value)) { - $voterids[] = $value; - } - } - } - $voters = array_unique($voterids); - $voterscount = count($voters); - - $poll['voters'] = $voterscount; - - $polloptionpreview = ''; - $query_p = $db_source->query("SELECT polloption FROM {$db_source->tablepre}polloptions WHERE tid='{$poll['tid']}' ORDER BY displayorder LIMIT 2"); - while($option = $db_source->fetch_array($query_p)) { - $polloptvalue = preg_replace("/\[url=(https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|ed2k|thunder|synacast){1}:\/\/([^\[\"']+?)\](.+?)\[\/url\]/i", "\\3", $option['polloption']); - $polloptionpreview .= $polloptvalue."\t"; - } - - $poll['pollpreview'] = $polloptionpreview; - $poll = daddslashes($poll, 1); - $data = implode_field_value($poll, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source.",tid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/postposition.php b/utility/convert/source/d7.2_x1.5/table/postposition.php deleted file mode 100644 index e855499d..00000000 --- a/utility/convert/source/d7.2_x1.5/table/postposition.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre . 'postposition'; -$table_target = $db_target->tablepre . 'forum_postposition'; - -$limit = 2500; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("TRUNCATE $table_target"); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/posts.php b/utility/convert/source/d7.2_x1.5/table/posts.php deleted file mode 100644 index aa25c1d0..00000000 --- a/utility/convert/source/d7.2_x1.5/table/posts.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre . 'posts'; -$table_target = $db_target->tablepre . 'forum_post'; - -$limit = $setting['limit']['posts'] ? $setting['limit']['posts'] : 5000; -$start = getgpc('start'); -$start = intval($start); -$nextid = 0; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE pid>'$start' LIMIT $limit"); -while($row = $db_source->fetch_array($query)) { - $nextid = $row['pid']; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." pid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} else { - $maxpid = $db_target->result_first("SELECT MAX(pid) FROM $table_target"); - $maxpid = intval($maxpid) + 1; - $db_target->query("ALTER TABLE ".$db_target->tablepre.'forum_post_tableid'." AUTO_INCREMENT=$maxpid"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/promotions.php b/utility/convert/source/d7.2_x1.5/table/promotions.php deleted file mode 100644 index 039e36c6..00000000 --- a/utility/convert/source/d7.2_x1.5/table/promotions.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre . 'promotions'; -$table_target = $db_target->tablepre . 'forum_promotion'; - -$limit = 1000; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("TRUNCATE $table_target"); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/ratelog.php b/utility/convert/source/d7.2_x1.5/table/ratelog.php deleted file mode 100644 index 419b30cb..00000000 --- a/utility/convert/source/d7.2_x1.5/table/ratelog.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'ratelog'; -$table_target = $db_target->tablepre.'forum_ratelog'; - -$limit = 1000; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY dateline LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - $next = $start + $limit; - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=$next"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/regips.php b/utility/convert/source/d7.2_x1.5/table/regips.php deleted file mode 100644 index 08abee72..00000000 --- a/utility/convert/source/d7.2_x1.5/table/regips.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'regips'; -$table_target = $db_target->tablepre.'common_regip'; - -$limit = 1000; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY dateline LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - $next = $start + $limit; - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=$next"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/rewardlog.php b/utility/convert/source/d7.2_x1.5/table/rewardlog.php deleted file mode 100644 index ccaa4528..00000000 --- a/utility/convert/source/d7.2_x1.5/table/rewardlog.php +++ /dev/null @@ -1,77 +0,0 @@ -tablepre.'rewardlog'; -$table_target = $db_target->tablepre.'common_credit_log'; - -$limit = 1000; -$nextid = 0; - -$start = intval(getgpc('start')); -if(empty($start) && !$process['truncate_credit_log']) { - $start = 0; - $process['truncate_credit_log'] = 1; - save_process('main', $process); - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM ".$db_source->tablepre."settings WHERE variable IN ('creditstax', 'creditstrans')"); -while($setting = $db_source->fetch_array($query)) { - if($setting['variable'] == 'creditstrans') { - $creditstrans = explode(',', $setting['value']); - $ext = $creditstrans[2] ? $creditstrans[2] : $creditstrans[0]; - if(!$ext) { - $ext = 1; - } - } - if($setting['variable'] == 'creditstax') { - $creditstax = $setting['value']; - } -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE netamount>'0' ORDER BY dateline LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - if($row['answererid'] > 0) { - $rownew = array(); - $rownew['uid'] = $row['answererid']; - $rownew['operation'] = 'RAC'; - $rownew['relatedid'] = $row['tid']; - $rownew['dateline'] = $row['dateline']; - $rownew['extcredits'.$ext] = $row['netamount']; - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } else { - $rownew = array(); - $rownew['uid'] = $row['authorid']; - $rownew['operation'] = 'RTC'; - $rownew['relatedid'] = $row['tid']; - $rownew['dateline'] = $row['dateline']; - $rownew['extcredits'.$ext] = -ceil($row['netamount'] / (1 - $creditstax)); - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } - -} - -if($nextid) { - $next = $start + $limit; - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=$next"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/settings.php b/utility/convert/source/d7.2_x1.5/table/settings.php deleted file mode 100644 index beed9767..00000000 --- a/utility/convert/source/d7.2_x1.5/table/settings.php +++ /dev/null @@ -1,67 +0,0 @@ -tablepre.'settings'; -$table_target = $db_target->tablepre.'common_setting'; - -$newsetting = array(); -$query = $db_target->query("SELECT * FROM $table_target"); -while($row = $db_source->fetch_array($query)) { - $newsetting[$row['skey']] = $row['skey']; -} - -$skips = array('attachdir', 'attachurl', 'cachethreaddir', 'jspath', 'my_status'); - -$query = $db_source->query("SELECT * FROM $table_source"); -while ($row = $db_source->fetch_array($query)) { - if(in_array($row['variable'], $skips)) continue; - - if(isset($newsetting[$row['variable']])) { - $rownew['svalue'] = array(); - if($row['variable'] == 'my_search_status' && $row['value'] != -1) { - $row['value'] = 0; - } - if(in_array($row['variable'], array('watermarkminheight', 'watermarkminwidth', 'watermarkquality', 'watermarkstatus', 'watermarktext', 'watermarktrans', 'watermarktype'))) { - $rownew['skey'] = $row['variable']; - $rownew['svalue'] = array(); - if($row['variable'] == 'watermarktype') { - $watermarktype_map = array( - 0 => 'gif', - 1 => 'png', - 2 => 'text', - ); - $rownew['svalue']['forum'] = $watermarktype_map[$row['value']]; - } elseif($row['variable'] == 'watermarktext') { - $dataold = (array)unserialize($row['value']); - foreach($dataold as $data_k => $data_v) { - $rownew['svalue'][$data_k]['forum'] = $data_v; - } - } else { - $dataold = $row['value']; - $rownew['svalue']['forum'] = $dataold; - } - $rownew['svalue'] = serialize($rownew['svalue']); - } elseif(in_array($row['variable'], array('seotitle', 'seodescription', 'seokeywords'))) { - $rownew['skey'] = $row['variable']; - $rownew['svalue'] = array(); - $rownew['svalue']['forum'] = $row['value']; - } else { - $rownew['skey'] = $row['variable']; - - $rownew['svalue'] = $row['value']; - } - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("REPLACE INTO $table_target SET $data"); - } -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/smilies.php b/utility/convert/source/d7.2_x1.5/table/smilies.php deleted file mode 100644 index b0629244..00000000 --- a/utility/convert/source/d7.2_x1.5/table/smilies.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'smilies'; -$table_target = $db_target->tablepre.'common_smiley'; - -$limit = 100; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>$start ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid ", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/tasks.php b/utility/convert/source/d7.2_x1.5/table/tasks.php deleted file mode 100644 index b81630f9..00000000 --- a/utility/convert/source/d7.2_x1.5/table/tasks.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'tasks'; -$table_target = $db_target->tablepre.'common_task'; - -$limit = 100; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE newbietask=0 AND taskid>$start ORDER BY taskid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['taskid']; - - unset($row['newbietask'], $row['type']); - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." taskid > $nextid ", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/taskvars.php b/utility/convert/source/d7.2_x1.5/table/taskvars.php deleted file mode 100644 index 9a7581f8..00000000 --- a/utility/convert/source/d7.2_x1.5/table/taskvars.php +++ /dev/null @@ -1,45 +0,0 @@ -tablepre.'taskvars'; -$table_target = $db_target->tablepre.'common_taskvar'; - -$limit = 100; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$taskids = 0; -$query = $db_source->query("SELECT * FROM ".$db_source->tablepre.'tasks'); -while($row = $db_source->fetch_array($query)) { - $taskids .= ", $row[taskid]"; -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE taskid IN ($taskids) AND taskvarid>$start ORDER BY taskvarid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['taskvarid']; - - unset($row['extra']); - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." taskvarid > $nextid ", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/threads.php b/utility/convert/source/d7.2_x1.5/table/threads.php deleted file mode 100644 index 0740b958..00000000 --- a/utility/convert/source/d7.2_x1.5/table/threads.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'threads'; -$table_target = $db_target->tablepre.'forum_thread'; - -$limit = $setting['limit']['threads'] ? $setting['limit']['threads'] : 2500; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE tid>'$start' ORDER BY tid LIMIT $limit"); -while ($thread = $db_source->fetch_array($query)) { - - $nextid = $thread['tid']; - - unset($thread['iconid'], $thread['itemid'], $thread['supe_pushstatus']); - - $thread = daddslashes($thread, 1); - - $data = implode_field_value($thread, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." tid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/threadsmod.php b/utility/convert/source/d7.2_x1.5/table/threadsmod.php deleted file mode 100644 index 982bdc1f..00000000 --- a/utility/convert/source/d7.2_x1.5/table/threadsmod.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'threadsmod'; -$table_target = $db_target->tablepre.'forum_threadmod'; - -$limit = 100; -$next = FALSE; - -$start = $_GET['start'] ? getgpc('start') : 0; -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY tid LIMIT $start, $limit"); -while ($data = $db_source->fetch_array($query)) { - - $next = TRUE; - - $data = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($next) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start + $limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/threadtypes.php b/utility/convert/source/d7.2_x1.5/table/threadtypes.php deleted file mode 100644 index 8f712502..00000000 --- a/utility/convert/source/d7.2_x1.5/table/threadtypes.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'threadtypes'; -$table_target = $db_target->tablepre.'forum_threadtype'; - -$limit = 100; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE typeid>'$start' AND special='1' ORDER BY typeid LIMIT $limit"); -while ($threadtype = $db_source->fetch_array($query)) { - - $nextid = $threadtype['typeid']; - - $threadtype = daddslashes($threadtype, 1); - - $data = implode_field_value($threadtype, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." typeid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/tradecomments.php b/utility/convert/source/d7.2_x1.5/table/tradecomments.php deleted file mode 100644 index da153693..00000000 --- a/utility/convert/source/d7.2_x1.5/table/tradecomments.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'tradecomments'; -$table_target = $db_target->tablepre.'forum_tradecomment'; - -$limit = 100; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($data = $db_source->fetch_array($query)) { - - $nextid = $data['id']; - - $data = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." typeid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/tradelog.php b/utility/convert/source/d7.2_x1.5/table/tradelog.php deleted file mode 100644 index 9d152231..00000000 --- a/utility/convert/source/d7.2_x1.5/table/tradelog.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'tradelog'; -$table_target = $db_target->tablepre.'forum_tradelog'; - -$limit = 100; -$next = FALSE; - -$start = $_GET['start'] ? getgpc('start') : 0; -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY tid LIMIT $start, $limit"); -while ($data = $db_source->fetch_array($query)) { - - $next = TRUE; - - $data = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($next) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start + $limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/trades.php b/utility/convert/source/d7.2_x1.5/table/trades.php deleted file mode 100644 index 9fe8113d..00000000 --- a/utility/convert/source/d7.2_x1.5/table/trades.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'trades'; -$table_target = $db_target->tablepre.'forum_trade'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($data = $db_source->fetch_array($query)) { - - $nextid = 1; - - $data = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/typeoptions.php b/utility/convert/source/d7.2_x1.5/table/typeoptions.php deleted file mode 100644 index af21b2b6..00000000 --- a/utility/convert/source/d7.2_x1.5/table/typeoptions.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'typeoptions'; -$table_target = $db_target->tablepre.'forum_typeoption'; - -$limit = 100; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE optionid>'$start' ORDER BY optionid LIMIT $limit"); -while ($data = $db_source->fetch_array($query)) { - - $nextid = $data['optionid']; - - $threadtype = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." optionid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/typeoptionvars.php b/utility/convert/source/d7.2_x1.5/table/typeoptionvars.php deleted file mode 100644 index 3dfee2b7..00000000 --- a/utility/convert/source/d7.2_x1.5/table/typeoptionvars.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'typeoptionvars'; -$table_target = $db_target->tablepre.'forum_typeoptionvar'; - -$limit = 1000; -$next = FALSE; - -$start = $_GET['start'] ? getgpc('start') : 0; -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY tid LIMIT $start, $limit"); -while ($data = $db_source->fetch_array($query)) { - - $next = TRUE; - - $data = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($next) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start + $limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/typevars.php b/utility/convert/source/d7.2_x1.5/table/typevars.php deleted file mode 100644 index 974da7b0..00000000 --- a/utility/convert/source/d7.2_x1.5/table/typevars.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'typevars'; -$table_target = $db_target->tablepre.'forum_typevar'; - -$limit = 100; -$next = FALSE; - -$start = $_GET['start'] ? getgpc('start') : 0; -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($data = $db_source->fetch_array($query)) { - - $next = TRUE; - - $threadtype = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($next) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start + $limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/uc_admins.php b/utility/convert/source/d7.2_x1.5/table/uc_admins.php deleted file mode 100644 index daddddde..00000000 --- a/utility/convert/source/d7.2_x1.5/table/uc_admins.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'uc_admins'; -$table_target = $db_target->tablepre.'ucenter_admins'; -$limit = 2000; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } -} - -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source WHERE uid>'$start' ORDER BY uid LIMIT $limit"); - while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['uid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." uid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/uc_badwords.php b/utility/convert/source/d7.2_x1.5/table/uc_badwords.php deleted file mode 100644 index d58b0439..00000000 --- a/utility/convert/source/d7.2_x1.5/table/uc_badwords.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'uc_badwords'; -$table_target = $db_target->tablepre.'ucenter_badwords'; -$limit = 2000; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } -} - -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); - while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/uc_domains.php b/utility/convert/source/d7.2_x1.5/table/uc_domains.php deleted file mode 100644 index 5d8140be..00000000 --- a/utility/convert/source/d7.2_x1.5/table/uc_domains.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'uc_domains'; -$table_target = $db_target->tablepre.'ucenter_domains'; -$limit = 2000; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } -} - -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); - while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/uc_friends.php b/utility/convert/source/d7.2_x1.5/table/uc_friends.php deleted file mode 100644 index 304e873a..00000000 --- a/utility/convert/source/d7.2_x1.5/table/uc_friends.php +++ /dev/null @@ -1,80 +0,0 @@ -tablepre.'uc_friends'; -$table_target = $db_target->tablepre.'ucenter_friends'; -$table_sourcemember = $db_source->tablepre.'uc_members'; -$table_targetfriend = $db_target->tablepre.'home_friend'; -$table_tfriendrequest = $db_target->tablepre.'home_friend_request'; -$limit = 2000; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - $db_target->query("TRUNCATE $table_targetfriend"); - $db_target->query("TRUNCATE $table_tfriendrequest"); - } -} - -$fusername = array(); -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source WHERE version>'$start' ORDER BY version LIMIT $limit"); - while ($row = $db_source->fetch_array($query)) { - $nextid = $row['version']; - - $row = daddslashes($row, 1); - $fusername[$row['friendid']] = $row['direction']; - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - if($row['direction'] == 3) { - $db_target->query("REPLACE INTO $table_targetfriend SET uid='$row[uid]', fuid='$row[friendid]', dateline='".time()."'"); - } else { - $db_target->query("REPLACE INTO $table_tfriendrequest SET uid='$row[uid]', fuid='$row[friendid]', dateline='".time()."'"); - } - if(count($fusername) == 200) { - $fquery = $db_source->query("SELECT uid, username FROM $table_sourcemember WHERE uid IN('".implode("','", array_keys($fusername))."')"); - while($frow = $db_source->fetch_array($fquery)) { - $frow = daddslashes($frow, 1); - if($fusername[$frow['uid']] == 3) { - $db_target->query("UPDATE $table_targetfriend SET fusername='$frow[username]' WHERE fuid='$frow[uid]'"); - } else { - $db_target->query("UPDATE $table_tfriendrequest SET fusername='$frow[username]' WHERE fuid='$frow[uid]'"); - } - } - $fusername = array(); - } - } - if(count($fusername)) { - $fquery = $db_source->query("SELECT uid, username FROM $table_sourcemember WHERE uid IN('".implode("','", array_keys($fusername))."')"); - while($frow = $db_source->fetch_array($fquery)) { - $frow = daddslashes($frow, 1); - if($fusername[$frow['uid']] == 3) { - $db_target->query("UPDATE $table_targetfriend SET fusername='$frow[username]' WHERE fuid='$frow[uid]'"); - } else { - $db_target->query("UPDATE $table_tfriendrequest SET fusername='$frow[username]' WHERE fuid='$frow[uid]'"); - } - } - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." version > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/uc_memberfields.php b/utility/convert/source/d7.2_x1.5/table/uc_memberfields.php deleted file mode 100644 index 6b277086..00000000 --- a/utility/convert/source/d7.2_x1.5/table/uc_memberfields.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'uc_memberfields'; -$table_target = $db_target->tablepre.'ucenter_memberfields'; -$limit = $setting['limit']['uc_memberfields'] ? $setting['limit']['uc_memberfields'] : 2500; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } -} - -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source WHERE uid>'$start' ORDER BY uid LIMIT $limit"); - while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['uid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." uid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/uc_members.php b/utility/convert/source/d7.2_x1.5/table/uc_members.php deleted file mode 100644 index 4813ceda..00000000 --- a/utility/convert/source/d7.2_x1.5/table/uc_members.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'uc_members'; -$table_target = $db_target->tablepre.'ucenter_members'; -$limit = $setting['limit']['uc_members'] ? $setting['limit']['uc_members'] : 2500; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } -} - -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source WHERE uid>'$start' ORDER BY uid LIMIT $limit"); - while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['uid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." uid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/uc_newpm.php b/utility/convert/source/d7.2_x1.5/table/uc_newpm.php deleted file mode 100644 index 4743311d..00000000 --- a/utility/convert/source/d7.2_x1.5/table/uc_newpm.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'uc_newpm'; -$table_target = $db_target->tablepre.'ucenter_newpm'; -$limit = 2000; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } -} - -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source WHERE uid>'$start' ORDER BY uid LIMIT $limit"); - while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['uid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." uid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/uc_notelist.php b/utility/convert/source/d7.2_x1.5/table/uc_notelist.php deleted file mode 100644 index ebd71c1c..00000000 --- a/utility/convert/source/d7.2_x1.5/table/uc_notelist.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'uc_notelist'; -$table_target = $db_target->tablepre.'ucenter_notelist'; -$limit = 2000; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } -} - -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source WHERE noteid>'$start' ORDER BY noteid LIMIT $limit"); - while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['noteid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." noteid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/uc_pms.php b/utility/convert/source/d7.2_x1.5/table/uc_pms.php deleted file mode 100644 index e4c01808..00000000 --- a/utility/convert/source/d7.2_x1.5/table/uc_pms.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'uc_pms'; -$table_target = $db_target->tablepre.'ucenter_pms'; -$limit = $setting['limit']['uc_pms'] ? $setting['limit']['uc_pms'] : 2500; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } -} - -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source WHERE pmid>'$start' ORDER BY pmid LIMIT $limit"); - while ($row = $db_source->fetch_array($query)) { - $row['fromappid'] = 0; - - $nextid = $row['pmid']; - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." pmid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/uc_settings.php b/utility/convert/source/d7.2_x1.5/table/uc_settings.php deleted file mode 100644 index 2a0a8f35..00000000 --- a/utility/convert/source/d7.2_x1.5/table/uc_settings.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'uc_settings'; -$table_target = $db_target->tablepre.'ucenter_settings'; -$limit = 2000; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } -} - -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); - while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/uc_vars.php b/utility/convert/source/d7.2_x1.5/table/uc_vars.php deleted file mode 100644 index a3023181..00000000 --- a/utility/convert/source/d7.2_x1.5/table/uc_vars.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'uc_vars'; -$table_target = $db_target->tablepre.'ucenter_vars'; -$limit = 2000; -$nextid = 0; -$nexttable = 0; -$start = getgpc('start'); -if(empty($start)) { - $source_exist = $db_source->result_first("SHOW TABLES LIKE '".substr($table_source, strpos($table_source, '.') + 1)."'"); - $target_exist = $db_target->result_first("SHOW TABLES LIKE '".substr($table_target, strpos($table_target, '.') + 1)."'"); - if(empty($source_exist) || empty($target_exist)) { - $nexttable = 1; - } else { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } -} - -if(empty($nexttable)) { - $query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); - while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/usergroup.php b/utility/convert/source/d7.2_x1.5/table/usergroup.php deleted file mode 100644 index 11958ba5..00000000 --- a/utility/convert/source/d7.2_x1.5/table/usergroup.php +++ /dev/null @@ -1,68 +0,0 @@ -tablepre.'usergroups'; -$table_target = $db_target->tablepre.'common_usergroup'; -$table_target_field = $table_target.'_field'; - -$limit = 100; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); - $db_target->query("TRUNCATE $table_target_field"); -} - -$usergroup = array('groupid', 'radminid', 'type', 'system', 'grouptitle', 'creditshigher', 'creditslower', 'stars', 'color', 'allowvisit', 'allowsendpm', 'allowinvite', 'allowmailinvite', 'maxinvitenum', 'inviteprice', 'maxinviteday'); -$usergroup_field = array('groupid', 'readaccess', 'allowpost', 'allowreply', 'allowpostpoll', 'allowpostreward', 'allowposttrade', 'allowpostactivity', 'allowdirectpost', 'allowgetattach', 'allowpostattach', 'allowvote', 'allowmultigroups', 'allowsearch', 'allowcstatus', 'allowinvisible', 'allowtransfer', 'allowsetreadperm', 'allowsetattachperm', 'allowhidecode', 'allowhtml', 'allowhidecode', 'allowhtml', 'allowanonymous', 'allowsigbbcode', 'allowsigimgcode', 'disableperiodctrl', 'reasonpm', 'maxprice', 'maxsigsize', 'maxattachsize', 'maxsizeperday', 'maxpostsperhour', 'attachextensions', 'raterange', 'mintradeprice', 'maxtradeprice', 'allowhidecode', 'allowhtml', 'allowanonymous', 'allowsigbbcode', 'allowsigimgcode', 'disableperiodctrl', 'reasonpm', 'maxprice', 'maxsigsize', 'maxattachsize', 'maxsizeperday', 'maxpostsperhour', 'attachextensions', 'raterange', 'mintradeprice', 'maxtradeprice', 'minrewardprice', 'maxrewardprice', 'magicsdiscount', 'maxmagicsweight', 'allowpostdebate', 'tradestick', 'exempt', 'maxattachnum', 'allowposturl', 'allowrecommend', 'edittimelimit', 'allowpostrushreply'); - -$userdata = $userfielddata = array(); -$query = $db_source->query("SELECT * FROM $table_source WHERE groupid>'$start' ORDER BY groupid LIMIT $limit"); -while ($data = $db_source->fetch_array($query)) { - - $nextid = $data['groupid']; - - $data = daddslashes($data, 1); - - foreach($usergroup as $field) { - $userdata[$field]= $data[$field]; - } - - foreach($usergroup_field as $field) { - $userfielddata[$field]= $data[$field]; - } - $userfielddata['allowpostimage'] = $userfielddata['allowpostattach']; - - if($userfielddata['raterange']) { - $raterangearray = array(); - foreach(explode("\n", $userfielddata['raterange']) as $range) { - $range = explode("\t", $range); - if(count($range) == 4) { - $raterangearray[$range[0]] = implode("\t", array($range[0], 'isself' => 0, 'min' => $range[1], 'max' => $range[2], 'mrpd' => $range[3])); - } - } - if(!empty($raterangearray)) { - $userfielddata['raterange'] = implode("\n", $raterangearray); - } - } - - $userdatalist = implode_field_value($userdata, ',', db_table_fields($db_target, $table_target)); - $userfielddatalist = implode_field_value($userfielddata, ',', db_table_fields($db_target, $table_target_field)); - - $db_target->query("INSERT INTO $table_target SET $userdatalist"); - $db_target->query("INSERT INTO $table_target_field SET $userfielddatalist"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." groupid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/warnings.php b/utility/convert/source/d7.2_x1.5/table/warnings.php deleted file mode 100644 index f101bef8..00000000 --- a/utility/convert/source/d7.2_x1.5/table/warnings.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'warnings'; -$table_target = $db_target->tablepre.'forum_warning'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/table/words.php b/utility/convert/source/d7.2_x1.5/table/words.php deleted file mode 100644 index 84a7b931..00000000 --- a/utility/convert/source/d7.2_x1.5/table/words.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'words'; -$table_target = $db_target->tablepre.'common_word'; - -$limit = 100; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($data = $db_source->fetch_array($query)) { - - $nextid = $data['id']; - - $data = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x1.5/threadtype.php b/utility/convert/source/d7.2_x1.5/threadtype.php deleted file mode 100644 index d96eb6fd..00000000 --- a/utility/convert/source/d7.2_x1.5/threadtype.php +++ /dev/null @@ -1,61 +0,0 @@ -tablepre.'forumfields'; -$table_target = $db_target->tablepre.'forum_threadclass'; -$table_target_thread = $db_target->tablepre.'forum_thread'; -$table_target_forumfield = $db_target->tablepre.'forum_forumfield'; - -$limit = 250; -$nextid = 0; -$start = intval(getgpc('start')); - -if(empty($start)) { - $db_target->query("TRUNCATE $table_target"); -} - -$typetids = array(); - -$query = $db_source->query("SELECT fid, threadtypes FROM $table_source WHERE threadtypes!='' LIMIT $start, $limit"); -while($row = $db_source->fetch_array($query)) { - $nextid = $row['fid']; - $threadtypes = (array)unserialize($row['threadtypes']); - $typenames = array(); - if(!is_array($threadtypes['types'])) { - $threadtypes['types'] = array(); - } - $threadtypes_types = $threadtypes['types']; - ksort($threadtypes_types); - foreach($threadtypes_types as $typeid => $name) { - $name = strip_tags($name); - $newtypeid = $db_target->insert('forum_threadclass', array('fid' => $nextid, 'name' => addslashes($name)), 1); - $typenames[$newtypeid] = $name; - $tquery = $db_target->query("SELECT tid FROM $table_target_thread WHERE fid='$nextid' AND typeid='$typeid'"); - while($trow = $db_target->fetch_array($tquery)) { - $typetids[$newtypeid][] = $trow['tid']; - } - } - unset($threadtypes['selectbox'], $threadtypes['flat']); - $threadtypes['icons'] = array(); - $threadtypes['types'] = $typenames; - $db_target->query("UPDATE $table_target_forumfield SET threadtypes='".serialize($threadtypes)."' WHERE fid='{$row['fid']}'"); -} - -if($typetids) { - foreach($typetids as $newtypeid => $row) { - $db_target->query("UPDATE $table_target_thread SET typeid='$newtypeid' WHERE tid IN (".implode(',', $row).")"); - } -} - -if($nextid) { - showmessage("继续转换主题分类数据表,fid=$nextid", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/moderate.php b/utility/convert/source/d7.2_x2.0/moderate.php deleted file mode 100644 index 2576d505..00000000 --- a/utility/convert/source/d7.2_x2.0/moderate.php +++ /dev/null @@ -1,36 +0,0 @@ -tablepre.'common_moderate'; -$table_target_thread = $db_target->tablepre.'forum_thread'; -$table_target_post = $db_target->tablepre.'forum_post'; - -$db_target->query("TRUNCATE $table_target"); - -$query = $db_target->query("SELECT tid FROM $table_target_thread WHERE displayorder='-2'"); -while($row = $db_target->fetch_array($query)) { - updatemoderate('tid', $row['tid']); -} - -$query = $db_target->query("SELECT pid FROM $table_target_post WHERE invisible='-2' AND first='0'"); -while($row = $db_target->fetch_array($query)) { - updatemoderate('pid', $row['pid']); -} - -function updatemoderate($idtype, $ids) { - global $table_target, $db_target; - $ids = is_array($ids) ? $ids : array($ids); - if(!$ids) { - return; - } - $time = time(); - foreach($ids as $id) { - $db_target->query("INSERT INTO $table_target (id,idtype,status,dateline) VALUES ('$id','$idtype','0','$time')"); - } -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/pollvoter.php b/utility/convert/source/d7.2_x2.0/pollvoter.php deleted file mode 100644 index dbbef019..00000000 --- a/utility/convert/source/d7.2_x2.0/pollvoter.php +++ /dev/null @@ -1,46 +0,0 @@ -tablepre . 'polloptions'; -$table_target = $db_target->tablepre . 'forum_pollvoter'; - -$limit = 1000; - -$pstep = getgpc('pstep'); -$pstep = intval($pstep); - -$total = getgpc('total'); -$total = intval($total); - -$offset = $pstep * $limit; - -$continue = false; - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY polloptionid LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $voterids = trim($row['voterids']); - $voterids = explode("\t", $voterids); - foreach($voterids as $voterid) { - $options = $db_target->result_first("SELECT options FROM $table_target WHERE tid='{$row['tid']}' AND uid='$voterid'"); - $options = explode("\t", $options); - if(!in_array($row['polloptionid'], $options)) { - $options[] = $row['polloptionid']; - } - $options_str = trim(implode("\t", $options)); - $db_target->query("UPDATE $table_target SET options='$options_str' WHERE tid='{$row['tid']}' AND uid='$voterid'"); - } - $continue = true; - $total ++; -} - -$nextpstep = $pstep + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&pstep=$nextpstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/readme.txt b/utility/convert/source/d7.2_x2.0/readme.txt deleted file mode 100644 index e80f52e7..00000000 --- a/utility/convert/source/d7.2_x2.0/readme.txt +++ /dev/null @@ -1,36 +0,0 @@ -==================================== -Discuz! 7.2 升级至 Discuz! X2.0 说明 -==================================== - -I 升级前的准备 ---------------- -1. 建立程序备份目录,例如 old/ -2. 将原论坛所有程序移动到 old/ 目录中 -3. 上传 Discuz! X 产品的 upload/ 目录中的程序到论坛目录 -4. 执行安装程序 /install - 安装的时候请指定原 Discuz! 7.2 挂接的UCenter Server地址(如果 UCenter版本低于1.6.0,需先升级 UCenter ) - -II 升级论坛数据 ---------------- -1. 安装完毕,测试论坛可以正常运行以后,上传 Discuz! X Convert 程序到论坛更目录 -2. 执行 /convert -3. 选择相应的程序版本,开始转换 -4. 转换过程中不可擅自中断,直到程序自动执行完毕。 -5. 转换过程可能需要较长时间,且消耗较多服务器资源,您应当选择服务器空闲的时候执行 - -III 升级完毕, 还要做的几件事 --------------------------- -1. 编辑新论坛的config/config_global.php 文件,设定好创始人。 - 在config/config_global.php文件中,设定 $_config['admincp']['founder'] = '1'; 数字为创始人的UID -2. 直接访问新论坛的后台,访问地址:http://您的域名/admin.php -3. 使用创始人帐号登录,进入后台更新缓存 -4. 新系统增加了很多设置项目,包括用户权限、组权限、论坛板块等等,您需要仔细的重新设置一次 -5. 转移旧附件目录(在转移之前,您的帖子将会无法找到任何附件) - a)进入 old/attachments/ 目录 - b)将所有文件移动到 新论坛目录/data/attachment/forum/ 目录中 -6. 转移用户头像(独立安装 UCenter 的用户不需要这个步骤) - a)进入 old/uc_server/data/avatar/ 目录 - b)将所有文件移动到 新论坛目录 uc_server/data/avatar/ -7. 删除 convert 程序,以免给您的论坛安装带来隐患 -8. 待测试新论坛的所有功能均正常后,可以删除旧的程序备份和数据备份 -9. 如果使用过分类信息,需要重新整理一次分类信息(后台->更新统计->分类信息整理)。 \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/setting.ini b/utility/convert/source/d7.2_x2.0/setting.ini deleted file mode 100644 index 89ced258..00000000 --- a/utility/convert/source/d7.2_x2.0/setting.ini +++ /dev/null @@ -1,44 +0,0 @@ -;本文件格式兼容于 PHP.ini,您可以使用“;”作为注释内容 -;以下设置内容当中如果出现除字母和数字以外的特殊符号,请使用 "" 将内容包含起来 -;以下项目你可以根据自己的需要进行增减 - -[program] -;;程序简介 -introduction = "本程序用于 Discuz! 7.2 数据转换至 Discuz! X2.0。升级前请首先升级 UCenter 到 UCenter1.6.0 ,选择独立的UCenter方式安装 Discuz! X2.0" -;;原始程序版本 -source= "Discuz! 7.2" -;;目标程序版本 -target= "Discuz! X2.0" - -[tablecheck] -; 数据表检测,当不含有以下数据表的时候,则认为数据库设置错误 -source = forumfields -target = common_cache - -;数据表转换之前执行的程序 -[start] - - -;数据表转换完毕以后执行的程序 -[steps] -pollvoter = 处理投票主题 -threadtype = 处理主题分类 -stamp = 处理主题图章 -moderate = 处理审核内容 - - -;每次跳转时转换的数据量 -[limit] -attachments = 2000 -attachmentfields = 2000 -attachpaymentlog = 1000 -members = 1000 -orders = 1000 -paymentlog = 1000 -polloptions = 1000 -polls = 1000 -posts = 1000 -threads = 1500 -uc_members = 1000 -uc_memberfields = 1000 -uc_pms = 2000 \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/stamp.php b/utility/convert/source/d7.2_x2.0/stamp.php deleted file mode 100644 index 766a3ca8..00000000 --- a/utility/convert/source/d7.2_x2.0/stamp.php +++ /dev/null @@ -1,24 +0,0 @@ -tablepre.'threads'; -$tablemod_source = $db_source->tablepre.'threadsmod'; -$table_target = $db_target->tablepre.'forum_thread'; - -$stampnew = $db_target->result_first("SELECT COUNT(*) FROM $table_target WHERE stamp>'0'"); -if(!$stampnew) { - $query = $db_source->query("SELECT t.tid, tm.stamp FROM $table_source t - INNER JOIN $tablemod_source tm ON t.tid=tm.tid AND tm.action='SPA' - WHERE t.status|16=t.status"); - while($row = $db_source->fetch_array($query)) { - $db_target->query("UPDATE $table_target SET stamp='$row[stamp]' WHERE tid='$row[tid]'"); - } -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/access.php b/utility/convert/source/d7.2_x2.0/table/access.php deleted file mode 100644 index 9c62bd71..00000000 --- a/utility/convert/source/d7.2_x2.0/table/access.php +++ /dev/null @@ -1,44 +0,0 @@ -tablepre.'access'; -$table_target = $db_target->tablepre.'forum_access'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} else { - $query = $db_target->query("SELECT uid, allowgetattach FROM $table_target"); - while ($row = $db_target->fetch_array($query)) { - $db_target->query("UPDATE $table_target SET allowgetimage='".intval($row['allowgetattach'])."' WHERE uid='$row[uid]'"); - } -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/activities.php b/utility/convert/source/d7.2_x2.0/table/activities.php deleted file mode 100644 index 3a5a6b1c..00000000 --- a/utility/convert/source/d7.2_x2.0/table/activities.php +++ /dev/null @@ -1,41 +0,0 @@ -tablepre.'activities'; -$table_source_aa = $db_source->tablepre.'activityapplies'; -$table_target = $db_target->tablepre.'forum_activity'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE tid>'$start' ORDER BY tid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['tid']; - - $row['applynumber'] = $db_source->result_first("SELECT COUNT(*) FROM $table_source_aa WHERE tid='$row[tid]' AND verified=1"); - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." tid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/activityapplies.php b/utility/convert/source/d7.2_x2.0/table/activityapplies.php deleted file mode 100644 index d8fa821c..00000000 --- a/utility/convert/source/d7.2_x2.0/table/activityapplies.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'activityapplies'; -$table_target = $db_target->tablepre.'forum_activityapply'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE applyid>'$start' ORDER BY applyid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['applyid']; - - !empty($row['contact']) && $row['message'] = $row['message'].' 联系方式:'.$row['contact']; - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." applyid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/addons.php b/utility/convert/source/d7.2_x2.0/table/addons.php deleted file mode 100644 index 7a9cdf00..00000000 --- a/utility/convert/source/d7.2_x2.0/table/addons.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'addons'; -$table_target = $db_target->tablepre.'common_addon'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/admincustom.php b/utility/convert/source/d7.2_x2.0/table/admincustom.php deleted file mode 100644 index 2da102bd..00000000 --- a/utility/convert/source/d7.2_x2.0/table/admincustom.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'admincustom'; -$table_target = $db_target->tablepre.'common_admincp_cmenu'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/admingroups.php b/utility/convert/source/d7.2_x2.0/table/admingroups.php deleted file mode 100644 index cdbb2aeb..00000000 --- a/utility/convert/source/d7.2_x2.0/table/admingroups.php +++ /dev/null @@ -1,48 +0,0 @@ -tablepre.'admingroups'; -$table_target = $db_target->tablepre.'common_admingroup'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("DELETE FROM $table_target WHERE admingid>'3'"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE admingid>'$start' ORDER BY admingid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['admingid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $gidexist = 0; - if($row['admingid'] < 4) { - $gidexist = $db_target->result_first("SELECT admingid FROM $table_target WHERE admingid='".$row['admingid']."'"); - } - if(!empty($gidexist)) { - $db_target->query("UPDATE $table_target SET $data WHERE admingid='".$row['admingid']."'"); - } else { - $db_target->query("INSERT INTO $table_target SET $data"); - } -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." admingid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} else { - $db_target->query("UPDATE $table_target SET allowbanvisituser='1' WHERE admingid='1' OR admingid='2'"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/adminnotes.php b/utility/convert/source/d7.2_x2.0/table/adminnotes.php deleted file mode 100644 index 7f8a8f04..00000000 --- a/utility/convert/source/d7.2_x2.0/table/adminnotes.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'adminnotes'; -$table_target = $db_target->tablepre.'common_adminnote'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/advertisements.php b/utility/convert/source/d7.2_x2.0/table/advertisements.php deleted file mode 100644 index 2eb129b2..00000000 --- a/utility/convert/source/d7.2_x2.0/table/advertisements.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'advertisements'; -$table_target = $db_target->tablepre.'common_advertisement'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE advid>'$start' ORDER BY advid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['advid']; - $row['targets'] = 'forum'; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." advid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/announcements.php b/utility/convert/source/d7.2_x2.0/table/announcements.php deleted file mode 100644 index 8c5f45b7..00000000 --- a/utility/convert/source/d7.2_x2.0/table/announcements.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'announcements'; -$table_target = $db_target->tablepre.'forum_announcement'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/attachpaymentlog.php b/utility/convert/source/d7.2_x2.0/table/attachpaymentlog.php deleted file mode 100644 index 4e5e6684..00000000 --- a/utility/convert/source/d7.2_x2.0/table/attachpaymentlog.php +++ /dev/null @@ -1,76 +0,0 @@ -tablepre.'attachpaymentlog'; -$table_target = $db_target->tablepre.'common_credit_log'; - -$limit = $setting['limit']['attachpaymentlog'] ? $setting['limit']['attachpaymentlog'] : 2500; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start) && !$process['truncate_credit_log']) { - $start = 0; - $process['truncate_credit_log'] = 1; - save_process('main', $process); - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM ".$db_source->tablepre."settings WHERE variable IN ('creditstax', 'creditstrans')"); -while($setting = $db_source->fetch_array($query)) { - if($setting['variable'] == 'creditstrans') { - $creditstrans = explode(',', $setting['value']); - $ext = $creditstrans[1] ? $creditstrans[1] : $creditstrans[0]; - if(!$ext) { - $ext = 1; - } - } - if($setting['variable'] == 'creditstax') { - $creditstax = $setting['value']; - } -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $rownew = array(); - $rownew['uid'] = $row['uid']; - $rownew['operation'] = 'BAC'; - $rownew['relatedid'] = $row['aid']; - $rownew['dateline'] = $row['dateline']; - $rownew['extcredits'.$ext] = -$row['amount']; - - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - - $rownew = array(); - $rownew['uid'] = $row['authorid']; - $rownew['operation'] = 'SAC'; - $rownew['relatedid'] = $row['aid']; - $rownew['dateline'] = $row['dateline']; - $rownew['extcredits'.$ext] = $row['netamount']; - - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/attachtypes.php b/utility/convert/source/d7.2_x2.0/table/attachtypes.php deleted file mode 100644 index ea792aa2..00000000 --- a/utility/convert/source/d7.2_x2.0/table/attachtypes.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'attachtypes'; -$table_target = $db_target->tablepre.'forum_attachtype'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/banned.php b/utility/convert/source/d7.2_x2.0/table/banned.php deleted file mode 100644 index 03b4fa83..00000000 --- a/utility/convert/source/d7.2_x2.0/table/banned.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'banned'; -$table_target = $db_target->tablepre.'common_banned'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/bbcodes.php b/utility/convert/source/d7.2_x2.0/table/bbcodes.php deleted file mode 100644 index e0a62179..00000000 --- a/utility/convert/source/d7.2_x2.0/table/bbcodes.php +++ /dev/null @@ -1,63 +0,0 @@ -tablepre.'usergroups'; -$table_source = $db_source->tablepre.'bbcodes'; -$table_target = $db_target->tablepre.'forum_bbcode'; -$table_target_usergroup_field = $db_target->tablepre.'common_usergroup_field'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$allowcusbbcodes = array(); -$query = $db_source->query("SELECT * FROM $table_source_usergroup"); -while($row = $db_source->fetch_array($query)) { - if($row['allowcusbbcode']) { - $allowcusbbcodes[] = $row['groupid']; - } -} - - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row['perm'] = implode("\t", $allowcusbbcodes); - - $row = daddslashes($row, 1); - - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} else { - $allowcusbbcodes = array(); - $query = $db_target->query("SELECT * FROM $table_target_usergroup_field"); - while ($row = $db_target->fetch_array($query)) { - if($row['allowcusbbcode']) { - $allowcusbbcodes[] = $row['groupid']; - } - } - if($allowcusbbcodes) { - $db_target->query("UPDATE $table_target SET perm='".implode("\t", $allowcusbbcodes)."' WHERE perm=''"); - } -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/creditslog.php b/utility/convert/source/d7.2_x2.0/table/creditslog.php deleted file mode 100644 index 6b02ef65..00000000 --- a/utility/convert/source/d7.2_x2.0/table/creditslog.php +++ /dev/null @@ -1,97 +0,0 @@ -tablepre.'creditslog'; -$table_target = $db_target->tablepre.'common_credit_log'; - -$limit = 2000; -$nextid = 0; - -$start = intval(getgpc('start')); -if(empty($start) && !$process['truncate_credit_log']) { - $start = 0; - $process['truncate_credit_log'] = 1; - save_process('main', $process); - $db_target->query("TRUNCATE $table_target"); -} - -$rowlist = $userarr = array(); -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - $nextid = 1; - $rowlist[] = $row; - $userarr[$row['fromto']] = $row['fromto']; -} - -if($nextid) { - $userarr = daddslashes($userarr, 1); - $usernames = implode("', '", $userarr); - $query = $db_source->query("SELECT * FROM ".$db_source->tablepre."members WHERE username IN('$usernames')"); - while($row = $db_source->fetch_array($query)) { - $userarr[$row['username']] = $row['uid']; - } - - foreach($rowlist as $row) { - $rownew = array(); - if(in_array($row['operation'], array('AFD', 'TFR', 'RCV'))) { - $rownew['uid'] = $row['uid']; - if($row['operation'] == 'RCV' && $row['fromto'] == 'TASK REWARD') { - $rownew['operation'] = 'TRC'; - $rownew['relatedid'] = 0; - } else { - $rownew['operation'] = $row['operation']; - $rownew['relatedid'] = $userarr[$row['fromto']]; - } - - $rownew['dateline'] = $row['dateline']; - if($row['receive']) { - $rownew['extcredits'.$row['receivecredits']] = $row['receive']; - } - if($row['send']) { - $rownew['extcredits'.$row['sendcredits']] = -$row['send']; - } - } elseif($row['operation'] == 'UGP') { - $rownew['uid'] = $row['uid']; - $rownew['operation'] = $row['operation']; - $rownew['relatedid'] = 0; - $rownew['dateline'] = $row['dateline']; - if($row['receive']) { - $rownew['extcredits'.$row['receivecredits']] = $row['receive']; - } - if($row['send']) { - $rownew['extcredits'.$row['sendcredits']] = -$row['send']; - } - } elseif($row['operation'] == 'EXC') { - $rownew['uid'] = $row['uid']; - $rownew['operation'] = 'ECU'; - $rownew['relatedid'] = $row['uid']; - $rownew['dateline'] = $row['dateline']; - if($row['receive']) { - $rownew['extcredits'.$row['receivecredits']] = $row['receive']; - } - if($row['send']) { - $rownew['extcredits'.$row['sendcredits']] = -$row['send']; - } - } - if($rownew) { - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } - } -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/debateposts.php b/utility/convert/source/d7.2_x2.0/table/debateposts.php deleted file mode 100644 index 7fba5725..00000000 --- a/utility/convert/source/d7.2_x2.0/table/debateposts.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'debateposts'; -$table_target = $db_target->tablepre.'forum_debatepost'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE pid>'$start' ORDER BY pid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['pid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." pid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/debates.php b/utility/convert/source/d7.2_x2.0/table/debates.php deleted file mode 100644 index 8d7d1a01..00000000 --- a/utility/convert/source/d7.2_x2.0/table/debates.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'debates'; -$table_target = $db_target->tablepre.'forum_debate'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE tid>'$start' ORDER BY tid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['tid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." tid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/favorites.php b/utility/convert/source/d7.2_x2.0/table/favorites.php deleted file mode 100644 index de8da9f9..00000000 --- a/utility/convert/source/d7.2_x2.0/table/favorites.php +++ /dev/null @@ -1,56 +0,0 @@ -tablepre.'favorites'; -$table_target = $db_target->tablepre.'home_favorite'; - -$limit = 100; -$nextid = 0; - -$start = getgpc('start'); -$nextstep = intval(getgpc('nextstep')); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row['id'] = 0; - $row['idtype'] = ''; - - if($row['tid']) { - $row['title'] = $db_source->result_first("SELECT subject FROM ".$db_source->tablepre."threads WHERE tid='".$row['tid']."'"); - $row['id'] = $row['tid']; - $row['idtype'] = 'tid'; - } elseif($row['fid']) { - $row['title'] = $db_source->result_first("SELECT name FROM ".$db_source->tablepre."forums WHERE fid='".$row['fid']."'"); - $row['id'] = $row['fid']; - $row['idtype'] = 'fid'; - } - $row = daddslashes($row, 1); - - if($row['id']) { - unset($row['tid'], $row['fid']); - $row['dateline'] = time(); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - } - -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/forumfields.php b/utility/convert/source/d7.2_x2.0/table/forumfields.php deleted file mode 100644 index f9bc8056..00000000 --- a/utility/convert/source/d7.2_x2.0/table/forumfields.php +++ /dev/null @@ -1,82 +0,0 @@ -tablepre.'forumfields'; -$table_target = $db_target->tablepre.'forum_forumfield'; -$table_targetcreditrule = $db_target->tablepre.'common_credit_rule'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); - $db_target->query("UPDATE $table_targetcreditrule SET fids=''"); -} - -$rules = $ruleaction = array(); -$query = $db_target->query("SELECT * FROM $table_targetcreditrule WHERE action IN('reply', 'post', 'digest', 'postattach', 'getattach')"); -while($value = $db_target->fetch_array($query)) { - $rules[$value['rid']] = $value; - $ruleaction[$value['action']] = $value['rid']; -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE fid>'$start' ORDER BY fid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['fid']; - - $credits = array(); - $credits['post'] = unserialize($row['postcredits']); - $credits['reply'] = unserialize($row['replycredits']); - $credits['getattach'] = unserialize($row['getattachcredits']); - $credits['postattach'] = unserialize($row['postattachcredits']); - $credits['digest'] = unserialize($row['digestcredits']); - $row['creditspolicy'] = array(); - foreach($credits as $caction => $credits) { - if($credits) { - $rid = $ruleaction[$caction]; - $row['creditspolicy'] = $rules[$rid]; - foreach($credits as $i => $v) { - $row['creditspolicy']['extcredits'.$i] = $v; - } - $rules[$rid]['fids'] = $db_target->result_first("SELECT fids FROM $table_targetcreditrule WHERE rid='".$rid."'"); - $cpfids = explode(',', $rules[$rid]['fids']); - $cpfidsnew = array(); - foreach($cpfids as $cpfid) { - if(!$cpfid) { - continue; - } - if($cpfid != $row['fid']) { - $cpfidsnew[] = $cpfid; - } - } - $cpfidsnew[] = $row['fid']; - $db_target->query("UPDATE $table_targetcreditrule SET fids='".implode(',', $cpfidsnew)."' WHERE rid='".$rid."'"); - } - } - $row['creditspolicy'] = $row['creditspolicy'] ? serialize($row['creditspolicy']) : ''; - - unset($row['tradetypes'], $row['typemodels'], $row['postcredits'], $row['replycredits'], $row['getattachcredits'], $row['postattachcredits'], $row['digestcredits']); - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." fid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -$db_target->query("UPDATE $table_target SET seodescription=description WHERE membernum='0'"); - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/forumlinks.php b/utility/convert/source/d7.2_x2.0/table/forumlinks.php deleted file mode 100644 index 01527cd8..00000000 --- a/utility/convert/source/d7.2_x2.0/table/forumlinks.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'forumlinks'; -$table_target = $db_target->tablepre.'common_friendlink'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/forumrecommend.php b/utility/convert/source/d7.2_x2.0/table/forumrecommend.php deleted file mode 100644 index 4c663c4a..00000000 --- a/utility/convert/source/d7.2_x2.0/table/forumrecommend.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'forumrecommend'; -$table_target = $db_target->tablepre.'forum_forumrecommend'; - -$limit = 2500; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE tid>'$start' ORDER BY tid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['tid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." tid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/forums.php b/utility/convert/source/d7.2_x2.0/table/forums.php deleted file mode 100644 index 5b6e51de..00000000 --- a/utility/convert/source/d7.2_x2.0/table/forums.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'forums'; -$table_target = $db_target->tablepre.'forum_forum'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE fid>'$start' ORDER BY fid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['fid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." fid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} else { - $db_target->query("UPDATE $table_target SET status=1 WHERE status=2"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/imagetypes.php b/utility/convert/source/d7.2_x2.0/table/imagetypes.php deleted file mode 100644 index 0e0d8e7d..00000000 --- a/utility/convert/source/d7.2_x2.0/table/imagetypes.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'imagetypes'; -$table_target = $db_target->tablepre.'forum_imagetype'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE typeid>'$start' ORDER BY typeid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['typeid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." typeid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/itempool.php b/utility/convert/source/d7.2_x2.0/table/itempool.php deleted file mode 100644 index 3c25eafd..00000000 --- a/utility/convert/source/d7.2_x2.0/table/itempool.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'itempool'; -$table_target = $db_target->tablepre.'common_secquestion'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/magiclog.php b/utility/convert/source/d7.2_x2.0/table/magiclog.php deleted file mode 100644 index 080c9aaa..00000000 --- a/utility/convert/source/d7.2_x2.0/table/magiclog.php +++ /dev/null @@ -1,42 +0,0 @@ -tablepre.'magiclog'; -$table_target = $db_target->tablepre.'common_magiclog'; - -$limit = 2000; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row['targetid'] = $row['targettid'] ? $row['targettid'] : 0; - $row['idtype'] = $row['targettid'] ? 'tid' : ''; - unset($row['targettid'], $row['targetpid']); - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/magics.php b/utility/convert/source/d7.2_x2.0/table/magics.php deleted file mode 100644 index aa6dee7b..00000000 --- a/utility/convert/source/d7.2_x2.0/table/magics.php +++ /dev/null @@ -1,73 +0,0 @@ -tablepre.'magics'; -$table_target = $db_target->tablepre.'common_magic'; -$table_target_setting = $db_target->tablepre.'common_setting'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$identifier = array( - 'CCK' => 'highlight', - 'MOK' => 'money', - 'SEK' => 'showip', - 'UPK' => 'bump', - 'TOK' => 'stick', - 'REK' => 'repent', - 'RTK' => 'checkonline', - 'CLK' => 'close', - 'OPK' => 'open', - 'YSK' => 'anonymouspost', - 'CBK' => 'namepost', -); - -$query = $db_source->query("SELECT * FROM $table_source WHERE magicid>'$start' ORDER BY magicid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['magicid']; - if($row['identifier'] == 'MVK') { - continue; - } - - unset($row['type'], $row['recommend'], $row['filename']); - $row['useevent'] = $row['identifier'] == 'MOK' ? 1 : 0; - $row['identifier'] = $identifier[$row['identifier']]; - if(!$row['identifier']) { - continue; - } - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." magicid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} else { - if(!$db_target->result_first("SELECT COUNT(*) FROM $table_target WHERE credit>'0'")) { - $settings_creditstrans = $db_target->result_first("SELECT svalue FROM $table_target_setting WHERE skey='creditstrans'"); - $creditstranssi = explode(',', $settings_creditstrans); - $creditstran = $creditstranssi[3] ? $creditstranssi[3] : $creditstranssi[0]; - $db_target->query("UPDATE $table_target SET credit='$creditstran'"); - } - $db_target->query("UPDATE $table_target SET name='变色卡', description='可以将帖子或日志的标题高亮,变更颜色' WHERE identifier='highlight'"); - $db_target->query("UPDATE $table_target SET name='显身卡', description='可以查看一次匿名用户的真实身份。' WHERE identifier='namepost'"); - $db_target->query("UPDATE $table_target SET name='匿名卡', description='在指定的地方,让自己的名字显示为匿名。' WHERE identifier='anonymouspost'"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/medallog.php b/utility/convert/source/d7.2_x2.0/table/medallog.php deleted file mode 100644 index 7bac7ff0..00000000 --- a/utility/convert/source/d7.2_x2.0/table/medallog.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'medallog'; -$table_target = $db_target->tablepre.'forum_medallog'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE uid>'$start' ORDER BY uid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['uid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." uid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/medals.php b/utility/convert/source/d7.2_x2.0/table/medals.php deleted file mode 100644 index c3df74b0..00000000 --- a/utility/convert/source/d7.2_x2.0/table/medals.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'medals'; -$table_target = $db_target->tablepre.'forum_medal'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE medalid>'$start' ORDER BY medalid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['medalid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." medalid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/membermagics.php b/utility/convert/source/d7.2_x2.0/table/membermagics.php deleted file mode 100644 index 003b3c4b..00000000 --- a/utility/convert/source/d7.2_x2.0/table/membermagics.php +++ /dev/null @@ -1,50 +0,0 @@ -tablepre.'membermagics'; -$table_sourcemarket = $db_source->tablepre.'magicmarket'; -$table_target = $db_target->tablepre.'common_member_magic'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - $query = $db_source->query("SELECT * FROM $table_sourcemarket"); - while ($row = $db_source->fetch_array($query)) { - $row = daddslashes($row, 1); - $mm = $db_target->fetch_first("SELECT * FROM $table_target WHERE uid='$row[uid]' AND magicid='$row[magicid]'"); - if($mm) { - $db_target->query("UPDATE $table_target SET num=num+'$row[num]' WHERE uid='$row[uid]' AND magicid='$row[magicid]'"); - } else { - $db_target->query("INSERT INTO $table_target SET uid='$row[uid]', magicid='$row[magicid]', num='$row[num]'"); - } - } - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/memberrecommend.php b/utility/convert/source/d7.2_x2.0/table/memberrecommend.php deleted file mode 100644 index 665ee9e2..00000000 --- a/utility/convert/source/d7.2_x2.0/table/memberrecommend.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'memberrecommend'; -$table_target = $db_target->tablepre.'forum_memberrecommend'; - -$limit = 1000; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/members.php b/utility/convert/source/d7.2_x2.0/table/members.php deleted file mode 100644 index 1e151751..00000000 --- a/utility/convert/source/d7.2_x2.0/table/members.php +++ /dev/null @@ -1,162 +0,0 @@ -tablepre.'members'; -$table_target = $db_target->tablepre.'common_member'; -$table_target_admincp = $db_target->tablepre.'common_admincp_member'; - -$limit = $setting['limit']['members'] ? $setting['limit']['members'] : 2000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); - $db_target->query("TRUNCATE $table_target_admincp"); - $db_target->query("TRUNCATE {$table_target}_count"); - $db_target->query("TRUNCATE {$table_target}_field_forum"); - $db_target->query("TRUNCATE {$table_target}_field_home"); - $db_target->query("TRUNCATE {$table_target}_log"); - $db_target->query("TRUNCATE {$table_target}_profile"); - $db_target->query("TRUNCATE {$table_target}_status"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE uid>'$start' ORDER BY uid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - if($row['adminid'] == 1) { - $adminrow = array('uid' => $row['uid'], 'cpgroupid' => '0', 'customperm' => ''); - $data = implode_field_value($adminrow); - $db_target->query("INSERT INTO {$table_target_admincp} SET $data"); - $row['allowadmincp'] = 1; - } - - $rowfield = $db_source->fetch_first("SELECT * FROM ".$db_source->tablepre."memberfields WHERE uid='$row[uid]'"); - $rowfield = daddslashes($rowfield, 1); - - $nextid = $row['uid']; - $emptyrow = array('uid' => $row['uid']); - $data = implode_field_value($emptyrow); - $db_target->query("INSERT INTO {$table_target}_count SET $data"); - $db_target->query("INSERT INTO {$table_target}_field_forum SET $data"); - $db_target->query("INSERT INTO {$table_target}_field_home SET $data"); - $db_target->query("INSERT INTO {$table_target}_log SET $data"); - $db_target->query("INSERT INTO {$table_target}_profile SET $data"); - $db_target->query("INSERT INTO {$table_target}_status SET $data"); - - $row = daddslashes($row, 1); - - $unset = array( - 'regip', - 'lastip', - 'lastvisit', - 'lastactivity', - 'lastpost', - 'posts', - 'threads', - 'digestposts', - 'pageviews', - 'extcredits1', - 'extcredits2', - 'extcredits3', - 'extcredits4', - 'extcredits5', - 'extcredits6', - 'extcredits7', - 'extcredits8', - 'bday', - 'sigstatus', - 'tpp', - 'ppp', - 'styleid', - 'dateformat', - 'timeformat', - 'pmsound', - 'showemail', - 'newsletter', - 'invisible', - 'prompt', - 'editormode', - 'customshow', - 'xspacestatus', - 'customaddfeed', - 'newbietaskid', - 'secques', - 'gender', - ); - list($year, $month, $day) = explode('-', $row['bday']); - $row['notifysound'] = $row['pmsound']; - $update = array( - 'status' => array( - 'regip' => $row['regip'], - 'lastip' => $row['lastip'], - 'lastvisit' => $row['lastvisit'], - 'lastactivity' => $row['lastactivity'], - 'lastpost' => $row['lastpost'], - 'buyercredit' => $rowfield['buyercredit'], - 'sellercredit' => $rowfield['sellercredit'], - ), - 'count' => array( - 'posts' => $row['posts'], - 'threads' => $row['threads'], - 'digestposts' => $row['digestposts'], - 'extcredits1' => $row['extcredits1'], - 'extcredits2' => $row['extcredits2'], - 'extcredits3' => $row['extcredits3'], - 'extcredits4' => $row['extcredits4'], - 'extcredits5' => $row['extcredits5'], - 'extcredits6' => $row['extcredits6'], - 'extcredits7' => $row['extcredits7'], - 'extcredits8' => $row['extcredits8'], - 'oltime' => $row['oltime'], - ), - 'profile' => array( - 'birthyear' => $year, - 'birthmonth' => $month, - 'birthday' => $day, - 'gender' => $row['gender'], - 'site' => $rowfield['site'], - 'alipay' => $rowfield['alipay'], - 'icq' => $rowfield['icq'], - 'qq' => $rowfield['qq'], - 'yahoo' => $rowfield['yahoo'], - 'msn' => $rowfield['msn'], - 'taobao' => $rowfield['taobao'], - 'address' => $rowfield['location'], - 'bio' => $rowfield['bio'], - ), - 'field_forum' => array( - 'customshow' => $row['customshow'], - 'customstatus' => $rowfield['customstatus'], - 'medals' => $rowfield['medals'], - 'sightml' => $rowfield['sightml'], - 'groupterms' => $rowfield['groupterms'], - 'authstr' => $rowfield['authstr'], - ) - ); - foreach($unset as $k) { - unset($row[$k]); - } - foreach($update as $table => $trow) { - $data = implode_field_value($trow, ',', db_table_fields($db_target, $table_target.'_'.$table)); - $db_target->query("UPDATE {$table_target}_$table SET $data WHERE uid='$row[uid]'"); - } - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." uid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} else { - $db_target->query("UPDATE $table_target SET newpm='0'"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/moderators.php b/utility/convert/source/d7.2_x2.0/table/moderators.php deleted file mode 100644 index 11467cf2..00000000 --- a/utility/convert/source/d7.2_x2.0/table/moderators.php +++ /dev/null @@ -1,41 +0,0 @@ -tablepre . 'moderators'; -$table_target = $db_target->tablepre . 'forum_moderator'; - -$limit = 1000; -$step = getgpc('step'); -$step = intval($step); - -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("TRUNCATE $table_target"); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/modworks.php b/utility/convert/source/d7.2_x2.0/table/modworks.php deleted file mode 100644 index fbb0f7aa..00000000 --- a/utility/convert/source/d7.2_x2.0/table/modworks.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre . 'modworks'; -$table_target = $db_target->tablepre . 'forum_modwork'; - -$limit = 1000; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("TRUNCATE $table_target"); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/myrepeats.php b/utility/convert/source/d7.2_x2.0/table/myrepeats.php deleted file mode 100644 index 39af1f8e..00000000 --- a/utility/convert/source/d7.2_x2.0/table/myrepeats.php +++ /dev/null @@ -1,45 +0,0 @@ -tablepre.'myrepeats'; -$table_target = $db_target->tablepre.'myrepeats'; - -$limit = 2000; -$nextid = 0; - -$query1 = $db_source->result($db_source->query("SHOW FIELDS FROM $table_source", 'SILENT'), 0); -$query2 = $db_target->result($db_target->query("SHOW FIELDS FROM $table_target", 'SILENT'), 0); -$pass = $query1 && $query2; - -if($pass) { - $start = getgpc('start'); - if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - } - - $query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); - while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } - - if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); - } -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/mytasks.php b/utility/convert/source/d7.2_x2.0/table/mytasks.php deleted file mode 100644 index ba6b1eab..00000000 --- a/utility/convert/source/d7.2_x2.0/table/mytasks.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre . 'mytasks'; -$table_target = $db_target->tablepre . 'common_mytask'; - -$limit = 2500; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("TRUNCATE $table_target"); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/navs.php b/utility/convert/source/d7.2_x2.0/table/navs.php deleted file mode 100644 index ab4943af..00000000 --- a/utility/convert/source/d7.2_x2.0/table/navs.php +++ /dev/null @@ -1,49 +0,0 @@ -tablepre . 'navs'; -$table_target = $db_target->tablepre . 'common_nav'; - -$limit = 250; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("DELETE FROM $table_target WHERE type<>'0'"); - $maxid = $db_target->result_first("SELECT MAX(id) FROM $table_target"); - $maxid = intval($maxid); - $db_target->query("ALTER TABLE $table_target AUTO_INCREMENT=".($maxid+1)); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source WHERE type<>'0' ORDER BY parentid DESC LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row['available'] = '0'; - $row['icon'] = $row['subname'] = $row['suburl'] = ''; - $row = daddslashes($row, 1); - $orig_id = $row['id']; - unset($row['id']); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $newid = $db_target->insert_id(); - $db_target->query("UPDATE $table_target SET parentid='$newid' WHERE parentid='$orig_id'"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/onlinelist.php b/utility/convert/source/d7.2_x2.0/table/onlinelist.php deleted file mode 100644 index db43a7d4..00000000 --- a/utility/convert/source/d7.2_x2.0/table/onlinelist.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre . 'onlinelist'; -$table_target = $db_target->tablepre . 'forum_onlinelist'; - -$limit = 250; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("TRUNCATE $table_target"); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/onlinetime.php b/utility/convert/source/d7.2_x2.0/table/onlinetime.php deleted file mode 100644 index a59fb4ce..00000000 --- a/utility/convert/source/d7.2_x2.0/table/onlinetime.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'onlinetime'; -$table_target = $db_target->tablepre.'common_onlinetime'; - -$limit = 2000; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE uid>'$start' ORDER BY uid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['uid']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." uid > $nextid ", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/orders.php b/utility/convert/source/d7.2_x2.0/table/orders.php deleted file mode 100644 index da473da0..00000000 --- a/utility/convert/source/d7.2_x2.0/table/orders.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre . 'orders'; -$table_target = $db_target->tablepre . 'forum_order'; - -$limit = $setting['limit']['orders'] ? $setting['limit']['orders'] : 2500; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("TRUNCATE $table_target"); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/paymentlog.php b/utility/convert/source/d7.2_x2.0/table/paymentlog.php deleted file mode 100644 index 44715446..00000000 --- a/utility/convert/source/d7.2_x2.0/table/paymentlog.php +++ /dev/null @@ -1,79 +0,0 @@ -tablepre . 'paymentlog'; -$table_target = $db_target->tablepre . 'common_credit_log'; - -$limit = $setting['limit']['paymentlog'] ? $setting['limit']['paymentlog'] : 2500; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; -if(!$step && !$process['truncate_credit_log']) { - $process['truncate_credit_log'] = 1; - save_process('main', $process); - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM ".$db_source->tablepre."settings WHERE variable IN ('creditstax', 'creditstrans')"); -while($setting = $db_source->fetch_array($query)) { - if($setting['variable'] == 'creditstrans') { - $creditstrans = explode(',', $setting['value']); - $ext = $creditstrans[1] ? $creditstrans[1] : $creditstrans[0]; - if(!$ext) { - $ext = 1; - } - } - if($setting['variable'] == 'creditstax') { - $creditstax = $setting['value']; - } -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - - $rownew = array(); - $rownew['uid'] = $row['uid']; - $rownew['operation'] = 'BTC'; - $rownew['relatedid'] = $row['tid']; - $rownew['dateline'] = $row['dateline']; - $rownew['extcredits'.$ext] = -$row['amount']; - - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - - $rownew = array(); - $rownew['uid'] = $row['authorid']; - $rownew['operation'] = 'STC'; - $rownew['relatedid'] = $row['tid']; - $rownew['dateline'] = $row['dateline']; - $rownew['extcredits'.$ext] = $row['netamount']; - - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/polloptions.php b/utility/convert/source/d7.2_x2.0/table/polloptions.php deleted file mode 100644 index df7f91d9..00000000 --- a/utility/convert/source/d7.2_x2.0/table/polloptions.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre . 'polloptions'; -$table_target = $db_target->tablepre . 'forum_polloption'; -$table_pollvoter = $db_target->tablepre . 'forum_pollvoter'; - -$limit = $setting['limit']['polloptions'] ? $setting['limit']['polloptions'] : 1000; - -$nextid = 0; -$start = getgpc('start'); -$continue = false; - -if(!$start) { - $db_target->query("TRUNCATE $table_target"); - $db_target->query("TRUNCATE $table_pollvoter"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE polloptionid>'$start' LIMIT $limit"); -while($row = $db_source->fetch_array($query)) { - $nextid = $row['polloptionid']; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - - $voterids = trim($row['voterids']); - $voterids = explode("\t", $voterids); - foreach($voterids as $voterid) { - $count = $db_target->result_first("SELECT COUNT(*) FROM $table_pollvoter WHERE tid='{$row['tid']}' AND uid='$voterid' LIMIT 1"); - if(!$count) { - $username = daddslashes($db_source->result_first("SELECT username FROM {$db_source->tablepre}members WHERE uid='$voterid'"), 1); - $db_target->query("INSERT INTO $table_pollvoter SET tid='{$row['tid']}', uid='$voterid', username='$username', options='', dateline='0'"); - } - } -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." polloptionid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/polls.php b/utility/convert/source/d7.2_x2.0/table/polls.php deleted file mode 100644 index e3fbab8d..00000000 --- a/utility/convert/source/d7.2_x2.0/table/polls.php +++ /dev/null @@ -1,57 +0,0 @@ -tablepre . 'polls'; -$table_target = $db_target->tablepre . 'forum_poll'; - -$limit = $setting['limit']['polls'] ? $setting['limit']['polls'] : 1000; -$start = getgpc('start'); - -$nextid = 0; - -if(!$start) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE tid>'$start' ORDER BY tid LIMIT $limit"); -while($poll = $db_source->fetch_array($query)) { - $nextid = $poll['tid']; - $query_p = $db_source->query("SELECT voterids FROM {$db_source->tablepre}polloptions WHERE tid='{$poll['tid']}'"); - $voterids = array(); - while($option = $db_source->fetch_array($query_p)) { - $voters_t = explode("\t", $option['voterids']); - foreach($voters_t as $value) { - if(!empty($value)) { - $voterids[] = $value; - } - } - } - $voters = array_unique($voterids); - $voterscount = count($voters); - - $poll['voters'] = $voterscount; - - $polloptionpreview = ''; - $query_p = $db_source->query("SELECT polloption FROM {$db_source->tablepre}polloptions WHERE tid='{$poll['tid']}' ORDER BY displayorder LIMIT 2"); - while($option = $db_source->fetch_array($query_p)) { - $polloptvalue = preg_replace("/\[url=(https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|ed2k|thunder|synacast){1}:\/\/([^\[\"']+?)\](.+?)\[\/url\]/i", "\\3", $option['polloption']); - $polloptionpreview .= $polloptvalue."\t"; - } - - $poll['pollpreview'] = $polloptionpreview; - $poll = daddslashes($poll, 1); - $data = implode_field_value($poll, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source.",tid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/postposition.php b/utility/convert/source/d7.2_x2.0/table/postposition.php deleted file mode 100644 index e855499d..00000000 --- a/utility/convert/source/d7.2_x2.0/table/postposition.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre . 'postposition'; -$table_target = $db_target->tablepre . 'forum_postposition'; - -$limit = 2500; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("TRUNCATE $table_target"); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/posts.php b/utility/convert/source/d7.2_x2.0/table/posts.php deleted file mode 100644 index aa25c1d0..00000000 --- a/utility/convert/source/d7.2_x2.0/table/posts.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre . 'posts'; -$table_target = $db_target->tablepre . 'forum_post'; - -$limit = $setting['limit']['posts'] ? $setting['limit']['posts'] : 5000; -$start = getgpc('start'); -$start = intval($start); -$nextid = 0; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE pid>'$start' LIMIT $limit"); -while($row = $db_source->fetch_array($query)) { - $nextid = $row['pid']; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." pid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} else { - $maxpid = $db_target->result_first("SELECT MAX(pid) FROM $table_target"); - $maxpid = intval($maxpid) + 1; - $db_target->query("ALTER TABLE ".$db_target->tablepre.'forum_post_tableid'." AUTO_INCREMENT=$maxpid"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/promotions.php b/utility/convert/source/d7.2_x2.0/table/promotions.php deleted file mode 100644 index 039e36c6..00000000 --- a/utility/convert/source/d7.2_x2.0/table/promotions.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre . 'promotions'; -$table_target = $db_target->tablepre . 'forum_promotion'; - -$limit = 1000; -$step = getgpc('step'); -$step = intval($step); -$total = getgpc('total'); -$total = intval($total); - -$continue = false; - -if(!$step) { - $db_target->query("TRUNCATE $table_target"); -} - -$offset = $step * $limit; - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $offset, $limit"); -while($row = $db_source->fetch_array($query)) { - $continue = true; - $row = daddslashes($row, 1); - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); - $total ++; -} -$nextstep = $step + 1; -if($continue) { - showmessage("继续转换数据表 ".$table_source.",已转换 $total 条记录。", "index.php?a=$action&source=$source&prg=$curprg&step=$nextstep&total=$total"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/ratelog.php b/utility/convert/source/d7.2_x2.0/table/ratelog.php deleted file mode 100644 index 419b30cb..00000000 --- a/utility/convert/source/d7.2_x2.0/table/ratelog.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'ratelog'; -$table_target = $db_target->tablepre.'forum_ratelog'; - -$limit = 1000; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY dateline LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - $next = $start + $limit; - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=$next"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/regips.php b/utility/convert/source/d7.2_x2.0/table/regips.php deleted file mode 100644 index 08abee72..00000000 --- a/utility/convert/source/d7.2_x2.0/table/regips.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'regips'; -$table_target = $db_target->tablepre.'common_regip'; - -$limit = 1000; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY dateline LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - $next = $start + $limit; - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=$next"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/rewardlog.php b/utility/convert/source/d7.2_x2.0/table/rewardlog.php deleted file mode 100644 index ccaa4528..00000000 --- a/utility/convert/source/d7.2_x2.0/table/rewardlog.php +++ /dev/null @@ -1,77 +0,0 @@ -tablepre.'rewardlog'; -$table_target = $db_target->tablepre.'common_credit_log'; - -$limit = 1000; -$nextid = 0; - -$start = intval(getgpc('start')); -if(empty($start) && !$process['truncate_credit_log']) { - $start = 0; - $process['truncate_credit_log'] = 1; - save_process('main', $process); - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM ".$db_source->tablepre."settings WHERE variable IN ('creditstax', 'creditstrans')"); -while($setting = $db_source->fetch_array($query)) { - if($setting['variable'] == 'creditstrans') { - $creditstrans = explode(',', $setting['value']); - $ext = $creditstrans[2] ? $creditstrans[2] : $creditstrans[0]; - if(!$ext) { - $ext = 1; - } - } - if($setting['variable'] == 'creditstax') { - $creditstax = $setting['value']; - } -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE netamount>'0' ORDER BY dateline LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - if($row['answererid'] > 0) { - $rownew = array(); - $rownew['uid'] = $row['answererid']; - $rownew['operation'] = 'RAC'; - $rownew['relatedid'] = $row['tid']; - $rownew['dateline'] = $row['dateline']; - $rownew['extcredits'.$ext] = $row['netamount']; - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } else { - $rownew = array(); - $rownew['uid'] = $row['authorid']; - $rownew['operation'] = 'RTC'; - $rownew['relatedid'] = $row['tid']; - $rownew['dateline'] = $row['dateline']; - $rownew['extcredits'.$ext] = -ceil($row['netamount'] / (1 - $creditstax)); - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - } - -} - -if($nextid) { - $next = $start + $limit; - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=$next"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/settings.php b/utility/convert/source/d7.2_x2.0/table/settings.php deleted file mode 100644 index 65e64f73..00000000 --- a/utility/convert/source/d7.2_x2.0/table/settings.php +++ /dev/null @@ -1,74 +0,0 @@ -tablepre.'settings'; -$table_target = $db_target->tablepre.'common_setting'; - -$newsetting = array(); -$query = $db_target->query("SELECT * FROM $table_target"); -while($row = $db_source->fetch_array($query)) { - $newsetting[$row['skey']] = $row['skey']; -} - -$skips = array('attachdir', 'attachurl', 'cachethreaddir', 'jspath', 'my_status'); - -$query = $db_source->query("SELECT * FROM $table_source"); -while ($row = $db_source->fetch_array($query)) { - if(in_array($row['variable'], $skips)) continue; - - if(isset($newsetting[$row['variable']])) { - $rownew['svalue'] = array(); - if($row['variable'] == 'my_search_status' && $row['value'] != -1) { - $row['value'] = 0; - } - if(in_array($row['variable'], array('watermarkminheight', 'watermarkminwidth', 'watermarkquality', 'watermarkstatus', 'watermarktext', 'watermarktrans', 'watermarktype'))) { - $rownew['skey'] = $row['variable']; - $rownew['svalue'] = array(); - if($row['variable'] == 'watermarktype') { - $watermarktype_map = array( - 0 => 'gif', - 1 => 'png', - 2 => 'text', - ); - $rownew['svalue']['portal'] = $watermarktype_map[$row['value']]; - $rownew['svalue']['forum'] = $watermarktype_map[$row['value']]; - $rownew['svalue']['album'] = $watermarktype_map[$row['value']]; - } elseif($row['variable'] == 'watermarktext') { - $dataold = (array)unserialize($row['value']); - foreach($dataold as $data_k => $data_v) { - $rownew['svalue'][$data_k]['portal'] = $data_v; - $rownew['svalue'][$data_k]['forum'] = $data_v; - $rownew['svalue'][$data_k]['album'] = $data_v; - } - } else { - $dataold = $row['value']; - $rownew['svalue']['portal'] = $dataold; - $rownew['svalue']['forum'] = $dataold; - $rownew['svalue']['album'] = $dataold; - } - $rownew['svalue'] = serialize($rownew['svalue']); - } elseif(in_array($row['variable'], array('seotitle', 'seodescription', 'seokeywords'))) { - $rownew['skey'] = $row['variable']; - $rownew['svalue'] = array(); - $rownew['svalue']['forum'] = $row['value']; - $rownew['svalue'] = serialize($rownew['svalue']); - } else { - $rownew['skey'] = $row['variable']; - - $rownew['svalue'] = $row['value']; - } - $rownew = daddslashes($rownew, 1); - - $data = implode_field_value($rownew, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("REPLACE INTO $table_target SET $data"); - } -} -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/smilies.php b/utility/convert/source/d7.2_x2.0/table/smilies.php deleted file mode 100644 index 4974cfdc..00000000 --- a/utility/convert/source/d7.2_x2.0/table/smilies.php +++ /dev/null @@ -1,42 +0,0 @@ -tablepre.'smilies'; -$table_target = $db_target->tablepre.'common_smiley'; - -$limit = 100; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>$start ORDER BY id LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['id']; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid ", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} else { - $db_target->query("REPLACE INTO $table_target (id, typeid, displayorder, type, code, url) VALUES ('83','4','9','stamp','编辑采用','010.gif')"); - $db_target->query("REPLACE INTO $table_target (id, typeid, displayorder, type, code, url) VALUES ('84','0','18','stamplist','编辑采用','010.small.gif')"); - -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/tags.php b/utility/convert/source/d7.2_x2.0/table/tags.php deleted file mode 100644 index 597e86b8..00000000 --- a/utility/convert/source/d7.2_x2.0/table/tags.php +++ /dev/null @@ -1,55 +0,0 @@ -tablepre.'tags'; -$table_target = $db_target->tablepre.'common_tag'; - -$table_thread_source = $db_source->tablepre.'threadtags'; -$table_thread_target = $db_target->tablepre.'common_tagitem'; -$table_post_target = $db_target->tablepre.'forum_post'; - -$limit = 100; -$nextid = 0; - -$start = intval(getgpc('start')); - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); - $db_target->query("TRUNCATE $table_thread_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY tagname LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $start + $limit; - - $row['status'] = $row['closed']; - unset($row['closed'], $row['total']); - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - $tagid = $db_target->insert_id(); - - $query_thread = $db_source->query("SELECT tid FROM $table_thread_source WHERE tagname='$row[tagname]'"); - while ($rowthread = $db_source->fetch_array($query_thread)) { - $db_target->query("INSERT INTO $table_thread_target SET tagid='$tagid', tagname='$row[tagname]', itemid='$rowthread[tid]', idtype='tid'"); - $db_target->query("UPDATE $table_post_target SET tags=CONCAT(tags, '$tagid,$row[tagname]\t') WHERE tid='$rowthread[tid]' AND first='1'"); - } - -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." tag > $nextid ", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/tasks.php b/utility/convert/source/d7.2_x2.0/table/tasks.php deleted file mode 100644 index b81630f9..00000000 --- a/utility/convert/source/d7.2_x2.0/table/tasks.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'tasks'; -$table_target = $db_target->tablepre.'common_task'; - -$limit = 100; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE newbietask=0 AND taskid>$start ORDER BY taskid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['taskid']; - - unset($row['newbietask'], $row['type']); - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." taskid > $nextid ", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/taskvars.php b/utility/convert/source/d7.2_x2.0/table/taskvars.php deleted file mode 100644 index 9a7581f8..00000000 --- a/utility/convert/source/d7.2_x2.0/table/taskvars.php +++ /dev/null @@ -1,45 +0,0 @@ -tablepre.'taskvars'; -$table_target = $db_target->tablepre.'common_taskvar'; - -$limit = 100; -$nextid = 0; - -$start = intval(getgpc('start')); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$taskids = 0; -$query = $db_source->query("SELECT * FROM ".$db_source->tablepre.'tasks'); -while($row = $db_source->fetch_array($query)) { - $taskids .= ", $row[taskid]"; -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE taskid IN ($taskids) AND taskvarid>$start ORDER BY taskvarid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['taskvarid']; - - unset($row['extra']); - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." taskvarid > $nextid ", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/threads.php b/utility/convert/source/d7.2_x2.0/table/threads.php deleted file mode 100644 index 0740b958..00000000 --- a/utility/convert/source/d7.2_x2.0/table/threads.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'threads'; -$table_target = $db_target->tablepre.'forum_thread'; - -$limit = $setting['limit']['threads'] ? $setting['limit']['threads'] : 2500; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE tid>'$start' ORDER BY tid LIMIT $limit"); -while ($thread = $db_source->fetch_array($query)) { - - $nextid = $thread['tid']; - - unset($thread['iconid'], $thread['itemid'], $thread['supe_pushstatus']); - - $thread = daddslashes($thread, 1); - - $data = implode_field_value($thread, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." tid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/threadsattachments.php b/utility/convert/source/d7.2_x2.0/table/threadsattachments.php deleted file mode 100644 index f5c60f19..00000000 --- a/utility/convert/source/d7.2_x2.0/table/threadsattachments.php +++ /dev/null @@ -1,82 +0,0 @@ -tablepre.'attachments'; -$table_target = $db_target->tablepre.'forum_attachment'; -$table_source_field = $db_source->tablepre.'attachmentfields'; -$table_target_forum_threadimage = $db_target->tablepre.'forum_threadimage'; -$table_target_forum_thread = $db_target->tablepre.'forum_thread'; - -$limit = $setting['limit']['attachments'] ? $setting['limit']['attachments'] : 2500; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); - $db_target->query("TRUNCATE $table_target_forum_threadimage"); - for($i = 0;$i < 10;$i++) { - $table_target_attachment_i = $db_target->tablepre.'forum_attachment_'.$i; - $db_target->query("TRUNCATE $table_target_attachment_i"); - } -} - -$query = $db_source->query("SELECT a.*,af.description FROM $table_source a - LEFT JOIN $table_source_field af USING(aid) WHERE a.aid>'$start' - ORDER BY a.aid LIMIT $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = $row['aid']; - - $row = daddslashes($row, 1); - - $tid = (string)$row['tid']; - $tableid = $tid{strlen($tid)-1}; - $table_target_attachment_tableid = $db_target->tablepre.'forum_attachment_'.$tableid; - $db_target->query("REPLACE INTO $table_target SET aid='$row[aid]', tid='$row[tid]', pid='$row[pid]', uid='$row[uid]', tableid='$tableid', downloads='$row[downloads]'"); - $db_target->query("REPLACE INTO $table_target_attachment_tableid SET - aid='$row[aid]', - tid='$row[tid]', - pid='$row[pid]', - uid='$row[uid]', - dateline='$row[dateline]', - filename='$row[filename]', - filesize='$row[filesize]', - attachment='$row[attachment]', - remote='$row[remote]', - description='$row[description]', - readperm='$row[readperm]', - price='$row[price]', - isimage='$row[isimage]', - width='$row[width]', - thumb='$row[thumb]', - picid='$row[picid]'"); - if(($row['isimage'] == '1' || $row['isimage'] == '-1') && $row['attachment']) { - $querythread = $db_target->query("SELECT * from $table_target_forum_thread WHERE tid='$row[tid]'"); - while ($rownew = $db_target->fetch_array($querythread)) { - $tid_attachment = $rownew['attachment']; - $tid_posttableid = $rownew['posttableid']; - $tid_dateline = $rownew['dateline']; - } - $dateline = time() - 86400 * 10 * 30; - if($tid_attachment == '2' && $tid_posttableid == '0' && $tid_dateline > $dateline) { - if(!$db_target->result_first("SELECT COUNT(*) FROM $table_target_forum_threadimage WHERE tid='$row[tid]'")) { - $db_target->query("INSERT INTO $table_target_forum_threadimage VALUES ('$row[tid]','$row[attachment]','$row[remote]')"); - } - } - } - -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." aid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/threadsmod.php b/utility/convert/source/d7.2_x2.0/table/threadsmod.php deleted file mode 100644 index 982bdc1f..00000000 --- a/utility/convert/source/d7.2_x2.0/table/threadsmod.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'threadsmod'; -$table_target = $db_target->tablepre.'forum_threadmod'; - -$limit = 100; -$next = FALSE; - -$start = $_GET['start'] ? getgpc('start') : 0; -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY tid LIMIT $start, $limit"); -while ($data = $db_source->fetch_array($query)) { - - $next = TRUE; - - $data = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($next) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start + $limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/threadtypes.php b/utility/convert/source/d7.2_x2.0/table/threadtypes.php deleted file mode 100644 index 8f712502..00000000 --- a/utility/convert/source/d7.2_x2.0/table/threadtypes.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'threadtypes'; -$table_target = $db_target->tablepre.'forum_threadtype'; - -$limit = 100; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE typeid>'$start' AND special='1' ORDER BY typeid LIMIT $limit"); -while ($threadtype = $db_source->fetch_array($query)) { - - $nextid = $threadtype['typeid']; - - $threadtype = daddslashes($threadtype, 1); - - $data = implode_field_value($threadtype, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." typeid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/tradecomments.php b/utility/convert/source/d7.2_x2.0/table/tradecomments.php deleted file mode 100644 index da153693..00000000 --- a/utility/convert/source/d7.2_x2.0/table/tradecomments.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'tradecomments'; -$table_target = $db_target->tablepre.'forum_tradecomment'; - -$limit = 100; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($data = $db_source->fetch_array($query)) { - - $nextid = $data['id']; - - $data = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." typeid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/tradelog.php b/utility/convert/source/d7.2_x2.0/table/tradelog.php deleted file mode 100644 index 9d152231..00000000 --- a/utility/convert/source/d7.2_x2.0/table/tradelog.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'tradelog'; -$table_target = $db_target->tablepre.'forum_tradelog'; - -$limit = 100; -$next = FALSE; - -$start = $_GET['start'] ? getgpc('start') : 0; -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY tid LIMIT $start, $limit"); -while ($data = $db_source->fetch_array($query)) { - - $next = TRUE; - - $data = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($next) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start + $limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/trades.php b/utility/convert/source/d7.2_x2.0/table/trades.php deleted file mode 100644 index 9fe8113d..00000000 --- a/utility/convert/source/d7.2_x2.0/table/trades.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'trades'; -$table_target = $db_target->tablepre.'forum_trade'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($data = $db_source->fetch_array($query)) { - - $nextid = 1; - - $data = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/typeoptions.php b/utility/convert/source/d7.2_x2.0/table/typeoptions.php deleted file mode 100644 index af21b2b6..00000000 --- a/utility/convert/source/d7.2_x2.0/table/typeoptions.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'typeoptions'; -$table_target = $db_target->tablepre.'forum_typeoption'; - -$limit = 100; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE optionid>'$start' ORDER BY optionid LIMIT $limit"); -while ($data = $db_source->fetch_array($query)) { - - $nextid = $data['optionid']; - - $threadtype = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." optionid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/typeoptionvars.php b/utility/convert/source/d7.2_x2.0/table/typeoptionvars.php deleted file mode 100644 index 3dfee2b7..00000000 --- a/utility/convert/source/d7.2_x2.0/table/typeoptionvars.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'typeoptionvars'; -$table_target = $db_target->tablepre.'forum_typeoptionvar'; - -$limit = 1000; -$next = FALSE; - -$start = $_GET['start'] ? getgpc('start') : 0; -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY tid LIMIT $start, $limit"); -while ($data = $db_source->fetch_array($query)) { - - $next = TRUE; - - $data = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($next) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start + $limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/typevars.php b/utility/convert/source/d7.2_x2.0/table/typevars.php deleted file mode 100644 index 1f717bbf..00000000 --- a/utility/convert/source/d7.2_x2.0/table/typevars.php +++ /dev/null @@ -1,42 +0,0 @@ -tablepre.'typevars'; -$table_target = $db_target->tablepre.'forum_typevar'; - -$limit = 100; -$next = FALSE; - -$start = $_GET['start'] ? getgpc('start') : 0; -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($data = $db_source->fetch_array($query)) { - - $next = TRUE; - - $threadtype = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($next) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start + $limit)); -} else { - if(!$db_target->result_first("SELECT count(*) FROM $table_target WHERE search > 2 LIMIT 1")) { - $db_target->query("UPDATE $table_target SET search = '3' WHERE search = '1'"); - } -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/usergroup.php b/utility/convert/source/d7.2_x2.0/table/usergroup.php deleted file mode 100644 index e2dd0bdc..00000000 --- a/utility/convert/source/d7.2_x2.0/table/usergroup.php +++ /dev/null @@ -1,72 +0,0 @@ -tablepre.'usergroups'; -$table_target = $db_target->tablepre.'common_usergroup'; -$table_target_field = $table_target.'_field'; - -$limit = 100; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); - $db_target->query("TRUNCATE $table_target_field"); -} - -$usergroup = array('groupid', 'radminid', 'type', 'system', 'grouptitle', 'creditshigher', 'creditslower', 'stars', 'color', 'allowvisit', 'allowsendpm', 'allowinvite', 'allowmailinvite', 'maxinvitenum', 'inviteprice', 'maxinviteday'); -$usergroup_field = array('groupid', 'readaccess', 'allowpost', 'allowreply', 'allowpostpoll', 'allowpostreward', 'allowposttrade', 'allowpostactivity', 'allowdirectpost', 'allowgetattach', 'allowpostattach', 'allowvote', 'allowsearch', 'allowcstatus', 'allowinvisible', 'allowtransfer', 'allowsetreadperm', 'allowsetattachperm', 'allowhidecode', 'allowhtml', 'allowhidecode', 'allowhtml', 'allowanonymous', 'allowsigbbcode', 'allowsigimgcode', 'disableperiodctrl', 'reasonpm', 'maxprice', 'maxsigsize', 'maxattachsize', 'maxsizeperday', 'maxpostsperhour', 'attachextensions', 'raterange', 'mintradeprice', 'maxtradeprice', 'allowhidecode', 'allowhtml', 'allowanonymous', 'allowsigbbcode', 'allowsigimgcode', 'disableperiodctrl', 'reasonpm', 'maxprice', 'maxsigsize', 'maxattachsize', 'maxsizeperday', 'maxpostsperhour', 'attachextensions', 'raterange', 'mintradeprice', 'maxtradeprice', 'minrewardprice', 'maxrewardprice', 'magicsdiscount', 'maxmagicsweight', 'allowpostdebate', 'tradestick', 'exempt', 'maxattachnum', 'allowposturl', 'allowrecommend', 'edittimelimit', 'allowpostrushreply'); - -$userdata = $userfielddata = array(); -$query = $db_source->query("SELECT * FROM $table_source WHERE groupid>'$start' ORDER BY groupid LIMIT $limit"); -while ($data = $db_source->fetch_array($query)) { - - $nextid = $data['groupid']; - - $data = daddslashes($data, 1); - - foreach($usergroup as $field) { - $userdata[$field]= $data[$field]; - } - - $data['allowsearch'] = $data['allowsearch'] ? 63 : 0; - - foreach($usergroup_field as $field) { - $userfielddata[$field]= $data[$field]; - } - $userfielddata['allowpostimage'] = $userfielddata['allowpostattach']; - - if($userfielddata['raterange']) { - $raterangearray = array(); - foreach(explode("\n", $userfielddata['raterange']) as $range) { - $range = explode("\t", $range); - if(count($range) == 4) { - $raterangearray[$range[0]] = implode("\t", array($range[0], 'isself' => 0, 'min' => $range[1], 'max' => $range[2], 'mrpd' => $range[3])); - } - } - if(!empty($raterangearray)) { - $userfielddata['raterange'] = implode("\n", $raterangearray); - } - } - - $userdatalist = implode_field_value($userdata, ',', db_table_fields($db_target, $table_target)); - $userfielddatalist = implode_field_value($userfielddata, ',', db_table_fields($db_target, $table_target_field)); - - $db_target->query("INSERT INTO $table_target SET $userdatalist"); - $db_target->query("INSERT INTO $table_target_field SET $userfielddatalist"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." groupid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} else { - $db_target->query("UPDATE $table_target SET allowvisit='2' WHERE groupid='1'"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/warnings.php b/utility/convert/source/d7.2_x2.0/table/warnings.php deleted file mode 100644 index f101bef8..00000000 --- a/utility/convert/source/d7.2_x2.0/table/warnings.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'warnings'; -$table_target = $db_target->tablepre.'forum_warning'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if(empty($start)) { - $start = 0; - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source LIMIT $start, $limit"); -while ($row = $db_source->fetch_array($query)) { - - $nextid = 1; - - $row = daddslashes($row, 1); - - $data = implode_field_value($row, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." $start 至 ".($start+$limit)." 行", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/table/words.php b/utility/convert/source/d7.2_x2.0/table/words.php deleted file mode 100644 index 84a7b931..00000000 --- a/utility/convert/source/d7.2_x2.0/table/words.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'words'; -$table_target = $db_target->tablepre.'common_word'; - -$limit = 100; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($data = $db_source->fetch_array($query)) { - - $nextid = $data['id']; - - $data = daddslashes($data, 1); - - $datalist = implode_field_value($data, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $datalist"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/d7.2_x2.0/threadtype.php b/utility/convert/source/d7.2_x2.0/threadtype.php deleted file mode 100644 index 7edc5421..00000000 --- a/utility/convert/source/d7.2_x2.0/threadtype.php +++ /dev/null @@ -1,63 +0,0 @@ -tablepre.'forumfields'; -$table_target = $db_target->tablepre.'forum_threadclass'; -$table_target_thread = $db_target->tablepre.'forum_thread'; -$table_target_forumfield = $db_target->tablepre.'forum_forumfield'; - -$limit = 250; -$nextid = 0; -$start = intval(getgpc('start')); - -if(empty($start)) { - $db_target->query("TRUNCATE $table_target"); -} - -$typetids = array(); - -$query = $db_source->query("SELECT fid, threadtypes FROM $table_source WHERE threadtypes!='' LIMIT $start, $limit"); -while($row = $db_source->fetch_array($query)) { - $nextid = $row['fid']; - $threadtypes = (array)unserialize($row['threadtypes']); - $typenames = array(); - if(!is_array($threadtypes['types'])) { - $threadtypes['types'] = array(); - } - $threadtypes_types = $threadtypes['types']; - ksort($threadtypes_types); - foreach($threadtypes_types as $typeid => $name) { - $name = strip_tags($name); - $newtypeid = $db_target->insert('forum_threadclass', array('fid' => $nextid, 'name' => addslashes($name)), 1); - $typenames[$newtypeid] = $name; - $tquery = $db_target->query("SELECT tid FROM $table_target_thread WHERE fid='$nextid' AND typeid='$typeid'"); - while($trow = $db_target->fetch_array($tquery)) { - $typetids[$newtypeid][] = $trow['tid']; - } - } - unset($threadtypes['selectbox'], $threadtypes['flat']); - $threadtypes['icons'] = array(); - $threadtypes['types'] = $typenames; - $db_target->query("UPDATE $table_target_forumfield SET threadtypes='".serialize($threadtypes)."' WHERE fid='{$row['fid']}'"); -} - -if($typetids) { - foreach($typetids as $newtypeid => $row) { - for($i = 0; $i < count($row); $i += 200) { - $db_target->query("UPDATE $table_target_thread SET typeid='$newtypeid' WHERE tid IN (".implode(',', array_slice($row, $i, 200)).")"); - } - } -} - -if($nextid) { - showmessage("继续转换主题分类数据表,fid=$nextid", "index.php?a=$action&source=$source&prg=$curprg&start=".($start+$limit)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/ss7.5_x1.0/readme.txt b/utility/convert/source/ss7.5_x1.0/readme.txt deleted file mode 100644 index 3820bd48..00000000 --- a/utility/convert/source/ss7.5_x1.0/readme.txt +++ /dev/null @@ -1,54 +0,0 @@ -==================================== -SupeSite 7.5 升级至 Discuz! X1 说明 -==================================== - -特别警示!!! -Discuz! X1.0中并未具备SupeSite 7.5中的全部功能, -此转换程序,仅转换SupeSite 7.5中的资讯分类、资讯文章数据到 Discuz! X产品的文章系统中。 -其他数据将不进行转换。 -因此,数据转换后,Discuz! X产品存在原有SupeSite功能丢失和数据丢失问题,请自行权衡决定是否转换升级。 - - -I 升级前的准备 ---------------- -1. 建立程序备份目录,例如 old -2. 将原SupeSite所有程序移动到 old 目录中 -3. 上传 Discuz! X 产品的upload目录中的程序到SupeSite目录 -4. 执行安装程序 /install - 安装的时候请指定原SupeSite挂接的UCenter Server地址 - -II 升级SupeSite数据 ---------------- -1. 安装完毕,测试Discuz! X可以正常运行以后,上传convert 程序到Discuz! X根目录 -2. 执行 /convert -3. 选择相应的程序版本,开始转换 -4. 转换过程中不可擅自中断,直到程序自动执行完毕。 -5. 转换过程可能需要较长时间,且消耗较多服务器资源,您应当选择服务器空闲的时候执行 - -III 升级完毕, 还要做的几件事 --------------------------- -1. 编辑新Discuz! X的 config/config_global.php 文件,设定好创始人 -2. 直接访问新Discuz! X的 admin.php -3. 使用创始人帐号登录,进入后台更新缓存 -4. 新系统增加了很多设置项目,包括用户权限、组权限、论坛板块等等,您需要仔细的重新设置一次。 -5. 转移旧附件目录到新产品根目录(在转移之前,您的资讯内容中的图片无法正常显示) - a)将 old/attachments 目录和目录下的文件 全部移动到 新Discuz! X产品的/data/attachment/portal/目录中 - b) 在原 SS7 源码下找到图标 images/base/attachment.gif,放在 Disucuz! X1 的目录 static/image/filetype/ 下; - c) 找到 source/module/portal/portal_view.php 文件,在代码“$content['content'] = blog_bbcode($content['content']);”后换行添加以下代码: - - $ss_url = 'http://your_ss_site_url/'; // 请将此链接地址改为您的 SS 站点地址!!! - $findarr = array( - $ss_url.'batch.download.php?aid=', // 附件下载地址 - $ss_url.'attachments/', // 附件图片目录 - $ss_url.'images/base/attachment.gif' // 附件下载图标 - ); - $replacearr = array( - 'porta.php?mod=attachment&id=', - $_G['setting']['attachurl'].'/portal/', - STATICURL.'image/filetype/attachment.gif' - ); - $content['content'] = str_replace($findarr, $replacearr, $content['content']); - -6. 转移旧图片目录到新产品根目录(在转移之前,您的资讯内容中的表情无法正常显示) - a)将 old/images 目录和目录下的文件 移动到 新Discuz! X产品的根目录中 -7. 删除 convert 程序,以免给您的Discuz! X安装带来隐患。 \ No newline at end of file diff --git a/utility/convert/source/ss7.5_x1.0/setting.ini b/utility/convert/source/ss7.5_x1.0/setting.ini deleted file mode 100644 index b5dc970c..00000000 --- a/utility/convert/source/ss7.5_x1.0/setting.ini +++ /dev/null @@ -1,25 +0,0 @@ -;本文件格式兼容于 PHP.ini,您可以使用“;”作为注释内容 -;以下设置内容当中如果出现除字母和数字以外的特殊符号,请使用 "" 将内容包含起来 -;以下项目你可以根据自己的需要进行增减 - -[program] -;;程序简介 -introduction = "本程序用于将 SupeSite 7.5 数据转换至 Discuz! X1, 请确认转换程序已经完整上传到 Discuz! X1 程序目录" -;;原始程序版本 -source= "SupeSite 7.5" -;;目标程序版本 -target= "Discuz! X1" - -[tablecheck] -source = postitems -target = portal_article_title - -;转换对应步骤程序的简要说明 -;如果您有某些特殊的转换程序,可以在这里罗列出来 -;例如 test = 这是测试 -;对应转换程序 test.php 的说明, -; -[steps] - -[config] -ucenter = 0 diff --git a/utility/convert/source/ss7.5_x1.0/table/attachments.php b/utility/convert/source/ss7.5_x1.0/table/attachments.php deleted file mode 100644 index c984aed8..00000000 --- a/utility/convert/source/ss7.5_x1.0/table/attachments.php +++ /dev/null @@ -1,51 +0,0 @@ -tablepre.'attachments'; -$table_target = $db_target->tablepre.'portal_attachment'; - -$limit = 150; -$nextid = 0; - -$start = getgpc('start'); - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE aid>'$start' ORDER BY aid LIMIT $limit"); -while ($rs = $db_source->fetch_array($query)) { - - $nextid = $rs['aid']; - - $setarr = array(); - $setarr['uid'] = $rs['uid']; - $setarr['dateline'] = $rs['dateline']; - $setarr['filename'] = $rs['filename']; - $setarr['filetype'] = $rs['attachtype']; - $setarr['filesize'] = $rs['size']; - $setarr['attachment'] = $rs['filepath']; - $setarr['isimage'] = $rs['isimage']; - $setarr['thumb'] = empty($rs['thumbpath']) ? '0' : '2'; - $setarr['remote'] = '0'; - $setarr['aid'] = $rs['itemid']; - - $setarr = daddslashes($setarr, 1); - - $data = implode_field_value($setarr, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/ss7.5_x1.0/table/categories.php b/utility/convert/source/ss7.5_x1.0/table/categories.php deleted file mode 100644 index 0ade25c9..00000000 --- a/utility/convert/source/ss7.5_x1.0/table/categories.php +++ /dev/null @@ -1,60 +0,0 @@ -tablepre.'categories'; -$table_target = $db_target->tablepre.'portal_category'; - -$table_source_items = $db_source->tablepre.'spaceitems'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$arr = $catids = $count_num = array(); - -$query = $db_source->query("SELECT * FROM $table_source WHERE catid>'$start' ORDER BY catid LIMIT $limit"); -while ($value = $db_source->fetch_array($query)) { - $arr[] = $value; - $catids[] = $value['catid']; -} - -$query = $db_source->query("SELECT catid, COUNT(*) AS num FROM $table_source_items WHERE catid IN (".dimplode($catids).") GROUP BY catid"); -while ($value = $db_source->fetch_array($query)) { - $count_num[$value['catid']] = $value['num']; -} - -foreach ($arr as $rs) { - $nextid = $rs['aid']; - - $setarr = array(); - $setarr['catid'] = $rs['catid']; - $setarr['upid'] = $rs['upid']; - $setarr['catname'] = $rs['name']; - $setarr['displayorder'] = $rs['displayorder']; - - $setarr['articles'] = empty($count_num[$rs['catid']]) ? 0 : $count_num[$rs['catid']]; - - $setarr = daddslashes($setarr, 1); - - $data = implode_field_value($setarr, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." catid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/ss7.5_x1.0/table/spacecomments.php b/utility/convert/source/ss7.5_x1.0/table/spacecomments.php deleted file mode 100644 index 2a30eab2..00000000 --- a/utility/convert/source/ss7.5_x1.0/table/spacecomments.php +++ /dev/null @@ -1,48 +0,0 @@ -tablepre.'spacecomments'; -$table_target = $db_target->tablepre.'portal_comment'; - -$limit = 150; -$nextid = 0; - -$start = getgpc('start'); - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE cid>'$start' ORDER BY cid LIMIT $limit"); -while ($rs = $db_source->fetch_array($query)) { - - $nextid = $rs['cid']; - - $setarr = array(); - $setarr['cid'] = $rs['cid']; - $setarr['uid'] = $rs['authorid']; - $setarr['username'] = $rs['author']; - $setarr['aid'] = $rs['itemid']; - $setarr['postip'] = $rs['ip']; - $setarr['dateline'] = $rs['dateline']; - $setarr['message'] = $rs['message']; - - $setarr = daddslashes($setarr, 1); - - $data = implode_field_value($setarr, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." cid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/ss7.5_x1.0/table/spaceitems.php b/utility/convert/source/ss7.5_x1.0/table/spaceitems.php deleted file mode 100644 index c20ec6ce..00000000 --- a/utility/convert/source/ss7.5_x1.0/table/spaceitems.php +++ /dev/null @@ -1,109 +0,0 @@ -tablepre.'spaceitems'; -$table_target = $db_target->tablepre.'portal_article_title'; -$table_target_count = $db_target->tablepre.'portal_article_count'; -$table_target_content = $db_target->tablepre.'portal_article_content'; - -$table_source_content = $db_source->tablepre.'spacenews'; - -$limit = 300; -$nextid = 0; - -$start = getgpc('start'); - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); - $db_target->query("TRUNCATE $table_target_count"); - $db_target->query("TRUNCATE $table_target_content"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE itemid>'$start' ORDER BY itemid LIMIT $limit"); -while ($rs = $db_source->fetch_array($query)) { - - $nextid = $rs['itemid']; - $settitle = array(); - $rs['none'] = ''; - $settitle['aid'] = $rs['itemid']; - $settitle['catid'] = $rs['catid']; - $settitle['bid'] = $rs['none']; - $settitle['uid'] = $rs['uid']; - $settitle['username'] = $rs['username']; - $settitle['title'] = $rs['subject']; - $settitle['shorttitle'] = $rs['none']; - $settitle['summary'] = $rs['none']; - $settitle['pic'] = $rs['none']; - $settitle['thumb'] = $rs['none']; - $settitle['remote'] = $rs['none']; - $settitle['prename'] = $rs['none']; - $settitle['preurl'] = $rs['none']; - $settitle['id'] = $rs['none']; - $settitle['idtype'] = $rs['none']; - $settitle['allowcomment'] = $rs['allowreply']; - $settitle['dateline'] = $rs['dateline']; - - $settitle['author'] = ''; - $settitle['from'] = ''; - $settitle['fromurl'] = ''; - $settitle['url'] = ''; - - $count = 0; - $cquery = $db_source->query("SELECT * FROM $table_source_content WHERE itemid='$rs[itemid]'"); - while($crs = $db_source->fetch_array($cquery)) { - $setcontent = array(); - $setcontent['cid'] = $crs['nid']; - $setcontent['aid'] = $crs['itemid']; - $setcontent['content'] = $crs['message']; - $setcontent['pageorder'] = $crs['pageorder']; - $setcontent['dateline'] = $crs['dateline']; - - $setcontent = daddslashes($setcontent, 1); - - $data = implode_field_value($setcontent, ',', db_table_fields($db_target, $table_target_content)); - - $db_target->query("INSERT INTO $table_target_content SET $data"); - - $settitle['author'] = $crs['newsauthor'] ? $crs['newsauthor'] : $settitle['author']; - $settitle['from'] = $crs['newsfrom'] ? $crs['newsfrom'] : $settitle['from']; - $settitle['fromurl'] = $crs['newsfromurl'] ? $crs['newsfromurl'] : $settitle['fromurl']; - $settitle['url'] = $crs['newsurl'] ? $crs['newsurl'] : $settitle['url']; - $count ++; - } - - $settitle['contents'] = $count; - - $settitle = daddslashes($settitle, 1); - - $data = implode_field_value($settitle, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - - - $setcount = array(); - $setcount['aid'] = $rs['itemid']; - $setcount['viewnum'] = $rs['viewnum']; - $setcount['commentnum'] = $rs['replynum']; - $setcount['catid'] = $rs['catid']; - $setcount['dateline'] = $rs['dateline']; - - $setcount = daddslashes($setcount, 1); - - $data = implode_field_value($setcount, ',', db_table_fields($db_target, $table_target_count)); - - $db_target->query("INSERT INTO $table_target_count SET $data"); - -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." itemid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/ss7.5_x1.5/readme.txt b/utility/convert/source/ss7.5_x1.5/readme.txt deleted file mode 100644 index 2d019e18..00000000 --- a/utility/convert/source/ss7.5_x1.5/readme.txt +++ /dev/null @@ -1,54 +0,0 @@ -==================================== -SupeSite 7.5 升级至 Discuz! X1.5 说明 -==================================== - -特别警示!!! -Discuz! X1.5中并未具备SupeSite 7.5中的全部功能, -此转换程序,仅转换SupeSite 7.5中的资讯分类、资讯文章数据到 Discuz! X1.5产品的文章系统中。 -其他数据将不进行转换。 -因此,数据转换后,Discuz! X1.5产品存在原有SupeSite功能丢失和数据丢失问题,请自行权衡决定是否转换升级。 - - -I 升级前的准备 ---------------- -1. 建立程序备份目录,例如 old -2. 将原SupeSite所有程序移动到 old 目录中 -3. 上传 Discuz! X1.5 产品的upload目录中的程序到SupeSite目录 -4. 执行安装程序 /install - 安装的时候请指定原SupeSite挂接的UCenter Server地址 - -II 升级SupeSite数据 ---------------- -1. 安装完毕,测试Discuz! X1.5可以正常运行以后,上传convert 程序到Discuz! X1.5根目录 -2. 执行 /convert -3. 选择相应的程序版本,开始转换 -4. 转换过程中不可擅自中断,直到程序自动执行完毕。 -5. 转换过程可能需要较长时间,且消耗较多服务器资源,您应当选择服务器空闲的时候执行 - -III 升级完毕, 还要做的几件事 --------------------------- -1. 编辑新Discuz! X1.5的 config/config_global.php 文件,设定好创始人 -2. 直接访问新Discuz! X1.5的 admin.php -3. 使用创始人帐号登录,进入后台更新缓存 -4. 新系统增加了很多设置项目,包括用户权限、组权限、论坛板块等等,您需要仔细的重新设置一次。 -5. 转移旧附件目录到新产品根目录(在转移之前,您的资讯内容中的图片无法正常显示) - a)将 old/attachments 目录和目录下的文件 全部移动到 新Discuz! X1.5产品的/data/attachment/portal/目录中 - b) 在原 SS7 源码下找到图标 images/base/attachment.gif,放在 Disucuz! X1 的目录 static/image/filetype/ 下; - c) 找到 source/module/portal/portal_view.php 文件,在代码“$content['content'] = blog_bbcode($content['content']);”后换行添加以下代码: - - $ss_url = 'http://your_ss_site_url/'; // 请将此链接地址改为您的 SS 站点地址!!! - $findarr = array( - $ss_url.'batch.download.php?aid=', // 附件下载地址 - $ss_url.'attachments/', // 附件图片目录 - $ss_url.'images/base/attachment.gif' // 附件下载图标 - ); - $replacearr = array( - 'porta.php?mod=attachment&id=', - $_G['setting']['attachurl'].'/portal/', - STATICURL.'image/filetype/attachment.gif' - ); - $content['content'] = str_replace($findarr, $replacearr, $content['content']); - -6. 转移旧图片目录到新产品根目录(在转移之前,您的资讯内容中的表情无法正常显示) - a)将 old/images 目录和目录下的文件 移动到 新Discuz! X1.5产品的根目录中 -7. 删除 convert 程序,以免给您的Discuz! X1.5安装带来隐患。 \ No newline at end of file diff --git a/utility/convert/source/ss7.5_x1.5/setting.ini b/utility/convert/source/ss7.5_x1.5/setting.ini deleted file mode 100644 index 89e60b9e..00000000 --- a/utility/convert/source/ss7.5_x1.5/setting.ini +++ /dev/null @@ -1,25 +0,0 @@ -;本文件格式兼容于 PHP.ini,您可以使用“;”作为注释内容 -;以下设置内容当中如果出现除字母和数字以外的特殊符号,请使用 "" 将内容包含起来 -;以下项目你可以根据自己的需要进行增减 - -[program] -;;程序简介 -introduction = "本程序用于将 SupeSite 7.5 数据转换至 Discuz! X1.5, 请确认转换程序已经完整上传到 Discuz! X1.5 程序目录" -;;原始程序版本 -source= "SupeSite 7.5" -;;目标程序版本 -target= "Discuz! X1.5" - -[tablecheck] -source = postitems -target = portal_article_title - -;转换对应步骤程序的简要说明 -;如果您有某些特殊的转换程序,可以在这里罗列出来 -;例如 test = 这是测试 -;对应转换程序 test.php 的说明, -; -[steps] - -[config] -ucenter = 0 diff --git a/utility/convert/source/ss7.5_x1.5/table/attachments.php b/utility/convert/source/ss7.5_x1.5/table/attachments.php deleted file mode 100644 index 218d46f3..00000000 --- a/utility/convert/source/ss7.5_x1.5/table/attachments.php +++ /dev/null @@ -1,51 +0,0 @@ -tablepre.'attachments'; -$table_target = $db_target->tablepre.'portal_attachment'; - -$limit = 150; -$nextid = 0; - -$start = getgpc('start'); - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE aid>'$start' ORDER BY aid LIMIT $limit"); -while ($rs = $db_source->fetch_array($query)) { - - $nextid = $rs['aid']; - - $setarr = array(); - $setarr['uid'] = $rs['uid']; - $setarr['dateline'] = $rs['dateline']; - $setarr['filename'] = $rs['filename']; - $setarr['filetype'] = $rs['attachtype']; - $setarr['filesize'] = $rs['size']; - $setarr['attachment'] = $rs['filepath']; - $setarr['isimage'] = $rs['isimage']; - $setarr['thumb'] = empty($rs['thumbpath']) ? '0' : '2'; - $setarr['remote'] = '0'; - $setarr['aid'] = $rs['itemid']; - - $setarr = daddslashes($setarr, 1); - - $data = implode_field_value($setarr, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/ss7.5_x1.5/table/categories.php b/utility/convert/source/ss7.5_x1.5/table/categories.php deleted file mode 100644 index d02d2d1a..00000000 --- a/utility/convert/source/ss7.5_x1.5/table/categories.php +++ /dev/null @@ -1,60 +0,0 @@ -tablepre.'categories'; -$table_target = $db_target->tablepre.'portal_category'; - -$table_source_items = $db_source->tablepre.'spaceitems'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start') ? getgpc('start') : 0; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$arr = $catids = $count_num = array(); - -$query = $db_source->query("SELECT * FROM $table_source WHERE catid>'$start' ORDER BY catid LIMIT $limit"); -while ($value = $db_source->fetch_array($query)) { - $arr[] = $value; - $catids[] = $value['catid']; -} - -$query = $db_source->query("SELECT catid, COUNT(*) AS num FROM $table_source_items WHERE catid IN (".dimplode($catids).") GROUP BY catid"); -while ($value = $db_source->fetch_array($query)) { - $count_num[$value['catid']] = $value['num']; -} - -foreach ($arr as $rs) { - $nextid = $rs['aid']; - - $setarr = array(); - $setarr['catid'] = $rs['catid']; - $setarr['upid'] = $rs['upid']; - $setarr['catname'] = $rs['name']; - $setarr['displayorder'] = $rs['displayorder']; - $setarr['description'] = $rs['note']; - - $setarr['articles'] = empty($count_num[$rs['catid']]) ? 0 : $count_num[$rs['catid']]; - - $setarr = daddslashes($setarr, 1); - - $data = implode_field_value($setarr, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." catid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/ss7.5_x1.5/table/spacecomments.php b/utility/convert/source/ss7.5_x1.5/table/spacecomments.php deleted file mode 100644 index f6212dcd..00000000 --- a/utility/convert/source/ss7.5_x1.5/table/spacecomments.php +++ /dev/null @@ -1,48 +0,0 @@ -tablepre.'spacecomments'; -$table_target = $db_target->tablepre.'portal_comment'; - -$limit = 150; -$nextid = 0; - -$start = getgpc('start'); - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE cid>'$start' ORDER BY cid LIMIT $limit"); -while ($rs = $db_source->fetch_array($query)) { - - $nextid = $rs['cid']; - - $setarr = array(); - $setarr['cid'] = $rs['cid']; - $setarr['uid'] = $rs['authorid']; - $setarr['username'] = $rs['author']; - $setarr['aid'] = $rs['itemid']; - $setarr['postip'] = $rs['ip']; - $setarr['dateline'] = $rs['dateline']; - $setarr['message'] = $rs['message']; - - $setarr = daddslashes($setarr, 1); - - $data = implode_field_value($setarr, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." cid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/ss7.5_x1.5/table/spaceitems.php b/utility/convert/source/ss7.5_x1.5/table/spaceitems.php deleted file mode 100644 index c20ec6ce..00000000 --- a/utility/convert/source/ss7.5_x1.5/table/spaceitems.php +++ /dev/null @@ -1,109 +0,0 @@ -tablepre.'spaceitems'; -$table_target = $db_target->tablepre.'portal_article_title'; -$table_target_count = $db_target->tablepre.'portal_article_count'; -$table_target_content = $db_target->tablepre.'portal_article_content'; - -$table_source_content = $db_source->tablepre.'spacenews'; - -$limit = 300; -$nextid = 0; - -$start = getgpc('start'); - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); - $db_target->query("TRUNCATE $table_target_count"); - $db_target->query("TRUNCATE $table_target_content"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE itemid>'$start' ORDER BY itemid LIMIT $limit"); -while ($rs = $db_source->fetch_array($query)) { - - $nextid = $rs['itemid']; - $settitle = array(); - $rs['none'] = ''; - $settitle['aid'] = $rs['itemid']; - $settitle['catid'] = $rs['catid']; - $settitle['bid'] = $rs['none']; - $settitle['uid'] = $rs['uid']; - $settitle['username'] = $rs['username']; - $settitle['title'] = $rs['subject']; - $settitle['shorttitle'] = $rs['none']; - $settitle['summary'] = $rs['none']; - $settitle['pic'] = $rs['none']; - $settitle['thumb'] = $rs['none']; - $settitle['remote'] = $rs['none']; - $settitle['prename'] = $rs['none']; - $settitle['preurl'] = $rs['none']; - $settitle['id'] = $rs['none']; - $settitle['idtype'] = $rs['none']; - $settitle['allowcomment'] = $rs['allowreply']; - $settitle['dateline'] = $rs['dateline']; - - $settitle['author'] = ''; - $settitle['from'] = ''; - $settitle['fromurl'] = ''; - $settitle['url'] = ''; - - $count = 0; - $cquery = $db_source->query("SELECT * FROM $table_source_content WHERE itemid='$rs[itemid]'"); - while($crs = $db_source->fetch_array($cquery)) { - $setcontent = array(); - $setcontent['cid'] = $crs['nid']; - $setcontent['aid'] = $crs['itemid']; - $setcontent['content'] = $crs['message']; - $setcontent['pageorder'] = $crs['pageorder']; - $setcontent['dateline'] = $crs['dateline']; - - $setcontent = daddslashes($setcontent, 1); - - $data = implode_field_value($setcontent, ',', db_table_fields($db_target, $table_target_content)); - - $db_target->query("INSERT INTO $table_target_content SET $data"); - - $settitle['author'] = $crs['newsauthor'] ? $crs['newsauthor'] : $settitle['author']; - $settitle['from'] = $crs['newsfrom'] ? $crs['newsfrom'] : $settitle['from']; - $settitle['fromurl'] = $crs['newsfromurl'] ? $crs['newsfromurl'] : $settitle['fromurl']; - $settitle['url'] = $crs['newsurl'] ? $crs['newsurl'] : $settitle['url']; - $count ++; - } - - $settitle['contents'] = $count; - - $settitle = daddslashes($settitle, 1); - - $data = implode_field_value($settitle, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - - - $setcount = array(); - $setcount['aid'] = $rs['itemid']; - $setcount['viewnum'] = $rs['viewnum']; - $setcount['commentnum'] = $rs['replynum']; - $setcount['catid'] = $rs['catid']; - $setcount['dateline'] = $rs['dateline']; - - $setcount = daddslashes($setcount, 1); - - $data = implode_field_value($setcount, ',', db_table_fields($db_target, $table_target_count)); - - $db_target->query("INSERT INTO $table_target_count SET $data"); - -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." itemid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/ss7.5_x2.0/moderate.php b/utility/convert/source/ss7.5_x2.0/moderate.php deleted file mode 100644 index 0f302ac3..00000000 --- a/utility/convert/source/ss7.5_x2.0/moderate.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'common_moderate'; -$table_target_portal_article_title = $db_target->tablepre.'portal_article_title'; -$table_target_portal_comment = $db_target->tablepre.'portal_comment'; - -$query = $db_target->query("SELECT aid FROM $table_target_portal_article_title WHERE status='1'"); -while($row = $db_target->fetch_array($query)) { - updatemoderate('aid', $row['aid']); -} - -$query = $db_target->query("SELECT cid FROM $table_target_portal_comment WHERE idtype='aid' AND status='1'"); -while($row = $db_target->fetch_array($query)) { - updatemoderate('aid_cid', $row['cid']); -} - -$query = $db_target->query("SELECT cid FROM $table_target_portal_comment WHERE idtype='topic' AND status='1'"); -while($row = $db_target->fetch_array($query)) { - updatemoderate('topicid_cid', $row['cid']); -} - -function updatemoderate($idtype, $ids) { - global $table_target, $db_target; - $ids = is_array($ids) ? $ids : array($ids); - if(!$ids) { - return; - } - $time = time(); - foreach($ids as $id) { - $db_target->query("INSERT INTO $table_target (id,idtype,status,dateline) VALUES ('$id','$idtype','0','$time')"); - } -} -?> \ No newline at end of file diff --git a/utility/convert/source/ss7.5_x2.0/readme.txt b/utility/convert/source/ss7.5_x2.0/readme.txt deleted file mode 100644 index 64881132..00000000 --- a/utility/convert/source/ss7.5_x2.0/readme.txt +++ /dev/null @@ -1,54 +0,0 @@ -==================================== -SupeSite 7.5 升级至 Discuz! X2.0 说明 -==================================== - -特别警示!!! -Discuz! X2.0中并未具备SupeSite 7.5中的全部功能, -此转换程序,仅转换SupeSite 7.5中的资讯分类、资讯文章数据到 Discuz! X2.0产品的文章系统中。 -其他数据将不进行转换。 -因此,数据转换后,Discuz! X2.0产品存在原有SupeSite功能丢失和数据丢失问题,请自行权衡决定是否转换升级。 - - -I 升级前的准备 ---------------- -1. 建立程序备份目录,例如 old -2. 将原SupeSite所有程序移动到 old 目录中 -3. 上传 Discuz! X2.0 产品的upload目录中的程序到SupeSite目录 -4. 执行安装程序 /install - 安装的时候请指定原SupeSite挂接的UCenter Server地址(如果 UCenter版本低于1.6.0,需先升级 UCenter ) - -II 升级SupeSite数据 ---------------- -1. 安装完毕,测试Discuz! X2.0可以正常运行以后,上传convert 程序到Discuz! X2.0根目录 -2. 执行 /convert -3. 选择相应的程序版本,开始转换 -4. 转换过程中不可擅自中断,直到程序自动执行完毕。 -5. 转换过程可能需要较长时间,且消耗较多服务器资源,您应当选择服务器空闲的时候执行 - -III 升级完毕, 还要做的几件事 --------------------------- -1. 编辑新Discuz! X2.0的 config/config_global.php 文件,设定好创始人 -2. 直接访问新Discuz! X2.0的 admin.php -3. 使用创始人帐号登录,进入后台更新缓存 -4. 新系统增加了很多设置项目,包括用户权限、组权限、论坛板块等等,您需要仔细的重新设置一次。 -5. 转移旧附件目录到新产品根目录(在转移之前,您的资讯内容中的图片无法正常显示) - a)将 old/attachments 目录和目录下的文件 全部移动到 新Discuz! X2.0产品的/data/attachment/portal/目录中 - b) 在原 SS7 源码下找到图标 images/base/attachment.gif,放在 Disucuz! X2.0 的目录 static/image/filetype/ 下; - c) 找到 source/module/portal/portal_view.php 文件,在代码“$content['content'] = blog_bbcode($content['content']);”后换行添加以下代码: - - $ss_url = 'http://your_ss_site_url/'; // 请将此链接地址改为您的 SS 站点地址!!! - $findarr = array( - $ss_url.'batch.download.php?aid=', // 附件下载地址 - $ss_url.'attachments/', // 附件图片目录 - $ss_url.'images/base/attachment.gif' // 附件下载图标 - ); - $replacearr = array( - 'porta.php?mod=attachment&id=', - $_G['setting']['attachurl'].'/portal/', - STATICURL.'image/filetype/attachment.gif' - ); - $content['content'] = str_replace($findarr, $replacearr, $content['content']); - -6. 转移旧图片目录到新产品根目录(在转移之前,您的资讯内容中的表情无法正常显示) - a)将 old/images 目录和目录下的文件 移动到 新Discuz! X2.0产品的根目录中 -7. 删除 convert 程序,以免给您的Discuz! X2.0安装带来隐患。 \ No newline at end of file diff --git a/utility/convert/source/ss7.5_x2.0/setting.ini b/utility/convert/source/ss7.5_x2.0/setting.ini deleted file mode 100644 index b007dffd..00000000 --- a/utility/convert/source/ss7.5_x2.0/setting.ini +++ /dev/null @@ -1,23 +0,0 @@ -;本文件格式兼容于 PHP.ini,您可以使用“;”作为注释内容 -;以下设置内容当中如果出现除字母和数字以外的特殊符号,请使用 "" 将内容包含起来 -;以下项目你可以根据自己的需要进行增减 - -[program] -;;程序简介 -introduction = "本程序用于将 SupeSite 7.5 数据转换至 Discuz! X2.0, 请确认 Discuz! X2.0 以独立的UCenter方式已安装,并且UCenter已升级到1.6.0版本,转换程序已经完整上传到 Discuz! X2.0 程序目录" -;;原始程序版本 -source= "SupeSite 7.5" -;;目标程序版本 -target= "Discuz! X2.0" - -[tablecheck] -source = postitems -target = portal_article_title - -;转换对应步骤程序的简要说明 -;如果您有某些特殊的转换程序,可以在这里罗列出来 -;例如 test = 这是测试 -;对应转换程序 test.php 的说明, -; -[steps] -moderate = 处理审核内容 diff --git a/utility/convert/source/ss7.5_x2.0/table/attachments.php b/utility/convert/source/ss7.5_x2.0/table/attachments.php deleted file mode 100644 index 218d46f3..00000000 --- a/utility/convert/source/ss7.5_x2.0/table/attachments.php +++ /dev/null @@ -1,51 +0,0 @@ -tablepre.'attachments'; -$table_target = $db_target->tablepre.'portal_attachment'; - -$limit = 150; -$nextid = 0; - -$start = getgpc('start'); - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE aid>'$start' ORDER BY aid LIMIT $limit"); -while ($rs = $db_source->fetch_array($query)) { - - $nextid = $rs['aid']; - - $setarr = array(); - $setarr['uid'] = $rs['uid']; - $setarr['dateline'] = $rs['dateline']; - $setarr['filename'] = $rs['filename']; - $setarr['filetype'] = $rs['attachtype']; - $setarr['filesize'] = $rs['size']; - $setarr['attachment'] = $rs['filepath']; - $setarr['isimage'] = $rs['isimage']; - $setarr['thumb'] = empty($rs['thumbpath']) ? '0' : '2'; - $setarr['remote'] = '0'; - $setarr['aid'] = $rs['itemid']; - - $setarr = daddslashes($setarr, 1); - - $data = implode_field_value($setarr, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/ss7.5_x2.0/table/categories.php b/utility/convert/source/ss7.5_x2.0/table/categories.php deleted file mode 100644 index 5834aa50..00000000 --- a/utility/convert/source/ss7.5_x2.0/table/categories.php +++ /dev/null @@ -1,60 +0,0 @@ -tablepre.'categories'; -$table_target = $db_target->tablepre.'portal_category'; - -$table_source_items = $db_source->tablepre.'spaceitems'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start') ? getgpc('start') : 0; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$arr = $catids = $count_num = array(); - -$query = $db_source->query("SELECT * FROM $table_source WHERE catid>'$start' ORDER BY catid LIMIT $limit"); -while ($value = $db_source->fetch_array($query)) { - $arr[] = $value; - $catids[] = $value['catid']; -} - -$query = $db_source->query("SELECT catid, COUNT(*) AS num FROM $table_source_items WHERE catid IN (".dimplode($catids).") GROUP BY catid"); -while ($value = $db_source->fetch_array($query)) { - $count_num[$value['catid']] = $value['num']; -} - -foreach ($arr as $rs) { - $nextid = $rs['aid']; - - $setarr = array(); - $setarr['catid'] = $rs['catid']; - $setarr['upid'] = $rs['upid']; - $setarr['catname'] = $rs['name']; - $setarr['displayorder'] = $rs['displayorder']; - $setarr['description'] = $rs['note']; - - $setarr['articles'] = empty($count_num[$rs['catid']]) ? 0 : $count_num[$rs['catid']]; - - $setarr = daddslashes($setarr, 1); - - $data = implode_field_value($setarr, ',', db_table_fields($db_target, $table_target)); - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." catid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/ss7.5_x2.0/table/spacecomments.php b/utility/convert/source/ss7.5_x2.0/table/spacecomments.php deleted file mode 100644 index f8bb653f..00000000 --- a/utility/convert/source/ss7.5_x2.0/table/spacecomments.php +++ /dev/null @@ -1,49 +0,0 @@ -tablepre.'spacecomments'; -$table_target = $db_target->tablepre.'portal_comment'; - -$limit = 150; -$nextid = 0; - -$start = getgpc('start'); - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE cid>'$start' ORDER BY cid LIMIT $limit"); -while ($rs = $db_source->fetch_array($query)) { - - $nextid = $rs['cid']; - - $setarr = array(); - $setarr['cid'] = $rs['cid']; - $setarr['uid'] = $rs['authorid']; - $setarr['username'] = $rs['author']; - $setarr['id'] = $rs['itemid']; - $setarr['idtype'] = 'aid'; - $setarr['postip'] = $rs['ip']; - $setarr['dateline'] = $rs['dateline']; - $setarr['message'] = $rs['message']; - - $setarr = daddslashes($setarr, 1); - - $data = implode_field_value($setarr, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." cid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/ss7.5_x2.0/table/spaceitems.php b/utility/convert/source/ss7.5_x2.0/table/spaceitems.php deleted file mode 100644 index 50cff098..00000000 --- a/utility/convert/source/ss7.5_x2.0/table/spaceitems.php +++ /dev/null @@ -1,107 +0,0 @@ -tablepre.'spaceitems'; -$table_target = $db_target->tablepre.'portal_article_title'; -$table_target_count = $db_target->tablepre.'portal_article_count'; -$table_target_content = $db_target->tablepre.'portal_article_content'; - -$table_source_content = $db_source->tablepre.'spacenews'; - -$limit = 300; -$nextid = 0; - -$start = getgpc('start'); - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); - $db_target->query("TRUNCATE $table_target_count"); - $db_target->query("TRUNCATE $table_target_content"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE itemid>'$start' ORDER BY itemid LIMIT $limit"); -while ($rs = $db_source->fetch_array($query)) { - - $nextid = $rs['itemid']; - $settitle = array(); - $rs['none'] = ''; - $settitle['aid'] = $rs['itemid']; - $settitle['catid'] = $rs['catid']; - $settitle['bid'] = $rs['none']; - $settitle['uid'] = $rs['uid']; - $settitle['username'] = $rs['username']; - $settitle['title'] = $rs['subject']; - $settitle['shorttitle'] = $rs['none']; - $settitle['summary'] = $rs['none']; - $settitle['pic'] = $rs['none']; - $settitle['thumb'] = $rs['none']; - $settitle['remote'] = $rs['none']; - $settitle['id'] = $rs['none']; - $settitle['idtype'] = $rs['none']; - $settitle['allowcomment'] = $rs['allowreply']; - $settitle['dateline'] = $rs['dateline']; - - $settitle['author'] = ''; - $settitle['from'] = ''; - $settitle['fromurl'] = ''; - $settitle['url'] = ''; - - $count = 0; - $cquery = $db_source->query("SELECT * FROM $table_source_content WHERE itemid='$rs[itemid]'"); - while($crs = $db_source->fetch_array($cquery)) { - $setcontent = array(); - $setcontent['cid'] = $crs['nid']; - $setcontent['aid'] = $crs['itemid']; - $setcontent['content'] = $crs['message']; - $setcontent['pageorder'] = $crs['pageorder']; - $setcontent['dateline'] = $crs['dateline']; - - $setcontent = daddslashes($setcontent, 1); - - $data = implode_field_value($setcontent, ',', db_table_fields($db_target, $table_target_content)); - - $db_target->query("INSERT INTO $table_target_content SET $data"); - - $settitle['author'] = $crs['newsauthor'] ? $crs['newsauthor'] : $settitle['author']; - $settitle['from'] = $crs['newsfrom'] ? $crs['newsfrom'] : $settitle['from']; - $settitle['fromurl'] = $crs['newsfromurl'] ? $crs['newsfromurl'] : $settitle['fromurl']; - $settitle['url'] = $crs['newsurl'] ? $crs['newsurl'] : $settitle['url']; - $count ++; - } - - $settitle['contents'] = $count; - - $settitle = daddslashes($settitle, 1); - - $data = implode_field_value($settitle, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); - - - $setcount = array(); - $setcount['aid'] = $rs['itemid']; - $setcount['viewnum'] = $rs['viewnum']; - $setcount['commentnum'] = $rs['replynum']; - $setcount['catid'] = $rs['catid']; - $setcount['dateline'] = $rs['dateline']; - - $setcount = daddslashes($setcount, 1); - - $data = implode_field_value($setcount, ',', db_table_fields($db_target, $table_target_count)); - - $db_target->query("INSERT INTO $table_target_count SET $data"); - -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." itemid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/config.php b/utility/convert/source/uch2.0_x1.0/config.php deleted file mode 100644 index d9855d17..00000000 --- a/utility/convert/source/uch2.0_x1.0/config.php +++ /dev/null @@ -1,144 +0,0 @@ - getgpc('targetgroup'), - 'extcredits' => getgpc('extcredits'), - 'forum' => getgpc('forum'), - ); - save_process('home', $home); -} else { - $sourcegroup = array(); - $targetoption = ''; - $query = $db_source->query("SELECT gid, grouptitle FROM ".$db_source->table('usergroup')." WHERE system!='0'"); - while($group = $db_source->fetch_array($query)) { - $sourcegroup[$group['gid']] = $group['grouptitle']; - } - - $query = $db_target->query("SELECT groupid, grouptitle FROM ".$db_target->table('common_usergroup')." WHERE type!='member'"); - while($group = $db_target->fetch_array($query)) { - $targetoption .= "\n"; - } - - $extcredits = ''; - $sourcecredits = array('credit', 'experience'); - $tsetting = $db_target->fetch_first("SELECT * FROM ".$db_target->table('common_setting')." WHERE skey='extcredits'"); - - $tsetting = @unserialize($tsetting['svalue']); - if(!is_array($tsetting)) { - showmessage("message_not_enabled_extcredit"); - } else { - if(count($tsetting) < 8) { - for($i = count($tsetting)+1; $i < 9; $i++) { - $tsetting[$i] = $i; - } - } - foreach($tsetting as $id => $value) { - $extcredits .= "\n"; - } - } - - $forumarr = array(); - $forumoption = ''; - $query = $db_target->query("SELECT fid, fup, type, name FROM ".$db_target->table('forum_forum')." WHERE status IN('1','2') "); - while($forum = $db_target->fetch_array($query)) { - if(!$forum['fup']) { - $forumarr[$forum['fid']] = $forum; - } elseif(isset($forumarr[$forum['fup']])) { - $forumarr[$forum['fup']]['child'][$forum['fid']] = $forum; - } - } - foreach($forumarr as $gid => $forum) { - $forumoption .= "\n"; - if(!empty($forum['child']) && is_array($forum['child'])) { - foreach($forum['child'] as $fid => $value) { - $forumoption .= "\n"; - } - } - $forumoption .= "\n"; - } - - show_form_header(); - show_table_header(); - show_table_row(array(array('colspan="3"', lang('config_usergroup'))), 'header title'); - show_table_row( - array( - lang('config_from_usergroup'), - array('class="bg1" width="10%" align="center"', '->'), - lang('config_target_usergroup') - ) - ); - foreach($sourcegroup as $key => $value) { - $addmsg = $error && $key == 'dbhost' ? lang($error) : ''; - $key = intval($key); - show_table_row( - array( - array('class="bg2" width="45%"', $value), - array('class="bg1" width="10%" align="center"', '->'), - array('class="bg2" width="45%"', '') - ),'bg1' - ); - } - show_table_footer(); - echo '
    '; - - show_table_header(); - show_table_row(array(array('colspan="3"', lang('config_extcredits'))), 'header title'); - show_table_row( - array( - lang('config_from_credit'), - array('class="bg1" width="10%" align="center"', '->'), - lang('config_target_credit') - ) - ); - show_table_row( - array( - array('class="bg2" width="45%"', lang('config_credit')), - array('class="bg1" width="10%" align="center"', '->'), - array('class="bg2" width="45%"', '') - ),'bg1' - ); - show_table_row( - array( - array('class="bg2" width="45%"', lang('config_experience')), - array('class="bg1" width="10%" align="center"', '->'), - array('class="bg2" width="45%"', '') - ),'bg1' - ); - show_table_footer(); - echo '
    '; - - show_table_header(); - show_table_row(array(array('colspan="3"', lang('config_convert_forum'))), 'header title'); - show_table_row( - array( - lang('config_from_data'), - array('class="bg1" width="10%" align="center"', '->'), - lang('config_target_forum') - ) - ); - show_table_row( - array( - array('class="bg2" width="45%"', lang('config_poll')), - array('class="bg1" width="10%" align="center"', '->'), - array('class="bg2" width="45%"', '') - ),'bg1' - ); - show_table_row( - array( - array('class="bg2" width="45%"', lang('config_event')), - array('class="bg1" width="10%" align="center"', '->'), - array('class="bg2" width="45%"', '') - ),'bg1' - ); - show_table_footer(); - show_form_footer('submit', 'config_convert'); - exit(); -} -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/readme.txt b/utility/convert/source/uch2.0_x1.0/readme.txt deleted file mode 100644 index 0fca508f..00000000 --- a/utility/convert/source/uch2.0_x1.0/readme.txt +++ /dev/null @@ -1,69 +0,0 @@ -==================================== -UCenter Home 2.0 升级至 Discuz! X1.0 说明 -==================================== - -特别警示!!! -由于UCHome与Discuz!部分功能进行了整合性融合,因此UCHome的部分功能,在整合到Discuz! X后将会部分丢失, -其中包括: -由于新增专题功能,原UCH热闹功能将不再支持; -UCH投票、UCH活动将与论坛投票贴、活动贴的形式融合为一体,活动相册、活动群组功能将不再支持; -UCH群组将以新的群组功能存在,原群组相册、群组活动功能将不再支持; -个人资料进行了新的调整,UCH原个人资料中的学校、工作信息将需要重新填写; -UCH的全站实名功能不再支持; - -请根据自己建站需求,权衡决定是否将UCHome转换升级到Discuz! X。 - -I 升级前的准备 ---------------- -1. 建立程序备份目录,例如 old -2. 将原UCHome所有程序移动到 old 目录中 -3. 上传 Discuz! X 产品的upload目录中的程序到UCHome目录 -4. 执行安装程序 /install - 安装的时候请指定原UCHome挂接的UCenter Server地址 - -II 升级UCHome数据 ---------------- -1. 安装完毕,测试Discuz! X可以正常运行以后,上传convert 程序到Discuz! X根目录 -2. 执行 /convert -3. 选择相应的程序版本,开始转换 -4. 转换过程中不可擅自中断,直到程序自动执行完毕。 -5. 转换过程可能需要较长时间,且消耗较多服务器资源,您应当选择服务器空闲的时候执行 - -III 升级完毕, 还要做的几件事 --------------------------- -1. 编辑新Discuz! X的 config/config_global.php 文件,设定好创始人 -2. 直接访问新Discuz! X的 admin.php -3. 使用创始人帐号登录,进入后台更新缓存 -4. 新系统增加了很多设置项目,包括用户权限、组权限、论坛板块等等,您需要仔细的重新设置一次。 -5. 转移旧附件目录到新产品根目录(在转移之前,您的动态、日志、评论、留言等内容中的图片无法正常显示) - a)进入 old/attachment 目录 - b)将所有文件移动到 新Discuz! X产品 /data/attachment/album/ 目录中 - c)同时,修改一下 Discuz! X的代码 - 让日志内容中的已经插入的图片地址,通过字符串替换,改为最新的图片地址,解决日志内容图片无法显示的问题。 - 方法如下: - 打开Discuz! X的 ./source/include/space/space_blog.php 程序 - 找到: - $blog['message'] = blog_bbcode($blog['message']); - 在下面增加如下代码: - $home_url = 'http://your_home_site_url/'; // 请将此链接地址改为您的 UCHome 站点地址!!! - $bbs_url = 'http://your_bbs_site_url/'; // 请将此链接地址改为您的 BBS 站点地址!!! - $findarr = array( - 'tablepre.'ad'; -$table_target = $db_target->tablepre.'common_advertisement'; - -$limit = 100; -$nextid = 0; - -$start = getgpc('start'); - -$query = $db_source->query("SELECT * FROM $table_source WHERE adid>'$start' AND pagetype IN('header','footer','rightside','couplet','feedbox') ORDER BY adid LIMIT $limit"); -while ($ad = $db_source->fetch_array($query)) { - $nextid = $ad['adid']; - - switch($ad['pagetype']) { - case 'header': - $ad['pagetype'] = 'headerbanner';break; - case 'footer': - $ad['pagetype'] = 'footerbanner';break; - case 'rightside': - $ad['pagetype'] = 'blog';break; - case 'couplet': - $ad['pagetype'] = 'couplebanner';break; - case 'feedbox': - $ad['pagetype'] = 'feed';break; - } - - $advnew = unserialize($ad['adcode']); - foreach($advnew as $k => $v) { - if($k == 'flashheight') { - $advarr = array('height' => $advnew['flashheight'], 'width' => $advnew['flashwidth'], 'url' => $advnew['flashurl'], 'style' => 'flash'); - } elseif($k == 'imageheight') { - $advarr = array('height' => $advnew['imageheight'], 'width' => $advnew['imagewidth'], 'url' => $advnew['imagesrc'], - 'link' => $advnew['imageurl'], 'alt' => $advnew['imagealt'], 'style' => 'image'); - } elseif($k == 'textcontent') { - $advarr = array('title' => $advnew['textcontent'], 'link' => $advnew['texturl'], 'size' => $advnew['textsize'], 'style' => 'text'); - } elseif($advnew['type'] == 'html') { - $advarr = array('style' => 'code'); - } - } - if($advarr['style'] == 'code') { - $html = $advarr['html'] = $advnew['html']; - $html = daddslashes($html); - } else { - $html = daddslashes(encodeadvcode($advarr)); - $advarr['html'] = $html; - } - - $advarr = daddslashes($advarr); - $parameters = serialize($advarr); - - $ad = daddslashes($ad, 1); - - $db_target->query("INSERT INTO $table_target SET `available`='".$ad[available]. - "',`type`='".$ad[pagetype]."',`displayorder`='".$ad[system]."',`parameters`='".$parameters."',`title`='".$ad[title]."',`targets`='home',`code`='".$html."'"); -} - -$res = $db_target->fetch_first("SELECT * FROM {$db_target->tablepre}common_advertisement_custom WHERE name='UCHOME'"); -if(!$res) { - $db_target->query("INSERT INTO {$db_target->tablepre}common_advertisement_custom SET `name`='UCHOME'"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." adid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -function encodeadvcode($advnew) { - switch($advnew['style']) { - case 'text': - $advnew['code'] = ''.$advnew['title'].''; - break; - case 'image': - $advnew['code'] = ''.$advnew['alt'].''; - break; - case 'flash': - $advnew['code'] = ''; - break; - } - return $advnew['code']; -} -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/common_member_log.php b/utility/convert/source/uch2.0_x1.0/table/common_member_log.php deleted file mode 100644 index 16a30978..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/common_member_log.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'userlog'; -$table_target = $db_target->tablepre.'common_member_log'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = $setting['limit']['userlog'] ? $setting['limit']['userlog'] : 1000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT uid, action, dateline FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/common_myapp.php b/utility/convert/source/uch2.0_x1.0/table/common_myapp.php deleted file mode 100644 index 6e254ccd..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/common_myapp.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'myapp'; -$table_target = $db_target->tablepre.'common_myapp'; - -$limit = $setting['limit']['myapp'] ? $setting['limit']['myapp'] : 500; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE appid>'$start' ORDER BY appid LIMIT $limit"); -while ($app = $db_source->fetch_array($query)) { - - $nextid = $app['appid']; - - $app = daddslashes($app, 1); - - $data = implode_field_value($app, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." appid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/common_myinvite.php b/utility/convert/source/uch2.0_x1.0/table/common_myinvite.php deleted file mode 100644 index ee49b7aa..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/common_myinvite.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'myinvite'; -$table_target = $db_target->tablepre.'common_myinvite'; - -$limit = $setting['limit']['myinvite'] ? $setting['limit']['myinvite'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($invite = $db_source->fetch_array($query)) { - - $nextid = $invite['id']; - - $invite = daddslashes($invite, 1); - - $data = implode_field_value($invite, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_album.php b/utility/convert/source/uch2.0_x1.0/table/home_album.php deleted file mode 100644 index c7c1f46d..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_album.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'album'; -$table_target = $db_target->tablepre.'home_album'; - -$limit = $setting['limit']['album'] ? $setting['limit']['album'] : 2000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE albumid>'$start' ORDER BY albumid LIMIT $limit"); -while ($album = $db_source->fetch_array($query)) { - - $nextid = $album['albumid']; - - $album = daddslashes($album, 1); - - $data = implode_field_value($album, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." albumid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_appcreditlog.php b/utility/convert/source/uch2.0_x1.0/table/home_appcreditlog.php deleted file mode 100644 index 6593dc8d..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_appcreditlog.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'appcreditlog'; -$table_target = $db_target->tablepre.'home_appcreditlog'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE logid>'$start' ORDER BY logid LIMIT $limit"); -while ($log = $db_source->fetch_array($query)) { - - $nextid = $log['logid']; - - $log = daddslashes($log, 1); - - $data = implode_field_value($log, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." logid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_blacklist.php b/utility/convert/source/uch2.0_x1.0/table/home_blacklist.php deleted file mode 100644 index 1157e5fc..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_blacklist.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'blacklist'; -$table_target = $db_target->tablepre.'home_blacklist'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = 1000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("REPLACE INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_blog.php b/utility/convert/source/uch2.0_x1.0/table/home_blog.php deleted file mode 100644 index b1cb0259..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_blog.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'blog'; -$table_target = $db_target->tablepre.'home_blog'; - -$limit = $setting['limit']['blog'] ? $setting['limit']['blog'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT dateline, blogid, uid, username, `subject`, classid, viewnum, replynum, hot, picflag, noreply, friend, `password`, click_1 as click1, click_2 as click2, click_3 as click3, click_4 as click4, click_5 as click5 FROM $table_source WHERE blogid>'$start' ORDER BY blogid LIMIT $limit"); -while ($blog = $db_source->fetch_array($query)) { - - $nextid = intval($blog['blogid']); - - $blog = daddslashes($blog, 1); - - $data = implode_field_value($blog, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET `blogid`='".$blog[blogid]."',`uid`='".$blog[uid]."',`username`='".$blog[username]."',`subject`='".$blog[subject]."',`classid`='".$blog[classid]. - "',`viewnum`='".$blog[viewnum]."',`replynum`='".$blog[replynum]."',`hot`='".$blog[hot]."',`dateline`='".$blog[dateline]."',`picflag`='".$blog[picflag]."',`noreply`='".$blog[noreply]. - "',`friend`='".$blog[friend]."',`password`='".$blog[password]."',`click1`='".$blog[click1]."',`click2`='".$blog[click5]."',`click3`='".$blog[click4]."',`click4`='".$blog[click3]."',`click5`='".$blog[click2]." '"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." blogid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_blogfield.php b/utility/convert/source/uch2.0_x1.0/table/home_blogfield.php deleted file mode 100644 index 45ccf338..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_blogfield.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'blogfield'; -$table_target = $db_target->tablepre.'home_blogfield'; - -$limit = $setting['limit']['blog'] ? $setting['limit']['blog'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT bf.blogid, bf.uid, bf.tag, bf.message, bf.postip, bf.related, bf.relatedtime, bf.target_ids, bf.hotuser, b.pic FROM $table_source bf LEFT JOIN ".$db_source->table_name('blog')." b ON b.blogid = bf.blogid WHERE bf.blogid>'$start' ORDER BY bf.blogid LIMIT $limit"); -while ($blog = $db_source->fetch_array($query)) { - - if(!empty($blog['tag'])) { - $tag = unserialize($blog['tag']); - if(is_array($tag)) { - foreach($tag as $k => $v) { - $blog['tag'] = implode(' ', $tag); - } - } - } - - $nextid = $blog['blogid']; - - $blog = daddslashes($blog, 1); - - $data = implode_field_value($blog, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." blogid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_class.php b/utility/convert/source/uch2.0_x1.0/table/home_class.php deleted file mode 100644 index 706a0757..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_class.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'class'; -$table_target = $db_target->tablepre.'home_class'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE classid>'$start' ORDER BY classid LIMIT $limit"); -while ($class = $db_source->fetch_array($query)) { - - $nextid = $class['classid']; - - $class = daddslashes($class, 1); - - $data = implode_field_value($class, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." classid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_click.php b/utility/convert/source/uch2.0_x1.0/table/home_click.php deleted file mode 100644 index 8111b575..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_click.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'click'; -$table_target = $db_target->tablepre.'home_click'; - -$limit = $setting['limit']['click'] ? $setting['limit']['click'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE clickid>'$start' AND idtype!='tid' ORDER BY clickid LIMIT $limit"); -while ($click = $db_source->fetch_array($query)) { - - $nextid = $click['clickid']; - - $click = daddslashes($click, 1); - - $data = implode_field_value($click, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." clickid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_clickuser.php b/utility/convert/source/uch2.0_x1.0/table/home_clickuser.php deleted file mode 100644 index 73558518..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_clickuser.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'clickuser'; -$table_target = $db_target->tablepre.'home_clickuser'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = $setting['limit']['click'] ? $setting['limit']['click'] : 1000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_comment.php b/utility/convert/source/uch2.0_x1.0/table/home_comment.php deleted file mode 100644 index 80b19e40..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_comment.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'comment'; -$table_target = $db_target->tablepre.'home_comment'; - -$limit = $setting['limit']['comment'] ? $setting['limit']['comment'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE cid>'$start' AND (idtype='blogid' OR idtype='uid' OR idtype='picid' OR idtype='sid') ORDER BY cid LIMIT $limit"); -while ($comment = $db_source->fetch_array($query)) { - - $nextid = $comment['cid']; - - $comment = daddslashes($comment, 1); - - $data = implode_field_value($comment, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." cid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_config.php b/utility/convert/source/uch2.0_x1.0/table/home_config.php deleted file mode 100644 index 2dd132ad..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_config.php +++ /dev/null @@ -1,68 +0,0 @@ -tablepre.'config'; -$table_target = $db_target->tablepre.'common_setting'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); - -$newsetting = array(); - -$my_siteid = $my_sitekey = ''; -$query = $db_target->query("SELECT * FROM $table_target WHERE skey IN('my_siteid', 'my_sitekey', 'my_search_status')"); -while ($value = $db_target->fetch_array($query)) { - if($value['skey'] == 'my_siteid') { - $my_siteid = $value['svalue']; - } elseif($value['skey'] == 'my_sitekey') { - $my_sitekey = $value['svalue']; - } elseif($value['skey'] == 'my_search_status') { - $my_search_status = $value['svalue']; - } - - $key = addslashes($value['skey'].'_old'); - $val = addslashes($value['svalue']); - $newsetting[] = "('$key', '$val')"; - -} -if(isset($my_search_status) && in_array($my_search_status, array(0, 1))) { - $key = addslashes('my_sitekey_sign_old'); - $val = addslashes(substr(md5(substr(md5($my_siteid.'|'.$my_sitekey), 0, 16)), 16, 16)); - $newsetting[] = "('$key', '$val')"; - $newsetting[] = "('my_search_status', '0')"; -} - -if(empty($my_siteid) || empty($my_sitekey)){ - $newsetting = array(); -} - -$validityconfig = array('adminemail', 'updatestat', 'timeoffset', 'maxpage', 'topcachetime', 'allowdomain', 'allowwatermark', - 'holddomain', 'feedday', 'feedmaxnum', 'groupnum', 'closeinvite', 'checkemail', 'networkpage','showallfriendnum', - 'sendmailday', 'feedtargetblank', 'feedread', 'feedhotnum', 'feedhotday', 'feedhotmin', 'privacy', - 'my_status', 'my_siteid', 'my_sitekey', 'my_closecheckupdate', 'my_ip', 'uniqueemail', 'updatestat', 'topcachetime'); - -$query = $db_source->query("SELECT * FROM $table_source"); -while ($value = $db_source->fetch_array($query)) { - $val = addslashes($value['datavalue']); - $key = $value['var']; - if(in_array($key, $validityconfig)) { - if($key == 'my_status') { - $val = 0; - $key = 'my_app_status'; - } - $newsetting[] = "('$key', '$val')"; - } -} -if(!empty($newsetting)) { - $db_target->query("REPLACE INTO $table_target (`skey`, `svalue`) VALUES ".implode(',', $newsetting)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_docomment.php b/utility/convert/source/uch2.0_x1.0/table/home_docomment.php deleted file mode 100644 index b87562db..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_docomment.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'docomment'; -$table_target = $db_target->tablepre.'home_docomment'; - -$limit = $setting['limit']['docomment'] ? $setting['limit']['docomment'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($docomment = $db_source->fetch_array($query)) { - - $nextid = $docomment['id']; - - $docomment = daddslashes($docomment, 1); - - $data = implode_field_value($docomment, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_doing.php b/utility/convert/source/uch2.0_x1.0/table/home_doing.php deleted file mode 100644 index 221193f7..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_doing.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'doing'; -$table_target = $db_target->tablepre.'home_doing'; - -$limit = $setting['limit']['doing'] ? $setting['limit']['doing'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT doid,uid,username,`from`,dateline,message,ip,replynum FROM $table_source WHERE doid>'$start' ORDER BY doid LIMIT $limit"); -while ($doing = $db_source->fetch_array($query)) { - - $str = 'class="face"'; - $doing['message'] = str_replace($str, '', $doing[message]); - $nextid = $doing['doid']; - - $doing = daddslashes($doing, 1); - - $data = implode_field_value($doing, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." doid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_event.php b/utility/convert/source/uch2.0_x1.0/table/home_event.php deleted file mode 100644 index 5166bdc6..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_event.php +++ /dev/null @@ -1,155 +0,0 @@ -tablepre.'event'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = $setting['limit']['event'] ? $setting['limit']['event'] : 100; -$nextid = 0; -$home = load_process('home'); -$eventfid = intval($home['forum']['event']); - -if(!empty($eventfid)) { - $value = $db_target->fetch_first('SELECT * FROM '.$db_target->table_name('forum_forum')." WHERE fid='$eventfid' AND status!='3'"); - if(empty($value)) { - $eventfid = 0; - } -} -if(empty($eventfid)) { - $board_name = 'UCHome数据'; - $forum_name = 'UCHome活动'; - $value = $db_target->fetch_first('SELECT fid FROM '.$db_target->table_name('forum_forum')." WHERE type='forum' AND status='1' AND `name`='$forum_name'"); - if(!empty($value)) { - $eventfid = intval($value['fid']); - } else { - $value = $db_target->fetch_first('SELECT fid FROM '.$db_target->table_name('forum_forum')." WHERE type='group' AND status='1' AND `name`='$board_name'"); - if($value) { - $fup = intval($value['fid']); - } else { - $board = array( - 'name' => $board_name, - 'type' => 'group', - 'status' => '1', - ); - $fup = $db_target->insert('forum_forum', $board, true); - } - $forum = array( - 'name' => $forum_name, - 'fup' => $fup, - 'type' => 'forum', - 'allowsmilies' => 1, - 'allowbbcode' => 1, - 'allowimgcode' => 1, - 'status' => '1', - ); - $eventfid = $db_target->insert('forum_forum', $forum, true); - $forumfield = array( - 'fid' => $eventfid, - 'description' => '从 UCenter Home 转移过来的活动内容' - ); - $db_target->insert('forum_forumfield', $forumfield); - } -} - -$eventclass = array(); -$query = $db_source->query('SELECT classid, classname FROM '.$db_source->table_name('eventclass')); -while($value=$db_source->fetch_array($query)) { - $eventclass[$value['classid']] = $value['classname']; -} - -include_once DISCUZ_ROOT.'./include/editor.func.php'; - -$event_query = $db_source->query("SELECT e.*, ef.detail, ef.limitnum FROM $table_source e LEFT JOIN ".$db_source->table_name('eventfield')." ef ON e.eventid = ef.eventid WHERE e.eventid > $start ORDER BY e.eventid LIMIT $limit"); -while ($event = $db_source->fetch_array($event_query)) { - - $nextid = intval($event['eventid']); - - $commentnum = $db_source->result_first('SELECT count(*) FROM '.$db_source->table_name('comment')." WHERE id='$event[eventid]' AND idtype='eventid'"); - $lastcomment = array(); - if($commentnum) { - $lastcomment = $db_source->fetch_first('SELECT author, dateline FROM '.$db_source->table_name('comment')." WHERE id='$event[eventid]' AND idtype='eventid' ORDER BY cid DESC LIMIT 1"); - } - $threadarr = array( - 'fid' => $eventfid, - 'author' => $event['username'], - 'authorid' => $event['uid'], - 'subject' => $event['title'], - 'dateline' => $event['dateline'], - 'lastpost' => !empty($lastcomment) ? $lastcomment['dateline'] : $event['updatetime'], - 'lastposter' => !empty($lastcomment) ? $lastcomment['author'] : $event['username'], - 'views' => $event['viewnum'], - 'replies' => $commentnum, - 'special' => 4 - ); - $tid = $db_target->insert('forum_thread', daddslashes($threadarr), true); - $event['detail'] = html2bbcode($event['detail']); - $postarr = array( - 'fid' => $eventfid, - 'tid' => $tid, - 'first' => '1', - 'author' => $event['username'], - 'authorid' => $event['uid'], - 'subject' => $event['subject'], - 'dateline' => $event['dateline'], - 'message' => $event['detail'] - ); - $pid = $db_target->insert('forum_post', daddslashes($postarr), true); - $aid = 0; - $activityarr = array( - 'tid' => $tid, - 'uid' => $event['uid'], - 'aid' => $aid, - 'cost' => '', - 'starttimefrom' => $event['starttime'], - 'starttimeto' => $event['endtime'], - 'place' => '['.$event['province'].$event['city'].'] '.$event['location'], - 'class' => $eventclass[$event['classid']], - 'number' => $event['limitnum'], - 'applynumber' => $event['membernum'] - 1,// Home 里的活动成员包括创建者 - 'expiration' => $event['deadline'] - ); - $db_target->insert('forum_activity', daddslashes($activityarr)); - - $inserts = array(); - $query = $db_source->query('SELECT * FROM '.$db_source->table_name('userevent')." WHERE eventid = '$event[eventid]' AND status IN ('1', '2')"); - while($value=$db_source->fetch_array($query)) { - $value['verified'] = $value['status'] == 1 ? 0 : 1; - $value['username'] = addslashes($value['username']); - $inserts[] = "('$tid', '$value[username]', '$value[uid]', '$value[verified]', '$value[dateline]', '-1')"; - } - if($inserts) { - $db_target->query('INSERT INTO '.$db_target->table_name('forum_activityapply').'(tid, username ,uid, verified, dateline, payment) VALUES '.implode(', ', $inserts)); - } - - if($commentnum) { - $inserts = array(); - $query = $db_source->query('SELECT * FROM '.$db_source->table_name('comment')." WHERE id='$event[eventid]' AND idtype='eventid' ORDER BY cid"); - while($value=$db_source->fetch_array($query)) { - $value['message'] = addslashes(html2bbcode($value['message'])); - $value['author'] = addslashes($value['author']); - $inserts[] = "('$fid', '$tid', '$value[author]', '$value[authorid]', '$value[dateline]', '$value[message]')"; - } - $db_target->query('INSERT INTO '.$db_target->table_name('forum_post')."(fid, tid, author, authorid, dateline, message) VALUES ".implode(', ',$inserts)); - } - - $posts = $commentnum + 1; - $db_target->query("UPDATE ".$db_target->table_name('common_member_count')." SET threads=threads+1 WHERE uid='$event[uid]'"); - $db_target->query("UPDATE ".$db_target->table_name('forum_forum')." SET threads=threads+1, posts=posts+$posts WHERE fid='$eventfid'"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." eventid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -$maxpid = $db_target->result_first("SELECT MAX(pid) FROM ".$db_target->table('forum_post')); -$maxpid = intval($maxpid) + 1; -$db_target->query("ALTER TABLE ".$db_target->table('forum_post_tableid')." AUTO_INCREMENT=$maxpid"); -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_feed.php b/utility/convert/source/uch2.0_x1.0/table/home_feed.php deleted file mode 100644 index e5164f65..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_feed.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'feed'; -$table_target = $db_target->tablepre.'home_feed'; - -$limit = $setting['limit']['feed'] ? $setting['limit']['feed'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE feedid>'$start' ORDER BY feedid LIMIT $limit"); -while ($feed = $db_source->fetch_array($query)) { - - $nextid = $feed['feedid']; - - $feed = daddslashes($feed, 1); - - $data = implode_field_value($feed, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." feedid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_friend.php b/utility/convert/source/uch2.0_x1.0/table/home_friend.php deleted file mode 100644 index cc43781c..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_friend.php +++ /dev/null @@ -1,66 +0,0 @@ -tablepre.'friend'; - -$limit = $setting['limit']['friend'] ? $setting['limit']['friend'] : 10000; - -$nextid = 0; - -$start = getgpc('start'); -$start = empty($start) ? 0 : $start; - -if($start == 0) { - $db_target->query("TRUNCATE ".$db_target->tablepre.'home_friend_request'); -} - -$nextid = $start + $limit; -$done = true; - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($rs = $db_source->fetch_array($query)) { - - $done = false; - - $rs = daddslashes($rs, 1); - - if($rs['status']) { - $table_target = $db_target->tablepre.'home_friend'; - if(empty($rs['fusername'])) { - $subquery = $db_source->query("SELECT username FROM ".$db_source->tablepre.'space'." WHERE uid='$rs[fuid]]'"); - $rs['fusername'] = $db_source->result($subquery, 0); - $rs['fusername'] = addslashes($rs['fusername']); - } - $rs['note'] = ''; - } else { - $_uid = $rs['uid']; - $_fuid = $rs['fuid']; - $rs['uid'] = $_fuid; - $rs['fuid'] = $_uid; - - $subquery = $db_source->query("SELECT username FROM ".$db_source->tablepre.'space'." WHERE uid='$_uid'"); - $rs['fusername'] = $db_source->result($subquery, 0); - $rs['fusername'] = addslashes($rs['fusername']); - - $table_target = $db_target->tablepre.'home_friend_request'; - } - - - $data = implode_field_value($rs, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("REPLACE INTO $table_target SET $data"); - -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." start> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_friendlog.php b/utility/convert/source/uch2.0_x1.0/table/home_friendlog.php deleted file mode 100644 index 49e4fb5c..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_friendlog.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'friendlog'; -$table_target = $db_target->tablepre.'home_friendlog'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = 2000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_group.php b/utility/convert/source/uch2.0_x1.0/table/home_group.php deleted file mode 100644 index 9580cd06..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_group.php +++ /dev/null @@ -1,251 +0,0 @@ -table('mtag'); -require_once DISCUZ_ROOT.'./include/editor.func.php'; - - -$fieldid = intval(getgpc('fieldid')); -$tagid = intval(getgpc('tagid')); - -$gid = intval(getgpc('gid')); -$fid = intval(getgpc('fid')); -$sid = intval(getgpc('sid')); - -$limit = $setting['limit']['mtag'] ? $setting['limit']['mtag'] : 100; -$nextid = 0; - -$threadquery = $db_source->query("SELECT * FROM ".$db_source->table('thread')." WHERE tid > '$start' AND tagid='$tagid' ORDER BY tid LIMIT $limit"); -while($value = $db_source->fetch_array($threadquery)) { - - $nextid = $value['tid']; - $value = daddslashes($value); - $value['replynum'] = intval($value['replynum']); - $threadarr = array( - 'fid' => $sid, - 'author' => $value['username'], - 'authorid' => $value['uid'], - 'subject' => $value['subject'], - 'dateline' => $value['dateline'], - 'lastpost' => $value['lastpost'], - 'lastposter' => $value['lastauthor'], - 'views' => $value['viewnum'], - 'replies' => $value['replynum'], - 'digest' => $value['digest'], - 'displayorder' => $value['displayorder'] ? 1 : 0, - 'isgroup' => 1 - ); - $tid = $db_target->insert('forum_thread', $threadarr, true); - - $lastpost = array(); - - $query = $db_source->query("SELECT * FROM ".$db_source->table('post')." WHERE tid='$value[tid]' ORDER BY dateline"); - while($post = $db_source->fetch_array($query)) { - $post['message'] = html2bbcode($post['message']); - $post = daddslashes($post); - $postarr = array( - 'fid' => $sid, - 'tid' => $tid, - 'first' => $post['isthread'] ? 1 : 0, - 'author' => $post['username'], - 'authorid' => $post['uid'], - 'subject' => $post['subject'], - 'dateline' => $post['dateline'], - 'message' => $post['message'], - 'useip' => $post['ip'] - ); - $lastpost = array( - 'lastpost' => $post['dateline'], - 'lastposter' => $post['username'], - ); - $db_target->insert('forum_post', $postarr); - $db_target->insert('common_member_count', array('uid' => $value['uid']), 0, false, true); - $db_target->query("UPDATE ".$db_target->table('common_member_count')." SET posts=posts+1 WHERE uid='$post[uid]'", 'UNBUFFERED'); - $db_target->query("UPDATE ".$db_target->table('forum_groupuser')." SET replies=replies+1 WHERE fid='$sid' AND uid='$post[uid]'", 'UNBUFFERED'); - } - - if($lastpost) { - $db_target->update('forum_thread', $lastpost, array('tid' => $tid)); - } else { - $lastpost['lastpost'] = $value['lastpost']; - } - $db_target->insert('common_member_count', array('uid' => $value['uid']), 0, false, true); - $db_target->query("UPDATE ".$db_target->table('common_member_count')." SET threads=threads+1 WHERE uid='$value[uid]'", 'UNBUFFERED'); - $db_target->query("UPDATE ".$db_target->table('forum_groupuser')." SET threads=threads+1 WHERE fid='$sid' AND uid='$value[uid]'", 'UNBUFFERED'); - $db_target->query("UPDATE ".$db_target->table('forum_forum')." SET lastpost='$lastpost[lastpost]', threads=threads+1, posts=posts+$value[replynum] WHERE fid='$sid'", 'UNBUFFERED'); - -} -$force = false; -if(!$nextid) { - if(!getmtag($tagid)) { - if(!getprofield($fieldid)) { - $nextid = 0; - } else { - $force = true; - } - } else { - $force = true; - } - $nextid = $force ? 1 : 0; -} - -if($nextid) { - if($force) $nextid = 0; - $mtag = array(); - if($tagid) { - $mtag = $db_source->fetch_first("SELECT * FROM ".$db_source->table('mtag')." WHERE tagid='$tagid'"); - } - $profield = $db_source->fetch_first("SELECT * FROM ".$db_source->table('profield')." WHERE fieldid='$fieldid'"); - showmessage("继续转换数据表 ".$table_source." : $profield[title] ".(!empty($mtag) ? "› $mtag[tagname] › tid > $nextid":""), "index.php?a=$action&source=$source&prg=$curprg&start=$nextid&gid=$gid&fid=$fid&sid=$sid&fieldid=$fieldid&tagid=$tagid"); -} - -$maxpid = $db_target->result_first("SELECT MAX(pid) FROM ".$db_target->table('forum_post')); -$maxpid = intval($maxpid) + 1; -$db_target->query("ALTER TABLE ".$db_target->table('forum_post_tableid')." AUTO_INCREMENT=$maxpid"); - -function getmtag($start) { - global $db_source, $db_target, $fieldid, $gid, $fid, $sid, $tagid; - - if(empty($fieldid)) { - getprofield($fieldid); - } - $mtag = $db_source->fetch_first("SELECT * FROM ".$db_source->table('mtag')." WHERE fieldid='$fieldid' AND tagid>'$start' ORDER BY tagid LIMIT 1"); - if(empty($mtag)) { - $tagid = $sid = 0; - return false; - } - $tagid = $mtag['tagid']; - $founder = $groupuser = array(); - $query = $db_source->query("SELECT * FROM ".$db_source->table('tagspace')." WHERE tagid='$mtag[tagid]'"); - while($space = $db_source->fetch_array($query)) { - $space['level'] = 4; - if($space['grade'] == 9) { - $space['level'] = 1; - if(empty($founder)) { - $founder = array('founderuid' => $space['uid'], 'foundername' => daddslashes($space['username'])); - } - } elseif($space['grade'] == 8) { - $space['level'] = 2; - } elseif($space['grade'] == 1) { - $space['level'] = 3; - } elseif($space['grade'] == -2) { - $space['level'] = 0; - } - $groupuser[$space['uid']] = $space; - } - if(empty($founder)) { - $member = $db_target->fetch_first("SELECT uid,username FROM ".$db_target->table('common_member')." WHERE adminid='1' ORDER BY uid LIMIT 1"); - $founder = array('founderuid' => $member['uid'], 'foundername' => daddslashes($member['username'])); - $groupuser[$member['uid']] = array('uid' => $member['uid'], 'username' => $member['username'], 'level' => 1); - } - - $levelid = $db_target->result_first("SELECT levelid FROM ".$db_target->table('forum_grouplevel')." WHERE creditshigher<='0' AND '0' $fid, - 'type' => 'sub', - 'name' => daddslashes($mtag['tagname']), - 'status' => 3, - 'allowsmilies' => 1, - 'allowbbcode' => 1, - 'allowimgcode' => 1, - 'level' => $levelid - ); - $sid = $db_target->insert('forum_forum', $forumarr, true); - $forumfieldarr = array( - 'fid' => $sid, - 'description' => daddslashes(html2bbcode($mtag['announcement'])), - 'jointype' => $mtag['joinperm'] ? ($mtag['joinperm'] == 1 ? 2 : 1) : 0, - 'gviewperm' => $mtag['viewperm'] ? 0 : 1, - 'dateline' => TIMESTAMP, - 'founderuid' => $founder['founderuid'], - 'foundername' => $founder['foundername'], - 'membernum' => $mtag['membernum'] - ); - $db_target->insert('forum_forumfield', $forumfieldarr); - $db_target->query("UPDATE ".$db_target->table('forum_forumfield')." SET groupnum=groupnum+1 WHERE fid='$fid'"); - - foreach($groupuser as $uid => $user) { - $userarr = array( - 'fid' => $sid, - 'uid' => $uid, - 'username' => daddslashes($user['username']), - 'level' => $user['level'], - 'threads' => 0, - 'replies' => 0, - 'joindateline' => TIMESTAMP, - 'lastupdate' => TIMESTAMP, - 'privacy' => '', - ); - $db_target->insert('forum_groupuser', $userarr, 0, true); - } - $query = $db_source->query("SELECT * FROM ".$db_source->table('mtaginvite')." WHERE tagid='$mtag[tagid]'"); - while($invite = $db_source->fetch_array($query)) { - $invitearr = array( - 'fid' => $sid, - 'uid' => $invite['fromuid'], - 'inviteuid' => $invite['uid'], - 'dateline' => $invite['dateline'] - ); - $db_target->insert('forum_groupinvite', $invitearr, 0, true); - } - - return true; - -} - -function getprofield($start) { - global $db_source, $db_target, $fieldid, $gid, $fid, $tagid; - - if(!$gid) { - $gid = $db_target->insert('forum_forum', array('type' => 'group', 'name' => '空间群组', 'status' => 3), 1); - $db_target->insert('forum_forumfield', array('fid' => $gid)); - } - - $profield = $db_source->fetch_first("SELECT * FROM ".$db_source->table('profield')." WHERE fieldid>'$start' ORDER BY fieldid LIMIT 1"); - if(empty($profield)) { - $fid = 0; - $tagid = 0; - return false; - } - - $fieldid = $profield['fieldid']; - - $table_forum_columns = array('fup', 'type', 'name', 'status', 'displayorder', 'styleid', 'allowsmilies', 'allowhtml', 'allowbbcode', 'allowimgcode', 'allowanonymous', 'allowpostspecial', 'alloweditrules', 'alloweditpost', 'modnewposts', 'recyclebin', 'jammer', 'forumcolumns', 'threadcaches', 'disablewatermark', 'autoclose', 'simple'); - $table_forumfield_columns = array('fid', 'attachextensions', 'threadtypes', 'postcredits', 'replycredits', 'digestcredits', 'postattachcredits', 'getattachcredits', 'viewperm', 'postperm', 'replyperm', 'getattachperm', 'postattachperm'); - - $forumfields = array( - 'allowsmilies' => 1, - 'allowbbcode' => 1, - 'allowimgcode' => 1, - 'allowpostspecial' => 127, - 'fup' => $gid, - 'type' => 'forum', - 'name' => daddslashes($profield['title']), - 'status' => 3 - ); - - $data = array(); - foreach($table_forum_columns as $field) { - if(isset($forumfields[$field])) { - $data[$field] = $forumfields[$field]; - } - } - - $forumfields['fid'] = $fid = $db_target->insert('forum_forum', $data, 1); - $data = array(); - foreach($table_forumfield_columns as $field) { - if(isset($forumfields[$field])) { - $data[$field] = $forumfields[$field]; - } - } - $db_target->insert('forum_forumfield', $data); - - return true; -} -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_invite.php b/utility/convert/source/uch2.0_x1.0/table/home_invite.php deleted file mode 100644 index 13e30edd..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_invite.php +++ /dev/null @@ -1,37 +0,0 @@ -tablepre.'invite'; -$table_target = $db_target->tablepre.'common_invite'; - -$limit = $setting['limit']['invite'] ? $setting['limit']['invite'] : 1000; -$nextid = 0; - -$start = getgpc('start'); - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($rs = $db_source->fetch_array($query)) { - - $nextid = $rs['id']; - - unset($rs['id']); - - $rs = daddslashes($rs, 1); - - $data = implode_field_value($rs, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_magic.php b/utility/convert/source/uch2.0_x1.0/table/home_magic.php deleted file mode 100644 index 6508a097..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_magic.php +++ /dev/null @@ -1,186 +0,0 @@ -query('SELECT magicid, identifier FROM '.$db_target->table_name('common_magic')." WHERE identifier IN ('".implode("','", $kept_magics)."')"); -while($value=$db_source->fetch_array($query)) { - $x_magics[$value['identifier']] = intval($value['magicid']); -} - -if($op=='magic') { - - $uch_magics = array(); - $query = $db_source->query('SELECT m.*, ms.storage, ms.sellcount FROM '.$db_source->table_name('magic')." m LEFT JOIN ".$db_source->table_name('magicstore')." ms ON m.mid = ms.mid WHERE m.mid IN ('".implode("','", $kept_magics)."')"); - while($value=$db_source->fetch_array($query)) { - if(!isset($x_magics[$value['mid']])) { - $uch_magics[$value['mid']] = $value; - } - } - foreach($uch_magics as $mid=>$value) { - $magic = array( - 'available' => !empty($value['close']) ? '0' : '1', - 'name' => $value['name'], - 'description' => $value['description'], - 'identifier' => $mid, - 'price' => $value['charge'], - 'num' => $value['storage'], - 'salevolume' => $value['sellcount'], - 'supplynum' => $value['providecount'], - 'usenum' => $value['usecount'], - 'magicperm' => $value['custom'], - 'useevent' => '0' - ); - if($value['provideperoid']==604800) { - $magic['supplytype'] = '2'; - } elseif($value['provideperoid']==86400) { - $magic['supplytype'] = '1'; - } elseif($value['provideperoid'] == 3600) { - $magic['supplytype'] = '1'; - $magic['supplynum'] = $magic['supplynum'] * 24; - } else { - $magic['supplytype'] = '1'; - $magic['supplynum'] = 9999; - } - if($value['useperoid']==604800) { - $magic['useperoid'] = '2'; - } elseif($value['useperoid']==86400) { - $magic['useperoid'] = '4'; - } elseif($value['useperoid'] == 3600) { - $magic['useperoid'] = '4'; - $magic['usenum'] = $magic['usenum'] * 24; - } else { - $magic['useperoid'] = '0'; - } - - $magic = daddslashes($magic); - $keys = '`'.implode('`, `', array_keys($magic)).'`'; - $values = "'".implode("', '", $magic)."'"; - $db_target->query('INSERT INTO '.$db_target->table_name('common_magic')."($keys) VALUES ($values)"); - } - - $table_source = $db_source->tablepre.'magic'; - showmessage("继续转换数据表 ".$table_source." 用户道具", "index.php?a=$action&source=$source&prg=$curprg&op=usermagic&start=0"); - -} elseif($op == 'usermagic') { - - $start = getgpc('start'); - $start = empty($start) ? 0 : intval($start); - $limit = 1000; - $nextid = $start + $limit; - - $uch_magics = array(); - $query = $db_source->query('SELECT m.* FROM '.$db_source->table_name('magic')." m WHERE m.mid IN ('".implode("','", $kept_magics)."')"); - while($value=$db_source->fetch_array($query)) { - $uch_magics[$value['mid']] = $value; - } - - $done = true; - $inserts = $updates = array(); - $query = $db_source->query('SELECT uid, mid, `count` as num FROM '.$db_source->table_name('usermagic')." WHERE `count` > 0 ORDER BY uid LIMIT $start, $limit"); - while($value=$db_source->fetch_array($query)) { - $done = false; - if(isset($x_magics[$value['mid']])) { - $value['magicid'] = $x_magics[$value['mid']]; - $inserts[] = "('$value[uid]', '$value[magicid]', '$value[num]')"; - } else { - $credit = intval($uch_magics[$value['mid']]['charge'] * $value['num']); - $updates[$value['uid']] = empty($updates[$value['uid']]) ? $credit : $updates[$value['uid']] + $credit; - } - } - if($inserts) { - $db_target->query('REPLACE INTO '.$db_target->table_name('common_member_magic')."(uid, magicid, num) VALUES ".implode(', ', $inserts)); - } - if($updates) { - foreach($updates as $uid=>$credit) { - $credit = intval($credit); - $db_target->query('UPDATE '.$db_target->table_name('common_member')." SET credits = credits + $credit WHERE uid = '$uid'"); - } - } - - $table_source = $db_source->tablepre.'usermagic'; - if($done == false) { - showmessage("继续转换数据表 ".$table_source." 用户道具-> $nextid", "index.php?a=$action&source=$source&prg=$curprg&op=usermagic&start=$nextid"); - } else { - showmessage("继续转换数据表 ".$table_source." 道具收入记录->0", "index.php?a=$action&source=$source&prg=$curprg&op=magicinlog&start=0"); - } - -} elseif($op == 'magicinlog') { - - $start = getgpc('start'); - $start = empty($start) ? 0 : intval($start); - $limit = 2000; - $nextid = 0; - - $done = true; - $inserts = array(); - $query = $db_source->query('SELECT * FROM '.$db_source->table_name('magicinlog')." WHERE logid > $start AND mid IN ('".implode("','", $kept_magics)."') LIMIT $limit"); - while($value=$db_source->fetch_array($query)) { - $done = false; - $nextid = intval($value['logid']); - $value['magicid'] = $x_magics[$value['mid']]; - if($value['action']=='1') { - $inserts[] = "('$value[uid]', '$value[magicid]', '1', '$value[dateline]', '$value[count]', '$value[credit]', '0', '', '0')"; - } elseif($value['action']=='2') { - $inserts[] = "('$value[uid]', '$value[magicid]', '2', '$value[dateline]', '$value[count]', '$value[credit]', '$value[uid]', 'uid', '$value[uid]')"; - } - } - if($inserts) { - $db_target->query('INSERT INTO '.$db_target->table_name('common_magiclog')."(uid, magicid, action, dateline, amount, price, targetid, idtype, targetuid) VALUES ".implode(', ', $inserts)); - } - - $table_source = $db_source->tablepre.'magicinlog'; - if($done == false) { - showmessage("继续转换数据表 ".$table_source." 道具收入记录-> $nextid", "index.php?a=$action&source=$source&prg=$curprg&op=magicinlog&start=$nextid"); - } else { - showmessage("继续转换数据表 ".$table_source." 道具使用记录->0", "index.php?a=$action&source=$source&prg=$curprg&op=magicuselog&start=0"); - } - -} elseif($op == 'magicuselog') { - - $start = getgpc('start'); - $start = empty($start) ? 0 : intval($start); - $limit = 2000; - $nextid = 0; - - $done = true; - $inserts = array(); - $query = $db_source->query('SELECT * FROM '.$db_source->table_name('magicuselog')." WHERE logid > $start AND mid IN ('".implode("','", $kept_magics)."') LIMIT $limit"); - while($value=$db_source->fetch_array($query)) { - $done = false; - $nextid = intval($value['logid']); - $value['magicid'] = $x_magics[$value['mid']]; - $inserts[] = "('$value[uid]', '$value[magicid]', '2', '$value[dateline]', '$value[count]', '$value[credit]', '$value[id]', '$value[idtype]', '0')"; - } - if($inserts) { - $db_target->query('INSERT INTO '.$db_target->table_name('common_magiclog')."(uid, magicid, action, dateline, amount, price, targetid, idtype, targetuid) VALUES ".implode(', ', $inserts)); - } - - $table_source = $db_source->tablepre.'magicuselog'; - if($done == false) { - showmessage("继续转换数据表 ".$table_source." 道具使用记录-> $nextid", "index.php?a=$action&source=$source&prg=$curprg&op=magicuselog&start=$nextid"); - } -} - - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_mailcron.php b/utility/convert/source/uch2.0_x1.0/table/home_mailcron.php deleted file mode 100644 index fbd24f17..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_mailcron.php +++ /dev/null @@ -1,58 +0,0 @@ -tablepre.'mailcron'; -$table_target = $db_target->tablepre.'common_mailcron'; - -$table_source_rel = $db_source->tablepre.'mailqueue'; -$table_target_rel = $db_target->tablepre.'common_mailqueue'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); - $db_target->query("TRUNCATE $table_target_rel"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE cid>'$start' ORDER BY cid LIMIT $limit"); -$mcids = array(); -while ($rs = $db_source->fetch_array($query)) { - - $mcids[] = $rs['cid']; - - $nextid = $rs['cid']; - - $rs = daddslashes($rs, 1); - - $data = implode_field_value($rs, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if (!empty($mcids)) { - $query = $db_source->query("SELECT * FROM $table_source_rel WHERE cid IN (".dimplode($mcids).")"); - while ($rs = $db_source->fetch_array($query)) { - - $rs = daddslashes($rs, 1); - - $data = implode_field_value($rs, ',', db_table_fields($db_target, $table_target_rel)); - - $db_target->query("INSERT INTO $table_target_rel SET $data"); - } -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." mcid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_notification.php b/utility/convert/source/uch2.0_x1.0/table/home_notification.php deleted file mode 100644 index 80330299..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_notification.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'notification'; -$table_target = $db_target->tablepre.'home_notification'; - -$limit = $setting['limit']['notification'] ? $setting['limit']['notification'] : 1000; - -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($note = $db_source->fetch_array($query)) { - - $nextid = $note['id']; - - $note = daddslashes($note, 1); - - $data = implode_field_value($note, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("REPLACE INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_pic.php b/utility/convert/source/uch2.0_x1.0/table/home_pic.php deleted file mode 100644 index 9f438986..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_pic.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'pic'; -$table_target = $db_target->tablepre.'home_pic'; - -$limit = $setting['limit']['pic'] ? $setting['limit']['pic'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT picid,albumid,uid,username,dateline,postip,filename,title,type,size,filepath,thumb,remote,hot,click_6,click_7,click_8,click_9,click_10,magicframe". - " FROM $table_source WHERE picid>'$start' ORDER BY picid LIMIT $limit"); -while ($pic = $db_source->fetch_array($query)) { - - $nextid = $pic['picid']; - - $pic = daddslashes($pic, 1); - - $db_target->query("INSERT INTO $table_target SET `picid`='".$pic[picid]."',`albumid`='".$pic[albumid]."',`uid`='".$pic[uid]."',`username`='".$pic[username]."',`dateline`='".$pic[dateline]. - "',`postip`='".$pic[pistip]."',`filename`='".$pic[filename]."',`title`='".$pic[title]."',`type`='".$pic[type]."',`size`='".$pic[size]."',`filepath`='".$pic[filepath]."', `thumb`='".$pic[thumb]. - "',`remote`='".$pic[remote]."',`hot`='".$pic[hot]."',`click1`='".$pic[click_9]."',`click2`='".$pic[click_8]."',`click3`='".$pic[click_7]."',`click4`='".$pic[click_6]."',`click5`='".$pic[click_10]."' - "); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." picid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_picfield.php b/utility/convert/source/uch2.0_x1.0/table/home_picfield.php deleted file mode 100644 index 803c5459..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_picfield.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'picfield'; -$table_target = $db_target->tablepre.'home_picfield'; - -$limit = $setting['limit']['pic'] ? $setting['limit']['pic'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE picid>'$start' ORDER BY picid LIMIT $limit"); -while ($pic = $db_source->fetch_array($query)) { - - $nextid = $pic['picid']; - - $pic = daddslashes($pic, 1); - - $data = implode_field_value($pic, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." picid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_poke.php b/utility/convert/source/uch2.0_x1.0/table/home_poke.php deleted file mode 100644 index c592e91a..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_poke.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'poke'; -$table_target = $db_target->tablepre.'home_poke'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = $setting['limit']['poke'] ? $setting['limit']['poke'] : 10000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("REPLACE INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_poll.php b/utility/convert/source/uch2.0_x1.0/table/home_poll.php deleted file mode 100644 index 622122a1..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_poll.php +++ /dev/null @@ -1,205 +0,0 @@ -tablepre.'poll'; - -include_once DISCUZ_ROOT.'./include/editor.func.php'; -$limit = $setting['limit']['poll'] ? $setting['limit']['poll'] : 100; -$nextid = 0; - -$start = intval(getgpc('start')); -$home = load_process('home'); -$fid = intval(getgpc('fid')) ? intval(getgpc('fid')) : intval($home['forum']['poll']) ? intval($home['forum']['poll']) : 0; -if(!$fid) { - $forumname = 'UCHome投票数据'; - - $value = $db_target->fetch_first('SELECT fid FROM '.$db_target->table_name('forum_forum')." WHERE status IN('1','2') AND type='forum' AND `name`='$forumname'"); - if(!empty($value)) { - $fid = intval($value['fid']); - } else { - $value = $db_target->fetch_first('SELECT fid FROM '.$db_target->table_name('forum_forum')." WHERE status IN('1','2') AND type='group' AND `name`='$forumname'"); - if($value) { - $fup = intval($value['fid']); - } else { - $board = array( - 'name' => daddslashes($forumname), - 'type' => 'group', - 'status' => '1', - ); - $fup = $db_target->insert('forum_forum', $board, true); - } - $forum = array( - 'name' => daddslashes($forumname), - 'fup' => $fup, - 'type' => 'forum', - 'allowsmilies' => 1, - 'allowbbcode' => 1, - 'allowimgcode' => 1, - 'status' => '1', - ); - $fid = $db_target->insert('forum_forum', $forum, true); - $forumfield = array( - 'fid' => $fid, - 'description' => '从 UCenter Home 转移过来的投票内容' - ); - $db_target->insert('forum_forumfield', $forumfield); - } -} -$pids = $polls = $pollpreview = $optionuser = array(); -$pollquery = $db_source->query("SELECT pf.*, p.* FROM {$db_source->tablepre}poll p LEFT JOIN {$db_source->tablepre}pollfield pf ON pf.pid=p.pid WHERE p.pid>'$start' ORDER BY p.pid LIMIT $limit"); -while($value = $db_source->fetch_array($pollquery)) { - $optionuser = array(); - $postnum = 1; - $nextid = $value['pid']; - $value['summary'] = !empty($value['summary']) ? html2bbcode($value['summary']) : ''; - $value['message'] = html2bbcode($value['message']); - $pollpreview = $value['option'] = unserialize($value['option']); - $value = daddslashes($value); - $threadarr = array( - 'fid' => $fid, - 'author' => $value['username'], - 'authorid' => $value['uid'], - 'subject' => $value['subject'], - 'dateline' => $value['dateline'], - 'lastpost' => $value['lastvote'], - 'lastposter' => $value['username'], - 'views' => $value['replynum'], - 'replies' => $value['replynum'], - 'special' => 1 - ); - $tid = $db_target->insert('forum_thread', $threadarr, true); - $postarr = array( - 'fid' => $fid, - 'tid' => $tid, - 'first' => '1', - 'author' => $value['username'], - 'authorid' => $value['uid'], - 'subject' => $value['subject'], - 'dateline' => $value['dateline'], - 'message' => $value['message'] - ); - $db_target->insert('forum_post', $postarr); - - if(!empty($value['summary'])) { - $postarr = array( - 'fid' => $fid, - 'tid' => $tid, - 'first' => '1', - 'author' => $value['username'], - 'authorid' => $value['uid'], - 'subject' => $value['subject'], - 'dateline' => ($value['dateline']+10), - 'message' => $value['summary'] - ); - $db_target->insert('forum_post', $postarr); - $postnum++; - } - $pollarr = array( - 'tid' => $tid, - 'overt' => 0, - 'multiple' => $value['maxchoice'] > 1 ? 1 : 0, - 'visible' => 0, - 'maxchoices' => $value['maxchoice'], - 'expiration' => $value['expiration'], - 'pollpreview' => daddslashes(implode("\t", $pollpreview)), - 'voters' => $value['voternum'] - ); - $db_target->insert('forum_poll', $pollarr); - - $query = $db_source->query("SELECT * FROM {$db_source->tablepre}polluser WHERE pid='$value[pid]'"); - while($puser = $db_source->fetch_array($query)) { - $puser['option'] = str_replace('"', '', $puser['option']); - $puser['option'] = explode('、', $puser['option']); - $optionuser[$puser['uid']] = $puser; - } - $changeoid = array(); - $query = $db_source->query("SELECT * FROM {$db_source->tablepre}polloption WHERE pid='$value[pid]'"); - while($pollopt = $db_source->fetch_array($query)) { - - $pollopt = daddslashes($pollopt, 1); - - $votes = 0; - $uids = ''; - foreach($optionuser as $uid => $polluser) { - foreach($polluser['option'] as $id => $option) { - if($option == str_replace('"', '', $pollopt['option'])) { - $votes++; - $uids .= $uid."\t"; - $optionuser[$uid]['oid'][$pollopt['oid']] = $pollopt['oid']; - } - } - } - $optionarr = array( - 'tid' => $tid, - 'votes' => $votes, - 'polloption' => $pollopt['option'], - 'voterids' => $uids - ); - $changeoid[$pollopt['oid']] = $db_target->insert('forum_polloption', $optionarr, true); - $option[$pollopt['pid']] = $pollopt; - } - if($optionuser) { - foreach($optionuser as $uid => $polluser) { - $oparr = array(); - if($polluser['oid']) { - foreach($polluser['oid'] as $key => $id) { - $oparr[$key] = $changeoid[$key]; - } - } - $userdate = array( - 'tid' => $tid, - 'uid' => intval($uid), - 'username' => daddslashes($polluser['username']), - 'options' => implode("\t", $oparr), - 'dateline' => $polluser['dateline'] - ); - $db_target->insert('forum_pollvoter', $userdate); - } - } - - $lastpost = array(); - $query = $db_source->query("SELECT * FROM ".$db_source->table('comment')." WHERE id='$value[pid]' AND idtype='pid' ORDER BY dateline"); - while($comment = $db_source->fetch_array($query)) { - $comment['message'] = html2bbcode($comment['message']); - $comment = daddslashes($comment); - $postarr = array( - 'fid' => $fid, - 'tid' => $tid, - 'first' => '0', - 'author' => $comment['author'], - 'authorid' => $comment['authorid'], - 'useip' => $comment['ip'], - 'dateline' => $comment['dateline'], - 'message' => $comment['message'] - ); - $lastpost = array( - 'lastpost' => $comment['dateline'], - 'lastposter' => $comment['author'], - ); - - $db_target->insert('forum_post', $postarr); - $db_target->insert('common_member_count', array('uid' => $comment['authorid']), 0, false, true); - $db_target->query("UPDATE ".$db_target->table('common_member_count')." SET posts=posts+1 WHERE uid='$comment[authorid]'", 'UNBUFFERED'); - } - if($lastpost) { - $db_target->update('forum_thread', $lastpost, array('tid' => $tid)); - } - $db_target->insert('common_member_count', array('uid' => $comment['authorid']), 0, false, true); - $db_target->query("UPDATE ".$db_target->table('common_member_count')." SET threads=threads+1, posts=posts+$postnum WHERE uid='$value[uid]'", 'UNBUFFERED'); - $db_target->query("UPDATE ".$db_target->table('forum_forum')." SET lastpost='$lastpost[lastpost]', threads=threads+1, posts=posts+$value[replynum], todayposts=todayposts+$value[replynum] WHERE fid='$fid'", 'UNBUFFERED'); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." pid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid&fid=$fid"); -} - -$maxpid = $db_target->result_first("SELECT MAX(pid) FROM ".$db_target->table('forum_post')); -$maxpid = intval($maxpid) + 1; -$db_target->query("ALTER TABLE ".$db_target->table('forum_post_tableid')." AUTO_INCREMENT=$maxpid"); -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_share.php b/utility/convert/source/uch2.0_x1.0/table/home_share.php deleted file mode 100644 index 0fe1bfed..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_share.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'share'; -$table_target = $db_target->tablepre.'home_share'; - -$limit = $setting['limit']['share'] ? $setting['limit']['share'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT sid, type, uid, username, dateline, title_template, body_template, body_data, body_general, image, - image_link, hot, hotuser FROM $table_source WHERE sid>'$start' ORDER BY sid LIMIT $limit"); -while ($share = $db_source->fetch_array($query)) { - - $nextid = intval($share['sid']); - - $share = daddslashes($share, 1); - - $data = implode_field_value($share, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." sid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_show.php b/utility/convert/source/uch2.0_x1.0/table/home_show.php deleted file mode 100644 index 83947589..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_show.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'show'; -$table_target = $db_target->tablepre.'home_show'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE uid>'$start' ORDER BY uid LIMIT $limit"); -while ($show = $db_source->fetch_array($query)) { - - $nextid = intval($show['showid']); - - $show = daddslashes($show, 1); - - $data = implode_field_value($show, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_space.php b/utility/convert/source/uch2.0_x1.0/table/home_space.php deleted file mode 100644 index f6d752af..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_space.php +++ /dev/null @@ -1,224 +0,0 @@ -tablepre; -$newpre = $db_target->tablepre; - -$limit = $setting['limit']['space'] ? $setting['limit']['space'] : 500; -$nextid = 0; - -$start = getgpc('start'); -$home = load_process('home'); - -$defaultgid = $db_target->result_first("SELECT groupid FROM ".$db_target->table('common_usergroup')." WHERE type='member' AND 0>=creditshigher AND 0query("SELECT s.*, sf.* - FROM {$oldpre}space s - LEFT JOIN {$oldpre}spacefield sf ON sf.uid=s.uid - WHERE s.uid>'$start' ORDER BY s.uid - LIMIT $limit"); -while ($space = $db_source->fetch_array($query)) { - - $username = daddslashes($space['username']); - foreach (array('member','member_count','member_field_forum','member_field_home','member_profile','member_status') as $value) { - if($value == 'member') { - $db_target->query("INSERT INTO {$newpre}common_{$value} (uid, username) VALUES ('$space[uid]', '$username')", 'SILENT'); - } else { - $db_target->query("INSERT INTO {$newpre}common_{$value} (uid) VALUES ('$space[uid]')", 'SILENT'); - } - } - - $nextid = $space['uid']; - - if(!empty($space['privacy'])) { - $space['privacy'] = unserialize($space['privacy']); - $space['privacy']['feed'] = array(); - $space['privacy'] = serialize($space['privacy']); - } else { - $space['privacy'] = ''; - } - - $space = daddslashes($space, 1); - - $newquery = $db_target->query("SELECT * FROM {$newpre}common_member WHERE uid='$space[uid]'"); - if($newspace = $db_target->fetch_array($newquery)) { - $newspace = daddslashes($newspace, 1); - } else { - $newspace = array(); - } - - $setarr = array(); - if(empty($newspace['email'])) $setarr['email'] = $space['email']; - if(empty($newspace['username'])) $setarr['username'] = $space['username']; - if(empty($newspace['password'])) $setarr['password'] = md5(microtime().mt_rand(0, 100000)); - if(empty($newspace['emailstatus'])) $setarr['emailstatus'] = $space['emailcheck']; - if(empty($newspace['avatarstatus'])) $setarr['avatarstatus'] = $space['avatar']; - if(empty($newspace['videophotostatus'])) $setarr['videophotostatus'] = $space['videostatus']; - if(empty($newspace['regdate'])) $setarr['regdate'] = $space['dateline']; - - $setarr['newprompt'] = $space['notenum'] + $space['myinvitenum'] + $space['pokenum'] + $space['addfriendnum']; - $set['newpm'] = $space['newpm']; - - if(empty($newspace['groupid'])) { - if(empty($home['usergroup'][$space['groupid']])) { - $setarr['groupid'] = $defaultgid; - } else { - $setarr['groupid'] = intval($home['usergroup'][$space['groupid']]); - } - - } - - if($setarr) { - $updatesql = getupdatesql($setarr); - $db_target->query("UPDATE {$newpre}common_member SET $updatesql WHERE uid='$space[uid]'"); - } - - $setarr = array(); - $newquery = $db_target->query("SELECT * FROM {$newpre}common_member_count WHERE uid='$space[uid]'"); - if($newspace = $db_target->fetch_array($newquery)) { - $newspace = daddslashes($newspace, 1); - } else { - $newspace = array(); - } - - if(empty($home['extcredits']['credit']) || empty($home['extcredits']['experience'])) { - showmessage("发生错误,请配置积分对应关系信息"); - } - - $setarr[$home['extcredits']['credit']] = $space['credit'] + intval($newspace[$home['extcredits']['credit']]); - $setarr[$home['extcredits']['experience']] = $space['experience'] + intval($newspace[$home['extcredits']['experience']]); - - $setarr['friends'] = $space['friendnum']; - $setarr['doings'] = $space['doingnum']; - $setarr['blogs'] = $space['blognum']; - $setarr['albums'] = $space['albumnum']; - $setarr['sharings'] = $space['sharenum']; - $setarr['attachsize'] = $space['attachsize']; - $setarr['views'] = $space['viewnum']; - - if($setarr) { - $updatesql = getupdatesql($setarr); - $db_target->query("UPDATE {$newpre}common_member_count SET $updatesql WHERE uid='$space[uid]'"); - } - - $setarr = array(); - $setarr['videophoto'] = $space['videopic']; - $setarr['domain'] = $space['domain']; - $setarr['addsize'] = $space['addsize']; - $setarr['addfriend'] = $space['addfriend']; - $setarr['recentnote'] = $space['note']; - $setarr['spacenote'] = $space['spacenote']; - $setarr['privacy'] = $space['privacy']; - $setarr['feedfriend'] = $space['feedfriend']; - $setarr['acceptemail'] = $space['sendmail']; - - if($setarr) { - $updatesql = getupdatesql($setarr); - $db_target->query("UPDATE {$newpre}common_member_field_home SET $updatesql WHERE uid='$space[uid]'"); - } - - $newquery = $db_target->query("SELECT * FROM {$newpre}common_member_profile WHERE uid='$space[uid]'"); - if($newspace = $db_target->fetch_array($newquery)) { - $newspace = daddslashes($newspace, 1); - } else { - $newspace = array(); - } - - $space['none'] = ''; - - $setarr = array(); - if(empty($newspace['gender'])) $setarr['gender'] = $space['sex']; - if(empty($newspace['birthyear'])) $setarr['birthyear'] = $space['birthyear']; - if(empty($newspace['birthmonth'])) $setarr['birthmonth'] = $space['birthmonth']; - if(empty($newspace['birthday'])) $setarr['birthday'] = $space['birthday']; - if(empty($newspace['constellation'])) $setarr['constellation'] = $space['none']; - if(empty($newspace['zodiac'])) $setarr['zodiac'] = $space['none']; - if(empty($newspace['telephone'])) $setarr['telephone'] = $space['none']; - if(empty($newspace['mobile'])) $setarr['mobile'] = $space['none']; - if(empty($newspace['idcard'])) $setarr['idcard'] = $space['none']; - if(empty($newspace['address'])) $setarr['address'] = $space['none']; - if(empty($newspace['zipcode'])) $setarr['zipcode'] = $space['none']; - if(empty($newspace['nationality'])) $setarr['nationality'] = $space['none']; - if(empty($newspace['birthprovince'])) $setarr['birthprovince'] = $space['birthprovince']; - if(empty($newspace['birthcity'])) $setarr['birthcity'] = $space['birthcity']; - if(empty($newspace['resideprovince'])) $setarr['resideprovince'] = $space['resideprovince']; - if(empty($newspace['residecity'])) $setarr['residecity'] = $space['residecity']; - if(empty($newspace['residedist'])) $setarr['residedist'] = $space['none']; - if(empty($newspace['residecommunity'])) $setarr['residecommunity'] = $space['none']; - if(empty($newspace['residesuite'])) $setarr['residesuite'] = $space['none']; - if(empty($newspace['graduateschool'])) $setarr['graduateschool'] = $space['none']; - if(empty($newspace['education'])) $setarr['education'] = $space['none']; - if(empty($newspace['occupation'])) $setarr['occupation'] = $space['none']; - if(empty($newspace['revenue'])) $setarr['revenue'] = $space['none']; - if(empty($newspace['affectivestatus'])) $setarr['affectivestatus'] = $space['none']; - if(empty($newspace['lookingfor'])) $setarr['lookingfor'] = $space['none']; - if(empty($newspace['bloodtype'])) $setarr['bloodtype'] = $space['blood']; - if(empty($newspace['height'])) $setarr['height'] = $space['none']; - if(empty($newspace['weight'])) $setarr['weight'] = $space['none']; - if(empty($newspace['alipay'])) $setarr['alipay'] = $space['none']; - if(empty($newspace['icq'])) $setarr['icq'] = $space['none']; - if(empty($newspace['qq'])) $setarr['qq'] = $space['qq']; - if(empty($newspace['yahoo'])) $setarr['yahoo'] = $space['none']; - if(empty($newspace['msn'])) $setarr['msn'] = $space['msn']; - if(empty($newspace['taobao'])) $setarr['taobao'] = $space['none']; - if(empty($newspace['site'])) $setarr['site'] = $space['none']; - if(empty($newspace['bio'])) $setarr['bio'] = $space['none']; - if(empty($newspace['interest'])) $setarr['interest'] = $space['none']; - if(empty($newspace['idcardtype'])) $setarr['idcardtype'] = $space['none']; - if(empty($newspace['company'])) $setarr['company'] = $space['none']; - if(empty($newspace['position'])) $setarr['position'] = $space['none']; - if(empty($newspace['realname'])) $setarr['realname'] = $space['name']; - - if($setarr) { - $updatesql = getupdatesql($setarr); - $db_target->query("UPDATE {$newpre}common_member_profile SET $updatesql WHERE uid='$space[uid]'"); - } - - - $newquery = $db_target->query("SELECT * FROM {$newpre}common_member_status WHERE uid='$space[uid]'"); - if($newspace = $db_target->fetch_array($newquery)) { - $newspace = daddslashes($newspace, 1); - } else { - $newspace = array(); - } - - $setarr = array(); - if(empty($newspace['regip'])) $setarr['regip'] = $space['regip']; - if(empty($newspace['lastip'])) $setarr['lastip'] = $space['regip']; - if(empty($newspace['lastvisit'])) $setarr['lastvisit'] = $space['lastlogin']; - if(empty($newspace['lastactivity'])) $setarr['lastactivity'] = $space['updatetime']; - if(empty($newspace['lastpost'])) $setarr['lastpost'] = $space['lastpost']; - if(empty($newspace['lastsendmail'])) $setarr['lastsendmail'] = $space['lastsend']; - if(empty($newspace['notifications'])) $setarr['notifications'] = $space['notenum']; - if(empty($newspace['myinvitations'])) $setarr['myinvitations'] = $space['myinvitenum']; - if(empty($newspace['pokes'])) $setarr['pokes'] = $space['pokenum']; - if(empty($newspace['pendingfriends'])) $setarr['pendingfriends'] = $space['addfriendnum']; - - if($setarr) { - $updatesql = getupdatesql($setarr); - $db_target->query("UPDATE {$newpre}common_member_status SET $updatesql WHERE uid='$space[uid]'"); - } - - -} - -if($nextid) { - showmessage("继续转换数据表 {$oldpre}space uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -function getupdatesql($setarr) { - $updatearr = array(); - foreach ($setarr as $key => $value) { - $updatearr[] = "`$key`='$value'"; - } - return implode(',', $updatearr); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_userapp.php b/utility/convert/source/uch2.0_x1.0/table/home_userapp.php deleted file mode 100644 index 22d09807..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_userapp.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'userapp'; -$table_target = $db_target->tablepre.'home_userapp'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = $setting['limit']['userapp'] ? $setting['limit']['userapp'] : 10000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_userappfield.php b/utility/convert/source/uch2.0_x1.0/table/home_userappfield.php deleted file mode 100644 index 732a25a7..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_userappfield.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'userappfield'; -$table_target = $db_target->tablepre.'home_userappfield'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = $setting['limit']['userapp'] ? $setting['limit']['userapp'] : 1000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.0/table/home_visitor.php b/utility/convert/source/uch2.0_x1.0/table/home_visitor.php deleted file mode 100644 index a4edcb5d..00000000 --- a/utility/convert/source/uch2.0_x1.0/table/home_visitor.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'visitor'; -$table_target = $db_target->tablepre.'home_visitor'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = $setting['limit']['visitor'] ? $setting['limit']['visitor'] : 2000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("REPLACE INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/config.php b/utility/convert/source/uch2.0_x1.5/config.php deleted file mode 100644 index d9855d17..00000000 --- a/utility/convert/source/uch2.0_x1.5/config.php +++ /dev/null @@ -1,144 +0,0 @@ - getgpc('targetgroup'), - 'extcredits' => getgpc('extcredits'), - 'forum' => getgpc('forum'), - ); - save_process('home', $home); -} else { - $sourcegroup = array(); - $targetoption = ''; - $query = $db_source->query("SELECT gid, grouptitle FROM ".$db_source->table('usergroup')." WHERE system!='0'"); - while($group = $db_source->fetch_array($query)) { - $sourcegroup[$group['gid']] = $group['grouptitle']; - } - - $query = $db_target->query("SELECT groupid, grouptitle FROM ".$db_target->table('common_usergroup')." WHERE type!='member'"); - while($group = $db_target->fetch_array($query)) { - $targetoption .= "\n"; - } - - $extcredits = ''; - $sourcecredits = array('credit', 'experience'); - $tsetting = $db_target->fetch_first("SELECT * FROM ".$db_target->table('common_setting')." WHERE skey='extcredits'"); - - $tsetting = @unserialize($tsetting['svalue']); - if(!is_array($tsetting)) { - showmessage("message_not_enabled_extcredit"); - } else { - if(count($tsetting) < 8) { - for($i = count($tsetting)+1; $i < 9; $i++) { - $tsetting[$i] = $i; - } - } - foreach($tsetting as $id => $value) { - $extcredits .= "\n"; - } - } - - $forumarr = array(); - $forumoption = ''; - $query = $db_target->query("SELECT fid, fup, type, name FROM ".$db_target->table('forum_forum')." WHERE status IN('1','2') "); - while($forum = $db_target->fetch_array($query)) { - if(!$forum['fup']) { - $forumarr[$forum['fid']] = $forum; - } elseif(isset($forumarr[$forum['fup']])) { - $forumarr[$forum['fup']]['child'][$forum['fid']] = $forum; - } - } - foreach($forumarr as $gid => $forum) { - $forumoption .= "\n"; - if(!empty($forum['child']) && is_array($forum['child'])) { - foreach($forum['child'] as $fid => $value) { - $forumoption .= "\n"; - } - } - $forumoption .= "\n"; - } - - show_form_header(); - show_table_header(); - show_table_row(array(array('colspan="3"', lang('config_usergroup'))), 'header title'); - show_table_row( - array( - lang('config_from_usergroup'), - array('class="bg1" width="10%" align="center"', '->'), - lang('config_target_usergroup') - ) - ); - foreach($sourcegroup as $key => $value) { - $addmsg = $error && $key == 'dbhost' ? lang($error) : ''; - $key = intval($key); - show_table_row( - array( - array('class="bg2" width="45%"', $value), - array('class="bg1" width="10%" align="center"', '->'), - array('class="bg2" width="45%"', '') - ),'bg1' - ); - } - show_table_footer(); - echo '
    '; - - show_table_header(); - show_table_row(array(array('colspan="3"', lang('config_extcredits'))), 'header title'); - show_table_row( - array( - lang('config_from_credit'), - array('class="bg1" width="10%" align="center"', '->'), - lang('config_target_credit') - ) - ); - show_table_row( - array( - array('class="bg2" width="45%"', lang('config_credit')), - array('class="bg1" width="10%" align="center"', '->'), - array('class="bg2" width="45%"', '') - ),'bg1' - ); - show_table_row( - array( - array('class="bg2" width="45%"', lang('config_experience')), - array('class="bg1" width="10%" align="center"', '->'), - array('class="bg2" width="45%"', '') - ),'bg1' - ); - show_table_footer(); - echo '
    '; - - show_table_header(); - show_table_row(array(array('colspan="3"', lang('config_convert_forum'))), 'header title'); - show_table_row( - array( - lang('config_from_data'), - array('class="bg1" width="10%" align="center"', '->'), - lang('config_target_forum') - ) - ); - show_table_row( - array( - array('class="bg2" width="45%"', lang('config_poll')), - array('class="bg1" width="10%" align="center"', '->'), - array('class="bg2" width="45%"', '') - ),'bg1' - ); - show_table_row( - array( - array('class="bg2" width="45%"', lang('config_event')), - array('class="bg1" width="10%" align="center"', '->'), - array('class="bg2" width="45%"', '') - ),'bg1' - ); - show_table_footer(); - show_form_footer('submit', 'config_convert'); - exit(); -} -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/readme.txt b/utility/convert/source/uch2.0_x1.5/readme.txt deleted file mode 100644 index b7e4634a..00000000 --- a/utility/convert/source/uch2.0_x1.5/readme.txt +++ /dev/null @@ -1,69 +0,0 @@ -==================================== -UCenter Home 2.0 升级至 Discuz! X1.5 说明 -==================================== - -特别警示!!! -由于UCHome与Discuz!部分功能进行了整合性融合,因此UCHome的部分功能,在整合到Discuz! X后将会部分丢失, -其中包括: -由于新增专题功能,原UCH热闹功能将不再支持; -UCH投票、UCH活动将与论坛投票贴、活动贴的形式融合为一体,活动相册、活动群组功能将不再支持; -UCH群组将以新的群组功能存在,原群组相册、群组活动功能将不再支持; -个人资料进行了新的调整,UCH原个人资料中的学校、工作信息将需要重新填写; -UCH的全站实名功能不再支持; - -请根据自己建站需求,权衡决定是否将UCHome转换升级到Discuz! X。 - -I 升级前的准备 ---------------- -1. 建立程序备份目录,例如 old -2. 将原UCHome所有程序移动到 old 目录中 -3. 上传 Discuz! X 产品的upload目录中的程序到UCHome目录 -4. 执行安装程序 /install - 安装的时候请指定原UCHome挂接的UCenter Server地址 - -II 升级UCHome数据 ---------------- -1. 安装完毕,测试Discuz! X可以正常运行以后,上传convert 程序到Discuz! X根目录 -2. 执行 /convert -3. 选择相应的程序版本,开始转换 -4. 转换过程中不可擅自中断,直到程序自动执行完毕。 -5. 转换过程可能需要较长时间,且消耗较多服务器资源,您应当选择服务器空闲的时候执行 - -III 升级完毕, 还要做的几件事 --------------------------- -1. 编辑新Discuz! X的 config/config_global.php 文件,设定好创始人 -2. 直接访问新Discuz! X的 admin.php -3. 使用创始人帐号登录,进入后台更新缓存 -4. 新系统增加了很多设置项目,包括用户权限、组权限、论坛板块等等,您需要仔细的重新设置一次。 -5. 转移旧附件目录到新产品根目录(在转移之前,您的动态、日志、评论、留言等内容中的图片无法正常显示) - a)进入 old/attachment 目录 - b)将所有文件移动到 新Discuz! X产品 /data/attachment/album/ 目录中 - c)同时,修改一下 Discuz! X的代码 - 让日志内容中的已经插入的图片地址,通过字符串替换,改为最新的图片地址,解决日志内容图片无法显示的问题。 - 方法如下: - 打开Discuz! X的 ./source/include/space/space_blog.php 程序 - 找到: - $blog['message'] = blog_bbcode($blog['message']); - 在下面增加如下代码: - $home_url = 'http://your_home_site_url/'; // 请将此链接地址改为您的 UCHome 站点地址!!! - $bbs_url = 'http://your_bbs_site_url/'; // 请将此链接地址改为您的 BBS 站点地址!!! - $findarr = array( - 'tablepre.'ad'; -$table_target = $db_target->tablepre.'common_advertisement'; - -$limit = 100; -$nextid = 0; - -$start = getgpc('start'); - -$query = $db_source->query("SELECT * FROM $table_source WHERE adid>'$start' AND pagetype IN('header','footer','rightside','couplet','feedbox') ORDER BY adid LIMIT $limit"); -while ($ad = $db_source->fetch_array($query)) { - $nextid = $ad['adid']; - - switch($ad['pagetype']) { - case 'header': - $ad['pagetype'] = 'headerbanner';break; - case 'footer': - $ad['pagetype'] = 'footerbanner';break; - case 'rightside': - $ad['pagetype'] = 'blog';break; - case 'couplet': - $ad['pagetype'] = 'couplebanner';break; - case 'feedbox': - $ad['pagetype'] = 'feed';break; - } - - $advnew = unserialize($ad['adcode']); - foreach($advnew as $k => $v) { - if($k == 'flashheight') { - $advarr = array('height' => $advnew['flashheight'], 'width' => $advnew['flashwidth'], 'url' => $advnew['flashurl'], 'style' => 'flash'); - } elseif($k == 'imageheight') { - $advarr = array('height' => $advnew['imageheight'], 'width' => $advnew['imagewidth'], 'url' => $advnew['imagesrc'], - 'link' => $advnew['imageurl'], 'alt' => $advnew['imagealt'], 'style' => 'image'); - } elseif($k == 'textcontent') { - $advarr = array('title' => $advnew['textcontent'], 'link' => $advnew['texturl'], 'size' => $advnew['textsize'], 'style' => 'text'); - } elseif($advnew['type'] == 'html') { - $advarr = array('style' => 'code'); - } - } - if($advarr['style'] == 'code') { - $html = $advarr['html'] = $advnew['html']; - $html = daddslashes($html); - } else { - $html = daddslashes(encodeadvcode($advarr)); - $advarr['html'] = $html; - } - - $advarr = daddslashes($advarr); - $parameters = serialize($advarr); - - $ad = daddslashes($ad, 1); - - $db_target->query("INSERT INTO $table_target SET `available`='".$ad[available]. - "',`type`='".$ad[pagetype]."',`displayorder`='".$ad[system]."',`parameters`='".$parameters."',`title`='".$ad[title]."',`targets`='home',`code`='".$html."'"); -} - -$res = $db_target->fetch_first("SELECT * FROM {$db_target->tablepre}common_advertisement_custom WHERE name='UCHOME'"); -if(!$res) { - $db_target->query("INSERT INTO {$db_target->tablepre}common_advertisement_custom SET `name`='UCHOME'"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." adid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -function encodeadvcode($advnew) { - switch($advnew['style']) { - case 'text': - $advnew['code'] = ''.$advnew['title'].''; - break; - case 'image': - $advnew['code'] = ''.$advnew['alt'].''; - break; - case 'flash': - $advnew['code'] = ''; - break; - } - return $advnew['code']; -} -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/common_member_log.php b/utility/convert/source/uch2.0_x1.5/table/common_member_log.php deleted file mode 100644 index 89330e46..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/common_member_log.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'userlog'; -$table_target = $db_target->tablepre.'common_member_log'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = $setting['limit']['userlog'] ? $setting['limit']['userlog'] : 1000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT uid, action, dateline FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/common_myapp.php b/utility/convert/source/uch2.0_x1.5/table/common_myapp.php deleted file mode 100644 index 61e28147..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/common_myapp.php +++ /dev/null @@ -1,41 +0,0 @@ -tablepre.'myapp'; -$table_target = $db_target->tablepre.'common_myapp'; - -$limit = $setting['limit']['myapp'] ? $setting['limit']['myapp'] : 500; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE appid>'$start' ORDER BY appid LIMIT $limit"); -while ($app = $db_source->fetch_array($query)) { - - $nextid = $app['appid']; - - $app = daddslashes($app, 1); - - $data = implode_field_value($app, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." appid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} else { - $db_target->query("TRUNCATE ".$db_target->table('common_myapp_count')); - $db_target->query('INSERT INTO '.$db_target->table('common_myapp_count').' (appid) SELECT appid FROM '.$db_target->table('common_myapp')); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/common_myinvite.php b/utility/convert/source/uch2.0_x1.5/table/common_myinvite.php deleted file mode 100644 index 55604896..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/common_myinvite.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'myinvite'; -$table_target = $db_target->tablepre.'common_myinvite'; - -$limit = $setting['limit']['myinvite'] ? $setting['limit']['myinvite'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($invite = $db_source->fetch_array($query)) { - - $nextid = $invite['id']; - - $invite = daddslashes($invite, 1); - - $data = implode_field_value($invite, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_album.php b/utility/convert/source/uch2.0_x1.5/table/home_album.php deleted file mode 100644 index e7cffd05..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_album.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'album'; -$table_target = $db_target->tablepre.'home_album'; - -$limit = $setting['limit']['album'] ? $setting['limit']['album'] : 2000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE albumid>'$start' ORDER BY albumid LIMIT $limit"); -while ($album = $db_source->fetch_array($query)) { - - $nextid = $album['albumid']; - - $album = daddslashes($album, 1); - - $data = implode_field_value($album, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." albumid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_appcreditlog.php b/utility/convert/source/uch2.0_x1.5/table/home_appcreditlog.php deleted file mode 100644 index d6ccf85d..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_appcreditlog.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'appcreditlog'; -$table_target = $db_target->tablepre.'home_appcreditlog'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE logid>'$start' ORDER BY logid LIMIT $limit"); -while ($log = $db_source->fetch_array($query)) { - - $nextid = $log['logid']; - - $log = daddslashes($log, 1); - - $data = implode_field_value($log, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." logid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_blacklist.php b/utility/convert/source/uch2.0_x1.5/table/home_blacklist.php deleted file mode 100644 index 877b0421..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_blacklist.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'blacklist'; -$table_target = $db_target->tablepre.'home_blacklist'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = 1000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("REPLACE INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_blog.php b/utility/convert/source/uch2.0_x1.5/table/home_blog.php deleted file mode 100644 index 99638b07..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_blog.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'blog'; -$table_target = $db_target->tablepre.'home_blog'; - -$limit = $setting['limit']['blog'] ? $setting['limit']['blog'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT dateline, blogid, uid, username, `subject`, classid, viewnum, replynum, hot, picflag, noreply, friend, `password`, click_1 as click1, click_2 as click2, click_3 as click3, click_4 as click4, click_5 as click5 FROM $table_source WHERE blogid>'$start' ORDER BY blogid LIMIT $limit"); -while ($blog = $db_source->fetch_array($query)) { - - $nextid = intval($blog['blogid']); - - $blog = daddslashes($blog, 1); - - $data = implode_field_value($blog, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET `blogid`='".$blog[blogid]."',`uid`='".$blog[uid]."',`username`='".$blog[username]."',`subject`='".$blog[subject]."',`classid`='".$blog[classid]. - "',`viewnum`='".$blog[viewnum]."',`replynum`='".$blog[replynum]."',`hot`='".$blog[hot]."',`dateline`='".$blog[dateline]."',`picflag`='".$blog[picflag]."',`noreply`='".$blog[noreply]. - "',`friend`='".$blog[friend]."',`password`='".$blog[password]."',`click1`='".$blog[click1]."',`click2`='".$blog[click5]."',`click3`='".$blog[click4]."',`click4`='".$blog[click3]."',`click5`='".$blog[click2]." '"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." blogid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_blogfield.php b/utility/convert/source/uch2.0_x1.5/table/home_blogfield.php deleted file mode 100644 index 1c14b4e8..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_blogfield.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'blogfield'; -$table_target = $db_target->tablepre.'home_blogfield'; - -$limit = $setting['limit']['blog'] ? $setting['limit']['blog'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT bf.blogid, bf.uid, bf.tag, bf.message, bf.postip, bf.related, bf.relatedtime, bf.target_ids, bf.hotuser, b.pic FROM $table_source bf LEFT JOIN ".$db_source->table_name('blog')." b ON b.blogid = bf.blogid WHERE bf.blogid>'$start' ORDER BY bf.blogid LIMIT $limit"); -while ($blog = $db_source->fetch_array($query)) { - - if(!empty($blog['tag'])) { - $tag = unserialize($blog['tag']); - if(is_array($tag)) { - foreach($tag as $k => $v) { - $blog['tag'] = implode(' ', $tag); - } - } - } - - $nextid = $blog['blogid']; - - $blog = daddslashes($blog, 1); - - $data = implode_field_value($blog, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." blogid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_class.php b/utility/convert/source/uch2.0_x1.5/table/home_class.php deleted file mode 100644 index c005a313..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_class.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'class'; -$table_target = $db_target->tablepre.'home_class'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE classid>'$start' ORDER BY classid LIMIT $limit"); -while ($class = $db_source->fetch_array($query)) { - - $nextid = $class['classid']; - - $class = daddslashes($class, 1); - - $data = implode_field_value($class, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." classid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_click.php b/utility/convert/source/uch2.0_x1.5/table/home_click.php deleted file mode 100644 index dfc4c0e5..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_click.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'click'; -$table_target = $db_target->tablepre.'home_click'; - -$limit = $setting['limit']['click'] ? $setting['limit']['click'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE clickid>'$start' AND idtype!='tid' ORDER BY clickid LIMIT $limit"); -while ($click = $db_source->fetch_array($query)) { - - $nextid = $click['clickid']; - - $click = daddslashes($click, 1); - - $data = implode_field_value($click, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." clickid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_clickuser.php b/utility/convert/source/uch2.0_x1.5/table/home_clickuser.php deleted file mode 100644 index a3f49710..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_clickuser.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'clickuser'; -$table_target = $db_target->tablepre.'home_clickuser'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = $setting['limit']['click'] ? $setting['limit']['click'] : 1000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_comment.php b/utility/convert/source/uch2.0_x1.5/table/home_comment.php deleted file mode 100644 index ff7bbf0c..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_comment.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'comment'; -$table_target = $db_target->tablepre.'home_comment'; - -$limit = $setting['limit']['comment'] ? $setting['limit']['comment'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE cid>'$start' AND (idtype='blogid' OR idtype='uid' OR idtype='picid' OR idtype='sid') ORDER BY cid LIMIT $limit"); -while ($comment = $db_source->fetch_array($query)) { - - $nextid = $comment['cid']; - - $comment = daddslashes($comment, 1); - - $data = implode_field_value($comment, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." cid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_config.php b/utility/convert/source/uch2.0_x1.5/table/home_config.php deleted file mode 100644 index 4007a4cd..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_config.php +++ /dev/null @@ -1,68 +0,0 @@ -tablepre.'config'; -$table_target = $db_target->tablepre.'common_setting'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); - -$newsetting = array(); - -$my_siteid = $my_sitekey = ''; -$query = $db_target->query("SELECT * FROM $table_target WHERE skey IN('my_siteid', 'my_sitekey', 'my_search_status')"); -while ($value = $db_target->fetch_array($query)) { - if($value['skey'] == 'my_siteid') { - $my_siteid = $value['svalue']; - } elseif($value['skey'] == 'my_sitekey') { - $my_sitekey = $value['svalue']; - } elseif($value['skey'] == 'my_search_status') { - $my_search_status = $value['svalue']; - } - - $key = addslashes($value['skey'].'_old'); - $val = addslashes($value['svalue']); - $newsetting[] = "('$key', '$val')"; - -} -if(isset($my_search_status) && in_array($my_search_status, array(0, 1))) { - $key = addslashes('my_sitekey_sign_old'); - $val = addslashes(substr(md5(substr(md5($my_siteid.'|'.$my_sitekey), 0, 16)), 16, 16)); - $newsetting[] = "('$key', '$val')"; - $newsetting[] = "('my_search_status', '0')"; -} - -if(empty($my_siteid) || empty($my_sitekey)){ - $newsetting = array(); -} - -$validityconfig = array('adminemail', 'updatestat', 'timeoffset', 'maxpage', 'topcachetime', 'allowdomain', 'allowwatermark', - 'holddomain', 'feedday', 'feedmaxnum', 'groupnum', 'closeinvite', 'checkemail', 'networkpage','showallfriendnum', - 'sendmailday', 'feedtargetblank', 'feedread', 'feedhotnum', 'feedhotday', 'feedhotmin', 'privacy', - 'my_status', 'my_siteid', 'my_sitekey', 'my_closecheckupdate', 'my_ip', 'uniqueemail', 'updatestat', 'topcachetime'); - -$query = $db_source->query("SELECT * FROM $table_source"); -while ($value = $db_source->fetch_array($query)) { - $val = addslashes($value['datavalue']); - $key = $value['var']; - if(in_array($key, $validityconfig)) { - if($key == 'my_status') { - $val = 0; - $key = 'my_app_status'; - } - $newsetting[] = "('$key', '$val')"; - } -} -if(!empty($newsetting)) { - $db_target->query("REPLACE INTO $table_target (`skey`, `svalue`) VALUES ".implode(',', $newsetting)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_docomment.php b/utility/convert/source/uch2.0_x1.5/table/home_docomment.php deleted file mode 100644 index 571ae0f6..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_docomment.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'docomment'; -$table_target = $db_target->tablepre.'home_docomment'; - -$limit = $setting['limit']['docomment'] ? $setting['limit']['docomment'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($docomment = $db_source->fetch_array($query)) { - - $nextid = $docomment['id']; - - $docomment = daddslashes($docomment, 1); - - $data = implode_field_value($docomment, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_doing.php b/utility/convert/source/uch2.0_x1.5/table/home_doing.php deleted file mode 100644 index 0937091f..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_doing.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'doing'; -$table_target = $db_target->tablepre.'home_doing'; - -$limit = $setting['limit']['doing'] ? $setting['limit']['doing'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT doid,uid,username,`from`,dateline,message,ip,replynum FROM $table_source WHERE doid>'$start' ORDER BY doid LIMIT $limit"); -while ($doing = $db_source->fetch_array($query)) { - - $str = 'class="face"'; - $doing['message'] = str_replace($str, '', $doing[message]); - $nextid = $doing['doid']; - - $doing = daddslashes($doing, 1); - - $data = implode_field_value($doing, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." doid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_event.php b/utility/convert/source/uch2.0_x1.5/table/home_event.php deleted file mode 100644 index 52c756f2..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_event.php +++ /dev/null @@ -1,155 +0,0 @@ -tablepre.'event'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = $setting['limit']['event'] ? $setting['limit']['event'] : 100; -$nextid = 0; -$home = load_process('home'); -$eventfid = intval($home['forum']['event']); - -if(!empty($eventfid)) { - $value = $db_target->fetch_first('SELECT * FROM '.$db_target->table_name('forum_forum')." WHERE fid='$eventfid' AND status!='3'"); - if(empty($value)) { - $eventfid = 0; - } -} -if(empty($eventfid)) { - $board_name = 'UCHome数据'; - $forum_name = 'UCHome活动'; - $value = $db_target->fetch_first('SELECT fid FROM '.$db_target->table_name('forum_forum')." WHERE type='forum' AND status='1' AND `name`='$forum_name'"); - if(!empty($value)) { - $eventfid = intval($value['fid']); - } else { - $value = $db_target->fetch_first('SELECT fid FROM '.$db_target->table_name('forum_forum')." WHERE type='group' AND status='1' AND `name`='$board_name'"); - if($value) { - $fup = intval($value['fid']); - } else { - $board = array( - 'name' => $board_name, - 'type' => 'group', - 'status' => '1', - ); - $fup = $db_target->insert('forum_forum', $board, true); - } - $forum = array( - 'name' => $forum_name, - 'fup' => $fup, - 'type' => 'forum', - 'allowsmilies' => 1, - 'allowbbcode' => 1, - 'allowimgcode' => 1, - 'status' => '1', - ); - $eventfid = $db_target->insert('forum_forum', $forum, true); - $forumfield = array( - 'fid' => $eventfid, - 'description' => '从 UCenter Home 转移过来的活动内容' - ); - $db_target->insert('forum_forumfield', $forumfield); - } -} - -$eventclass = array(); -$query = $db_source->query('SELECT classid, classname FROM '.$db_source->table_name('eventclass')); -while($value=$db_source->fetch_array($query)) { - $eventclass[$value['classid']] = $value['classname']; -} - -include_once DISCUZ_ROOT.'./include/editor.func.php'; - -$event_query = $db_source->query("SELECT e.*, ef.detail, ef.limitnum FROM $table_source e LEFT JOIN ".$db_source->table_name('eventfield')." ef ON e.eventid = ef.eventid WHERE e.eventid > $start ORDER BY e.eventid LIMIT $limit"); -while ($event = $db_source->fetch_array($event_query)) { - - $nextid = intval($event['eventid']); - - $commentnum = $db_source->result_first('SELECT count(*) FROM '.$db_source->table_name('comment')." WHERE id='$event[eventid]' AND idtype='eventid'"); - $lastcomment = array(); - if($commentnum) { - $lastcomment = $db_source->fetch_first('SELECT author, dateline FROM '.$db_source->table_name('comment')." WHERE id='$event[eventid]' AND idtype='eventid' ORDER BY cid DESC LIMIT 1"); - } - $threadarr = array( - 'fid' => $eventfid, - 'author' => $event['username'], - 'authorid' => $event['uid'], - 'subject' => $event['title'], - 'dateline' => $event['dateline'], - 'lastpost' => !empty($lastcomment) ? $lastcomment['dateline'] : $event['updatetime'], - 'lastposter' => !empty($lastcomment) ? $lastcomment['author'] : $event['username'], - 'views' => $event['viewnum'], - 'replies' => $commentnum, - 'special' => 4 - ); - $tid = $db_target->insert('forum_thread', daddslashes($threadarr), true); - $event['detail'] = html2bbcode($event['detail']); - $postarr = array( - 'fid' => $eventfid, - 'tid' => $tid, - 'first' => '1', - 'author' => $event['username'], - 'authorid' => $event['uid'], - 'subject' => $event['subject'], - 'dateline' => $event['dateline'], - 'message' => $event['detail'] - ); - $pid = $db_target->insert('forum_post', daddslashes($postarr), true); - $aid = 0; - $activityarr = array( - 'tid' => $tid, - 'uid' => $event['uid'], - 'aid' => $aid, - 'cost' => '', - 'starttimefrom' => $event['starttime'], - 'starttimeto' => $event['endtime'], - 'place' => '['.$event['province'].$event['city'].'] '.$event['location'], - 'class' => $eventclass[$event['classid']], - 'number' => $event['limitnum'], - 'applynumber' => $event['membernum'] - 1,// Home 里的活动成员包括创建者 - 'expiration' => $event['deadline'] - ); - $db_target->insert('forum_activity', daddslashes($activityarr)); - - $inserts = array(); - $query = $db_source->query('SELECT * FROM '.$db_source->table_name('userevent')." WHERE eventid = '$event[eventid]' AND status IN ('1', '2')"); - while($value=$db_source->fetch_array($query)) { - $value['verified'] = $value['status'] == 1 ? 0 : 1; - $value['username'] = addslashes($value['username']); - $inserts[] = "('$tid', '$value[username]', '$value[uid]', '$value[verified]', '$value[dateline]', '-1')"; - } - if($inserts) { - $db_target->query('INSERT INTO '.$db_target->table_name('forum_activityapply').'(tid, username ,uid, verified, dateline, payment) VALUES '.implode(', ', $inserts)); - } - - if($commentnum) { - $inserts = array(); - $query = $db_source->query('SELECT * FROM '.$db_source->table_name('comment')." WHERE id='$event[eventid]' AND idtype='eventid' ORDER BY cid"); - while($value=$db_source->fetch_array($query)) { - $value['message'] = addslashes(html2bbcode($value['message'])); - $value['author'] = addslashes($value['author']); - $inserts[] = "('$fid', '$tid', '$value[author]', '$value[authorid]', '$value[dateline]', '$value[message]')"; - } - $db_target->query('INSERT INTO '.$db_target->table_name('forum_post')."(fid, tid, author, authorid, dateline, message) VALUES ".implode(', ',$inserts)); - } - - $posts = $commentnum + 1; - $db_target->query("UPDATE ".$db_target->table_name('common_member_count')." SET threads=threads+1 WHERE uid='$event[uid]'"); - $db_target->query("UPDATE ".$db_target->table_name('forum_forum')." SET threads=threads+1, posts=posts+$posts WHERE fid='$eventfid'"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." eventid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -$maxpid = $db_target->result_first("SELECT MAX(pid) FROM ".$db_target->table('forum_post')); -$maxpid = intval($maxpid) + 1; -$db_target->query("ALTER TABLE ".$db_target->table('forum_post_tableid')." AUTO_INCREMENT=$maxpid"); -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_feed.php b/utility/convert/source/uch2.0_x1.5/table/home_feed.php deleted file mode 100644 index b8c8c427..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_feed.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'feed'; -$table_target = $db_target->tablepre.'home_feed'; - -$limit = $setting['limit']['feed'] ? $setting['limit']['feed'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE feedid>'$start' ORDER BY feedid LIMIT $limit"); -while ($feed = $db_source->fetch_array($query)) { - - $nextid = $feed['feedid']; - - $feed = daddslashes($feed, 1); - - $data = implode_field_value($feed, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." feedid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_friend.php b/utility/convert/source/uch2.0_x1.5/table/home_friend.php deleted file mode 100644 index 389c1db6..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_friend.php +++ /dev/null @@ -1,66 +0,0 @@ -tablepre.'friend'; - -$limit = $setting['limit']['friend'] ? $setting['limit']['friend'] : 10000; - -$nextid = 0; - -$start = getgpc('start'); -$start = empty($start) ? 0 : $start; - -if($start == 0) { - $db_target->query("TRUNCATE ".$db_target->tablepre.'home_friend_request'); -} - -$nextid = $start + $limit; -$done = true; - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($rs = $db_source->fetch_array($query)) { - - $done = false; - - $rs = daddslashes($rs, 1); - - if($rs['status']) { - $table_target = $db_target->tablepre.'home_friend'; - if(empty($rs['fusername'])) { - $subquery = $db_source->query("SELECT username FROM ".$db_source->tablepre.'space'." WHERE uid='$rs[fuid]]'"); - $rs['fusername'] = $db_source->result($subquery, 0); - $rs['fusername'] = addslashes($rs['fusername']); - } - $rs['note'] = ''; - } else { - $_uid = $rs['uid']; - $_fuid = $rs['fuid']; - $rs['uid'] = $_fuid; - $rs['fuid'] = $_uid; - - $subquery = $db_source->query("SELECT username FROM ".$db_source->tablepre.'space'." WHERE uid='$_uid'"); - $rs['fusername'] = $db_source->result($subquery, 0); - $rs['fusername'] = addslashes($rs['fusername']); - - $table_target = $db_target->tablepre.'home_friend_request'; - } - - - $data = implode_field_value($rs, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("REPLACE INTO $table_target SET $data"); - -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." start> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_friendlog.php b/utility/convert/source/uch2.0_x1.5/table/home_friendlog.php deleted file mode 100644 index cd280c16..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_friendlog.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'friendlog'; -$table_target = $db_target->tablepre.'home_friendlog'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = 2000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_group.php b/utility/convert/source/uch2.0_x1.5/table/home_group.php deleted file mode 100644 index bac70dec..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_group.php +++ /dev/null @@ -1,251 +0,0 @@ -table('mtag'); -require_once DISCUZ_ROOT.'./include/editor.func.php'; - - -$fieldid = intval(getgpc('fieldid')); -$tagid = intval(getgpc('tagid')); - -$gid = intval(getgpc('gid')); -$fid = intval(getgpc('fid')); -$sid = intval(getgpc('sid')); - -$limit = $setting['limit']['mtag'] ? $setting['limit']['mtag'] : 100; -$nextid = 0; - -$threadquery = $db_source->query("SELECT * FROM ".$db_source->table('thread')." WHERE tid > '$start' AND tagid='$tagid' ORDER BY tid LIMIT $limit"); -while($value = $db_source->fetch_array($threadquery)) { - - $nextid = $value['tid']; - $value = daddslashes($value); - $value['replynum'] = intval($value['replynum']); - $threadarr = array( - 'fid' => $sid, - 'author' => $value['username'], - 'authorid' => $value['uid'], - 'subject' => $value['subject'], - 'dateline' => $value['dateline'], - 'lastpost' => $value['lastpost'], - 'lastposter' => $value['lastauthor'], - 'views' => $value['viewnum'], - 'replies' => $value['replynum'], - 'digest' => $value['digest'], - 'displayorder' => $value['displayorder'] ? 1 : 0, - 'isgroup' => 1 - ); - $tid = $db_target->insert('forum_thread', $threadarr, true); - - $lastpost = array(); - - $query = $db_source->query("SELECT * FROM ".$db_source->table('post')." WHERE tid='$value[tid]' ORDER BY dateline"); - while($post = $db_source->fetch_array($query)) { - $post['message'] = html2bbcode($post['message']); - $post = daddslashes($post); - $postarr = array( - 'fid' => $sid, - 'tid' => $tid, - 'first' => $post['isthread'] ? 1 : 0, - 'author' => $post['username'], - 'authorid' => $post['uid'], - 'subject' => $post['isthread'] ? $value['subject'] : $post['subject'], - 'dateline' => $post['dateline'], - 'message' => $post['message'], - 'useip' => $post['ip'] - ); - $lastpost = array( - 'lastpost' => $post['dateline'], - 'lastposter' => $post['username'], - ); - $db_target->insert('forum_post', $postarr); - $db_target->insert('common_member_count', array('uid' => $value['uid']), 0, false, true); - $db_target->query("UPDATE ".$db_target->table('common_member_count')." SET posts=posts+1 WHERE uid='$post[uid]'", 'UNBUFFERED'); - $db_target->query("UPDATE ".$db_target->table('forum_groupuser')." SET replies=replies+1 WHERE fid='$sid' AND uid='$post[uid]'", 'UNBUFFERED'); - } - - if($lastpost) { - $db_target->update('forum_thread', $lastpost, array('tid' => $tid)); - } else { - $lastpost['lastpost'] = $value['lastpost']; - } - $db_target->insert('common_member_count', array('uid' => $value['uid']), 0, false, true); - $db_target->query("UPDATE ".$db_target->table('common_member_count')." SET threads=threads+1 WHERE uid='$value[uid]'", 'UNBUFFERED'); - $db_target->query("UPDATE ".$db_target->table('forum_groupuser')." SET threads=threads+1 WHERE fid='$sid' AND uid='$value[uid]'", 'UNBUFFERED'); - $db_target->query("UPDATE ".$db_target->table('forum_forum')." SET lastpost='$lastpost[lastpost]', threads=threads+1, posts=posts+$value[replynum] WHERE fid='$sid'", 'UNBUFFERED'); - -} -$force = false; -if(!$nextid) { - if(!getmtag($tagid)) { - if(!getprofield($fieldid)) { - $nextid = 0; - } else { - $force = true; - } - } else { - $force = true; - } - $nextid = $force ? 1 : 0; -} - -if($nextid) { - if($force) $nextid = 0; - $mtag = array(); - if($tagid) { - $mtag = $db_source->fetch_first("SELECT * FROM ".$db_source->table('mtag')." WHERE tagid='$tagid'"); - } - $profield = $db_source->fetch_first("SELECT * FROM ".$db_source->table('profield')." WHERE fieldid='$fieldid'"); - showmessage("继续转换数据表 ".$table_source." : $profield[title] ".(!empty($mtag) ? "› $mtag[tagname] › tid > $nextid":""), "index.php?a=$action&source=$source&prg=$curprg&start=$nextid&gid=$gid&fid=$fid&sid=$sid&fieldid=$fieldid&tagid=$tagid"); -} - -$maxpid = $db_target->result_first("SELECT MAX(pid) FROM ".$db_target->table('forum_post')); -$maxpid = intval($maxpid) + 1; -$db_target->query("ALTER TABLE ".$db_target->table('forum_post_tableid')." AUTO_INCREMENT=$maxpid"); - -function getmtag($start) { - global $db_source, $db_target, $fieldid, $gid, $fid, $sid, $tagid; - - if(empty($fieldid)) { - getprofield($fieldid); - } - $mtag = $db_source->fetch_first("SELECT * FROM ".$db_source->table('mtag')." WHERE fieldid='$fieldid' AND tagid>'$start' ORDER BY tagid LIMIT 1"); - if(empty($mtag)) { - $tagid = $sid = 0; - return false; - } - $tagid = $mtag['tagid']; - $founder = $groupuser = array(); - $query = $db_source->query("SELECT * FROM ".$db_source->table('tagspace')." WHERE tagid='$mtag[tagid]'"); - while($space = $db_source->fetch_array($query)) { - $space['level'] = 4; - if($space['grade'] == 9) { - $space['level'] = 1; - if(empty($founder)) { - $founder = array('founderuid' => $space['uid'], 'foundername' => daddslashes($space['username'])); - } - } elseif($space['grade'] == 8) { - $space['level'] = 2; - } elseif($space['grade'] == 1) { - $space['level'] = 3; - } elseif($space['grade'] == -2) { - $space['level'] = 0; - } - $groupuser[$space['uid']] = $space; - } - if(empty($founder)) { - $member = $db_target->fetch_first("SELECT uid,username FROM ".$db_target->table('common_member')." WHERE adminid='1' ORDER BY uid LIMIT 1"); - $founder = array('founderuid' => $member['uid'], 'foundername' => daddslashes($member['username'])); - $groupuser[$member['uid']] = array('uid' => $member['uid'], 'username' => $member['username'], 'level' => 1); - } - - $levelid = $db_target->result_first("SELECT levelid FROM ".$db_target->table('forum_grouplevel')." WHERE creditshigher<='0' AND '0' $fid, - 'type' => 'sub', - 'name' => daddslashes($mtag['tagname']), - 'status' => 3, - 'allowsmilies' => 1, - 'allowbbcode' => 1, - 'allowimgcode' => 1, - 'level' => $levelid - ); - $sid = $db_target->insert('forum_forum', $forumarr, true); - $forumfieldarr = array( - 'fid' => $sid, - 'description' => daddslashes(html2bbcode($mtag['announcement'])), - 'jointype' => $mtag['joinperm'] ? ($mtag['joinperm'] == 1 ? 2 : 1) : 0, - 'gviewperm' => $mtag['viewperm'] ? 0 : 1, - 'dateline' => TIMESTAMP, - 'founderuid' => $founder['founderuid'], - 'foundername' => $founder['foundername'], - 'membernum' => $mtag['membernum'] - ); - $db_target->insert('forum_forumfield', $forumfieldarr); - $db_target->query("UPDATE ".$db_target->table('forum_forumfield')." SET groupnum=groupnum+1 WHERE fid='$fid'"); - - foreach($groupuser as $uid => $user) { - $userarr = array( - 'fid' => $sid, - 'uid' => $uid, - 'username' => daddslashes($user['username']), - 'level' => $user['level'], - 'threads' => 0, - 'replies' => 0, - 'joindateline' => TIMESTAMP, - 'lastupdate' => TIMESTAMP, - 'privacy' => '', - ); - $db_target->insert('forum_groupuser', $userarr, 0, true); - } - $query = $db_source->query("SELECT * FROM ".$db_source->table('mtaginvite')." WHERE tagid='$mtag[tagid]'"); - while($invite = $db_source->fetch_array($query)) { - $invitearr = array( - 'fid' => $sid, - 'uid' => $invite['fromuid'], - 'inviteuid' => $invite['uid'], - 'dateline' => $invite['dateline'] - ); - $db_target->insert('forum_groupinvite', $invitearr, 0, true); - } - - return true; - -} - -function getprofield($start) { - global $db_source, $db_target, $fieldid, $gid, $fid, $tagid; - - if(!$gid) { - $gid = $db_target->insert('forum_forum', array('type' => 'group', 'name' => '空间群组', 'status' => 3), 1); - $db_target->insert('forum_forumfield', array('fid' => $gid)); - } - - $profield = $db_source->fetch_first("SELECT * FROM ".$db_source->table('profield')." WHERE fieldid>'$start' ORDER BY fieldid LIMIT 1"); - if(empty($profield)) { - $fid = 0; - $tagid = 0; - return false; - } - - $fieldid = $profield['fieldid']; - - $table_forum_columns = array('fup', 'type', 'name', 'status', 'displayorder', 'styleid', 'allowsmilies', 'allowhtml', 'allowbbcode', 'allowimgcode', 'allowanonymous', 'allowpostspecial', 'alloweditrules', 'alloweditpost', 'modnewposts', 'recyclebin', 'jammer', 'forumcolumns', 'threadcaches', 'disablewatermark', 'autoclose', 'simple'); - $table_forumfield_columns = array('fid', 'attachextensions', 'threadtypes', 'postcredits', 'replycredits', 'digestcredits', 'postattachcredits', 'getattachcredits', 'viewperm', 'postperm', 'replyperm', 'getattachperm', 'postattachperm'); - - $forumfields = array( - 'allowsmilies' => 1, - 'allowbbcode' => 1, - 'allowimgcode' => 1, - 'allowpostspecial' => 127, - 'fup' => $gid, - 'type' => 'forum', - 'name' => daddslashes($profield['title']), - 'status' => 3 - ); - - $data = array(); - foreach($table_forum_columns as $field) { - if(isset($forumfields[$field])) { - $data[$field] = $forumfields[$field]; - } - } - - $forumfields['fid'] = $fid = $db_target->insert('forum_forum', $data, 1); - $data = array(); - foreach($table_forumfield_columns as $field) { - if(isset($forumfields[$field])) { - $data[$field] = $forumfields[$field]; - } - } - $db_target->insert('forum_forumfield', $data); - - return true; -} -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_invite.php b/utility/convert/source/uch2.0_x1.5/table/home_invite.php deleted file mode 100644 index f28a2709..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_invite.php +++ /dev/null @@ -1,37 +0,0 @@ -tablepre.'invite'; -$table_target = $db_target->tablepre.'common_invite'; - -$limit = $setting['limit']['invite'] ? $setting['limit']['invite'] : 1000; -$nextid = 0; - -$start = getgpc('start'); - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($rs = $db_source->fetch_array($query)) { - - $nextid = $rs['id']; - - unset($rs['id']); - - $rs = daddslashes($rs, 1); - - $data = implode_field_value($rs, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_magic.php b/utility/convert/source/uch2.0_x1.5/table/home_magic.php deleted file mode 100644 index cea2587e..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_magic.php +++ /dev/null @@ -1,186 +0,0 @@ -query('SELECT magicid, identifier FROM '.$db_target->table_name('common_magic')." WHERE identifier IN ('".implode("','", $kept_magics)."')"); -while($value=$db_source->fetch_array($query)) { - $x_magics[$value['identifier']] = intval($value['magicid']); -} - -if($op=='magic') { - - $uch_magics = array(); - $query = $db_source->query('SELECT m.*, ms.storage, ms.sellcount FROM '.$db_source->table_name('magic')." m LEFT JOIN ".$db_source->table_name('magicstore')." ms ON m.mid = ms.mid WHERE m.mid IN ('".implode("','", $kept_magics)."')"); - while($value=$db_source->fetch_array($query)) { - if(!isset($x_magics[$value['mid']])) { - $uch_magics[$value['mid']] = $value; - } - } - foreach($uch_magics as $mid=>$value) { - $magic = array( - 'available' => !empty($value['close']) ? '0' : '1', - 'name' => $value['name'], - 'description' => $value['description'], - 'identifier' => $mid, - 'price' => $value['charge'], - 'num' => $value['storage'], - 'salevolume' => $value['sellcount'], - 'supplynum' => $value['providecount'], - 'usenum' => $value['usecount'], - 'magicperm' => $value['custom'], - 'useevent' => '0' - ); - if($value['provideperoid']==604800) { - $magic['supplytype'] = '2'; - } elseif($value['provideperoid']==86400) { - $magic['supplytype'] = '1'; - } elseif($value['provideperoid'] == 3600) { - $magic['supplytype'] = '1'; - $magic['supplynum'] = $magic['supplynum'] * 24; - } else { - $magic['supplytype'] = '1'; - $magic['supplynum'] = 9999; - } - if($value['useperoid']==604800) { - $magic['useperoid'] = '2'; - } elseif($value['useperoid']==86400) { - $magic['useperoid'] = '4'; - } elseif($value['useperoid'] == 3600) { - $magic['useperoid'] = '4'; - $magic['usenum'] = $magic['usenum'] * 24; - } else { - $magic['useperoid'] = '0'; - } - - $magic = daddslashes($magic); - $keys = '`'.implode('`, `', array_keys($magic)).'`'; - $values = "'".implode("', '", $magic)."'"; - $db_target->query('INSERT INTO '.$db_target->table_name('common_magic')."($keys) VALUES ($values)"); - } - - $table_source = $db_source->tablepre.'magic'; - showmessage("继续转换数据表 ".$table_source." 用户道具", "index.php?a=$action&source=$source&prg=$curprg&op=usermagic&start=0"); - -} elseif($op == 'usermagic') { - - $start = getgpc('start'); - $start = empty($start) ? 0 : intval($start); - $limit = 1000; - $nextid = $start + $limit; - - $uch_magics = array(); - $query = $db_source->query('SELECT m.* FROM '.$db_source->table_name('magic')." m WHERE m.mid IN ('".implode("','", $kept_magics)."')"); - while($value=$db_source->fetch_array($query)) { - $uch_magics[$value['mid']] = $value; - } - - $done = true; - $inserts = $updates = array(); - $query = $db_source->query('SELECT uid, mid, `count` as num FROM '.$db_source->table_name('usermagic')." WHERE `count` > 0 ORDER BY uid LIMIT $start, $limit"); - while($value=$db_source->fetch_array($query)) { - $done = false; - if(isset($x_magics[$value['mid']])) { - $value['magicid'] = $x_magics[$value['mid']]; - $inserts[] = "('$value[uid]', '$value[magicid]', '$value[num]')"; - } else { - $credit = intval($uch_magics[$value['mid']]['charge'] * $value['num']); - $updates[$value['uid']] = empty($updates[$value['uid']]) ? $credit : $updates[$value['uid']] + $credit; - } - } - if($inserts) { - $db_target->query('REPLACE INTO '.$db_target->table_name('common_member_magic')."(uid, magicid, num) VALUES ".implode(', ', $inserts)); - } - if($updates) { - foreach($updates as $uid=>$credit) { - $credit = intval($credit); - $db_target->query('UPDATE '.$db_target->table_name('common_member')." SET credits = credits + $credit WHERE uid = '$uid'"); - } - } - - $table_source = $db_source->tablepre.'usermagic'; - if($done == false) { - showmessage("继续转换数据表 ".$table_source." 用户道具-> $nextid", "index.php?a=$action&source=$source&prg=$curprg&op=usermagic&start=$nextid"); - } else { - showmessage("继续转换数据表 ".$table_source." 道具收入记录->0", "index.php?a=$action&source=$source&prg=$curprg&op=magicinlog&start=0"); - } - -} elseif($op == 'magicinlog') { - - $start = getgpc('start'); - $start = empty($start) ? 0 : intval($start); - $limit = 2000; - $nextid = 0; - - $done = true; - $inserts = array(); - $query = $db_source->query('SELECT * FROM '.$db_source->table_name('magicinlog')." WHERE logid > $start AND mid IN ('".implode("','", $kept_magics)."') LIMIT $limit"); - while($value=$db_source->fetch_array($query)) { - $done = false; - $nextid = intval($value['logid']); - $value['magicid'] = $x_magics[$value['mid']]; - if($value['action']=='1') { - $inserts[] = "('$value[uid]', '$value[magicid]', '1', '$value[dateline]', '$value[count]', '$value[credit]', '0', '', '0')"; - } elseif($value['action']=='2') { - $inserts[] = "('$value[uid]', '$value[magicid]', '2', '$value[dateline]', '$value[count]', '$value[credit]', '$value[uid]', 'uid', '$value[uid]')"; - } - } - if($inserts) { - $db_target->query('INSERT INTO '.$db_target->table_name('common_magiclog')."(uid, magicid, action, dateline, amount, price, targetid, idtype, targetuid) VALUES ".implode(', ', $inserts)); - } - - $table_source = $db_source->tablepre.'magicinlog'; - if($done == false) { - showmessage("继续转换数据表 ".$table_source." 道具收入记录-> $nextid", "index.php?a=$action&source=$source&prg=$curprg&op=magicinlog&start=$nextid"); - } else { - showmessage("继续转换数据表 ".$table_source." 道具使用记录->0", "index.php?a=$action&source=$source&prg=$curprg&op=magicuselog&start=0"); - } - -} elseif($op == 'magicuselog') { - - $start = getgpc('start'); - $start = empty($start) ? 0 : intval($start); - $limit = 2000; - $nextid = 0; - - $done = true; - $inserts = array(); - $query = $db_source->query('SELECT * FROM '.$db_source->table_name('magicuselog')." WHERE logid > $start AND mid IN ('".implode("','", $kept_magics)."') LIMIT $limit"); - while($value=$db_source->fetch_array($query)) { - $done = false; - $nextid = intval($value['logid']); - $value['magicid'] = $x_magics[$value['mid']]; - $inserts[] = "('$value[uid]', '$value[magicid]', '2', '$value[dateline]', '$value[count]', '$value[credit]', '$value[id]', '$value[idtype]', '0')"; - } - if($inserts) { - $db_target->query('INSERT INTO '.$db_target->table_name('common_magiclog')."(uid, magicid, action, dateline, amount, price, targetid, idtype, targetuid) VALUES ".implode(', ', $inserts)); - } - - $table_source = $db_source->tablepre.'magicuselog'; - if($done == false) { - showmessage("继续转换数据表 ".$table_source." 道具使用记录-> $nextid", "index.php?a=$action&source=$source&prg=$curprg&op=magicuselog&start=$nextid"); - } -} - - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_mailcron.php b/utility/convert/source/uch2.0_x1.5/table/home_mailcron.php deleted file mode 100644 index bdcc79c5..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_mailcron.php +++ /dev/null @@ -1,58 +0,0 @@ -tablepre.'mailcron'; -$table_target = $db_target->tablepre.'common_mailcron'; - -$table_source_rel = $db_source->tablepre.'mailqueue'; -$table_target_rel = $db_target->tablepre.'common_mailqueue'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); - $db_target->query("TRUNCATE $table_target_rel"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE cid>'$start' ORDER BY cid LIMIT $limit"); -$mcids = array(); -while ($rs = $db_source->fetch_array($query)) { - - $mcids[] = $rs['cid']; - - $nextid = $rs['cid']; - - $rs = daddslashes($rs, 1); - - $data = implode_field_value($rs, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if (!empty($mcids)) { - $query = $db_source->query("SELECT * FROM $table_source_rel WHERE cid IN (".dimplode($mcids).")"); - while ($rs = $db_source->fetch_array($query)) { - - $rs = daddslashes($rs, 1); - - $data = implode_field_value($rs, ',', db_table_fields($db_target, $table_target_rel)); - - $db_target->query("INSERT INTO $table_target_rel SET $data"); - } -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." mcid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_notification.php b/utility/convert/source/uch2.0_x1.5/table/home_notification.php deleted file mode 100644 index 607d49b9..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_notification.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'notification'; -$table_target = $db_target->tablepre.'home_notification'; - -$limit = $setting['limit']['notification'] ? $setting['limit']['notification'] : 1000; - -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($note = $db_source->fetch_array($query)) { - - $nextid = $note['id']; - - $note = daddslashes($note, 1); - - $data = implode_field_value($note, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("REPLACE INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_pic.php b/utility/convert/source/uch2.0_x1.5/table/home_pic.php deleted file mode 100644 index 1c1e2898..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_pic.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'pic'; -$table_target = $db_target->tablepre.'home_pic'; - -$limit = $setting['limit']['pic'] ? $setting['limit']['pic'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT picid,albumid,uid,username,dateline,postip,filename,title,type,size,filepath,thumb,remote,hot,click_6,click_7,click_8,click_9,click_10,magicframe". - " FROM $table_source WHERE picid>'$start' ORDER BY picid LIMIT $limit"); -while ($pic = $db_source->fetch_array($query)) { - - $nextid = $pic['picid']; - - $pic = daddslashes($pic, 1); - - $db_target->query("INSERT INTO $table_target SET `picid`='".$pic[picid]."',`albumid`='".$pic[albumid]."',`uid`='".$pic[uid]."',`username`='".$pic[username]."',`dateline`='".$pic[dateline]. - "',`postip`='".$pic[pistip]."',`filename`='".$pic[filename]."',`title`='".$pic[title]."',`type`='".$pic[type]."',`size`='".$pic[size]."',`filepath`='".$pic[filepath]."', `thumb`='".$pic[thumb]. - "',`remote`='".$pic[remote]."',`hot`='".$pic[hot]."',`click1`='".$pic[click_9]."',`click2`='".$pic[click_8]."',`click3`='".$pic[click_7]."',`click4`='".$pic[click_6]."',`click5`='".$pic[click_10]."' - "); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." picid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_picfield.php b/utility/convert/source/uch2.0_x1.5/table/home_picfield.php deleted file mode 100644 index 3a6604fa..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_picfield.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'picfield'; -$table_target = $db_target->tablepre.'home_picfield'; - -$limit = $setting['limit']['pic'] ? $setting['limit']['pic'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE picid>'$start' ORDER BY picid LIMIT $limit"); -while ($pic = $db_source->fetch_array($query)) { - - $nextid = $pic['picid']; - - $pic = daddslashes($pic, 1); - - $data = implode_field_value($pic, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." picid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_poke.php b/utility/convert/source/uch2.0_x1.5/table/home_poke.php deleted file mode 100644 index b94422f2..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_poke.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'poke'; -$table_target = $db_target->tablepre.'home_poke'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = $setting['limit']['poke'] ? $setting['limit']['poke'] : 10000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("REPLACE INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_poll.php b/utility/convert/source/uch2.0_x1.5/table/home_poll.php deleted file mode 100644 index 7091e18a..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_poll.php +++ /dev/null @@ -1,205 +0,0 @@ -tablepre.'poll'; - -include_once DISCUZ_ROOT.'./include/editor.func.php'; -$limit = $setting['limit']['poll'] ? $setting['limit']['poll'] : 100; -$nextid = 0; - -$start = intval(getgpc('start')); -$home = load_process('home'); -$fid = intval(getgpc('fid')) ? intval(getgpc('fid')) : intval($home['forum']['poll']) ? intval($home['forum']['poll']) : 0; -if(!$fid) { - $forumname = 'UCHome投票数据'; - - $value = $db_target->fetch_first('SELECT fid FROM '.$db_target->table_name('forum_forum')." WHERE status IN('1','2') AND type='forum' AND `name`='$forumname'"); - if(!empty($value)) { - $fid = intval($value['fid']); - } else { - $value = $db_target->fetch_first('SELECT fid FROM '.$db_target->table_name('forum_forum')." WHERE status IN('1','2') AND type='group' AND `name`='$forumname'"); - if($value) { - $fup = intval($value['fid']); - } else { - $board = array( - 'name' => daddslashes($forumname), - 'type' => 'group', - 'status' => '1', - ); - $fup = $db_target->insert('forum_forum', $board, true); - } - $forum = array( - 'name' => daddslashes($forumname), - 'fup' => $fup, - 'type' => 'forum', - 'allowsmilies' => 1, - 'allowbbcode' => 1, - 'allowimgcode' => 1, - 'status' => '1', - ); - $fid = $db_target->insert('forum_forum', $forum, true); - $forumfield = array( - 'fid' => $fid, - 'description' => '从 UCenter Home 转移过来的投票内容' - ); - $db_target->insert('forum_forumfield', $forumfield); - } -} -$pids = $polls = $pollpreview = $optionuser = array(); -$pollquery = $db_source->query("SELECT pf.*, p.* FROM {$db_source->tablepre}poll p LEFT JOIN {$db_source->tablepre}pollfield pf ON pf.pid=p.pid WHERE p.pid>'$start' ORDER BY p.pid LIMIT $limit"); -while($value = $db_source->fetch_array($pollquery)) { - $optionuser = array(); - $postnum = 1; - $nextid = $value['pid']; - $value['summary'] = !empty($value['summary']) ? html2bbcode($value['summary']) : ''; - $value['message'] = html2bbcode($value['message']); - $pollpreview = $value['option'] = unserialize($value['option']); - $value = daddslashes($value); - $threadarr = array( - 'fid' => $fid, - 'author' => $value['username'], - 'authorid' => $value['uid'], - 'subject' => $value['subject'], - 'dateline' => $value['dateline'], - 'lastpost' => $value['lastvote'], - 'lastposter' => $value['username'], - 'views' => $value['replynum'], - 'replies' => $value['replynum'], - 'special' => 1 - ); - $tid = $db_target->insert('forum_thread', $threadarr, true); - $postarr = array( - 'fid' => $fid, - 'tid' => $tid, - 'first' => '1', - 'author' => $value['username'], - 'authorid' => $value['uid'], - 'subject' => $value['subject'], - 'dateline' => $value['dateline'], - 'message' => $value['message'] - ); - $db_target->insert('forum_post', $postarr); - - if(!empty($value['summary'])) { - $postarr = array( - 'fid' => $fid, - 'tid' => $tid, - 'first' => '1', - 'author' => $value['username'], - 'authorid' => $value['uid'], - 'subject' => $value['subject'], - 'dateline' => ($value['dateline']+10), - 'message' => $value['summary'] - ); - $db_target->insert('forum_post', $postarr); - $postnum++; - } - $pollarr = array( - 'tid' => $tid, - 'overt' => 0, - 'multiple' => $value['maxchoice'] > 1 ? 1 : 0, - 'visible' => 0, - 'maxchoices' => $value['maxchoice'], - 'expiration' => $value['expiration'], - 'pollpreview' => daddslashes(implode("\t", $pollpreview)), - 'voters' => $value['voternum'] - ); - $db_target->insert('forum_poll', $pollarr); - - $query = $db_source->query("SELECT * FROM {$db_source->tablepre}polluser WHERE pid='$value[pid]'"); - while($puser = $db_source->fetch_array($query)) { - $puser['option'] = str_replace('"', '', $puser['option']); - $puser['option'] = explode('、', $puser['option']); - $optionuser[$puser['uid']] = $puser; - } - $changeoid = array(); - $query = $db_source->query("SELECT * FROM {$db_source->tablepre}polloption WHERE pid='$value[pid]'"); - while($pollopt = $db_source->fetch_array($query)) { - - $pollopt = daddslashes($pollopt, 1); - - $votes = 0; - $uids = ''; - foreach($optionuser as $uid => $polluser) { - foreach($polluser['option'] as $id => $option) { - if($option == str_replace('"', '', $pollopt['option'])) { - $votes++; - $uids .= $uid."\t"; - $optionuser[$uid]['oid'][$pollopt['oid']] = $pollopt['oid']; - } - } - } - $optionarr = array( - 'tid' => $tid, - 'votes' => $votes, - 'polloption' => $pollopt['option'], - 'voterids' => $uids - ); - $changeoid[$pollopt['oid']] = $db_target->insert('forum_polloption', $optionarr, true); - $option[$pollopt['pid']] = $pollopt; - } - if($optionuser) { - foreach($optionuser as $uid => $polluser) { - $oparr = array(); - if($polluser['oid']) { - foreach($polluser['oid'] as $key => $id) { - $oparr[$key] = $changeoid[$key]; - } - } - $userdate = array( - 'tid' => $tid, - 'uid' => intval($uid), - 'username' => daddslashes($polluser['username']), - 'options' => implode("\t", $oparr), - 'dateline' => $polluser['dateline'] - ); - $db_target->insert('forum_pollvoter', $userdate); - } - } - - $lastpost = array(); - $query = $db_source->query("SELECT * FROM ".$db_source->table('comment')." WHERE id='$value[pid]' AND idtype='pid' ORDER BY dateline"); - while($comment = $db_source->fetch_array($query)) { - $comment['message'] = html2bbcode($comment['message']); - $comment = daddslashes($comment); - $postarr = array( - 'fid' => $fid, - 'tid' => $tid, - 'first' => '0', - 'author' => $comment['author'], - 'authorid' => $comment['authorid'], - 'useip' => $comment['ip'], - 'dateline' => $comment['dateline'], - 'message' => $comment['message'] - ); - $lastpost = array( - 'lastpost' => $comment['dateline'], - 'lastposter' => $comment['author'], - ); - - $db_target->insert('forum_post', $postarr); - $db_target->insert('common_member_count', array('uid' => $comment['authorid']), 0, false, true); - $db_target->query("UPDATE ".$db_target->table('common_member_count')." SET posts=posts+1 WHERE uid='$comment[authorid]'", 'UNBUFFERED'); - } - if($lastpost) { - $db_target->update('forum_thread', $lastpost, array('tid' => $tid)); - } - $db_target->insert('common_member_count', array('uid' => $comment['authorid']), 0, false, true); - $db_target->query("UPDATE ".$db_target->table('common_member_count')." SET threads=threads+1, posts=posts+$postnum WHERE uid='$value[uid]'", 'UNBUFFERED'); - $db_target->query("UPDATE ".$db_target->table('forum_forum')." SET lastpost='$lastpost[lastpost]', threads=threads+1, posts=posts+$value[replynum], todayposts=todayposts+$value[replynum] WHERE fid='$fid'", 'UNBUFFERED'); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." pid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid&fid=$fid"); -} - -$maxpid = $db_target->result_first("SELECT MAX(pid) FROM ".$db_target->table('forum_post')); -$maxpid = intval($maxpid) + 1; -$db_target->query("ALTER TABLE ".$db_target->table('forum_post_tableid')." AUTO_INCREMENT=$maxpid"); -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_share.php b/utility/convert/source/uch2.0_x1.5/table/home_share.php deleted file mode 100644 index 0e0a3d4d..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_share.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'share'; -$table_target = $db_target->tablepre.'home_share'; - -$limit = $setting['limit']['share'] ? $setting['limit']['share'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT sid, type, uid, username, dateline, title_template, body_template, body_data, body_general, image, - image_link, hot, hotuser FROM $table_source WHERE sid>'$start' ORDER BY sid LIMIT $limit"); -while ($share = $db_source->fetch_array($query)) { - - $nextid = intval($share['sid']); - - $share = daddslashes($share, 1); - - $data = implode_field_value($share, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." sid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_show.php b/utility/convert/source/uch2.0_x1.5/table/home_show.php deleted file mode 100644 index a0a16bdd..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_show.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'show'; -$table_target = $db_target->tablepre.'home_show'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE uid>'$start' ORDER BY uid LIMIT $limit"); -while ($show = $db_source->fetch_array($query)) { - - $nextid = intval($show['showid']); - - $show = daddslashes($show, 1); - - $data = implode_field_value($show, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_space.php b/utility/convert/source/uch2.0_x1.5/table/home_space.php deleted file mode 100644 index dbc4e5aa..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_space.php +++ /dev/null @@ -1,223 +0,0 @@ -tablepre; -$newpre = $db_target->tablepre; - -$limit = $setting['limit']['space'] ? $setting['limit']['space'] : 500; -$nextid = 0; - -$start = getgpc('start'); -$home = load_process('home'); - -$defaultgid = $db_target->result_first("SELECT groupid FROM ".$db_target->table('common_usergroup')." WHERE type='member' AND 0>=creditshigher AND 0query("SELECT s.*, sf.* - FROM {$oldpre}space s - LEFT JOIN {$oldpre}spacefield sf ON sf.uid=s.uid - WHERE s.uid>'$start' ORDER BY s.uid - LIMIT $limit"); -while ($space = $db_source->fetch_array($query)) { - - $username = daddslashes($space['username']); - foreach (array('member','member_count','member_field_forum','member_field_home','member_profile','member_status') as $value) { - if($value == 'member') { - $db_target->query("INSERT INTO {$newpre}common_{$value} (uid, username) VALUES ('$space[uid]', '$username')", 'SILENT'); - } else { - $db_target->query("INSERT INTO {$newpre}common_{$value} (uid) VALUES ('$space[uid]')", 'SILENT'); - } - } - - $nextid = $space['uid']; - - if(!empty($space['privacy'])) { - $space['privacy'] = unserialize($space['privacy']); - $space['privacy']['feed'] = array(); - $space['privacy'] = serialize($space['privacy']); - } else { - $space['privacy'] = ''; - } - $space = daddslashes($space, 1); - - $newquery = $db_target->query("SELECT * FROM {$newpre}common_member WHERE uid='$space[uid]'"); - if($newspace = $db_target->fetch_array($newquery)) { - $newspace = daddslashes($newspace, 1); - } else { - $newspace = array(); - } - - $setarr = array(); - if(empty($newspace['email'])) $setarr['email'] = $space['email']; - if(empty($newspace['username'])) $setarr['username'] = $space['username']; - if(empty($newspace['password'])) $setarr['password'] = md5(microtime().mt_rand(0, 100000)); - if(empty($newspace['emailstatus'])) $setarr['emailstatus'] = $space['emailcheck']; - if(empty($newspace['avatarstatus'])) $setarr['avatarstatus'] = $space['avatar']; - if(empty($newspace['videophotostatus'])) $setarr['videophotostatus'] = $space['videostatus']; - if(empty($newspace['regdate'])) $setarr['regdate'] = $space['dateline']; - - $setarr['newprompt'] = $space['notenum'] + $space['myinvitenum'] + $space['pokenum'] + $space['addfriendnum']; - $set['newpm'] = $space['newpm']; - - if(empty($newspace['groupid'])) { - if(empty($home['usergroup'][$space['groupid']])) { - $setarr['groupid'] = $defaultgid; - } else { - $setarr['groupid'] = intval($home['usergroup'][$space['groupid']]); - } - - } - - if($setarr) { - $updatesql = getupdatesql($setarr); - $db_target->query("UPDATE {$newpre}common_member SET $updatesql WHERE uid='$space[uid]'", "SILENT"); - } - - $setarr = array(); - $newquery = $db_target->query("SELECT * FROM {$newpre}common_member_count WHERE uid='$space[uid]'"); - if($newspace = $db_target->fetch_array($newquery)) { - $newspace = daddslashes($newspace, 1); - } else { - $newspace = array(); - } - - if(empty($home['extcredits']['credit']) || empty($home['extcredits']['experience'])) { - showmessage("发生错误,请配置积分对应关系信息"); - } - - $setarr[$home['extcredits']['credit']] = $space['credit'] + intval($newspace[$home['extcredits']['credit']]); - $setarr[$home['extcredits']['experience']] = $space['experience'] + intval($newspace[$home['extcredits']['experience']]); - - $setarr['friends'] = $space['friendnum']; - $setarr['doings'] = $space['doingnum']; - $setarr['blogs'] = $space['blognum']; - $setarr['albums'] = $space['albumnum']; - $setarr['sharings'] = $space['sharenum']; - $setarr['attachsize'] = $space['attachsize']; - $setarr['views'] = $space['viewnum']; - - if($setarr) { - $updatesql = getupdatesql($setarr); - $db_target->query("UPDATE {$newpre}common_member_count SET $updatesql WHERE uid='$space[uid]'"); - } - - $setarr = array(); - $setarr['videophoto'] = $space['videopic']; - $setarr['domain'] = $space['domain']; - $setarr['addsize'] = $space['addsize']; - $setarr['addfriend'] = $space['addfriend']; - $setarr['recentnote'] = $space['note']; - $setarr['spacenote'] = $space['spacenote']; - $setarr['privacy'] = $space['privacy']; - $setarr['feedfriend'] = $space['feedfriend']; - $setarr['acceptemail'] = $space['sendmail']; - - if($setarr) { - $updatesql = getupdatesql($setarr); - $db_target->query("UPDATE {$newpre}common_member_field_home SET $updatesql WHERE uid='$space[uid]'"); - } - - $newquery = $db_target->query("SELECT * FROM {$newpre}common_member_profile WHERE uid='$space[uid]'"); - if($newspace = $db_target->fetch_array($newquery)) { - $newspace = daddslashes($newspace, 1); - } else { - $newspace = array(); - } - - $space['none'] = ''; - - $setarr = array(); - if(empty($newspace['gender'])) $setarr['gender'] = $space['sex']; - if(empty($newspace['birthyear'])) $setarr['birthyear'] = $space['birthyear']; - if(empty($newspace['birthmonth'])) $setarr['birthmonth'] = $space['birthmonth']; - if(empty($newspace['birthday'])) $setarr['birthday'] = $space['birthday']; - if(empty($newspace['constellation'])) $setarr['constellation'] = $space['none']; - if(empty($newspace['zodiac'])) $setarr['zodiac'] = $space['none']; - if(empty($newspace['telephone'])) $setarr['telephone'] = $space['none']; - if(empty($newspace['mobile'])) $setarr['mobile'] = $space['none']; - if(empty($newspace['idcard'])) $setarr['idcard'] = $space['none']; - if(empty($newspace['address'])) $setarr['address'] = $space['none']; - if(empty($newspace['zipcode'])) $setarr['zipcode'] = $space['none']; - if(empty($newspace['nationality'])) $setarr['nationality'] = $space['none']; - if(empty($newspace['birthprovince'])) $setarr['birthprovince'] = $space['birthprovince']; - if(empty($newspace['birthcity'])) $setarr['birthcity'] = $space['birthcity']; - if(empty($newspace['resideprovince'])) $setarr['resideprovince'] = $space['resideprovince']; - if(empty($newspace['residecity'])) $setarr['residecity'] = $space['residecity']; - if(empty($newspace['residedist'])) $setarr['residedist'] = $space['none']; - if(empty($newspace['residecommunity'])) $setarr['residecommunity'] = $space['none']; - if(empty($newspace['residesuite'])) $setarr['residesuite'] = $space['none']; - if(empty($newspace['graduateschool'])) $setarr['graduateschool'] = $space['none']; - if(empty($newspace['education'])) $setarr['education'] = $space['none']; - if(empty($newspace['occupation'])) $setarr['occupation'] = $space['none']; - if(empty($newspace['revenue'])) $setarr['revenue'] = $space['none']; - if(empty($newspace['affectivestatus'])) $setarr['affectivestatus'] = $space['none']; - if(empty($newspace['lookingfor'])) $setarr['lookingfor'] = $space['none']; - if(empty($newspace['bloodtype'])) $setarr['bloodtype'] = $space['blood']; - if(empty($newspace['height'])) $setarr['height'] = $space['none']; - if(empty($newspace['weight'])) $setarr['weight'] = $space['none']; - if(empty($newspace['alipay'])) $setarr['alipay'] = $space['none']; - if(empty($newspace['icq'])) $setarr['icq'] = $space['none']; - if(empty($newspace['qq'])) $setarr['qq'] = $space['qq']; - if(empty($newspace['yahoo'])) $setarr['yahoo'] = $space['none']; - if(empty($newspace['msn'])) $setarr['msn'] = $space['msn']; - if(empty($newspace['taobao'])) $setarr['taobao'] = $space['none']; - if(empty($newspace['site'])) $setarr['site'] = $space['none']; - if(empty($newspace['bio'])) $setarr['bio'] = $space['none']; - if(empty($newspace['interest'])) $setarr['interest'] = $space['none']; - if(empty($newspace['idcardtype'])) $setarr['idcardtype'] = $space['none']; - if(empty($newspace['company'])) $setarr['company'] = $space['none']; - if(empty($newspace['position'])) $setarr['position'] = $space['none']; - if(empty($newspace['realname'])) $setarr['realname'] = $space['name']; - - if($setarr) { - $updatesql = getupdatesql($setarr); - $db_target->query("UPDATE {$newpre}common_member_profile SET $updatesql WHERE uid='$space[uid]'"); - } - - - $newquery = $db_target->query("SELECT * FROM {$newpre}common_member_status WHERE uid='$space[uid]'"); - if($newspace = $db_target->fetch_array($newquery)) { - $newspace = daddslashes($newspace, 1); - } else { - $newspace = array(); - } - - $setarr = array(); - if(empty($newspace['regip'])) $setarr['regip'] = $space['regip']; - if(empty($newspace['lastip'])) $setarr['lastip'] = $space['regip']; - if(empty($newspace['lastvisit'])) $setarr['lastvisit'] = $space['lastlogin']; - if(empty($newspace['lastactivity'])) $setarr['lastactivity'] = $space['updatetime']; - if(empty($newspace['lastpost'])) $setarr['lastpost'] = $space['lastpost']; - if(empty($newspace['lastsendmail'])) $setarr['lastsendmail'] = $space['lastsend']; - if(empty($newspace['notifications'])) $setarr['notifications'] = $space['notenum']; - if(empty($newspace['myinvitations'])) $setarr['myinvitations'] = $space['myinvitenum']; - if(empty($newspace['pokes'])) $setarr['pokes'] = $space['pokenum']; - if(empty($newspace['pendingfriends'])) $setarr['pendingfriends'] = $space['addfriendnum']; - - if($setarr) { - $updatesql = getupdatesql($setarr); - $db_target->query("UPDATE {$newpre}common_member_status SET $updatesql WHERE uid='$space[uid]'"); - } - - -} - -if($nextid) { - showmessage("继续转换数据表 {$oldpre}space uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -function getupdatesql($setarr) { - $updatearr = array(); - foreach ($setarr as $key => $value) { - $updatearr[] = "`$key`='$value'"; - } - return implode(',', $updatearr); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_userapp.php b/utility/convert/source/uch2.0_x1.5/table/home_userapp.php deleted file mode 100644 index ee6d358a..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_userapp.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'userapp'; -$table_target = $db_target->tablepre.'home_userapp'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = $setting['limit']['userapp'] ? $setting['limit']['userapp'] : 10000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_userappfield.php b/utility/convert/source/uch2.0_x1.5/table/home_userappfield.php deleted file mode 100644 index ca3acd65..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_userappfield.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'userappfield'; -$table_target = $db_target->tablepre.'home_userappfield'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = $setting['limit']['userapp'] ? $setting['limit']['userapp'] : 1000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x1.5/table/home_visitor.php b/utility/convert/source/uch2.0_x1.5/table/home_visitor.php deleted file mode 100644 index 5c35a03b..00000000 --- a/utility/convert/source/uch2.0_x1.5/table/home_visitor.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'visitor'; -$table_target = $db_target->tablepre.'home_visitor'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = $setting['limit']['visitor'] ? $setting['limit']['visitor'] : 2000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("REPLACE INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/config.php b/utility/convert/source/uch2.0_x2.0/config.php deleted file mode 100644 index d9855d17..00000000 --- a/utility/convert/source/uch2.0_x2.0/config.php +++ /dev/null @@ -1,144 +0,0 @@ - getgpc('targetgroup'), - 'extcredits' => getgpc('extcredits'), - 'forum' => getgpc('forum'), - ); - save_process('home', $home); -} else { - $sourcegroup = array(); - $targetoption = ''; - $query = $db_source->query("SELECT gid, grouptitle FROM ".$db_source->table('usergroup')." WHERE system!='0'"); - while($group = $db_source->fetch_array($query)) { - $sourcegroup[$group['gid']] = $group['grouptitle']; - } - - $query = $db_target->query("SELECT groupid, grouptitle FROM ".$db_target->table('common_usergroup')." WHERE type!='member'"); - while($group = $db_target->fetch_array($query)) { - $targetoption .= "\n"; - } - - $extcredits = ''; - $sourcecredits = array('credit', 'experience'); - $tsetting = $db_target->fetch_first("SELECT * FROM ".$db_target->table('common_setting')." WHERE skey='extcredits'"); - - $tsetting = @unserialize($tsetting['svalue']); - if(!is_array($tsetting)) { - showmessage("message_not_enabled_extcredit"); - } else { - if(count($tsetting) < 8) { - for($i = count($tsetting)+1; $i < 9; $i++) { - $tsetting[$i] = $i; - } - } - foreach($tsetting as $id => $value) { - $extcredits .= "\n"; - } - } - - $forumarr = array(); - $forumoption = ''; - $query = $db_target->query("SELECT fid, fup, type, name FROM ".$db_target->table('forum_forum')." WHERE status IN('1','2') "); - while($forum = $db_target->fetch_array($query)) { - if(!$forum['fup']) { - $forumarr[$forum['fid']] = $forum; - } elseif(isset($forumarr[$forum['fup']])) { - $forumarr[$forum['fup']]['child'][$forum['fid']] = $forum; - } - } - foreach($forumarr as $gid => $forum) { - $forumoption .= "\n"; - if(!empty($forum['child']) && is_array($forum['child'])) { - foreach($forum['child'] as $fid => $value) { - $forumoption .= "\n"; - } - } - $forumoption .= "\n"; - } - - show_form_header(); - show_table_header(); - show_table_row(array(array('colspan="3"', lang('config_usergroup'))), 'header title'); - show_table_row( - array( - lang('config_from_usergroup'), - array('class="bg1" width="10%" align="center"', '->'), - lang('config_target_usergroup') - ) - ); - foreach($sourcegroup as $key => $value) { - $addmsg = $error && $key == 'dbhost' ? lang($error) : ''; - $key = intval($key); - show_table_row( - array( - array('class="bg2" width="45%"', $value), - array('class="bg1" width="10%" align="center"', '->'), - array('class="bg2" width="45%"', '') - ),'bg1' - ); - } - show_table_footer(); - echo '
    '; - - show_table_header(); - show_table_row(array(array('colspan="3"', lang('config_extcredits'))), 'header title'); - show_table_row( - array( - lang('config_from_credit'), - array('class="bg1" width="10%" align="center"', '->'), - lang('config_target_credit') - ) - ); - show_table_row( - array( - array('class="bg2" width="45%"', lang('config_credit')), - array('class="bg1" width="10%" align="center"', '->'), - array('class="bg2" width="45%"', '') - ),'bg1' - ); - show_table_row( - array( - array('class="bg2" width="45%"', lang('config_experience')), - array('class="bg1" width="10%" align="center"', '->'), - array('class="bg2" width="45%"', '') - ),'bg1' - ); - show_table_footer(); - echo '
    '; - - show_table_header(); - show_table_row(array(array('colspan="3"', lang('config_convert_forum'))), 'header title'); - show_table_row( - array( - lang('config_from_data'), - array('class="bg1" width="10%" align="center"', '->'), - lang('config_target_forum') - ) - ); - show_table_row( - array( - array('class="bg2" width="45%"', lang('config_poll')), - array('class="bg1" width="10%" align="center"', '->'), - array('class="bg2" width="45%"', '') - ),'bg1' - ); - show_table_row( - array( - array('class="bg2" width="45%"', lang('config_event')), - array('class="bg1" width="10%" align="center"', '->'), - array('class="bg2" width="45%"', '') - ),'bg1' - ); - show_table_footer(); - show_form_footer('submit', 'config_convert'); - exit(); -} -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/moderate.php b/utility/convert/source/uch2.0_x2.0/moderate.php deleted file mode 100644 index 00f387af..00000000 --- a/utility/convert/source/uch2.0_x2.0/moderate.php +++ /dev/null @@ -1,52 +0,0 @@ -tablepre.'common_moderate'; -$table_target_home_blog = $db_target->tablepre.'home_blog'; -$table_target_home_doing = $db_target->tablepre.'home_doing'; -$table_target_home_pic = $db_target->tablepre.'home_pic'; -$table_target_home_share = $db_target->tablepre.'home_share'; -$table_target_home_comment = $db_target->tablepre.'home_comment'; - -$query = $db_target->query("SELECT blogid FROM $table_target_home_blog WHERE status='1'"); -while($row = $db_target->fetch_array($query)) { - updatemoderate('blogid', $row['blogid']); -} - -$query = $db_target->query("SELECT doid FROM $table_target_home_doing WHERE status='1'"); -while($row = $db_target->fetch_array($query)) { - updatemoderate('doid', $row['doid']); -} - -$query = $db_target->query("SELECT picid FROM $table_target_home_pic WHERE status='1'"); -while($row = $db_target->fetch_array($query)) { - updatemoderate('picid', $row['picid']); -} - -$query = $db_target->query("SELECT sid FROM $table_target_home_share WHERE status='1'"); -while($row = $db_target->fetch_array($query)) { - updatemoderate('sid', $row['sid']); -} - -$query = $db_target->query("SELECT idtype, cid FROM $table_target_home_comment WHERE status='1'"); -while($row = $db_target->fetch_array($query)) { - updatemoderate($row['idtype'].'_cid', $row['cid']); -} - -function updatemoderate($idtype, $ids) { - global $table_target, $db_target; - $ids = is_array($ids) ? $ids : array($ids); - if(!$ids) { - return; - } - $time = time(); - foreach($ids as $id) { - $db_target->query("INSERT INTO $table_target (id,idtype,status,dateline) VALUES ('$id','$idtype','0','$time')"); - } -} -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/readme.txt b/utility/convert/source/uch2.0_x2.0/readme.txt deleted file mode 100644 index ff2812c0..00000000 --- a/utility/convert/source/uch2.0_x2.0/readme.txt +++ /dev/null @@ -1,69 +0,0 @@ -==================================== -UCenter Home 2.0 升级至 Discuz! X2.0 说明 -==================================== - -特别警示!!! -由于UCHome与Discuz!部分功能进行了整合性融合,因此UCHome的部分功能,在整合到Discuz! X后将会部分丢失, -其中包括: -由于新增专题功能,原UCH热闹功能将不再支持; -UCH投票、UCH活动将与论坛投票贴、活动贴的形式融合为一体,活动相册、活动群组功能将不再支持; -UCH群组将以新的群组功能存在,原群组相册、群组活动功能将不再支持; -个人资料进行了新的调整,UCH原个人资料中的学校、工作信息将需要重新填写; -UCH的全站实名功能不再支持; - -请根据自己建站需求,权衡决定是否将UCHome转换升级到Discuz! X。 - -I 升级前的准备 ---------------- -1. 建立程序备份目录,例如 old -2. 将原UCHome所有程序移动到 old 目录中 -3. 上传 Discuz! X 产品的upload目录中的程序到UCHome目录 -4. 执行安装程序 /install - 安装的时候请指定原UCHome挂接的UCenter Server地址(如果 UCenter版本低于1.6.0,需先升级 UCenter ) - -II 升级UCHome数据 ---------------- -1. 安装完毕,测试Discuz! X可以正常运行以后,上传convert 程序到Discuz! X根目录 -2. 执行 /convert -3. 选择相应的程序版本,开始转换 -4. 转换过程中不可擅自中断,直到程序自动执行完毕。 -5. 转换过程可能需要较长时间,且消耗较多服务器资源,您应当选择服务器空闲的时候执行 - -III 升级完毕, 还要做的几件事 --------------------------- -1. 编辑新Discuz! X的 config/config_global.php 文件,设定好创始人 -2. 直接访问新Discuz! X的 admin.php -3. 使用创始人帐号登录,进入后台更新缓存 -4. 新系统增加了很多设置项目,包括用户权限、组权限、论坛板块等等,您需要仔细的重新设置一次。 -5. 转移旧附件目录到新产品根目录(在转移之前,您的动态、日志、评论、留言等内容中的图片无法正常显示) - a)进入 old/attachment 目录 - b)将所有文件移动到 新Discuz! X产品 /data/attachment/album/ 目录中 - c)同时,修改一下 Discuz! X的代码 - 让日志内容中的已经插入的图片地址,通过字符串替换,改为最新的图片地址,解决日志内容图片无法显示的问题。 - 方法如下: - 打开Discuz! X的 ./source/include/space/space_blog.php 程序 - 找到: - $blog['message'] = blog_bbcode($blog['message']); - 在下面增加如下代码: - $home_url = 'http://your_home_site_url/'; // 请将此链接地址改为您的 UCHome 站点地址!!! - $bbs_url = 'http://your_bbs_site_url/'; // 请将此链接地址改为您的 BBS 站点地址!!! - $findarr = array( - 'tablepre.'ad'; -$table_target = $db_target->tablepre.'common_advertisement'; - -$limit = 100; -$nextid = 0; - -$start = getgpc('start'); - -$query = $db_source->query("SELECT * FROM $table_source WHERE adid>'$start' AND pagetype IN('header','footer','rightside','couplet','feedbox') ORDER BY adid LIMIT $limit"); -while ($ad = $db_source->fetch_array($query)) { - $nextid = $ad['adid']; - - switch($ad['pagetype']) { - case 'header': - $ad['pagetype'] = 'headerbanner';break; - case 'footer': - $ad['pagetype'] = 'footerbanner';break; - case 'rightside': - $ad['pagetype'] = 'blog';break; - case 'couplet': - $ad['pagetype'] = 'couplebanner';break; - case 'feedbox': - $ad['pagetype'] = 'feed';break; - } - - $advnew = unserialize($ad['adcode']); - foreach($advnew as $k => $v) { - if($k == 'flashheight') { - $advarr = array('height' => $advnew['flashheight'], 'width' => $advnew['flashwidth'], 'url' => $advnew['flashurl'], 'style' => 'flash'); - } elseif($k == 'imageheight') { - $advarr = array('height' => $advnew['imageheight'], 'width' => $advnew['imagewidth'], 'url' => $advnew['imagesrc'], - 'link' => $advnew['imageurl'], 'alt' => $advnew['imagealt'], 'style' => 'image'); - } elseif($k == 'textcontent') { - $advarr = array('title' => $advnew['textcontent'], 'link' => $advnew['texturl'], 'size' => $advnew['textsize'], 'style' => 'text'); - } elseif($advnew['type'] == 'html') { - $advarr = array('style' => 'code'); - } - } - if($advarr['style'] == 'code') { - $html = $advarr['html'] = $advnew['html']; - $html = daddslashes($html); - } else { - $html = daddslashes(encodeadvcode($advarr)); - $advarr['html'] = $html; - } - - $advarr = daddslashes($advarr); - $parameters = serialize($advarr); - - $ad = daddslashes($ad, 1); - - $db_target->query("INSERT INTO $table_target SET `available`='".$ad[available]. - "',`type`='".$ad[pagetype]."',`displayorder`='".$ad[system]."',`parameters`='".$parameters."',`title`='".$ad[title]."',`targets`='home',`code`='".$html."'"); -} - -$res = $db_target->fetch_first("SELECT * FROM {$db_target->tablepre}common_advertisement_custom WHERE name='UCHOME'"); -if(!$res) { - $db_target->query("INSERT INTO {$db_target->tablepre}common_advertisement_custom SET `name`='UCHOME'"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." adid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -function encodeadvcode($advnew) { - switch($advnew['style']) { - case 'text': - $advnew['code'] = ''.$advnew['title'].''; - break; - case 'image': - $advnew['code'] = ''.$advnew['alt'].''; - break; - case 'flash': - $advnew['code'] = ''; - break; - } - return $advnew['code']; -} -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/common_member_log.php b/utility/convert/source/uch2.0_x2.0/table/common_member_log.php deleted file mode 100644 index 89330e46..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/common_member_log.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'userlog'; -$table_target = $db_target->tablepre.'common_member_log'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = $setting['limit']['userlog'] ? $setting['limit']['userlog'] : 1000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT uid, action, dateline FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/common_myapp.php b/utility/convert/source/uch2.0_x2.0/table/common_myapp.php deleted file mode 100644 index 9b650ddf..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/common_myapp.php +++ /dev/null @@ -1,37 +0,0 @@ -tablepre.'myapp'; -$table_target = $db_target->tablepre.'common_myapp'; - -$limit = $setting['limit']['myapp'] ? $setting['limit']['myapp'] : 500; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE appid>'$start' ORDER BY appid LIMIT $limit"); -while ($app = $db_source->fetch_array($query)) { - - $nextid = $app['appid']; - - $app = daddslashes($app, 1); - - $data = implode_field_value($app, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." appid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/common_myinvite.php b/utility/convert/source/uch2.0_x2.0/table/common_myinvite.php deleted file mode 100644 index 55604896..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/common_myinvite.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'myinvite'; -$table_target = $db_target->tablepre.'common_myinvite'; - -$limit = $setting['limit']['myinvite'] ? $setting['limit']['myinvite'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($invite = $db_source->fetch_array($query)) { - - $nextid = $invite['id']; - - $invite = daddslashes($invite, 1); - - $data = implode_field_value($invite, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_album.php b/utility/convert/source/uch2.0_x2.0/table/home_album.php deleted file mode 100644 index e7cffd05..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_album.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'album'; -$table_target = $db_target->tablepre.'home_album'; - -$limit = $setting['limit']['album'] ? $setting['limit']['album'] : 2000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE albumid>'$start' ORDER BY albumid LIMIT $limit"); -while ($album = $db_source->fetch_array($query)) { - - $nextid = $album['albumid']; - - $album = daddslashes($album, 1); - - $data = implode_field_value($album, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." albumid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_appcreditlog.php b/utility/convert/source/uch2.0_x2.0/table/home_appcreditlog.php deleted file mode 100644 index d6ccf85d..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_appcreditlog.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'appcreditlog'; -$table_target = $db_target->tablepre.'home_appcreditlog'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE logid>'$start' ORDER BY logid LIMIT $limit"); -while ($log = $db_source->fetch_array($query)) { - - $nextid = $log['logid']; - - $log = daddslashes($log, 1); - - $data = implode_field_value($log, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." logid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_blacklist.php b/utility/convert/source/uch2.0_x2.0/table/home_blacklist.php deleted file mode 100644 index 877b0421..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_blacklist.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'blacklist'; -$table_target = $db_target->tablepre.'home_blacklist'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = 1000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("REPLACE INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_blog.php b/utility/convert/source/uch2.0_x2.0/table/home_blog.php deleted file mode 100644 index 99638b07..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_blog.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'blog'; -$table_target = $db_target->tablepre.'home_blog'; - -$limit = $setting['limit']['blog'] ? $setting['limit']['blog'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT dateline, blogid, uid, username, `subject`, classid, viewnum, replynum, hot, picflag, noreply, friend, `password`, click_1 as click1, click_2 as click2, click_3 as click3, click_4 as click4, click_5 as click5 FROM $table_source WHERE blogid>'$start' ORDER BY blogid LIMIT $limit"); -while ($blog = $db_source->fetch_array($query)) { - - $nextid = intval($blog['blogid']); - - $blog = daddslashes($blog, 1); - - $data = implode_field_value($blog, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET `blogid`='".$blog[blogid]."',`uid`='".$blog[uid]."',`username`='".$blog[username]."',`subject`='".$blog[subject]."',`classid`='".$blog[classid]. - "',`viewnum`='".$blog[viewnum]."',`replynum`='".$blog[replynum]."',`hot`='".$blog[hot]."',`dateline`='".$blog[dateline]."',`picflag`='".$blog[picflag]."',`noreply`='".$blog[noreply]. - "',`friend`='".$blog[friend]."',`password`='".$blog[password]."',`click1`='".$blog[click1]."',`click2`='".$blog[click5]."',`click3`='".$blog[click4]."',`click4`='".$blog[click3]."',`click5`='".$blog[click2]." '"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." blogid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_blogfield.php b/utility/convert/source/uch2.0_x2.0/table/home_blogfield.php deleted file mode 100644 index 1c14b4e8..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_blogfield.php +++ /dev/null @@ -1,47 +0,0 @@ -tablepre.'blogfield'; -$table_target = $db_target->tablepre.'home_blogfield'; - -$limit = $setting['limit']['blog'] ? $setting['limit']['blog'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT bf.blogid, bf.uid, bf.tag, bf.message, bf.postip, bf.related, bf.relatedtime, bf.target_ids, bf.hotuser, b.pic FROM $table_source bf LEFT JOIN ".$db_source->table_name('blog')." b ON b.blogid = bf.blogid WHERE bf.blogid>'$start' ORDER BY bf.blogid LIMIT $limit"); -while ($blog = $db_source->fetch_array($query)) { - - if(!empty($blog['tag'])) { - $tag = unserialize($blog['tag']); - if(is_array($tag)) { - foreach($tag as $k => $v) { - $blog['tag'] = implode(' ', $tag); - } - } - } - - $nextid = $blog['blogid']; - - $blog = daddslashes($blog, 1); - - $data = implode_field_value($blog, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." blogid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_class.php b/utility/convert/source/uch2.0_x2.0/table/home_class.php deleted file mode 100644 index c005a313..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_class.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'class'; -$table_target = $db_target->tablepre.'home_class'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE classid>'$start' ORDER BY classid LIMIT $limit"); -while ($class = $db_source->fetch_array($query)) { - - $nextid = $class['classid']; - - $class = daddslashes($class, 1); - - $data = implode_field_value($class, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." classid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_click.php b/utility/convert/source/uch2.0_x2.0/table/home_click.php deleted file mode 100644 index dfc4c0e5..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_click.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'click'; -$table_target = $db_target->tablepre.'home_click'; - -$limit = $setting['limit']['click'] ? $setting['limit']['click'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE clickid>'$start' AND idtype!='tid' ORDER BY clickid LIMIT $limit"); -while ($click = $db_source->fetch_array($query)) { - - $nextid = $click['clickid']; - - $click = daddslashes($click, 1); - - $data = implode_field_value($click, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." clickid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_clickuser.php b/utility/convert/source/uch2.0_x2.0/table/home_clickuser.php deleted file mode 100644 index a3f49710..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_clickuser.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'clickuser'; -$table_target = $db_target->tablepre.'home_clickuser'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = $setting['limit']['click'] ? $setting['limit']['click'] : 1000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_comment.php b/utility/convert/source/uch2.0_x2.0/table/home_comment.php deleted file mode 100644 index ff7bbf0c..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_comment.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'comment'; -$table_target = $db_target->tablepre.'home_comment'; - -$limit = $setting['limit']['comment'] ? $setting['limit']['comment'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE cid>'$start' AND (idtype='blogid' OR idtype='uid' OR idtype='picid' OR idtype='sid') ORDER BY cid LIMIT $limit"); -while ($comment = $db_source->fetch_array($query)) { - - $nextid = $comment['cid']; - - $comment = daddslashes($comment, 1); - - $data = implode_field_value($comment, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." cid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_config.php b/utility/convert/source/uch2.0_x2.0/table/home_config.php deleted file mode 100644 index 4007a4cd..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_config.php +++ /dev/null @@ -1,68 +0,0 @@ -tablepre.'config'; -$table_target = $db_target->tablepre.'common_setting'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); - -$newsetting = array(); - -$my_siteid = $my_sitekey = ''; -$query = $db_target->query("SELECT * FROM $table_target WHERE skey IN('my_siteid', 'my_sitekey', 'my_search_status')"); -while ($value = $db_target->fetch_array($query)) { - if($value['skey'] == 'my_siteid') { - $my_siteid = $value['svalue']; - } elseif($value['skey'] == 'my_sitekey') { - $my_sitekey = $value['svalue']; - } elseif($value['skey'] == 'my_search_status') { - $my_search_status = $value['svalue']; - } - - $key = addslashes($value['skey'].'_old'); - $val = addslashes($value['svalue']); - $newsetting[] = "('$key', '$val')"; - -} -if(isset($my_search_status) && in_array($my_search_status, array(0, 1))) { - $key = addslashes('my_sitekey_sign_old'); - $val = addslashes(substr(md5(substr(md5($my_siteid.'|'.$my_sitekey), 0, 16)), 16, 16)); - $newsetting[] = "('$key', '$val')"; - $newsetting[] = "('my_search_status', '0')"; -} - -if(empty($my_siteid) || empty($my_sitekey)){ - $newsetting = array(); -} - -$validityconfig = array('adminemail', 'updatestat', 'timeoffset', 'maxpage', 'topcachetime', 'allowdomain', 'allowwatermark', - 'holddomain', 'feedday', 'feedmaxnum', 'groupnum', 'closeinvite', 'checkemail', 'networkpage','showallfriendnum', - 'sendmailday', 'feedtargetblank', 'feedread', 'feedhotnum', 'feedhotday', 'feedhotmin', 'privacy', - 'my_status', 'my_siteid', 'my_sitekey', 'my_closecheckupdate', 'my_ip', 'uniqueemail', 'updatestat', 'topcachetime'); - -$query = $db_source->query("SELECT * FROM $table_source"); -while ($value = $db_source->fetch_array($query)) { - $val = addslashes($value['datavalue']); - $key = $value['var']; - if(in_array($key, $validityconfig)) { - if($key == 'my_status') { - $val = 0; - $key = 'my_app_status'; - } - $newsetting[] = "('$key', '$val')"; - } -} -if(!empty($newsetting)) { - $db_target->query("REPLACE INTO $table_target (`skey`, `svalue`) VALUES ".implode(',', $newsetting)); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_docomment.php b/utility/convert/source/uch2.0_x2.0/table/home_docomment.php deleted file mode 100644 index 571ae0f6..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_docomment.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'docomment'; -$table_target = $db_target->tablepre.'home_docomment'; - -$limit = $setting['limit']['docomment'] ? $setting['limit']['docomment'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($docomment = $db_source->fetch_array($query)) { - - $nextid = $docomment['id']; - - $docomment = daddslashes($docomment, 1); - - $data = implode_field_value($docomment, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_doing.php b/utility/convert/source/uch2.0_x2.0/table/home_doing.php deleted file mode 100644 index 0937091f..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_doing.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'doing'; -$table_target = $db_target->tablepre.'home_doing'; - -$limit = $setting['limit']['doing'] ? $setting['limit']['doing'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT doid,uid,username,`from`,dateline,message,ip,replynum FROM $table_source WHERE doid>'$start' ORDER BY doid LIMIT $limit"); -while ($doing = $db_source->fetch_array($query)) { - - $str = 'class="face"'; - $doing['message'] = str_replace($str, '', $doing[message]); - $nextid = $doing['doid']; - - $doing = daddslashes($doing, 1); - - $data = implode_field_value($doing, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." doid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_event.php b/utility/convert/source/uch2.0_x2.0/table/home_event.php deleted file mode 100644 index bdc13a3e..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_event.php +++ /dev/null @@ -1,156 +0,0 @@ -tablepre.'event'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = $setting['limit']['event'] ? $setting['limit']['event'] : 100; -$nextid = 0; -$home = load_process('home'); -$eventfid = intval($home['forum']['event']); - -if(!empty($eventfid)) { - $value = $db_target->fetch_first('SELECT * FROM '.$db_target->table_name('forum_forum')." WHERE fid='$eventfid' AND status!='3'"); - if(empty($value)) { - $eventfid = 0; - } -} -if(empty($eventfid)) { - $board_name = 'UCHome数据'; - $forum_name = 'UCHome活动'; - $value = $db_target->fetch_first('SELECT fid FROM '.$db_target->table_name('forum_forum')." WHERE type='forum' AND status='1' AND `name`='$forum_name'"); - if(!empty($value)) { - $eventfid = intval($value['fid']); - } else { - $value = $db_target->fetch_first('SELECT fid FROM '.$db_target->table_name('forum_forum')." WHERE type='group' AND status='1' AND `name`='$board_name'"); - if($value) { - $fup = intval($value['fid']); - } else { - $board = array( - 'name' => $board_name, - 'type' => 'group', - 'status' => '1', - ); - $fup = $db_target->insert('forum_forum', $board, true); - } - $forum = array( - 'name' => $forum_name, - 'fup' => $fup, - 'type' => 'forum', - 'allowsmilies' => 1, - 'allowbbcode' => 1, - 'allowimgcode' => 1, - 'status' => '1', - ); - $eventfid = $db_target->insert('forum_forum', $forum, true); - $forumfield = array( - 'fid' => $eventfid, - 'description' => '从 UCenter Home 转移过来的活动内容' - ); - $db_target->insert('forum_forumfield', $forumfield); - } -} - -$eventclass = array(); -$query = $db_source->query('SELECT classid, classname FROM '.$db_source->table_name('eventclass')); -while($value=$db_source->fetch_array($query)) { - $eventclass[$value['classid']] = $value['classname']; -} - -include_once DISCUZ_ROOT.'./include/editor.func.php'; - -$event_query = $db_source->query("SELECT e.*, ef.detail, ef.limitnum FROM $table_source e LEFT JOIN ".$db_source->table_name('eventfield')." ef ON e.eventid = ef.eventid WHERE e.eventid > $start ORDER BY e.eventid LIMIT $limit"); -while ($event = $db_source->fetch_array($event_query)) { - - $nextid = intval($event['eventid']); - - $commentnum = $db_source->result_first('SELECT count(*) FROM '.$db_source->table_name('comment')." WHERE id='$event[eventid]' AND idtype='eventid'"); - $lastcomment = array(); - if($commentnum) { - $lastcomment = $db_source->fetch_first('SELECT author, dateline FROM '.$db_source->table_name('comment')." WHERE id='$event[eventid]' AND idtype='eventid' ORDER BY cid DESC LIMIT 1"); - } - $threadarr = array( - 'fid' => $eventfid, - 'author' => $event['username'], - 'authorid' => $event['uid'], - 'subject' => $event['title'], - 'dateline' => $event['dateline'], - 'lastpost' => !empty($lastcomment) ? $lastcomment['dateline'] : $event['updatetime'], - 'lastposter' => !empty($lastcomment) ? $lastcomment['author'] : $event['username'], - 'views' => $event['viewnum'], - 'replies' => $commentnum, - 'special' => 4 - ); - $tid = $db_target->insert('forum_thread', daddslashes($threadarr), true); - $event['detail'] = html2bbcode($event['detail']); - $postarr = array( - 'fid' => $eventfid, - 'tid' => $tid, - 'first' => '1', - 'author' => $event['username'], - 'authorid' => $event['uid'], - 'subject' => $event['subject'], - 'dateline' => $event['dateline'], - 'message' => $event['detail'] - ); - $pid = $db_target->insert('forum_post', daddslashes($postarr), true); - $aid = 0; - $activityarr = array( - 'tid' => $tid, - 'uid' => $event['uid'], - 'aid' => $aid, - 'cost' => '', - 'starttimefrom' => $event['starttime'], - 'starttimeto' => $event['endtime'], - 'place' => '['.$event['province'].$event['city'].'] '.$event['location'], - 'class' => $eventclass[$event['classid']], - 'number' => $event['limitnum'], - 'applynumber' => $event['membernum'] - 1,// Home 里的活动成员包括创建者 - 'expiration' => $event['deadline'] - ); - $db_target->insert('forum_activity', daddslashes($activityarr)); - - $inserts = array(); - $query = $db_source->query('SELECT * FROM '.$db_source->table_name('userevent')." WHERE eventid = '$event[eventid]' AND status IN ('1', '2')"); - while($value=$db_source->fetch_array($query)) { - $value['verified'] = $value['status'] == 1 ? 0 : 1; - $value['username'] = addslashes($value['username']); - $inserts[] = "('$tid', '$value[username]', '$value[uid]', '$value[verified]', '$value[dateline]', '-1')"; - } - if($inserts) { - $db_target->query('INSERT INTO '.$db_target->table_name('forum_activityapply').'(tid, username ,uid, verified, dateline, payment) VALUES '.implode(', ', $inserts)); - } - - if($commentnum) { - $inserts = array(); - $query = $db_source->query('SELECT * FROM '.$db_source->table_name('comment')." WHERE id='$event[eventid]' AND idtype='eventid' ORDER BY cid"); - while($value=$db_source->fetch_array($query)) { - $value['message'] = addslashes(html2bbcode($value['message'])); - $value['author'] = addslashes($value['author']); - $inserts[] = "('$fid', '$tid', '$value[author]', '$value[authorid]', '$value[dateline]', '$value[message]')"; - } - $db_target->query('INSERT INTO '.$db_target->table_name('forum_post')."(fid, tid, author, authorid, dateline, message) VALUES ".implode(', ',$inserts)); - } - - $posts = $commentnum + 1; - $db_target->query("UPDATE ".$db_target->table_name('common_member_count')." SET threads=threads+1 WHERE uid='$event[uid]'"); - $db_target->query("UPDATE ".$db_target->table_name('forum_forum')." SET threads=threads+1, posts=posts+$posts WHERE fid='$eventfid'"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." eventid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -$maxpid = $db_target->result_first("SELECT MAX(pid) FROM ".$db_target->table('forum_post')); -$maxpid = intval($maxpid) + 1; -$db_target->query("ALTER TABLE ".$db_target->table('forum_post_tableid')." AUTO_INCREMENT=$maxpid"); -$db_target->query("UPDATE ".$db_target->table_name('forum_forum')." SET status=1 WHERE status=2"); -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_feed.php b/utility/convert/source/uch2.0_x2.0/table/home_feed.php deleted file mode 100644 index b8c8c427..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_feed.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'feed'; -$table_target = $db_target->tablepre.'home_feed'; - -$limit = $setting['limit']['feed'] ? $setting['limit']['feed'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE feedid>'$start' ORDER BY feedid LIMIT $limit"); -while ($feed = $db_source->fetch_array($query)) { - - $nextid = $feed['feedid']; - - $feed = daddslashes($feed, 1); - - $data = implode_field_value($feed, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." feedid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_friend.php b/utility/convert/source/uch2.0_x2.0/table/home_friend.php deleted file mode 100644 index 389c1db6..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_friend.php +++ /dev/null @@ -1,66 +0,0 @@ -tablepre.'friend'; - -$limit = $setting['limit']['friend'] ? $setting['limit']['friend'] : 10000; - -$nextid = 0; - -$start = getgpc('start'); -$start = empty($start) ? 0 : $start; - -if($start == 0) { - $db_target->query("TRUNCATE ".$db_target->tablepre.'home_friend_request'); -} - -$nextid = $start + $limit; -$done = true; - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($rs = $db_source->fetch_array($query)) { - - $done = false; - - $rs = daddslashes($rs, 1); - - if($rs['status']) { - $table_target = $db_target->tablepre.'home_friend'; - if(empty($rs['fusername'])) { - $subquery = $db_source->query("SELECT username FROM ".$db_source->tablepre.'space'." WHERE uid='$rs[fuid]]'"); - $rs['fusername'] = $db_source->result($subquery, 0); - $rs['fusername'] = addslashes($rs['fusername']); - } - $rs['note'] = ''; - } else { - $_uid = $rs['uid']; - $_fuid = $rs['fuid']; - $rs['uid'] = $_fuid; - $rs['fuid'] = $_uid; - - $subquery = $db_source->query("SELECT username FROM ".$db_source->tablepre.'space'." WHERE uid='$_uid'"); - $rs['fusername'] = $db_source->result($subquery, 0); - $rs['fusername'] = addslashes($rs['fusername']); - - $table_target = $db_target->tablepre.'home_friend_request'; - } - - - $data = implode_field_value($rs, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("REPLACE INTO $table_target SET $data"); - -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." start> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_friendlog.php b/utility/convert/source/uch2.0_x2.0/table/home_friendlog.php deleted file mode 100644 index cd280c16..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_friendlog.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'friendlog'; -$table_target = $db_target->tablepre.'home_friendlog'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = 2000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_group.php b/utility/convert/source/uch2.0_x2.0/table/home_group.php deleted file mode 100644 index 56f81c2e..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_group.php +++ /dev/null @@ -1,242 +0,0 @@ -table('mtag'); -require_once DISCUZ_ROOT.'./include/editor.func.php'; - - -$fieldid = intval(getgpc('fieldid')); -$tagid = intval(getgpc('tagid')); - -$gid = intval(getgpc('gid')); -$fid = intval(getgpc('fid')); -$sid = intval(getgpc('sid')); - -$limit = $setting['limit']['mtag'] ? $setting['limit']['mtag'] : 100; -$nextid = 0; - -$threadquery = $db_source->query("SELECT * FROM ".$db_source->table('thread')." WHERE tid > '$start' AND tagid='$tagid' ORDER BY tid LIMIT $limit"); -while($value = $db_source->fetch_array($threadquery)) { - - $nextid = $value['tid']; - $value = daddslashes($value); - $value['replynum'] = intval($value['replynum']); - $threadarr = array( - 'fid' => $sid, - 'author' => $value['username'], - 'authorid' => $value['uid'], - 'subject' => $value['subject'], - 'dateline' => $value['dateline'], - 'lastpost' => $value['lastpost'], - 'lastposter' => $value['lastauthor'], - 'views' => $value['viewnum'], - 'replies' => $value['replynum'], - 'digest' => $value['digest'], - 'displayorder' => $value['displayorder'] ? 1 : 0, - 'isgroup' => 1 - ); - $tid = $db_target->insert('forum_thread', $threadarr, true); - - $lastpost = array(); - - $query = $db_source->query("SELECT * FROM ".$db_source->table('post')." WHERE tid='$value[tid]' ORDER BY dateline"); - while($post = $db_source->fetch_array($query)) { - $post['message'] = html2bbcode($post['message']); - $post = daddslashes($post); - $postarr = array( - 'fid' => $sid, - 'tid' => $tid, - 'first' => $post['isthread'] ? 1 : 0, - 'author' => $post['username'], - 'authorid' => $post['uid'], - 'subject' => $post['isthread'] ? $value['subject'] : $post['subject'], - 'dateline' => $post['dateline'], - 'message' => $post['message'], - 'useip' => $post['ip'] - ); - $lastpost = array( - 'lastpost' => $post['dateline'], - 'lastposter' => $post['username'], - ); - $db_target->insert('forum_post', $postarr); - $db_target->insert('common_member_count', array('uid' => $value['uid']), 0, false, true); - $db_target->query("UPDATE ".$db_target->table('common_member_count')." SET posts=posts+1 WHERE uid='$post[uid]'", 'UNBUFFERED'); - $db_target->query("UPDATE ".$db_target->table('forum_groupuser')." SET replies=replies+1 WHERE fid='$sid' AND uid='$post[uid]'", 'UNBUFFERED'); - } - - if($lastpost) { - $db_target->update('forum_thread', $lastpost, array('tid' => $tid)); - } else { - $lastpost['lastpost'] = $value['lastpost']; - } - $db_target->insert('common_member_count', array('uid' => $value['uid']), 0, false, true); - $db_target->query("UPDATE ".$db_target->table('common_member_count')." SET threads=threads+1 WHERE uid='$value[uid]'", 'UNBUFFERED'); - $db_target->query("UPDATE ".$db_target->table('forum_groupuser')." SET threads=threads+1 WHERE fid='$sid' AND uid='$value[uid]'", 'UNBUFFERED'); - $db_target->query("UPDATE ".$db_target->table('forum_forum')." SET lastpost='$lastpost[lastpost]', threads=threads+1, posts=posts+$value[replynum] WHERE fid='$sid'", 'UNBUFFERED'); - -} -$force = false; -if(!$nextid) { - if(!getmtag($tagid)) { - if(!getprofield($fieldid)) { - $nextid = 0; - } else { - $force = true; - } - } else { - $force = true; - } - $nextid = $force ? 1 : 0; -} - -if($nextid) { - if($force) $nextid = 0; - $mtag = array(); - if($tagid) { - $mtag = $db_source->fetch_first("SELECT * FROM ".$db_source->table('mtag')." WHERE tagid='$tagid'"); - } - $profield = $db_source->fetch_first("SELECT * FROM ".$db_source->table('profield')." WHERE fieldid='$fieldid'"); - showmessage("继续转换数据表 ".$table_source." : $profield[title] ".(!empty($mtag) ? "› $mtag[tagname] › tid > $nextid":""), "index.php?a=$action&source=$source&prg=$curprg&start=$nextid&gid=$gid&fid=$fid&sid=$sid&fieldid=$fieldid&tagid=$tagid"); -} - -$maxpid = $db_target->result_first("SELECT MAX(pid) FROM ".$db_target->table('forum_post')); -$maxpid = intval($maxpid) + 1; -$db_target->query("ALTER TABLE ".$db_target->table('forum_post_tableid')." AUTO_INCREMENT=$maxpid"); -$db_target->query("UPDATE ".$db_target->table('forum_forumfield')." SET seodescription=description WHERE membernum='0'"); - -function getmtag($start) { - global $db_source, $db_target, $fieldid, $gid, $fid, $sid, $tagid; - - if(empty($fieldid)) { - getprofield($fieldid); - } - $mtag = $db_source->fetch_first("SELECT * FROM ".$db_source->table('mtag')." WHERE fieldid='$fieldid' AND tagid>'$start' ORDER BY tagid LIMIT 1"); - if(empty($mtag)) { - $tagid = $sid = 0; - return false; - } - $tagid = $mtag['tagid']; - $founder = $groupuser = array(); - $query = $db_source->query("SELECT * FROM ".$db_source->table('tagspace')." WHERE tagid='$mtag[tagid]'"); - while($space = $db_source->fetch_array($query)) { - $space['level'] = 4; - if($space['grade'] == 9) { - $space['level'] = 1; - if(empty($founder)) { - $founder = array('founderuid' => $space['uid'], 'foundername' => daddslashes($space['username'])); - } - } elseif($space['grade'] == 8) { - $space['level'] = 2; - } elseif($space['grade'] == 1) { - $space['level'] = 3; - } elseif($space['grade'] == -2) { - $space['level'] = 0; - } - $groupuser[$space['uid']] = $space; - } - if(empty($founder)) { - $member = $db_target->fetch_first("SELECT uid,username FROM ".$db_target->table('common_member')." WHERE adminid='1' ORDER BY uid LIMIT 1"); - $founder = array('founderuid' => $member['uid'], 'foundername' => daddslashes($member['username'])); - $groupuser[$member['uid']] = array('uid' => $member['uid'], 'username' => $member['username'], 'level' => 1); - } - - $levelid = $db_target->result_first("SELECT levelid FROM ".$db_target->table('forum_grouplevel')." WHERE creditshigher<='0' AND '0' $fid, - 'type' => 'sub', - 'name' => daddslashes($mtag['tagname']), - 'status' => 3, - 'allowsmilies' => 1, - 'allowbbcode' => 1, - 'allowimgcode' => 1, - 'level' => $levelid - ); - $sid = $db_target->insert('forum_forum', $forumarr, true); - $forumfieldarr = array( - 'fid' => $sid, - 'description' => daddslashes(html2bbcode($mtag['announcement'])), - 'jointype' => $mtag['joinperm'] ? ($mtag['joinperm'] == 1 ? 2 : 1) : 0, - 'gviewperm' => $mtag['viewperm'] ? 0 : 1, - 'dateline' => TIMESTAMP, - 'founderuid' => $founder['founderuid'], - 'foundername' => $founder['foundername'], - 'membernum' => $mtag['membernum'] - ); - $db_target->insert('forum_forumfield', $forumfieldarr); - $db_target->query("UPDATE ".$db_target->table('forum_forumfield')." SET groupnum=groupnum+1 WHERE fid='$fid'"); - - foreach($groupuser as $uid => $user) { - $userarr = array( - 'fid' => $sid, - 'uid' => $uid, - 'username' => daddslashes($user['username']), - 'level' => $user['level'], - 'threads' => 0, - 'replies' => 0, - 'joindateline' => TIMESTAMP, - 'lastupdate' => TIMESTAMP, - 'privacy' => '', - ); - $db_target->insert('forum_groupuser', $userarr, 0, true); - } - - return true; - -} - -function getprofield($start) { - global $db_source, $db_target, $fieldid, $gid, $fid, $tagid; - - if(!$gid) { - $gid = $db_target->insert('forum_forum', array('type' => 'group', 'name' => '空间群组', 'status' => 3), 1); - $db_target->insert('forum_forumfield', array('fid' => $gid)); - } - - $profield = $db_source->fetch_first("SELECT * FROM ".$db_source->table('profield')." WHERE fieldid>'$start' ORDER BY fieldid LIMIT 1"); - if(empty($profield)) { - $fid = 0; - $tagid = 0; - return false; - } - - $fieldid = $profield['fieldid']; - - $table_forum_columns = array('fup', 'type', 'name', 'status', 'displayorder', 'styleid', 'allowsmilies', 'allowhtml', 'allowbbcode', 'allowimgcode', 'allowanonymous', 'allowpostspecial', 'alloweditrules', 'alloweditpost', 'modnewposts', 'recyclebin', 'jammer', 'forumcolumns', 'threadcaches', 'disablewatermark', 'autoclose', 'simple'); - $table_forumfield_columns = array('fid', 'attachextensions', 'threadtypes', 'postcredits', 'replycredits', 'digestcredits', 'postattachcredits', 'getattachcredits', 'viewperm', 'postperm', 'replyperm', 'getattachperm', 'postattachperm'); - - $forumfields = array( - 'allowsmilies' => 1, - 'allowbbcode' => 1, - 'allowimgcode' => 1, - 'allowpostspecial' => 127, - 'fup' => $gid, - 'type' => 'forum', - 'name' => daddslashes($profield['title']), - 'status' => 3 - ); - - $data = array(); - foreach($table_forum_columns as $field) { - if(isset($forumfields[$field])) { - $data[$field] = $forumfields[$field]; - } - } - - $forumfields['fid'] = $fid = $db_target->insert('forum_forum', $data, 1); - $data = array(); - foreach($table_forumfield_columns as $field) { - if(isset($forumfields[$field])) { - $data[$field] = $forumfields[$field]; - } - } - $db_target->insert('forum_forumfield', $data); - - return true; -} -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_invite.php b/utility/convert/source/uch2.0_x2.0/table/home_invite.php deleted file mode 100644 index f28a2709..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_invite.php +++ /dev/null @@ -1,37 +0,0 @@ -tablepre.'invite'; -$table_target = $db_target->tablepre.'common_invite'; - -$limit = $setting['limit']['invite'] ? $setting['limit']['invite'] : 1000; -$nextid = 0; - -$start = getgpc('start'); - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($rs = $db_source->fetch_array($query)) { - - $nextid = $rs['id']; - - unset($rs['id']); - - $rs = daddslashes($rs, 1); - - $data = implode_field_value($rs, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_magic.php b/utility/convert/source/uch2.0_x2.0/table/home_magic.php deleted file mode 100644 index 1207c5d1..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_magic.php +++ /dev/null @@ -1,195 +0,0 @@ -query('SELECT magicid, identifier FROM '.$db_target->table_name('common_magic')." WHERE identifier IN ('".implode("','", $kept_magics)."')"); -while($value=$db_source->fetch_array($query)) { - $x_magics[$value['identifier']] = intval($value['magicid']); -} - -if($op=='magic') { - - $uch_magics = array(); - $query = $db_source->query('SELECT m.*, ms.storage, ms.sellcount FROM '.$db_source->table_name('magic')." m LEFT JOIN ".$db_source->table_name('magicstore')." ms ON m.mid = ms.mid WHERE m.mid IN ('".implode("','", $kept_magics)."')"); - while($value=$db_source->fetch_array($query)) { - if(!isset($x_magics[$value['mid']])) { - $uch_magics[$value['mid']] = $value; - } - } - foreach($uch_magics as $mid=>$value) { - $magic = array( - 'available' => !empty($value['close']) ? '0' : '1', - 'name' => $value['name'], - 'description' => $value['description'], - 'identifier' => $mid, - 'price' => $value['charge'], - 'num' => $value['storage'], - 'salevolume' => $value['sellcount'], - 'supplynum' => $value['providecount'], - 'usenum' => $value['usecount'], - 'magicperm' => $value['custom'], - 'useevent' => '0' - ); - if($value['provideperoid']==604800) { - $magic['supplytype'] = '2'; - } elseif($value['provideperoid']==86400) { - $magic['supplytype'] = '1'; - } elseif($value['provideperoid'] == 3600) { - $magic['supplytype'] = '1'; - $magic['supplynum'] = $magic['supplynum'] * 24; - } else { - $magic['supplytype'] = '1'; - $magic['supplynum'] = 9999; - } - if($value['useperoid']==604800) { - $magic['useperoid'] = '2'; - } elseif($value['useperoid']==86400) { - $magic['useperoid'] = '4'; - } elseif($value['useperoid'] == 3600) { - $magic['useperoid'] = '4'; - $magic['usenum'] = $magic['usenum'] * 24; - } else { - $magic['useperoid'] = '0'; - } - - $magic = daddslashes($magic); - $keys = '`'.implode('`, `', array_keys($magic)).'`'; - $values = "'".implode("', '", $magic)."'"; - $db_target->query('INSERT INTO '.$db_target->table_name('common_magic')."($keys) VALUES ($values)"); - } - if(!$db_target->result_first("SELECT COUNT(*) FROM ".$db_target->table('common_magic')." WHERE credit>'0'")) { - $settings_creditstrans = $db_target->result_first("SELECT svalue FROM ".$db_target->table('common_setting')." WHERE skey='creditstrans'"); - $creditstranssi = explode(',', $settings_creditstrans); - $creditstran = $creditstranssi[3] ? $creditstranssi[3] : $creditstranssi[0]; - $db_target->query("UPDATE ".$db_target->table('common_magic')." SET credit='$creditstran'"); - } - $db_target->query("UPDATE ".$db_target->table('common_magic')." SET name='变色卡', description='可以将帖子或日志的标题高亮,变更颜色' WHERE identifier='highlight'"); - $db_target->query("UPDATE ".$db_target->table('common_magic')." SET name='显身卡', description='可以查看一次匿名用户的真实身份。' WHERE identifier='namepost'"); - $db_target->query("UPDATE ".$db_target->table('common_magic')." SET name='匿名卡', description='在指定的地方,让自己的名字显示为匿名。' WHERE identifier='anonymouspost'"); - - $table_source = $db_source->tablepre.'magic'; - showmessage("继续转换数据表 ".$table_source." 用户道具", "index.php?a=$action&source=$source&prg=$curprg&op=usermagic&start=0"); - -} elseif($op == 'usermagic') { - - $start = getgpc('start'); - $start = empty($start) ? 0 : intval($start); - $limit = 1000; - $nextid = $start + $limit; - - $uch_magics = array(); - $query = $db_source->query('SELECT m.* FROM '.$db_source->table_name('magic')." m WHERE m.mid IN ('".implode("','", $kept_magics)."')"); - while($value=$db_source->fetch_array($query)) { - $uch_magics[$value['mid']] = $value; - } - - $done = true; - $inserts = $updates = array(); - $query = $db_source->query('SELECT uid, mid, `count` as num FROM '.$db_source->table_name('usermagic')." WHERE `count` > 0 ORDER BY uid LIMIT $start, $limit"); - while($value=$db_source->fetch_array($query)) { - $done = false; - if(isset($x_magics[$value['mid']])) { - $value['magicid'] = $x_magics[$value['mid']]; - $inserts[] = "('$value[uid]', '$value[magicid]', '$value[num]')"; - } else { - $credit = intval($uch_magics[$value['mid']]['charge'] * $value['num']); - $updates[$value['uid']] = empty($updates[$value['uid']]) ? $credit : $updates[$value['uid']] + $credit; - } - } - if($inserts) { - $db_target->query('REPLACE INTO '.$db_target->table_name('common_member_magic')."(uid, magicid, num) VALUES ".implode(', ', $inserts)); - } - if($updates) { - foreach($updates as $uid=>$credit) { - $credit = intval($credit); - $db_target->query('UPDATE '.$db_target->table_name('common_member')." SET credits = credits + $credit WHERE uid = '$uid'"); - } - } - - $table_source = $db_source->tablepre.'usermagic'; - if($done == false) { - showmessage("继续转换数据表 ".$table_source." 用户道具-> $nextid", "index.php?a=$action&source=$source&prg=$curprg&op=usermagic&start=$nextid"); - } else { - showmessage("继续转换数据表 ".$table_source." 道具收入记录->0", "index.php?a=$action&source=$source&prg=$curprg&op=magicinlog&start=0"); - } - -} elseif($op == 'magicinlog') { - - $start = getgpc('start'); - $start = empty($start) ? 0 : intval($start); - $limit = 2000; - $nextid = 0; - - $done = true; - $inserts = array(); - $query = $db_source->query('SELECT * FROM '.$db_source->table_name('magicinlog')." WHERE logid > $start AND mid IN ('".implode("','", $kept_magics)."') LIMIT $limit"); - while($value=$db_source->fetch_array($query)) { - $done = false; - $nextid = intval($value['logid']); - $value['magicid'] = $x_magics[$value['mid']]; - if($value['action']=='1') { - $inserts[] = "('$value[uid]', '$value[magicid]', '1', '$value[dateline]', '$value[count]', '$value[credit]', '0', '', '0')"; - } elseif($value['action']=='2') { - $inserts[] = "('$value[uid]', '$value[magicid]', '2', '$value[dateline]', '$value[count]', '$value[credit]', '$value[uid]', 'uid', '$value[uid]')"; - } - } - if($inserts) { - $db_target->query('INSERT INTO '.$db_target->table_name('common_magiclog')."(uid, magicid, action, dateline, amount, price, targetid, idtype, targetuid) VALUES ".implode(', ', $inserts)); - } - - $table_source = $db_source->tablepre.'magicinlog'; - if($done == false) { - showmessage("继续转换数据表 ".$table_source." 道具收入记录-> $nextid", "index.php?a=$action&source=$source&prg=$curprg&op=magicinlog&start=$nextid"); - } else { - showmessage("继续转换数据表 ".$table_source." 道具使用记录->0", "index.php?a=$action&source=$source&prg=$curprg&op=magicuselog&start=0"); - } - -} elseif($op == 'magicuselog') { - - $start = getgpc('start'); - $start = empty($start) ? 0 : intval($start); - $limit = 2000; - $nextid = 0; - - $done = true; - $inserts = array(); - $query = $db_source->query('SELECT * FROM '.$db_source->table_name('magicuselog')." WHERE logid > $start AND mid IN ('".implode("','", $kept_magics)."') LIMIT $limit"); - while($value=$db_source->fetch_array($query)) { - $done = false; - $nextid = intval($value['logid']); - $value['magicid'] = $x_magics[$value['mid']]; - $inserts[] = "('$value[uid]', '$value[magicid]', '2', '$value[dateline]', '$value[count]', '$value[credit]', '$value[id]', '$value[idtype]', '0')"; - } - if($inserts) { - $db_target->query('INSERT INTO '.$db_target->table_name('common_magiclog')."(uid, magicid, action, dateline, amount, price, targetid, idtype, targetuid) VALUES ".implode(', ', $inserts)); - } - - $table_source = $db_source->tablepre.'magicuselog'; - if($done == false) { - showmessage("继续转换数据表 ".$table_source." 道具使用记录-> $nextid", "index.php?a=$action&source=$source&prg=$curprg&op=magicuselog&start=$nextid"); - } -} - - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_mailcron.php b/utility/convert/source/uch2.0_x2.0/table/home_mailcron.php deleted file mode 100644 index bdcc79c5..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_mailcron.php +++ /dev/null @@ -1,58 +0,0 @@ -tablepre.'mailcron'; -$table_target = $db_target->tablepre.'common_mailcron'; - -$table_source_rel = $db_source->tablepre.'mailqueue'; -$table_target_rel = $db_target->tablepre.'common_mailqueue'; - -$limit = 1000; -$nextid = 0; - -$start = getgpc('start'); - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); - $db_target->query("TRUNCATE $table_target_rel"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE cid>'$start' ORDER BY cid LIMIT $limit"); -$mcids = array(); -while ($rs = $db_source->fetch_array($query)) { - - $mcids[] = $rs['cid']; - - $nextid = $rs['cid']; - - $rs = daddslashes($rs, 1); - - $data = implode_field_value($rs, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if (!empty($mcids)) { - $query = $db_source->query("SELECT * FROM $table_source_rel WHERE cid IN (".dimplode($mcids).")"); - while ($rs = $db_source->fetch_array($query)) { - - $rs = daddslashes($rs, 1); - - $data = implode_field_value($rs, ',', db_table_fields($db_target, $table_target_rel)); - - $db_target->query("INSERT INTO $table_target_rel SET $data"); - } -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." mcid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_notification.php b/utility/convert/source/uch2.0_x2.0/table/home_notification.php deleted file mode 100644 index 607d49b9..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_notification.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'notification'; -$table_target = $db_target->tablepre.'home_notification'; - -$limit = $setting['limit']['notification'] ? $setting['limit']['notification'] : 1000; - -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE id>'$start' ORDER BY id LIMIT $limit"); -while ($note = $db_source->fetch_array($query)) { - - $nextid = $note['id']; - - $note = daddslashes($note, 1); - - $data = implode_field_value($note, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("REPLACE INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." id> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_pic.php b/utility/convert/source/uch2.0_x2.0/table/home_pic.php deleted file mode 100644 index 1c1e2898..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_pic.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'pic'; -$table_target = $db_target->tablepre.'home_pic'; - -$limit = $setting['limit']['pic'] ? $setting['limit']['pic'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT picid,albumid,uid,username,dateline,postip,filename,title,type,size,filepath,thumb,remote,hot,click_6,click_7,click_8,click_9,click_10,magicframe". - " FROM $table_source WHERE picid>'$start' ORDER BY picid LIMIT $limit"); -while ($pic = $db_source->fetch_array($query)) { - - $nextid = $pic['picid']; - - $pic = daddslashes($pic, 1); - - $db_target->query("INSERT INTO $table_target SET `picid`='".$pic[picid]."',`albumid`='".$pic[albumid]."',`uid`='".$pic[uid]."',`username`='".$pic[username]."',`dateline`='".$pic[dateline]. - "',`postip`='".$pic[pistip]."',`filename`='".$pic[filename]."',`title`='".$pic[title]."',`type`='".$pic[type]."',`size`='".$pic[size]."',`filepath`='".$pic[filepath]."', `thumb`='".$pic[thumb]. - "',`remote`='".$pic[remote]."',`hot`='".$pic[hot]."',`click1`='".$pic[click_9]."',`click2`='".$pic[click_8]."',`click3`='".$pic[click_7]."',`click4`='".$pic[click_6]."',`click5`='".$pic[click_10]."' - "); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." picid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_picfield.php b/utility/convert/source/uch2.0_x2.0/table/home_picfield.php deleted file mode 100644 index 3a6604fa..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_picfield.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'picfield'; -$table_target = $db_target->tablepre.'home_picfield'; - -$limit = $setting['limit']['pic'] ? $setting['limit']['pic'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE picid>'$start' ORDER BY picid LIMIT $limit"); -while ($pic = $db_source->fetch_array($query)) { - - $nextid = $pic['picid']; - - $pic = daddslashes($pic, 1); - - $data = implode_field_value($pic, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." picid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_poke.php b/utility/convert/source/uch2.0_x2.0/table/home_poke.php deleted file mode 100644 index b94422f2..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_poke.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'poke'; -$table_target = $db_target->tablepre.'home_poke'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = $setting['limit']['poke'] ? $setting['limit']['poke'] : 10000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("REPLACE INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_poll.php b/utility/convert/source/uch2.0_x2.0/table/home_poll.php deleted file mode 100644 index 7091e18a..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_poll.php +++ /dev/null @@ -1,205 +0,0 @@ -tablepre.'poll'; - -include_once DISCUZ_ROOT.'./include/editor.func.php'; -$limit = $setting['limit']['poll'] ? $setting['limit']['poll'] : 100; -$nextid = 0; - -$start = intval(getgpc('start')); -$home = load_process('home'); -$fid = intval(getgpc('fid')) ? intval(getgpc('fid')) : intval($home['forum']['poll']) ? intval($home['forum']['poll']) : 0; -if(!$fid) { - $forumname = 'UCHome投票数据'; - - $value = $db_target->fetch_first('SELECT fid FROM '.$db_target->table_name('forum_forum')." WHERE status IN('1','2') AND type='forum' AND `name`='$forumname'"); - if(!empty($value)) { - $fid = intval($value['fid']); - } else { - $value = $db_target->fetch_first('SELECT fid FROM '.$db_target->table_name('forum_forum')." WHERE status IN('1','2') AND type='group' AND `name`='$forumname'"); - if($value) { - $fup = intval($value['fid']); - } else { - $board = array( - 'name' => daddslashes($forumname), - 'type' => 'group', - 'status' => '1', - ); - $fup = $db_target->insert('forum_forum', $board, true); - } - $forum = array( - 'name' => daddslashes($forumname), - 'fup' => $fup, - 'type' => 'forum', - 'allowsmilies' => 1, - 'allowbbcode' => 1, - 'allowimgcode' => 1, - 'status' => '1', - ); - $fid = $db_target->insert('forum_forum', $forum, true); - $forumfield = array( - 'fid' => $fid, - 'description' => '从 UCenter Home 转移过来的投票内容' - ); - $db_target->insert('forum_forumfield', $forumfield); - } -} -$pids = $polls = $pollpreview = $optionuser = array(); -$pollquery = $db_source->query("SELECT pf.*, p.* FROM {$db_source->tablepre}poll p LEFT JOIN {$db_source->tablepre}pollfield pf ON pf.pid=p.pid WHERE p.pid>'$start' ORDER BY p.pid LIMIT $limit"); -while($value = $db_source->fetch_array($pollquery)) { - $optionuser = array(); - $postnum = 1; - $nextid = $value['pid']; - $value['summary'] = !empty($value['summary']) ? html2bbcode($value['summary']) : ''; - $value['message'] = html2bbcode($value['message']); - $pollpreview = $value['option'] = unserialize($value['option']); - $value = daddslashes($value); - $threadarr = array( - 'fid' => $fid, - 'author' => $value['username'], - 'authorid' => $value['uid'], - 'subject' => $value['subject'], - 'dateline' => $value['dateline'], - 'lastpost' => $value['lastvote'], - 'lastposter' => $value['username'], - 'views' => $value['replynum'], - 'replies' => $value['replynum'], - 'special' => 1 - ); - $tid = $db_target->insert('forum_thread', $threadarr, true); - $postarr = array( - 'fid' => $fid, - 'tid' => $tid, - 'first' => '1', - 'author' => $value['username'], - 'authorid' => $value['uid'], - 'subject' => $value['subject'], - 'dateline' => $value['dateline'], - 'message' => $value['message'] - ); - $db_target->insert('forum_post', $postarr); - - if(!empty($value['summary'])) { - $postarr = array( - 'fid' => $fid, - 'tid' => $tid, - 'first' => '1', - 'author' => $value['username'], - 'authorid' => $value['uid'], - 'subject' => $value['subject'], - 'dateline' => ($value['dateline']+10), - 'message' => $value['summary'] - ); - $db_target->insert('forum_post', $postarr); - $postnum++; - } - $pollarr = array( - 'tid' => $tid, - 'overt' => 0, - 'multiple' => $value['maxchoice'] > 1 ? 1 : 0, - 'visible' => 0, - 'maxchoices' => $value['maxchoice'], - 'expiration' => $value['expiration'], - 'pollpreview' => daddslashes(implode("\t", $pollpreview)), - 'voters' => $value['voternum'] - ); - $db_target->insert('forum_poll', $pollarr); - - $query = $db_source->query("SELECT * FROM {$db_source->tablepre}polluser WHERE pid='$value[pid]'"); - while($puser = $db_source->fetch_array($query)) { - $puser['option'] = str_replace('"', '', $puser['option']); - $puser['option'] = explode('、', $puser['option']); - $optionuser[$puser['uid']] = $puser; - } - $changeoid = array(); - $query = $db_source->query("SELECT * FROM {$db_source->tablepre}polloption WHERE pid='$value[pid]'"); - while($pollopt = $db_source->fetch_array($query)) { - - $pollopt = daddslashes($pollopt, 1); - - $votes = 0; - $uids = ''; - foreach($optionuser as $uid => $polluser) { - foreach($polluser['option'] as $id => $option) { - if($option == str_replace('"', '', $pollopt['option'])) { - $votes++; - $uids .= $uid."\t"; - $optionuser[$uid]['oid'][$pollopt['oid']] = $pollopt['oid']; - } - } - } - $optionarr = array( - 'tid' => $tid, - 'votes' => $votes, - 'polloption' => $pollopt['option'], - 'voterids' => $uids - ); - $changeoid[$pollopt['oid']] = $db_target->insert('forum_polloption', $optionarr, true); - $option[$pollopt['pid']] = $pollopt; - } - if($optionuser) { - foreach($optionuser as $uid => $polluser) { - $oparr = array(); - if($polluser['oid']) { - foreach($polluser['oid'] as $key => $id) { - $oparr[$key] = $changeoid[$key]; - } - } - $userdate = array( - 'tid' => $tid, - 'uid' => intval($uid), - 'username' => daddslashes($polluser['username']), - 'options' => implode("\t", $oparr), - 'dateline' => $polluser['dateline'] - ); - $db_target->insert('forum_pollvoter', $userdate); - } - } - - $lastpost = array(); - $query = $db_source->query("SELECT * FROM ".$db_source->table('comment')." WHERE id='$value[pid]' AND idtype='pid' ORDER BY dateline"); - while($comment = $db_source->fetch_array($query)) { - $comment['message'] = html2bbcode($comment['message']); - $comment = daddslashes($comment); - $postarr = array( - 'fid' => $fid, - 'tid' => $tid, - 'first' => '0', - 'author' => $comment['author'], - 'authorid' => $comment['authorid'], - 'useip' => $comment['ip'], - 'dateline' => $comment['dateline'], - 'message' => $comment['message'] - ); - $lastpost = array( - 'lastpost' => $comment['dateline'], - 'lastposter' => $comment['author'], - ); - - $db_target->insert('forum_post', $postarr); - $db_target->insert('common_member_count', array('uid' => $comment['authorid']), 0, false, true); - $db_target->query("UPDATE ".$db_target->table('common_member_count')." SET posts=posts+1 WHERE uid='$comment[authorid]'", 'UNBUFFERED'); - } - if($lastpost) { - $db_target->update('forum_thread', $lastpost, array('tid' => $tid)); - } - $db_target->insert('common_member_count', array('uid' => $comment['authorid']), 0, false, true); - $db_target->query("UPDATE ".$db_target->table('common_member_count')." SET threads=threads+1, posts=posts+$postnum WHERE uid='$value[uid]'", 'UNBUFFERED'); - $db_target->query("UPDATE ".$db_target->table('forum_forum')." SET lastpost='$lastpost[lastpost]', threads=threads+1, posts=posts+$value[replynum], todayposts=todayposts+$value[replynum] WHERE fid='$fid'", 'UNBUFFERED'); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." pid > $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid&fid=$fid"); -} - -$maxpid = $db_target->result_first("SELECT MAX(pid) FROM ".$db_target->table('forum_post')); -$maxpid = intval($maxpid) + 1; -$db_target->query("ALTER TABLE ".$db_target->table('forum_post_tableid')." AUTO_INCREMENT=$maxpid"); -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_share.php b/utility/convert/source/uch2.0_x2.0/table/home_share.php deleted file mode 100644 index 0e0a3d4d..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_share.php +++ /dev/null @@ -1,39 +0,0 @@ -tablepre.'share'; -$table_target = $db_target->tablepre.'home_share'; - -$limit = $setting['limit']['share'] ? $setting['limit']['share'] : 1000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT sid, type, uid, username, dateline, title_template, body_template, body_data, body_general, image, - image_link, hot, hotuser FROM $table_source WHERE sid>'$start' ORDER BY sid LIMIT $limit"); -while ($share = $db_source->fetch_array($query)) { - - $nextid = intval($share['sid']); - - $share = daddslashes($share, 1); - - $data = implode_field_value($share, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." sid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_show.php b/utility/convert/source/uch2.0_x2.0/table/home_show.php deleted file mode 100644 index a0a16bdd..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_show.php +++ /dev/null @@ -1,38 +0,0 @@ -tablepre.'show'; -$table_target = $db_target->tablepre.'home_show'; - -$limit = 2000; -$nextid = 0; - -$start = getgpc('start'); -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source WHERE uid>'$start' ORDER BY uid LIMIT $limit"); -while ($show = $db_source->fetch_array($query)) { - - $nextid = intval($show['showid']); - - $show = daddslashes($show, 1); - - $data = implode_field_value($show, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($nextid) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_space.php b/utility/convert/source/uch2.0_x2.0/table/home_space.php deleted file mode 100644 index cf0296d3..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_space.php +++ /dev/null @@ -1,219 +0,0 @@ -tablepre; -$newpre = $db_target->tablepre; - -$limit = $setting['limit']['space'] ? $setting['limit']['space'] : 500; -$nextid = 0; - -$start = getgpc('start'); -$home = load_process('home'); - -$defaultgid = $db_target->result_first("SELECT groupid FROM ".$db_target->table('common_usergroup')." WHERE type='member' AND 0>=creditshigher AND 0query("SELECT s.*, sf.* - FROM {$oldpre}space s - LEFT JOIN {$oldpre}spacefield sf ON sf.uid=s.uid - WHERE s.uid>'$start' ORDER BY s.uid - LIMIT $limit"); -while ($space = $db_source->fetch_array($query)) { - - $username = daddslashes($space['username']); - foreach (array('member','member_count','member_field_forum','member_field_home','member_profile','member_status') as $value) { - if($value == 'member') { - $db_target->query("INSERT INTO {$newpre}common_{$value} (uid, username) VALUES ('$space[uid]', '$username')", 'SILENT'); - } else { - $db_target->query("INSERT INTO {$newpre}common_{$value} (uid) VALUES ('$space[uid]')", 'SILENT'); - } - } - - $nextid = $space['uid']; - - if(!empty($space['privacy'])) { - $space['privacy'] = unserialize($space['privacy']); - $space['privacy']['feed'] = array(); - $space['privacy'] = serialize($space['privacy']); - } else { - $space['privacy'] = ''; - } - $space = daddslashes($space, 1); - - $newquery = $db_target->query("SELECT * FROM {$newpre}common_member WHERE uid='$space[uid]'"); - if($newspace = $db_target->fetch_array($newquery)) { - $newspace = daddslashes($newspace, 1); - } else { - $newspace = array(); - } - - $setarr = array(); - if(empty($newspace['email'])) $setarr['email'] = $space['email']; - if(empty($newspace['username'])) $setarr['username'] = $space['username']; - if(empty($newspace['password'])) $setarr['password'] = md5(microtime().mt_rand(0, 100000)); - if(empty($newspace['emailstatus'])) $setarr['emailstatus'] = $space['emailcheck']; - if(empty($newspace['avatarstatus'])) $setarr['avatarstatus'] = $space['avatar']; - if(empty($newspace['videophotostatus'])) $setarr['videophotostatus'] = $space['videostatus']; - if(empty($newspace['regdate'])) $setarr['regdate'] = $space['dateline']; - - $setarr['newprompt'] = $space['notenum'] + $space['myinvitenum'] + $space['pokenum'] + $space['addfriendnum']; - $set['newpm'] = $space['newpm']; - - if(empty($newspace['groupid'])) { - if(empty($home['usergroup'][$space['groupid']])) { - $setarr['groupid'] = $defaultgid; - } else { - $setarr['groupid'] = intval($home['usergroup'][$space['groupid']]); - } - - } - - if($setarr) { - $updatesql = getupdatesql($setarr); - $db_target->query("UPDATE {$newpre}common_member SET $updatesql WHERE uid='$space[uid]'", "SILENT"); - } - - $setarr = array(); - $newquery = $db_target->query("SELECT * FROM {$newpre}common_member_count WHERE uid='$space[uid]'"); - if($newspace = $db_target->fetch_array($newquery)) { - $newspace = daddslashes($newspace, 1); - } else { - $newspace = array(); - } - - if(empty($home['extcredits']['credit']) || empty($home['extcredits']['experience'])) { - showmessage("发生错误,请配置积分对应关系信息"); - } - - $setarr[$home['extcredits']['credit']] = $space['credit'] + intval($newspace[$home['extcredits']['credit']]); - $setarr[$home['extcredits']['experience']] = $space['experience'] + intval($newspace[$home['extcredits']['experience']]); - - $setarr['friends'] = $space['friendnum']; - $setarr['doings'] = $space['doingnum']; - $setarr['blogs'] = $space['blognum']; - $setarr['albums'] = $space['albumnum']; - $setarr['sharings'] = $space['sharenum']; - $setarr['attachsize'] = $space['attachsize']; - $setarr['views'] = $space['viewnum']; - - if($setarr) { - $updatesql = getupdatesql($setarr); - $db_target->query("UPDATE {$newpre}common_member_count SET $updatesql WHERE uid='$space[uid]'"); - } - - $setarr = array(); - $setarr['videophoto'] = $space['videopic']; - $setarr['domain'] = $space['domain']; - $setarr['addsize'] = $space['addsize']/(1024 * 1024); - $setarr['addfriend'] = $space['addfriend']; - $setarr['recentnote'] = $space['note']; - $setarr['spacenote'] = $space['spacenote']; - $setarr['privacy'] = $space['privacy']; - $setarr['feedfriend'] = $space['feedfriend']; - $setarr['acceptemail'] = $space['sendmail']; - - if($setarr) { - $updatesql = getupdatesql($setarr); - $db_target->query("UPDATE {$newpre}common_member_field_home SET $updatesql WHERE uid='$space[uid]'"); - } - - $newquery = $db_target->query("SELECT * FROM {$newpre}common_member_profile WHERE uid='$space[uid]'"); - if($newspace = $db_target->fetch_array($newquery)) { - $newspace = daddslashes($newspace, 1); - } else { - $newspace = array(); - } - - $space['none'] = ''; - - $setarr = array(); - if(empty($newspace['gender'])) $setarr['gender'] = $space['sex']; - if(empty($newspace['birthyear'])) $setarr['birthyear'] = $space['birthyear']; - if(empty($newspace['birthmonth'])) $setarr['birthmonth'] = $space['birthmonth']; - if(empty($newspace['birthday'])) $setarr['birthday'] = $space['birthday']; - if(empty($newspace['constellation'])) $setarr['constellation'] = $space['none']; - if(empty($newspace['zodiac'])) $setarr['zodiac'] = $space['none']; - if(empty($newspace['telephone'])) $setarr['telephone'] = $space['none']; - if(empty($newspace['mobile'])) $setarr['mobile'] = $space['none']; - if(empty($newspace['idcard'])) $setarr['idcard'] = $space['none']; - if(empty($newspace['address'])) $setarr['address'] = $space['none']; - if(empty($newspace['zipcode'])) $setarr['zipcode'] = $space['none']; - if(empty($newspace['nationality'])) $setarr['nationality'] = $space['none']; - if(empty($newspace['birthprovince'])) $setarr['birthprovince'] = $space['birthprovince']; - if(empty($newspace['birthcity'])) $setarr['birthcity'] = $space['birthcity']; - if(empty($newspace['resideprovince'])) $setarr['resideprovince'] = $space['resideprovince']; - if(empty($newspace['residecity'])) $setarr['residecity'] = $space['residecity']; - if(empty($newspace['residedist'])) $setarr['residedist'] = $space['none']; - if(empty($newspace['residecommunity'])) $setarr['residecommunity'] = $space['none']; - if(empty($newspace['residesuite'])) $setarr['residesuite'] = $space['none']; - if(empty($newspace['graduateschool'])) $setarr['graduateschool'] = $space['none']; - if(empty($newspace['education'])) $setarr['education'] = $space['none']; - if(empty($newspace['occupation'])) $setarr['occupation'] = $space['none']; - if(empty($newspace['revenue'])) $setarr['revenue'] = $space['none']; - if(empty($newspace['affectivestatus'])) $setarr['affectivestatus'] = $space['none']; - if(empty($newspace['lookingfor'])) $setarr['lookingfor'] = $space['none']; - if(empty($newspace['bloodtype'])) $setarr['bloodtype'] = $space['blood']; - if(empty($newspace['height'])) $setarr['height'] = $space['none']; - if(empty($newspace['weight'])) $setarr['weight'] = $space['none']; - if(empty($newspace['alipay'])) $setarr['alipay'] = $space['none']; - if(empty($newspace['icq'])) $setarr['icq'] = $space['none']; - if(empty($newspace['qq'])) $setarr['qq'] = $space['qq']; - if(empty($newspace['yahoo'])) $setarr['yahoo'] = $space['none']; - if(empty($newspace['msn'])) $setarr['msn'] = $space['msn']; - if(empty($newspace['taobao'])) $setarr['taobao'] = $space['none']; - if(empty($newspace['site'])) $setarr['site'] = $space['none']; - if(empty($newspace['bio'])) $setarr['bio'] = $space['none']; - if(empty($newspace['interest'])) $setarr['interest'] = $space['none']; - if(empty($newspace['idcardtype'])) $setarr['idcardtype'] = $space['none']; - if(empty($newspace['company'])) $setarr['company'] = $space['none']; - if(empty($newspace['position'])) $setarr['position'] = $space['none']; - if(empty($newspace['realname'])) $setarr['realname'] = $space['name']; - - if($setarr) { - $updatesql = getupdatesql($setarr); - $db_target->query("UPDATE {$newpre}common_member_profile SET $updatesql WHERE uid='$space[uid]'"); - } - - - $newquery = $db_target->query("SELECT * FROM {$newpre}common_member_status WHERE uid='$space[uid]'"); - if($newspace = $db_target->fetch_array($newquery)) { - $newspace = daddslashes($newspace, 1); - } else { - $newspace = array(); - } - - $setarr = array(); - if(empty($newspace['regip'])) $setarr['regip'] = $space['regip']; - if(empty($newspace['lastip'])) $setarr['lastip'] = $space['regip']; - if(empty($newspace['lastvisit'])) $setarr['lastvisit'] = $space['lastlogin']; - if(empty($newspace['lastactivity'])) $setarr['lastactivity'] = $space['updatetime']; - if(empty($newspace['lastpost'])) $setarr['lastpost'] = $space['lastpost']; - if(empty($newspace['lastsendmail'])) $setarr['lastsendmail'] = $space['lastsend']; - - if($setarr) { - $updatesql = getupdatesql($setarr); - $db_target->query("UPDATE {$newpre}common_member_status SET $updatesql WHERE uid='$space[uid]'"); - } - - -} - -if($nextid) { - showmessage("继续转换数据表 {$oldpre}space uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -function getupdatesql($setarr) { - $updatearr = array(); - foreach ($setarr as $key => $value) { - $updatearr[] = "`$key`='$value'"; - } - return implode(',', $updatearr); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_userapp.php b/utility/convert/source/uch2.0_x2.0/table/home_userapp.php deleted file mode 100644 index ee6d358a..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_userapp.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'userapp'; -$table_target = $db_target->tablepre.'home_userapp'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = $setting['limit']['userapp'] ? $setting['limit']['userapp'] : 10000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_userappfield.php b/utility/convert/source/uch2.0_x2.0/table/home_userappfield.php deleted file mode 100644 index ca3acd65..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_userappfield.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'userappfield'; -$table_target = $db_target->tablepre.'home_userappfield'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = $setting['limit']['userapp'] ? $setting['limit']['userapp'] : 1000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("INSERT INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/convert/source/uch2.0_x2.0/table/home_visitor.php b/utility/convert/source/uch2.0_x2.0/table/home_visitor.php deleted file mode 100644 index 5c35a03b..00000000 --- a/utility/convert/source/uch2.0_x2.0/table/home_visitor.php +++ /dev/null @@ -1,40 +0,0 @@ -tablepre.'visitor'; -$table_target = $db_target->tablepre.'home_visitor'; - -$start = getgpc('start'); -$start = empty($start) ? 0 : intval($start); -$limit = $setting['limit']['visitor'] ? $setting['limit']['visitor'] : 2000; -$nextid = $limit + $start; -$done = true; - -if($start == 0) { - $db_target->query("TRUNCATE $table_target"); -} - -$query = $db_source->query("SELECT * FROM $table_source ORDER BY uid LIMIT $start, $limit"); -while ($value = $db_source->fetch_array($query)) { - - $done = false; - - $value = daddslashes($value, 1); - - $data = implode_field_value($value, ',', db_table_fields($db_target, $table_target)); - - $db_target->query("REPLACE INTO $table_target SET $data"); -} - -if($done == false) { - showmessage("继续转换数据表 ".$table_source." uid> $nextid", "index.php?a=$action&source=$source&prg=$curprg&start=$nextid"); -} - -?> \ No newline at end of file diff --git a/utility/oldprg/discuz/attachment.php b/utility/oldprg/discuz/attachment.php deleted file mode 100644 index 6ad1a378..00000000 --- a/utility/oldprg/discuz/attachment.php +++ /dev/null @@ -1,14 +0,0 @@ - \ No newline at end of file diff --git a/utility/oldprg/discuz/forumdisplay.php b/utility/oldprg/discuz/forumdisplay.php deleted file mode 100644 index 5cb32473..00000000 --- a/utility/oldprg/discuz/forumdisplay.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/utility/oldprg/discuz/redirect.php b/utility/oldprg/discuz/redirect.php deleted file mode 100644 index ff69b34e..00000000 --- a/utility/oldprg/discuz/redirect.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/utility/oldprg/discuz/viewthread.php b/utility/oldprg/discuz/viewthread.php deleted file mode 100644 index 4d01d87b..00000000 --- a/utility/oldprg/discuz/viewthread.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/utility/oldprg/readme.txt b/utility/oldprg/readme.txt deleted file mode 100644 index d66f4d1e..00000000 --- a/utility/oldprg/readme.txt +++ /dev/null @@ -1,14 +0,0 @@ -=============== -程 序 说 明 -=============== -本目录中的程序主要作用是确保搜索引擎对您的网站的收录,以及避免一些旧帖当中 -一些链接失效。 - -这些程序不是必须要安装的,对于一个新站点来讲,您不需要这些程序。如果搜索引擎 -对您的站点收录比较少,或者您不在乎这些收录失效,那么您也不必上传这些程序。 - -安装方法: - 选择您以前站点的程序目录,例如,您以前使用的是 Discuz! 论坛,则选择 discuz -目录,上传目录中的程序到安装好的 Discuz! X 的根目录即可。 - 如果您曾经同时安装了 UCHome 等程序,您需要进入 uchome,将里面的文件也上传 -到 Discuz! X 的目录。 \ No newline at end of file diff --git a/utility/oldprg/supesite/readme.txt b/utility/oldprg/supesite/readme.txt deleted file mode 100644 index 043ee30a..00000000 --- a/utility/oldprg/supesite/readme.txt +++ /dev/null @@ -1,23 +0,0 @@ -=============================== -SS7 转换到 Discuz! X1 注意事项 -=============================== - -问题:转换后的图片及附件地址不对? -方案: 步骤如下: -1. 在原 SS7 源码下找到图标 images/base/attachment.gif,放在 Disucuz! X1 的目录 static/image/filetype/ 下; -2. 找到 source/module/portal/portal_view.php 文件,在代码“$content['content'] = blog_bbcode($content['content']);”后换行添加以下代码: - -$ss_url = 'http://your_ss_site_url/'; // 请将此链接地址改为您的 SS 站点地址!!! -$findarr = array( - $ss_url.'batch.download.php?aid=', // 附件下载地址 - $ss_url.'attachments/', // 附件图片目录 - $ss_url.'images/base/attachment.gif' // 附件下载图标 -); -$replacearr = array( - 'porta.php?mod=attachment&id=', - $_G['setting']['attachurl'].'/portal/', - STATICURL.'image/filetype/attachment.gif' -); -$content['content'] = str_replace($findarr, $replacearr, $content['content']); - - diff --git a/utility/oldprg/uchome/invite.php b/utility/oldprg/uchome/invite.php deleted file mode 100644 index 869301c1..00000000 --- a/utility/oldprg/uchome/invite.php +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/utility/oldprg/uchome/space.php b/utility/oldprg/uchome/space.php deleted file mode 100644 index 5b87c2ea..00000000 --- a/utility/oldprg/uchome/space.php +++ /dev/null @@ -1,12 +0,0 @@ - \ No newline at end of file diff --git a/utility/restore.php b/utility/restore.php deleted file mode 100644 index 71b73e66..00000000 --- a/utility/restore.php +++ /dev/null @@ -1,945 +0,0 @@ -connect($_config['db']['1']['dbhost'], $_config['db']['1']['dbuser'], $_config['db']['1']['dbpw'], $_config['db']['1']['dbname'], $_config['db']['1']['dbcharset'])) { - show_msg('connect_error'); -} - -if($operation == 'import') { - - if(!submitcheck('importsubmit', 1)) { - $exportlog = $exportsize = $exportziplog = $exportzipsize = array(); - check_exportfile($exportlog, $exportziplog, $exportsize, $exportzipsize); - if(empty($exportlog) && empty($exportziplog)) { - show_msg('backup_file_unexist'); - } - - show_importfile_list($exportlog, $exportziplog, $exportsize, $exportzipsize); - - } else { - - $readerror = 0; - $datafile_vol1 = trim(getgpc('datafile_vol1')); - if($datafile_vol1) { - $datafile = $datafile_vol1; - } else { - $datafile = getgpc('datafile_server', 'G'); - } - if(!preg_match("#^\.\./data/backup_\w+/[\w\-]+\.sql$#i", $datafile)) { - touch($lock_file); - show_msg('database_import_format_illegal'); - } - if(file_exists($datafile) && @$fp = fopen($datafile, 'rb')) { - $confirm = trim(getgpc('confirm', 'G')); - $delunzip = getgpc('delunzip', 'G'); - $start = trim(getgpc('start', 'G')); - $start = $start ? 1 : 0; - if(!$start) { - show_msg(lang('database_import_multivol_start', TRUE, array()), - $siteurl."restore.php?operation=import&datafile_server=$datafile&autoimport=yes&importsubmit=yes&start=yes".(!empty($confirm) ? '&confirm=yes' : '').(!empty($delunzip) ? '&delunzip=yes' : ''), - 'redirect'); - } - $confirm = $confirm ? 1 : 0; - $sqldump = fgets($fp, 256); - $identify = explode(',', base64_decode(preg_replace("/^# Identify:\s*(\w+).*/s", "\\1", $sqldump))); - $dumpinfo = array('method' => $identify[3], 'volume' => intval($identify[4]), 'tablepre' => $identify[5], 'dbcharset' => strtolower($identify[6])); - if(!$confirm) { - $showmsg = ''; - if($dumpinfo['tablepre'] != $_config['db']['1']['tablepre'] && !getgpc('ignore_tablepre', 'G')) { - $showmsg .= lang('tableprediff'); - } - if($dumpinfo['dbcharset'] != strtolower($_config['db']['1']['dbcharset'])) { - $showmsg .= lang('dbcharsetdiff'); - } - if($showmsg) { - show_msg(lang('different_dbcharset_tablepre', TRUE, array('diff' => $showmsg)), $siteurl.'restore.php?operation=import&datafile_server='.$datafile.'&autoimport=yes&importsubmit=yes&start=yes&confirm=yes', 'confirm'); - } - } - - if($dumpinfo['method'] == 'multivol') { - $sqldump .= fread($fp, filesize($datafile)); - } - fclose($fp); - } else { - if(getgpc('autoimport', 'G')) { - touch($lock_file); - show_msg('database_import_multivol_succeed', '', 'message', 1); - } else { - show_msg('database_import_file_illegal'); - } - } - - if($dumpinfo['method'] == 'multivol') { - $sqlquery = splitsql($sqldump); - unset($sqldump); - - foreach($sqlquery as $sql) { - - $sql = syntablestruct(trim($sql), $db->version() > '4.1', DBCHARSET); - - if($sql != '') { - $db->query($sql, 'SILENT'); - if(($sqlerror = $db->error()) && $db->errno() != 1062) { - $db->halt('MySQL Query Error', $sql); - } - } - } - - if($delunzip) { - @unlink($datafile); - } - - $datafile_next = preg_replace("/-($dumpinfo[volume])(\..+)$/", "-".($dumpinfo['volume'] + 1)."\\2", $datafile); - $datafile_next = urlencode($datafile_next); - if($dumpinfo['volume'] == 1) { - show_msg(lang('database_import_multivol_redirect', TRUE, array('volume' => $dumpinfo['volume'])), - $siteurl."restore.php?operation=import&datafile_server=$datafile_next&autoimport=yes&importsubmit=yes&start=yes&confirm=yes".(!empty($delunzip) ? '&delunzip=yes' : ''), - 'redirect'); - } elseif(getgpc('autoimport', 'G')) { - show_msg(lang('database_import_multivol_redirect', TRUE, array('volume' => $dumpinfo['volume'])), $siteurl."restore.php?operation=import&datafile_server=$datafile_next&autoimport=yes&importsubmit=yes&start=yes&confirm=yes".(!empty($delunzip) ? '&delunzip=yes' : ''), 'redirect'); - } else { - show_msg('database_import_succeed', '', 'message', 1); - } - } elseif($dumpinfo['method'] == 'shell') { - touch($lock_file); - $dbhost = $_config['db'][1]['dbhost']; - $dbname = $_config['db'][1]['dbname']; - $dbpw = $_config['db'][1]['dbpw']; - $dbuser = $_config['db'][1]['dbuser']; - list($dbhost, $dbport) = explode(':', $dbhost); - $query = $db->query("SHOW VARIABLES LIKE 'basedir'"); - list(, $mysql_base) = $db->fetch_array($query, $db->drivertype == 'mysqli' ? MYSQLI_NUM : MYSQL_NUM); - $datafile = addslashes(dirname(dirname(__FILE__))).str_replace('..', '', $datafile) ; - $mysqlbin = $mysql_base == '/' ? '' : addslashes(rtrim($mysql_base, '/\\')).'/bin/'; - @shell_exec($mysqlbin.'mysql -h"'.$dbhost.'"'.($dbport ? (is_numeric($dbport) ? ' -P'.$dbport : ' -S"'.$dbport.'"') : '').' -u"'.$dbuser.'" -p"'.$dbpw.'" "'.$dbname.'" < '.$datafile); - if($delunzip) { - @unlink($datafile); - } - show_msg('database_import_succeed', '', 'message', 1); - } else { - show_msg('database_import_format_illegal'); - } - } - -} elseif($operation == 'importzip') { - - if(!getgpc('datafile_server')) { - show_msg('database_import_file_illegal'); - } else { - $datafile_server = getgpc('datafile_server'); - if(!@file_exists($datafile_server)) { - show_msg('database_import_file_illegal'); - } - } - $datafile_vol1 = trim(getgpc('datafile_vol1', 'G')); - $multivol = intval(getgpc('multivol', 'G')); - - $confirm = trim(getgpc('confirm', 'G')); - $delunzip = getgpc('delunzip', 'G'); - $start = trim(getgpc('start', 'G')); - $start = $start ? 1 : 0; - if(!$start) { - show_msg(lang('database_import_multivol_unzip_start', TRUE, array()), $siteurl.'restore.php?operation=importzip&multivol='.$multivol.'&datafile_vol1='.$datafile_vol1.'&datafile_server='.$datafile_server.'&importsubmit=yes&start=yes'.(!empty($confirm) ? '&confirm=yes' : ''), 'redirect'); - } - - require_once ROOT_PATH.'./source/class/class_zip.php'; - $unzip = new SimpleUnzip(); - $backupdir = substr($datafile_server, 8, 13); - $unzip->ReadFile($datafile_server); - - if($unzip->Count() == 0 || $unzip->GetError(0) != 0 || !preg_match("/\.sql$/i", $importfile = $unzip->GetName(0))) { - show_msg('database_import_file_illegal'); - } - - $identify = explode(',', base64_decode(preg_replace("/^# Identify:\s*(\w+).*/s", "\\1", substr($unzip->GetData(0), 0, 256)))); - $confirm = getgpc('confirm', 'G'); - $confirm = !empty($confirm) ? 1 : 0; - if(!$confirm && $identify[1] != DISCUZ_VERSION) { - show_msg('database_import_confirm', $siteurl.'restore.php?operation=importzip&datafile_server='.$datafile_server.'&importsubmit=yes&start=yes&confirm=yes', 'confirm'); - } - - $sqlfilecount = 0; - foreach($unzip->Entries as $entry) { - if(preg_match("/\.sql$/i", $entry->Name)) { - $fp = fopen('../data/'.$backupdir.'/'.$entry->Name, 'w'); - fwrite($fp, $entry->Data); - fclose($fp); - $sqlfilecount++; - } - } - - if(!$sqlfilecount) { - show_msg('database_import_file_illegal'); - } - - $info = ''.basename($datafile_server).'
    '.lang('version').': '.$identify[1].'
    '.lang('type').': '.lang('db_export_'.$identify[2]).'
    '.lang('db_method').': '.($identify[3] == 'multivol' ? lang('db_multivol') : lang('db_shell')).'
    '; - - if($multivol) { - $multivol++; - $datafile_server = preg_replace("/-(\d+)(\..+)$/", "-$multivol\\2", $datafile_server); - if(file_exists($datafile_server)) { - show_msg(lang('database_import_multivol_unzip_redirect', TRUE, array('multivol' => $multivol)), $siteurl.'restore.php?operation=importzip&multivol='.$multivol.'&datafile_vol1='.$datafile_vol1.'&datafile_server='.$datafile_server.'&importsubmit=yes&start=yes&confirm=yes', 'redirect'); - } else { - show_msg('database_import_multivol_confirm', $siteurl.'restore.php?operation=import&datafile_server='.$datafile_vol1.'&importsubmit=yes&delunzip=yes', 'confirm'); - } - } - - if($identify[3] == 'multivol' && $identify[4] == 1 && preg_match("/-1(\..+)$/", $datafile_server)) { - $datafile_vol1 = $datafile_server; - $datafile_server = preg_replace("/-1(\..+)$/", "-2\\1", $datafile_server); - - if(file_exists($datafile_server)) { - show_msg(lang('database_import_multivol_unzip_redirect', TRUE, array('multivol' => 1)), $siteurl.'restore.php?operation=importzip&multivol=1&datafile_vol1=../data/'.$backupdir.'/'.$importfile.'&datafile_server='.$datafile_server.'&importsubmit=yes&start=yes&confirm=yes', 'redirect'); - } - } - - show_msg(lang('database_import_unzip', TRUE, array('info' => $info)), $siteurl.'restore.php?operation=import'.($datafile_vol1 ? '&datafile_vol1='.$datafile_vol1 : '').'&datafile_server=../data/'.$backupdir.'/'.$importfile.'&importsubmit=yes&delunzip=yes', 'confirm'); -} - -function get_backup_dir() { - - $backupdirs = array(); - $dir = dir(ROOT_PATH.'./data'); - while(($file = $dir->read()) !== FALSE) { - if(filetype(ROOT_PATH.'./data/'.$file) == 'dir' && preg_match('/^backup_\w+/', $file)) { - $backupdirs[] = $file; - } - } - $dir->close(); - return $backupdirs; -} - -function check_exportfile(&$exportlog, &$exportziplog, &$exportsize, &$exportzipsize) { - - $backupdirs = get_backup_dir(); - if(empty($backupdirs)) { - return; - } - $exportfiletime = $exportzipfiletime = array(); - foreach($backupdirs as $backupdir) { - $dir = dir(ROOT_PATH.'./data/'.$backupdir); - while($entry = $dir->read()) { - $entry = '../data/'.$backupdir.'/'.$entry; - if(is_file($entry)) { - if(preg_match("/\.sql$/i", $entry)) { - $filesize = filesize($entry); - $filemtime = filemtime($entry); - $fp = fopen($entry, 'rb'); - $identify = explode(',', base64_decode(preg_replace("/^# Identify:\s*(\w+).*/s", "\\1", fgets($fp, 256)))); - fclose($fp); - $key = preg_replace('/^(.+?)(\-\d+)\.sql$/i', '\\1', basename($entry)); - $exportlog[$key][$identify[4]] = array( - 'version' => $identify[1], - 'type' => $identify[2], - 'method' => $identify[3], - 'volume' => $identify[4], - 'tablepre' => $identify[5], - 'dbcharset' => $identify[6], - 'filename' => $entry, - 'dateline' => $filemtime, - 'size' => $filesize - ); - $exportsize[$key] += $filesize; - $exportfiletime[$key] = $filemtime; - } elseif(preg_match("/\.zip$/i", $entry)) { - $key = preg_replace('/^(.+?)(\-\d+)\.zip$/i', '\\1', basename($entry)); - $filesize = filesize($entry); - $filemtime = filemtime($entry); - $exportziplog[$key][] = array( - 'type' => 'zip', - 'filename' => $entry, - 'size' => $filesize, - 'dateline' => $filemtime - ); - $exportzipsize[$key] += $filesize; - $exportzipfiletime[$key] = $filemtime; - } - } - } - $dir->close(); - if (!empty($exportlog)) { - array_multisort($exportfiletime, SORT_DESC, SORT_STRING, $exportlog); - } - if (!empty($exportziplog)) { - array_multisort($exportzipfiletime, SORT_DESC, SORT_STRING, $exportziplog); - } - } -} - -function show_importfile_list($exportlog = array(), $exportziplog = array(), $exportsize = array(), $exportzipsize = array()) { - - show_header(); - show_tips('db_import_tips'); - - $title = array('filename', 'director', 'version', 'time', 'type', 'size', 'db_method', 'db_volume', ''); - echo "\n\n"; - foreach($title as $col) { - echo ""; - } - echo "\n"; - - foreach($exportlog as $key => $val) { - $info = $val[1]; - $info['dateline'] = is_int($info['dateline']) ? gmdate('Y-m-d H:i:s', $info['dateline'] + 3600 * 8) : lang('unknown'); - $info['size'] = sizecount($exportsize[$key]); - $info['volume'] = count($val); - $info['method'] = $info['type'] != 'zip' ? ($info['method'] == 'multivol' ? lang('db_multivol') : lang('db_shell')) : ''; - echo ""; - echo - "", - '', - '', - '', - '', - '', - '', - '', - '" - ; - echo "\n"; - echo ''; - foreach($val as $info) { - $info['dateline'] = is_int($info['dateline']) ? gmdate('Y-m-d H:i:s', $info['dateline'] + 3600 * 8) : lang('unknown'); - $info['size'] = sizecount($info['size']); - echo ""; - echo - "", - "", - "", - '', - "", - '', - "", - '' - ; - echo "\n"; - } - echo ''; - } - - foreach($exportziplog as $key => $val) { - sort($val);//确保-1.zip排前面,才会自动解压-2.zip - $info = $val[0]; - $info['dateline'] = is_int($info['dateline']) ? gmdate('Y-m-d H:i:s', $info['dateline'] + 3600 * 8) : lang('unknown'); - $info['size'] = sizecount($exportzipsize[$key]); - $info['volume'] = count($val); - $info['method'] = $info['method'] == 'multivol' ? lang('db_multivol') : lang('db_zip'); - echo ""; - echo - "", - "", - "", - "", - "", - "", - "" - ; - echo "\n"; - echo ''; - foreach($val as $info) { - $info['dateline'] = is_int($info['dateline']) ? gmdate('Y-m-d H:i:s', $info['dateline'] + 3600 * 8) : lang('unknown'); - $info['size'] = sizecount($info['size']); - $info['method'] = $info['method'] == 'multivol' ? lang('db_multivol') : lang('db_zip'); - echo ""; - echo - "", - "", - "", - "", - "" - ; - echo "\n"; - } - echo ''; - } - - echo "
    ".lang($col)."
    ".basename($info['filename'])."'.dirname($info['filename']).''.$info['version'].''.$info['dateline'].''.lang('db_export_'.$info['type']).''.$info['size'].''.$info['method'].''.$info['volume'].''.($info['type'] == 'zip' ? "".lang('db_import_unzip')."" : "".lang('import')."")."
    ".basename($info['filename'])."".dirname($info['filename'])."".$info['dateline']."".($info['volume'] > 1 ? lang('db_multivol') : '').lang('db_export_'.$info['type'])."".$info['size']."".$info['method']."".lang('db_import_unzip')."
    \n"; - show_footer(); - -} - -function submitcheck($var, $allowget = 0, $seccodecheck = 0, $secqaacheck = 0) { - if(!getgpc($var)) { - return FALSE; - } else { - if($allowget || ($_SERVER['REQUEST_METHOD'] == 'POST' && empty($_SERVER['HTTP_X_FLASH_VERSION']) && (empty($_SERVER['HTTP_REFERER']) || - preg_replace("/https?:\/\/([^\:\/]+).*/i", "\\1", $_SERVER['HTTP_REFERER']) == preg_replace("/([^\:]+).*/", "\\1", $_SERVER['HTTP_HOST'])))) { - return TRUE; - } else { - echo 'submit_invalid';exit; - } - } -} - -function getgpc($k, $type='GP') { - $type = strtoupper($type); - switch($type) { - case 'G': $var = &$_GET; break; - case 'P': $var = &$_POST; break; - case 'C': $var = &$_COOKIE; break; - default: - if(isset($_GET[$k])) { - $var = &$_GET; - } else { - $var = &$_POST; - } - break; - } - - return isset($var[$k]) ? $var[$k] : NULL; - -} - -function sizecount($size) { - if($size >= 1073741824) { - $size = round($size / 1073741824 * 100) / 100 . ' GB'; - } elseif($size >= 1048576) { - $size = round($size / 1048576 * 100) / 100 . ' MB'; - } elseif($size >= 1024) { - $size = round($size / 1024 * 100) / 100 . ' KB'; - } else { - $size = $size . ' Bytes'; - } - return $size; -} - -function show_header() { - ob_start(); - $charset = CHARSET; - print <<< EOT - - - - -เครื่องมือสำหรับกู้คืนฐานข้อมูลของ Discuz! - - - - - - -
    -

    - เครื่องมือสำหรับกู้คืนฐานข้อมูลของ Discuz! -   หากมีคำถามใดๆ ในการใช้งาน กรุณาเข้าเยี่ยมชมได้ที่ http://www.discuz.net -

    -
    -EOT; -} - -function show_footer($quit = true) { - - echo <<< EOT -
    - -
    - - -EOT; - ob_flush(); - exit(); -} - -function show_msg($message, $url_forward = '', $type = 'message', $success = 0) { - global $siteurl; - - show_header(); - - $message = lang($message); - - if($type == 'message') { - echo ''.$message.''; - } elseif($type == 'redirect') { - echo "$message ..."; - echo "


    เบราว์เซอร์จะข้ามไปที่หน้าโดยอัตโนมัติ เว้นแต่เบราว์เซอร์ของคุณจะไม่เปลี่ยนเส้นทางโดยอัตโนมัติเป็นเวลานาน กรุณาคลิกที่นี่"; - echo ""; - } elseif($type == 'confirm') { - echo "$message"; - echo "


     "; - } - - show_footer(); -} - -function show_error($type, $errors = '', $quit = false) { - - $title = lang($type); - $comment = lang($type.'_comment', false); - $errormsg = ''; - if($errors) { - if(!empty($errors)) { - foreach ((array)$errors as $k => $v) { - if(is_numeric($k)) { - $comment .= "
  • ".lang($v)."
  • "; - } - } - } - } - - if($step > 0) { - echo "
    $title
      $comment
    "; - } else { - echo "
    $title
      $comment
    "; - } - - if($quit) { - echo '
    '.lang('error_quit_msg').'





    '; - } - - echo '
    '; - - $quit && show_footer(); -} - - -function show_tips($tip, $title = '', $comment = '', $style = 1) { - $title = empty($title) ? lang($tip) : $title; - $comment = empty($comment) ? lang($tip.'_comment', FALSE) : $comment; - if($style) { - echo "
    $title"; - } else { - echo "
    $title
      "; - } - $comment && print('
      '.$comment); - echo "
    "; -} - -function lang($lang_key, $force = true, $replace = array()) { - global $_config; - $lang = array( - 'filename' => 'ชื่อไฟล์', - 'director' => 'ไดเร็กทอรี', - 'version' => 'เวอร์ชัน', - 'time' => 'เวลาสำรองข้อมูล', - 'type' => 'ประเภท', - 'size' => 'ขนาด', - 'db_method' => 'วิธีการ', - 'db_volume' => 'Number of rolls', - 'import' => 'Import', - 'different_dbcharset_tablepre' => 'It is detected that the imported backup data is different from the {diff} of the configuration file. Do you want to continue running this program?', - 'db_import_tips' => 'This function will completely overwrite the original data while restoring the backup data. Please make sure that the forum has been closed before restoring, and the forum can be reopened after the restoration is complete.
    You can view the detailed information of the site\'s backup files through the data backup management function, delete expired backups, and import required backups.
    The entire process of restoring data will be completed on a new page. After you successfully restore the data, please delete the restore.php file in time.
    ', - 'db_export_discuz' => 'Discuz! Data (excluding UCenter)', - 'db_export_discuz_uc' => 'Discuz! and UCenter data', - 'db_multivol' => 'Multi-volume', - 'db_import_unzip' => 'Unzip', - 'db_export_custom' => 'Custom backup', - 'db_export_zip' => 'Compressed backup', - 'db_zip' => 'ZIP', - 'db_shell' => 'Shell', - 'unknown' => 'Unknown', - 'backup_file_unexist' => 'The backup file does not exist', - 'connect_error' => 'Failed to connect to the database, please check whether the database configuration files config/config_global.php and config/config_ucenter.php exist and whether the configuration is correct', - 'dbcharsetdiff' => ' Database character set ('.$_config['db']['1']['dbcharset'].')', - 'tableprediff' => ' Table prefix ('.$_config['db']['1']['tablepre'].')', - 'database_import_multivol_succeed' => 'The sub-volume data is successfully imported into the site database
    Please update the cache in the background
    Please delete the restore.php file as soon as possible to avoid affecting the data', - 'database_import_file_illegal' => 'The data file does not exist: the server may not allow the upload of the file or the file size exceeds the limit', - 'database_import_multivol_prompt' => 'The first volume of sub-volume data is successfully imported into the database. Do you need to automatically import the other sub-volumes of this backup?', - 'database_import_succeed' => 'The data has been successfully imported into the site database
    Please update the cache in the background
    Please delete the restore.php file as soon as possible to avoid affecting the data', - 'database_import_format_illegal' => 'The data file is not in Discuz! format and cannot be imported', - 'database_import_unzip' => '{info}
    After the backup file is decompressed, do you need to import the backup automatically? The unzipped file will be deleted after import', - 'database_import_multivol_unzip' => '{info}
    After the backup file is decompressed, do you need to automatically decompress other sub-volume files?', - 'database_import_multivol_unzip_start' => 'The backup file is being decompressed, the program will continue automatically', - 'database_import_multivol_unzip_redirect' => 'Data file #{multivol} is successfully decompressed, the program will continue automatically', - 'database_import_confirm' => 'Importing data that is inconsistent with the current Discuz! version is very likely to cause unsolvable failures. Are you sure to continue?', - 'database_import_confirm_sql' => 'Are you sure to import this backup?', - 'database_import_confirm_zip' => 'Are you sure to unzip this backup?', - 'database_import_multivol_confirm' => 'After all the sub-volume files are decompressed, do you need to automatically import the backup? The unzipped file will be deleted after import', - 'database_import_multivol_start' => 'Importing the backup file, the program will continue automatically', - 'database_import_multivol_redirect' => 'Data file #{volume} successfully imported, the program will automatically continue', - 'error_quit_msg' => 'The above issues must be resolved to continue to restore data', - 'restored_error' => 'The data recovery function is locked and has been restored. If you are sure you want to restore the data, please delete it on the server ./data/restore.lock', - ); - $return = isset($lang[$lang_key]) ? $lang[$lang_key] : ($force ? $lang_key : ''); - if($replace && is_array($replace)) { - $searchs = $replaces = array(); - foreach($replace as $k => $v) { - $searchs[] = '{'.$k.'}'; - $replaces[] = $v; - } - $return = str_replace($searchs, $replaces, $return); - } - return $return; -} - -function splitsql($sql) { - $sql = str_replace("\r", "\n", $sql); - $ret = array(); - $num = 0; - $queriesarray = explode(";\n", trim($sql)); - unset($sql); - foreach($queriesarray as $query) { - $queries = explode("\n", trim($query)); - foreach($queries as $query) { - $ret[$num] .= $query[0] == "#" ? NULL : $query; - } - $num++; - } - return($ret); -} - -function syntablestruct($sql, $version, $dbcharset) { - - if(strpos(trim(substr($sql, 0, 18)), 'CREATE TABLE') === FALSE) { - return $sql; - } - - $sqlversion = strpos($sql, 'ENGINE=') === FALSE ? FALSE : TRUE; - - if($sqlversion === $version) { - - return $sqlversion && $dbcharset ? preg_replace(array('/ character set \w+/i', '/ collate \w+/i', "/DEFAULT CHARSET=\w+/is"), array('', '', "DEFAULT CHARSET=$dbcharset"), $sql) : $sql; - } - - if($version) { - return preg_replace(array('/TYPE=HEAP/i', '/TYPE=(\w+)/is'), array("ENGINE=MEMORY DEFAULT CHARSET=$dbcharset", "ENGINE=\\1 DEFAULT CHARSET=$dbcharset"), $sql); - - } else { - return preg_replace(array('/character set \w+/i', '/collate \w+/i', '/ENGINE=MEMORY/i', '/\s*DEFAULT CHARSET=\w+/is', '/\s*COLLATE=\w+/is', '/ENGINE=(\w+)(.*)/is'), array('', '', 'ENGINE=HEAP', '', '', 'TYPE=\\1\\2'), $sql); - } -} - -function is_https() { - if (isset($_SERVER["HTTPS"]) && strtolower($_SERVER["HTTPS"]) != "off") { - return true; - } - if (isset($_SERVER["HTTP_X_FORWARDED_PROTO"]) && strtolower($_SERVER["HTTP_X_FORWARDED_PROTO"]) == "https") { - return true; - } - if (isset($_SERVER["HTTP_SCHEME"]) && strtolower($_SERVER["HTTP_SCHEME"]) == "https") { - return true; - } - if (isset($_SERVER["HTTP_FROM_HTTPS"]) && strtolower($_SERVER["HTTP_FROM_HTTPS"]) != "off") { - return true; - } - if (isset($_SERVER["SERVER_PORT"]) && $_SERVER["SERVER_PORT"] == 443) { - return true; - } - return false; -} - -class dbstuff { - var $querynum = 0; - var $drivertype = 'mysql'; - var $link; - var $histories; - var $time; - var $tablepre; - - function connect($dbhost, $dbuser, $dbpw, $dbname = '', $dbcharset, $pconnect = 0, $tablepre='', $time = 0) { - $this->time = $time; - $this->tablepre = $tablepre; - if($pconnect) { - if(!$this->link = mysql_pconnect($dbhost, $dbuser, $dbpw)) { - return FALSE; - } - } else { - if(!$this->link = mysql_connect($dbhost, $dbuser, $dbpw, 1)) { - return FALSE; - } - } - - if($this->version() > '4.1') { - if($dbcharset) { - mysql_query("SET character_set_connection=".$dbcharset.", character_set_results=".$dbcharset.", character_set_client=binary", $this->link); - } - - if($this->version() > '5.0.1') { - mysql_query("SET sql_mode=''", $this->link); - } - } - - if($dbname) { - mysql_select_db($dbname, $this->link); - } - return TRUE; - } - - function fetch_array($query, $result_type = MYSQL_ASSOC) { - return mysql_fetch_array($query, $result_type); - } - - function result_first($sql, &$data) { - $query = $this->query($sql); - $data = $this->result($query, 0); - } - - function fetch_first($sql, &$arr) { - $query = $this->query($sql); - $arr = $this->fetch_array($query); - } - - function fetch_all($sql, &$arr) { - $query = $this->query($sql); - while($data = $this->fetch_array($query)) { - $arr[] = $data; - } - } - - function cache_gc() { - $this->query("DELETE FROM {$this->tablepre}sqlcaches WHERE expiry<$this->time"); - } - - function query($sql, $type = '', $cachetime = FALSE) { - $func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ? 'mysql_unbuffered_query' : 'mysql_query'; - if(!($query = $func($sql, $this->link)) && $type != 'SILENT') { - $this->halt('SQL:', $sql); - } - $this->querynum++; - $this->histories[] = $sql; - return $query; - } - - function affected_rows() { - return mysql_affected_rows($this->link); - } - - function error() { - return (($this->link) ? mysql_error($this->link) : mysql_error()); - } - - function errno() { - return intval(($this->link) ? mysql_errno($this->link) : mysql_errno()); - } - - function result($query, $row) { - $query = @mysql_result($query, $row); - return $query; - } - - function num_rows($query) { - $query = mysql_num_rows($query); - return $query; - } - - function num_fields($query) { - return mysql_num_fields($query); - } - - function free_result($query) { - return mysql_free_result($query); - } - - function insert_id() { - return ($id = mysql_insert_id($this->link)) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0); - } - - function fetch_row($query) { - $query = mysql_fetch_row($query); - return $query; - } - - function fetch_fields($query) { - return mysql_fetch_field($query); - } - - function version() { - return mysql_get_server_info($this->link); - } - - function close() { - return mysql_close($this->link); - } - - function halt($message = '', $sql = '') { - show_error('run_sql_error', $message.$sql.'
    Error:'.$this->error().'
    Errno:'.$this->errno(), 0); - } -} - -class dbstuffi { - var $querynum = 0; - var $drivertype = 'mysqli'; - var $link; - var $histories; - var $time; - var $tablepre; - - function connect($dbhost, $dbuser, $dbpw, $dbname = '', $dbcharset, $pconnect = 0, $tablepre='', $time = 0) { - $this->time = $time; - $this->tablepre = $tablepre; - $this->link = new mysqli(); - if(!$this->link->real_connect($dbhost, $dbuser, $dbpw, $dbname)) { - return FALSE; - } - - if($this->version() > '4.1') { - if($dbcharset) { - $this->link->set_charset($dbcharset); - } - - if($this->version() > '5.0.1') { - $this->query("SET sql_mode=''"); - } - } - - return TRUE; - } - - function fetch_array($query, $result_type = MYSQLI_ASSOC) { - return $query ? $query->fetch_array($result_type) : null; - } - - function result_first($sql, &$data) { - $query = $this->query($sql); - $data = $this->result($query, 0); - } - - function fetch_first($sql, &$arr) { - $query = $this->query($sql); - $arr = $this->fetch_array($query); - } - - function fetch_all($sql, &$arr) { - $query = $this->query($sql); - while($data = $this->fetch_array($query)) { - $arr[] = $data; - } - } - - function cache_gc() { - $this->query("DELETE FROM {$this->tablepre}sqlcaches WHERE expiry<$this->time"); - } - - function query($sql, $type = '', $cachetime = FALSE) { - $resultmode = $type == 'UNBUFFERED' ? MYSQLI_USE_RESULT : MYSQLI_STORE_RESULT; - if(!($query = $this->link->query($sql, $resultmode)) && $type != 'SILENT') { - $this->halt('SQL:', $sql); - } - $this->querynum++; - $this->histories[] = $sql; - return $query; - } - - function affected_rows() { - return $this->link->affected_rows; - } - - function error() { - return (($this->link) ? $this->link->error : mysqli_error()); - } - - function errno() { - return intval(($this->link) ? $this->link->errno : mysqli_errno()); - } - - function result($query, $row) { - if(!$query || $query->num_rows == 0) { - return null; - } - $query->data_seek($row); - $assocs = $query->fetch_row(); - return $assocs[0]; - } - - function num_rows($query) { - $query = $query ? $query->num_rows : 0; - return $query; - } - - function num_fields($query) { - return $query ? $query->field_count : 0; - } - - function free_result($query) { - return $query ? $query->free() : false; - } - - function insert_id() { - return ($id = $this->link->insert_id) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0); - } - - function fetch_row($query) { - $query = $query ? $query->fetch_row() : null; - return $query; - } - - function fetch_fields($query) { - return $query ? $query->fetch_field() : null; - } - - function version() { - return $this->link->server_info; - } - - function close() { - return $this->link->close(); - } - - function halt($message = '', $sql = '') { - show_error('run_sql_error', $message.$sql.'
    Error:'.$this->error().'
    Errno:'.$this->errno(), 0); - } -} - -?> \ No newline at end of file diff --git a/utility/update.php b/utility/update.php deleted file mode 100644 index 5958bd62..00000000 --- a/utility/update.php +++ /dev/null @@ -1,2287 +0,0 @@ -cachelist = $cachelist; -$discuz->init_cron = false; -$discuz->init_setting = true; -$discuz->init_user = false; -$discuz->init_session = false; -$discuz->init_misc = false; - -$discuz->init(); -$config = array( - 'dbcharset' => $_G['config']['db']['1']['dbcharset'], - 'charset' => $_G['config']['output']['charset'], - 'tablepre' => $_G['config']['db']['1']['tablepre'] -); -$theurl = 'update.php'; - -$_G['siteurl'] = preg_replace('/\/install\/$/i', '/', $_G['siteurl']); - -if($_GET['from']) { - if(md5($_GET['from'].$_G['config']['security']['authkey']) != $_GET['frommd5']) { - $refererarr = parse_url(dreferer()); - list($dbreturnurl, $dbreturnurlmd5) = explode("\t", authcode($_GET['from'])); - if(md5($dbreturnurl) == $dbreturnurlmd5) { - $dbreturnurlarr = parse_url($dbreturnurl); - - } else { - $dbreturnurlarr = parse_url($_GET['from']); - } - parse_str($dbreturnurlarr['query'], $dbreturnurlparamarr); - $operation = $dbreturnurlparamarr['operation']; - $version = $dbreturnurlparamarr['version']; - $release = $dbreturnurlparamarr['release']; - if(!$operation || !$version || !$release) { - show_msg('ตัวแปรไม่ถูกต้อง'); - } - $time = $_G['timestamp']; - dheader('Location: '.$_G['siteurl'].basename($refererarr['path']).'?action=upgrade&operation='.$operation.'&version='.$version.'&release='.$release.'&ungetfrom='.$time.'&ungetfrommd5='.md5($time.$_G['config']['security']['authkey'])); - } -} - -$lockfile = DISCUZ_ROOT.'./data/update.lock'; -if($_GET['lock']){ - @touch($lockfile); - @unlink(DISCUZ_ROOT.'./install/update.php'); - show_msg('ขอแสดงความยินดี โครงสร้างฐานข้อมูลของคุณได้ถูกอัปเกรดเสร็จเรียบร้อยแล้ว'); -} -if(file_exists($lockfile) && !$_GET['from']) { - show_msg('เกิดข้อผิดพลาด ไม่สามารถเริ่มการอัปเดตได้ กรุณาลบไฟล์ ./data/update.lock แล้วเรียกใช้งานไฟล์นี้อีกครั้ง'); -} - -$devmode = file_exists(DISCUZ_ROOT.'./install/data/install_dev.sql'); -$sqlfile = DISCUZ_ROOT.($devmode ? './install/data/install_dev.sql' : './install/data/install.sql'); - -if(!file_exists($sqlfile)) { - show_msg('ไม่พบไฟล์ SQL '.$sqlfile.''); -} -$first_to_2_5 = !C::t('common_setting')->skey_exists('strongpw'); -$first_to_3_0 = !C::t('common_setting')->skey_exists('antitheft'); -if($_POST['delsubmit']) { - if(!empty($_POST['deltables'])) { - foreach ($_POST['deltables'] as $tname => $value) { - DB::query("DROP TABLE `".DB::table($tname)."`"); - } - } - if(!empty($_POST['delcols'])) { - foreach ($_POST['delcols'] as $tname => $cols) { - foreach ($cols as $col => $indexs) { - if($col == 'PRIMARY') { - DB::query("ALTER TABLE ".DB::table($tname)." DROP PRIMARY KEY", 'SILENT'); - } elseif($col == 'KEY' || $col == 'UNIQUE') { - foreach ($indexs as $index => $value) { - DB::query("ALTER TABLE ".DB::table($tname)." DROP INDEX `$index`", 'SILENT'); - } - } else { - DB::query("ALTER TABLE ".DB::table($tname)." DROP `$col`"); - } - } - } - } - - show_msg('ดำเนินการลบตารางและฟิลด์เสร็จเรียบร้อยแล้ว', $theurl.'?step=style'); -} - -function waitingdb($curstep, $sqlarray) { - global $theurl; - foreach($sqlarray as $key => $sql) { - $sqlurl .= '&sql[]='.md5($sql); - $sendsql .= ''; - } - show_msg("เพิ่มประสิทธิภาพในตารางข้อมูล", $theurl.'?step=waitingdb&nextstep='.$curstep.$sqlurl.'&sendsql='.base64_encode($sendsql), 5000, 1); -} -if(empty($_GET['step'])) $_GET['step'] = 'start'; - -if($_GET['step'] == 'start') { - include_once('../config/config_ucenter.php'); - include_once('../uc_client/client.php'); - $version = uc_check_version(); - $version = $version['db']; - if(!$devmode && !C::t('common_setting')->fetch('bbclosed')) { - C::t('common_setting')->update('bbclosed', 1); - require_once libfile('function/cache'); - updatecache('setting'); - show_msg('กรุณาอย่าปิดหน้าเว็บนี้ จนกว่าจะดำเนินการเสร็จสิ้น...', $theurl.'?step=start', 5000); - } - if(version_compare($version, '1.5.2') <= 0) { - show_msg('กรุณาอัปเดต UCenter ให้เป็นเวอร์ชัน 1.6.0 หรือใหม่กว่า
    ถ้าคุณใช้ Discuz! X ที่มาพร้อมกับ UCenter กรุณาดาวน์โหลด UCenter 1.6.0, ในโฟลเดอร์ utilities จะมีไฟล์สำหรับอัปเดต คัดลอกหรืออัปโหลดไปยังโฟลเดอร์ uc_server ของ Discuz! X แล้วเรียกใช้การอัปเดต'); - } else { - show_msg('คำอธิบาย:
    การอัปเดตนี้ จะเป็นการนำเข้าข้อมูลที่เกี่ยวข้องจากไฟล์ SQL เพื่อทำการซิงโครไนส์ฐานข้อมูลปัจจุบันของคุณ
    - โปรดตรวจสอบให้แน่ใจว่าโฟลเดอร์นี้มีไฟล์ ./data/install.sql ล่าสุดสำหรับดิสคัสเวอร์ชันนี้แล้ว

    - และพร้อมกันนี้ระบบจะปิดการใช้งานปลั๊กอินทั้งหมด(แนะนำให้ปิดการใช้งานด้วยตนเองก่อนเริ่มการอัปเดต) หลังจากการอัปเดตเสร็จสิ้น ให้ดำเนินการเปิดการใช้งานปลั๊กอินแต่ละตัว พร้อมทั้งทดสอบการใช้งานไปด้วย เพื่อตรวจหาข้อผิดพลาดของปลั๊กอินที่อาจจะเกิดขึ้นได้

    - เริ่มการอัปเดต'); - } -} elseif ($_GET['step'] == 'waitingdb') { - $query = DB::fetch_all("SHOW FULL PROCESSLIST"); - foreach($query as $row) { - if(in_array(md5($row['Info']), $_GET['sql'])) { - $list .= '[ระยะเวลา]:'.$row['Time'].'[สถานะ]:'.$row['State'].'[ข้อมูล]:'.$row['Info'].'

    '; - } - } - if(empty($list) && empty($_GET['sendsql'])) { - $msg = 'พร้อมสำหรับขั้นตอนต่อไป กรุณารอสักครู่...'; - $notice = ''; - $url = "?step=$_GET[nextstep]"; - $time = 5; - } else { - $msg = 'กำลังอัปเดตข้อมูล โปรดรอสักครู่...'; - $notice = '

    คำสั่งอัปเดตฐานข้อมูลต่อไปที่จะถูกดำเนินการ:
    '.$list.base64_decode($_GET['sendsql']); - $sqlurl = implode('&sql[]=', $_GET['sql']); - $url = "?step=waitingdb&nextstep=$_GET[nextstep]&sql[]=".$sqlurl; - $time = 20; - } - show_msg($msg, $theurl.$url, $time*1000, 0, $notice); -} elseif ($_GET['step'] == 'prepare') { - if(!C::t('common_setting')->skey_exists('group_recommend')) { - C::t('forum_groupinvite')->truncate(); - } - if(DB::fetch_first("SHOW COLUMNS FROM ".DB::table('forum_activityapply')." LIKE 'contact'")) { - $query = DB::query("UPDATE ".DB::table('forum_activityapply')." SET message=CONCAT_WS(' ติดต่อเรา:', message, contact) WHERE contact<>''"); - DB::query("ALTER TABLE ".DB::table('forum_activityapply')." DROP contact"); - } - if($row = DB::fetch_first("SHOW COLUMNS FROM ".DB::table('forum_postcomment')." LIKE 'authorid'")) { - if(strstr($row['Type'], 'unsigned')) { - DB::query("ALTER TABLE ".DB::table('forum_postcomment')." CHANGE authorid authorid mediumint(8) NOT NULL default '0'"); - DB::query("UPDATE ".DB::table('forum_postcomment')." SET authorid='-1' WHERE authorid='0'"); - } - } - if(!$row = DB::fetch_first("SHOW COLUMNS FROM ".DB::table('common_failedlogin')." LIKE 'username'")) { - DB::query("TRUNCATE ".DB::table('common_failedlogin')); - DB::query("ALTER TABLE ".DB::table('common_failedlogin')." ADD username char(32) NOT NULL default '' AFTER ip"); - DB::query("ALTER TABLE ".DB::table('common_failedlogin')." DROP PRIMARY KEY"); - DB::query("ALTER TABLE ".DB::table('common_failedlogin')." ADD PRIMARY KEY ipusername (ip,username)"); - } - if(!$row = DB::fetch_first("SHOW COLUMNS FROM ".DB::table('forum_forumfield')." LIKE 'seodescription'")) { - DB::query("ALTER TABLE ".DB::table('forum_forumfield')." ADD seodescription text NOT NULL default '' COMMENT 'คำอธิบายเกี่ยวกับ SEO เว็บบอร์ด' AFTER keywords"); - DB::query("UPDATE ".DB::table('forum_forumfield')." SET seodescription=description WHERE membernum='0'"); - } - if(DB::fetch_first("SHOW TABLES LIKE '".DB::table('common_tagitem')."'")) { - $noexist_itemkey = true; - $query = DB::query("SHOW INDEX FROM ".DB::table('common_tagitem')); - while($row = DB::fetch($query)) { - if($row['Key_name'] == 'item') { - $noexist_itemkey = false; - break; - } - } - if($noexist_itemkey) { - $query = DB::query("SELECT *, count(idtype) AS rcount FROM ".DB::table('common_tagitem')." GROUP BY tagid,itemid,idtype ORDER BY rcount DESC"); - while($row = DB::fetch($query)) { - if($row['rcount'] > 1) { - DB::query("DELETE FROM ".DB::table('common_tagitem')." WHERE tagid='$row[tagid]' AND itemid='$row[itemid]' AND idtype='$row[idtype]' LIMIT ".($row['rcount'] - 1)); - } else { - break; - } - } - } - } - $posttables = get_special_tables_array('forum_post'); - $posttables[] = 'forum_post'; - foreach($posttables as $post_tablename) { - if(!DB::fetch_first("SHOW COLUMNS FROM ".DB::table($post_tablename)." LIKE 'position'")) { - $sql[] = "ALTER TABLE ".DB::table($post_tablename)." ORDER BY tid ASC, first DESC, pid ASC"; - $replycreditsql = ''; - if(DB::fetch_first("SHOW COLUMNS FROM ".DB::table($post_tablename)." LIKE 'replycredit'")) { - $replycreditsql = "CHANGE `replycredit` `replycredit` int(10) NOT NULL default '0',"; - } - $sql[] = "ALTER TABLE ".DB::table($post_tablename)." CHANGE `pid` `pid` INT(10) UNSIGNED NOT NULL,$replycreditsql CHANGE `status` `status` int(10) NOT NULL default '0', ADD UNIQUE KEY pid (pid), DROP PRIMARY KEY, ADD `position` INT(8) UNSIGNED NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY(`tid`, `position`), DROP INDEX authorid, ADD INDEX authorid (authorid,invisible)"; - if(!$_GET['waitingdb']) { - waitingdb('prepare', $sql); - } else { - if($sql[$_GET[sqlid]]) { - DB::query($sql[$_GET[sqlid]], array(), false, true); - } - } - exit(); - } - } - - $diydata = array('common_diy_data' => 0, 'common_template_block' => 0); - foreach(DB::fetch_all('SHOW KEYS FROM '.DB::table('common_diy_data')) as $_key) { - if($_key['Key_name'] == 'PRIMARY') { - $diydata['common_diy_data']++; - } - } - foreach(DB::fetch_all('SHOW KEYS FROM '.DB::table('common_template_block')) as $_key) { - if($_key['Key_name'] == 'PRIMARY') { - $diydata['common_template_block']++; - } - } - if($diydata['common_diy_data'] == 1) { - DB::query('ALTER TABLE '.DB::table('common_diy_data').' DROP PRIMARY KEY'); - } - if($diydata['common_template_block'] == 2) { - DB::query('ALTER TABLE '.DB::table('common_template_block').' DROP PRIMARY KEY'); - } - - show_msg('ขั้นตอนต่อไปอัปเดตโครงสร้างฐานข้อมูล', $theurl.'?step=sql'); -} elseif ($_GET['step'] == 'sql') { - - $sql = implode('', file($sqlfile)); - preg_match_all("/CREATE\s+TABLE.+?pre\_(.+?)\s*\((.+?)\)\s*(ENGINE|TYPE)\s*=\s*(\w+)/is", $sql, $matches); - $newtables = empty($matches[1])?array():$matches[1]; - $newsqls = empty($matches[0])?array():$matches[0]; - if(empty($newtables) || empty($newsqls)) { - show_msg('ไฟล์ SQL ว่างเปล่า กรุณาตรวจสอบ'); - } - - $i = empty($_GET['i'])?0:intval($_GET['i']); - $count_i = count($newtables); - if($i>=$count_i) { - show_msg('การอัปเดตโครงสร้างฐานข้อมูลเสร็จเรียบร้อยแล้ว อัปเดตข้อมูลถัดไป', $theurl.'?step=data'); - } - $newtable = $newtables[$i]; - - $specid = intval($_GET['specid']); - if($specid && in_array($newtable, array('forum_post', 'forum_thread'))) { - $spectable = $newtable; - $newtable = get_special_table_by_num($newtable, $specid); - } - - $newcols = getcolumn($newsqls[$i]); - - if(!$query = DB::query("SHOW CREATE TABLE ".DB::table($newtable), 'SILENT')) { - preg_match("/(CREATE TABLE .+?)\s*(ENGINE|TYPE)\s*=\s*(\w+)/is", $newsqls[$i], $maths); - - $maths[3] = strtoupper($maths[3]); - if($maths[3] == 'MEMORY' || $maths[3] == 'HEAP') { - $type = helper_dbtool::dbversion() > '4.1' ? " ENGINE=MEMORY".(empty($config['dbcharset'])?'':" DEFAULT CHARSET=$config[dbcharset]" ): " TYPE=HEAP"; - } else { - $type = helper_dbtool::dbversion() > '4.1' ? " ENGINE=MYISAM".(empty($config['dbcharset'])?'':" DEFAULT CHARSET=$config[dbcharset]" ): " TYPE=MYISAM"; - } - $usql = $maths[1].$type; - - $usql = str_replace("CREATE TABLE IF NOT EXISTS pre_", 'CREATE TABLE IF NOT EXISTS '.$config['tablepre'], $usql); - $usql = str_replace("CREATE TABLE pre_", 'CREATE TABLE '.$config['tablepre'], $usql); - - if(!DB::query($usql, 'SILENT')) { - show_msg('การเพิ่มตาราง '.DB::table($newtable).' เกิดข้อผิดพลาด กรุณารันคำสั่ง SQL ต่อไปนี้ด้วยตนเองแล้วเรียกใช้การอัปเดตอีกครั้ง:

    '.dhtmlspecialchars($usql)); - } else { - $msg = 'เพิ่มตาราง '.DB::table($newtable).' เสร็จเรียบร้อยแล้ว!'; - } - } else { - $value = DB::fetch($query); - $oldcols = getcolumn($value['Create Table']); - - $updates = array(); - $allfileds =array_keys($newcols); - foreach ($newcols as $key => $value) { - if($key == 'PRIMARY') { - if($value != $oldcols[$key]) { - if(!empty($oldcols[$key])) { - $usql = "RENAME TABLE ".DB::table($newtable)." TO ".DB::table($newtable.'_bak'); - if(!DB::query($usql, 'SILENT')) { - show_msg('การอัปเดตตาราง '.DB::table($newtable).' เกิดข้อผิดพลาด กรุณาอัปเดตตารางนี้ด้วยตนเองแล้วเรียกใช้การอัปเดตอีกครั้ง:

    อัปเดตคำสั่ง SQL:
    '.dhtmlspecialchars($usql)."

    Error: ".DB::error()."
    Errno.: ".DB::errno()); - } else { - $msg = 'เปลี่ยนชื่อตาราง '.DB::table($newtable).' เสร็จเรียบร้อยแล้ว!'; - show_msg($msg, $theurl.'?step=sql&i='.$_GET['i']); - } - } - $updates[] = "ADD PRIMARY KEY $value"; - } - } elseif ($key == 'KEY') { - foreach ($value as $subkey => $subvalue) { - if(!empty($oldcols['KEY'][$subkey])) { - if($subvalue != $oldcols['KEY'][$subkey]) { - $updates[] = "DROP INDEX `$subkey`"; - $updates[] = "ADD INDEX `$subkey` $subvalue"; - } - } else { - $updates[] = "ADD INDEX `$subkey` $subvalue"; - } - } - } elseif ($key == 'UNIQUE') { - foreach ($value as $subkey => $subvalue) { - if(!empty($oldcols['UNIQUE'][$subkey])) { - if($subvalue != $oldcols['UNIQUE'][$subkey]) { - $updates[] = "DROP INDEX `$subkey`"; - $updates[] = "ADD UNIQUE INDEX `$subkey` $subvalue"; - } - } else { - $usql = "ALTER TABLE ".DB::table($newtable)." DROP INDEX `$subkey`"; - DB::query($usql, 'SILENT'); - $updates[] = "ADD UNIQUE INDEX `$subkey` $subvalue"; - } - } - } else { - if(!empty($oldcols[$key])) { - if(strtolower($value) != strtolower($oldcols[$key])) { - $updates[] = "CHANGE `$key` `$key` $value"; - } - } else { - $i = array_search($key, $allfileds); - $fieldposition = $i > 0 ? 'AFTER `'.$allfileds[$i-1].'`' : 'FIRST'; - $updates[] = "ADD `$key` $value $fieldposition"; - } - } - } - - if(!empty($updates)) { - $usql = "ALTER TABLE ".DB::table($newtable)." ".implode(', ', $updates); - if(!DB::query($usql, 'SILENT')) { - show_msg('การอัปเดตตาราง '.DB::table($newtable).' เกิดข้อผิดพลาด กรุณาอัปเดตตารางนี้ด้วยตนเองแล้วเรียกใช้การอัปเดตอีกครั้ง:

    อัปเดตคำสั่ง SQL:
    '.dhtmlspecialchars($usql)."

    Error: ".DB::error()."
    Errno.: ".DB::errno()); - } else { - $msg = 'อัปเดตตาราง '.DB::table($newtable).' เสร็จเรียบร้อยแล้ว!'; - } - } else { - $msg = 'ตาราง '.DB::table($newtable).' ไม่จำเป็นต้องอัปเดต ข้ามขั้นตอนนี้'; - } - } - - if($specid) { - $newtable = $spectable; - } - - if(get_special_table_by_num($newtable, $specid+1)) { - $next = $theurl . '?step=sql&i='.($_GET['i']).'&specid='.($specid + 1); - } else { - $next = $theurl.'?step=sql&i='.($_GET['i']+1); - } - show_msg("[ $i / $count_i ] ".$msg, $next); - -} elseif ($_GET['step'] == 'data') { - if(empty($_GET['op']) || $_GET['op'] == 'realname') { - - $nextop = 'profile'; - - $p = 1000; - $i = !empty($_GET['i']) ? intval($_GET['i']) : 0; - $n = 0; - if($i==0) { - $value = DB::fetch_first('SELECT * FROM '.DB::table('common_member_profile_setting')." WHERE fieldid = 'realname'"); - if(!empty($value)) { - show_msg("อัปเดตคุณสมบัติชื่อจริงเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - } - DB::query("INSERT INTO ".DB::table('common_member_profile_setting')." VALUES ('realname', '1', '0', '1', 'ชื่อจริง', '', '0', '0', '0', '0', '1', 'text', '0', '', '', '0', '0')"); - } - $t = DB::result_first('SELECT uid FROM '.DB::table('common_member')." ORDER BY uid DESC LIMIT 1"); - $names = $uids = array(); - $query = DB::query('SELECT * FROM '.DB::table('common_member')." WHERE uid>'$i' AND realname != '' LIMIT $p"); - while($value=DB::fetch($query)) { - $n = intval($value['uid']); - $value['uid'] = intval($value['uid']); - $value['realname'] = $value['realname']; - C::t('common_member')->update($value['uid'], array('realname'=>'')); - C::t('common_member_profile')->update($value['uid'], array('realname'=>$value['realname'])); - $names[$value['uid']] = $value['realname']; - } - - if($n>0) { - show_msg("อัปเดตคุณสมบัติชื่อจริง[$n/$t]", "$theurl?step=data&op=realname&i=$n"); - } else { - show_msg("อัปเดตคุณสมบัติชื่อจริงเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - } - - } elseif($_GET['op'] == 'profile') { - $nextop = 'setting'; - $value = DB::result_first('SELECT count(*) FROM '.DB::table('common_member_profile_setting')." WHERE fieldid = 'birthdist'"); - if(!$value) { - DB::query("INSERT INTO ".DB::table('common_member_profile_setting')." VALUES ('birthdist', 1, 0, 0, 'เกิดที่ตำบล/เขต', 'ตำบล/เขต ที่เกิด', 0, 0, 0, 0, 0, 0, 0, 'select', 0, '', '')"); - DB::query("INSERT INTO ".DB::table('common_member_profile_setting')." VALUES ('birthcommunity', 1, 0, 0, 'เกิดที่อำเภอ', '', 0, 0, 0, 0, 0, 0, 0, 'select', 0, '', '')"); - DB::query("UPDATE ".DB::table('common_member_profile_setting')." SET title='บ้านเกิด' WHERE fieldid = 'birthcity'"); - DB::query("UPDATE ".DB::table('common_member_profile_setting')." SET title='ที่อยู่ปัจจุบัน' WHERE fieldid = 'residecity'"); - } - $count = DB::result_first("SELECT COUNT(*) FROM ".DB::table('common_district')." WHERE `level`='1' AND `usetype`>'0'"); - if(!$count) { - DB::query("UPDATE ".DB::table('common_district')." SET `usetype`='3' WHERE `level` = '1'"); - } - $profile = DB::fetch_first('SELECT * FROM '.DB::table('common_member_profile_setting')." WHERE fieldid = 'birthday'"); - if($profile['title'] == 'วันเกิด') { - DB::query("UPDATE ".DB::table('common_member_profile_setting')." SET title='วันเกิด' WHERE fieldid = 'birthday'"); - DB::query("UPDATE ".DB::table('common_member_profile_setting')." SET title='ประเภทการ์ด' WHERE fieldid = 'idcardtype'"); - DB::query("UPDATE ".DB::table('common_member_profile_setting')." SET title='AliPay' WHERE fieldid = 'alipay'"); - DB::query("UPDATE ".DB::table('common_member_profile_setting')." SET title='ICQ' WHERE fieldid = 'icq'"); - DB::query("UPDATE ".DB::table('common_member_profile_setting')." SET title='QQ' WHERE fieldid = 'qq'"); - DB::query("UPDATE ".DB::table('common_member_profile_setting')." SET title='MSN' WHERE fieldid = 'msn'"); - DB::query("UPDATE ".DB::table('common_member_profile_setting')." SET title='TaoBao' WHERE fieldid = 'taobao'"); - } - show_msg("อัปเดตข้อมูลสมาชิกเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'setting') { - $nextop = 'admingroup'; - $settings = $newsettings = array(); - - $settings = C::t('common_setting')->fetch_all(); - - if(!isset($settings['relatetime'])) { - $newsettings['relatetime'] = 60; - } - - if(!isset($settings['portalstatus'])) { - $newsettings['portalstatus'] = 1; - } - - if(!isset($settings['homestatus'])) { - $newsettings['homestatus'] = 1; - } - - if(isset($settings['thumbsource']) && !$settings['sourcewidth'] && !$settings['sourceheight']) { - $newsettings['sourcewidth'] = $settings['thumbwidth']; - $newsettings['sourceheight'] = $settings['thumbheight']; - } - - if(empty($settings['my_siteid']) && !empty($settings['connectsiteid'])) { - $newsettings['my_siteid'] = $settings['connectsiteid']; - C::t('common_setting')->delete('connectsiteid'); - } - - if(empty($settings['my_sitekey']) && !empty($settings['connectsitekey'])) { - $newsettings['my_sitekey'] = $settings['connectsitekey']; - C::t('common_setting')->delete('connectsitekey'); - } - - $newsettings['adminnotifytypes'] = 'verifythread,verifypost,verifyuser,verifyblog,verifydoing,verifypic,verifyshare,verifycommontes,verifyrecycle,verifyrecyclepost,verifyarticle,verifyacommont,verifymedal,verify_1,verify_2,verify_3,verify_4,verify_5,verify_6,verify_7'; - - if(!isset($settings['allowwidthauto'])) { - $newsettings['allowwidthauto'] = 1; - $newsettings['switchwidthauto'] = 1; - } - if(!$settings['activitypp']) { - $newsettings['activitypp'] = 8; - } - if(!$settings['followretainday']) { - $newsettings['followretainday'] = 7; - } - if(!isset($settings['allowpostcomment'])) { - $newsettings['allowpostcomment'] = array('1'); - } - - if(!isset($settings['styleid1'])) { - $newsettings['styleid1'] = 1; - } - - if(!isset($settings['styleid2'])) { - $newsettings['styleid2'] = 1; - } - - if(!isset($settings['styleid3'])) { - $newsettings['styleid3'] = 1; - } - - if($settings['heatthread']) { - $settings['heatthread'] = dunserialize($settings['heatthread']); - if(empty($settings['heatthread']['type'])) { - $settings['heatthread']['type'] = 1; - $settings['heatthread']['period'] = 15; - } - if(empty($settings['heatthread']['guidelimit'])) { - $settings['heatthread']['guidelimit'] = 3; - } - $newsettings['heatthread'] = $settings['heatthread']; - } - - if($settings['seotitle'] && dunserialize($settings['seotitle']) === FALSE) { - $rownew = array('forum' => $settings['seotitle']); - $newsettings['seotitle'] = $rownew; - } - if($settings['seokeywords'] && dunserialize($settings['seokeywords']) === FALSE) { - $rownew = array('forum' => $settings['seokeywords']); - $newsettings['seokeywords'] = $rownew; - } - if($settings['seodescription'] && dunserialize($settings['seodescription']) === FALSE) { - $rownew = array('forum' => $settings['seodescription']); - $newsettings['seodescription'] = $rownew; - } - if($settings['watermarkminheight'] && dunserialize($settings['watermarkminheight']) === FALSE) { - $rownew = array('portal' => $settings['watermarkminheight'], 'forum' => $settings['watermarkminheight'], 'album' => $settings['watermarkminheight']); - $newsettings['watermarkminheight'] = $rownew; - } - if($settings['watermarkminwidth'] && dunserialize($settings['watermarkminwidth']) === FALSE) { - $rownew = array('portal' => $settings['watermarkminwidth'], 'forum' => $settings['watermarkminwidth'], 'album' => $settings['watermarkminwidth']); - $newsettings['watermarkminwidth'] = $rownew; - } - if($settings['watermarkquality'] && dunserialize($settings['watermarkquality']) === FALSE) { - $rownew = array('portal' => $settings['watermarkquality'], 'forum' => $settings['watermarkquality'], 'album' => $settings['watermarkquality']); - $newsettings['watermarkquality'] = $rownew; - } - if($settings['watermarkstatus'] && dunserialize($settings['watermarkstatus']) === FALSE) { - $rownew = array('portal' => $settings['watermarkstatus'], 'forum' => $settings['watermarkstatus'], 'album' => $settings['watermarkstatus']); - $newsettings['watermarkstatus'] = $rownew; - } - if($settings['watermarktrans'] && dunserialize($settings['watermarktrans']) === FALSE) { - $rownew = array('portal' => $settings['watermarktrans'], 'forum' => $settings['watermarktrans'], 'album' => $settings['watermarktrans']); - $newsettings['watermarktrans'] = $rownew; - } - if($settings['watermarktype'] && dunserialize($settings['watermarktype']) === FALSE) { - $watermarktype_map = array( - 0 => 'gif', - 1 => 'png', - 2 => 'text', - ); - $rownew = array('portal' => $watermarktype_map[$settings['watermarktype']], 'forum' => $watermarktype_map[$settings['watermarktype']], 'album' => $watermarktype_map[$settings['watermarktype']]); - $newsettings['watermarktype'] = $rownew; - } - if($settings['watermarktext'] && dunserialize($settings['watermarktext']) === FALSE) { - $rownew = array(); - $watermarktext = (array)dunserialize($settings['watermarktext']); - foreach($watermarktext as $data_k => $data_v) { - $rownew[$data_k]['portal'] = $data_v; - $rownew[$data_k]['forum'] = $data_v; - $rownew[$data_k]['album'] = $data_v; - } - $newsettings['watermarktext'] = $rownew; - } - if(!$settings['mobile']) { - $newsettings['mobile'] = array('allowmobile' => 0, 'mobilepreview' => 1); - } - if(!$settings['card']) { - $newsettings['card'] = array('open' => 0); - } - $newsettings['group_allowfeed'] = '1'; - if(empty($settings['relatenum'])) { - $newsettings['relatenum'] = '10'; - } - if(!isset($settings['profilegroup'])) { - $profilegroupnew = array( - 'base' => - array ( - 'available' => 1, - 'displayorder' => 0, - 'title' => 'ข้อมูลพื้นฐาน', - 'field' => - array ( - 'realname' => 'realname', - 'gender' => 'gender', - 'birthday' => 'birthday', - 'birthcity' => 'birthcity', - 'residecity' => 'residecity', - 'residedist' => 'residedist', - 'affectivestatus' => 'affectivestatus', - 'lookingfor' => 'lookingfor', - 'bloodtype' => 'bloodtype', - 'field1' => 'field1', - 'field2' => 'field2', - 'field3' => 'field3', - 'field4' => 'field4', - 'field5' => 'field5', - 'field6' => 'field6', - 'field7' => 'field7', - 'field8' => 'field8', - ), - ), - 'contact' => - array ( - 'title' => 'ข้อมูลการติดต่อ', - 'available' => '1', - 'displayorder' => '1', - 'field' => - array ( - 'telephone' => 'telephone', - 'mobile' => 'mobile', - 'icq' => 'icq', - 'qq' => 'qq', - 'yahoo' => 'yahoo', - 'msn' => 'msn', - 'taobao' => 'taobao', - ), - ), - 'edu' => - array ( - 'available' => 1, - 'displayorder' => 2, - 'title' => 'ข้อมูลการศึกษา', - 'field' => - array ( - 'graduateschool' => 'graduateschool', - 'education' => 'education', - ), - ), - 'work' => - array ( - 'available' => 1, - 'displayorder' => 3, - 'title' => 'ข้อมูลการทำงาน', - 'field' => - array ( - 'occupation' => 'occupation', - 'company' => 'company', - 'position' => 'position', - 'revenue' => 'revenue', - ), - ), - 'info' => - array ( - 'title' => 'ข้อมูลส่วนตัว', - 'available' => '1', - 'displayorder' => '4', - 'field' => - array ( - 'idcardtype' => 'idcardtype', - 'idcard' => 'idcard', - 'address' => 'address', - 'zipcode' => 'zipcode', - 'site' => 'site', - 'bio' => 'bio', - 'interest' => 'interest', - 'sightml' => 'sightml', - 'customstatus' => 'customstatus', - 'timeoffset' => 'timeoffset', - ), - ), - ); - $newsettings['profilegroup'] = $profilegroupnew; - } - if(!isset($settings['ranklist'])) { - $newsettings['ranklist'] = array( - 'status' => '0', - 'cache_time' => '1', - 'index_select' => 'thisweek', - 'member' => array('available' => '0', 'cache_time' => '5', 'show_num' => '20',), - 'thread' => array('available' => '0', 'cache_time' => '5', 'show_num' => '20',), - 'blog' => array('available' => '0', 'cache_time' => '5', 'show_num' => '20',), - 'poll' => array('available' => '0', 'cache_time' => '5', 'show_num' => '20',), - 'activity' => array('available' => '0', 'cache_time' => '5', 'show_num' => '20',), - 'picture' => array('available' => '0', 'cache_time' => '5', 'show_num' => '20',), - 'forum' => array('available' => '0', 'cache_time' => '5', 'show_num' => '20',), - 'group' => array('available' => '0', 'cache_time' => '5', 'show_num' => '20',), - ); - } - if(!isset($settings['ipregctrltime'])) { - $newsettings['ipregctrltime'] = '72'; - } - DB::query("REPLACE INTO ".DB::table('common_setting')." VALUES ('regname', 'register')"); - $newsettings['regname'] = 'register'; - if(empty($settings['reglinkname'])) { - $newsettings['reglinkname'] = 'ลงทะเบียน'; - } - - if(empty($settings['domain'])) { - $newsettings['domain'] = array( - 'defaultindex' => 'forum.php', - 'holddomain' => 'www|*blog*|*space*', - 'list' => array(), - 'app' => array('portal' => '', 'forum' => '', 'group' => '', 'home' => '', 'default' => '',), - 'root' => array('home' => '', 'group' => '', 'forum' => '', 'topic' => '', 'channel' => '',), - ); - } - if(empty($settings['group_recommend'])) { - if($settings['newbiespan'] > 0) { - $newsettings['newbiespan'] = round($settings['newbiespan'] * 60); - } - DB::query("UPDATE ".DB::table('common_member_field_forum')." SET attentiongroup=''"); - - $query = DB::query("SELECT f.fid, f.name, ff.description, ff.icon FROM ".DB::table('forum_forum')." f LEFT JOIN ".DB::table('forum_forumfield')." ff USING(fid) WHERE f.status='3' AND f.type='sub' ORDER BY f.commoncredits desc LIMIT 8"); - while($row = DB::fetch($query)) { - $row['name'] = addslashes($row['name']); - $settings['attachurl'] .= substr($settings['attachurl'], -1, 1) != '/' ? '/' : ''; - if($row['icon']) { - $row['icon'] = $settings['attachurl'].'group/'.$row['icon']; - } else { - $row['icon'] = 'static/image/common/groupicon.gif'; - } - $row['description'] = addslashes($row['description']); - $group_recommend[$row[fid]] = $row; - } - $newsettings['group_recommend'] = $group_recommend; - } - - if(!DB::result_first("SELECT COUNT(*) FROM ".DB::table('common_magic')." WHERE credit>'0'")) { - $creditstranssi = explode(',', $settings['creditstrans']); - $creditstran = $creditstranssi[3] ? $creditstranssi[3] : $creditstranssi[0]; - DB::update('common_magic', array('credit' => $creditstran)); - } - if(!isset($settings['allowviewuserthread'])) { - $allowviewuserthread = array('allow'=>'1','fids'=>array()); - $query = DB::query('SELECT ff.fid,ff.viewperm FROM '.DB::table('forum_forum').' f LEFT JOIN '.DB::table('forum_forumfield')." ff ON f.fid = ff.fid WHERE f.status='1' AND f.type IN ('forum','sub')"); - while($value = DB::fetch($query)) { - $arr = !empty($value['viewperm']) ? explode("\t", $value['viewperm']) : array(); - if(empty($value['viewperm']) || in_array('7', $arr) || in_array($settings['newusergroupid'], $arr) ) { - $allowviewuserthread['fids'][] = $value['fid']; - } - } - $newsettings['allowviewuserthread'] = $allowviewuserthread; - } - if(!isset($settings['focus'])) { - $focusnew = array('title' => 'เว็บมาสเตอร์แนะนำ', 'cookie' => 1); - $newsettings['focus'] = $focusnew; - } else { - $focus = dunserialize($settings['focus']); - if(!isset($focus['cookie'])) { - $focus['cookie'] = 1; - $newsettings['focus'] = $focus; - } - } - if(!isset($settings['onlyacceptfriendpm'])) { - $onlyacceptfriendpmnew = '0'; - $newsettings['onlyacceptfriendpm'] = $onlyacceptfriendpmnew; - } - if(!isset($settings['pmreportuser'])) { - $pmreportusernew = '1'; - $newsettings['pmreportuser'] = $pmreportusernew; - } - if(!isset($settings['chatpmrefreshtime'])) { - $chatpmrefreshtimenew = '8'; - $newsettings['chatpmrefreshtime'] = $chatpmrefreshtimenew; - } - if(!isset($settings['preventrefresh'])) { - $preventrefreshnew = '1'; - $newsettings['preventrefresh'] = $preventrefreshnew; - } - if(!isset($settings['targetblank'])) { - $targetblanknew = '0'; - $newsettings['targetblank'] = $targetblanknew; - } - if(!isset($settings['article_tags'])) { - $article_tagsnew = array(1 => 'ต้นฉบับ', 2 => 'ร้อนแรง', 3 => 'รูปถ่าย', 4 => 'ร้ายแรง', 5 => 'หัวข้อข่าว', 6 => 'สไลด์', 7 => 'เลื่อน', 8 => 'แนะนำ'); - $newsettings['article_tags'] = $article_tagsnew; - } - if(empty($settings['anonymoustext'])) { - $newsettings['anonymoustext'] = 'ไม่ระบุชื่อ'; - } - if(!$word_type_count = DB::result_first("SELECT count(*) FROM ".DB::table('common_word_type')."")) { - DB::query("INSERT INTO ".DB::table('common_word_type')." VALUES('1', 'การเมือง'),('2', 'โฆษณา')"); - } - if(!isset($settings['userreasons'])) { - $newsettings['userreasons'] = 'ถูกใจ\r\nรักเลย\r\nฮ่าๆ\r\nว้าว\r\nเศร้า\r\nโกรธ'; - } - if(!$forum_typevar_search = C::t('forum_typevar')->count_by_search(2)) { - C::t('forum_typevar')->update_by_search(1, array('search' => 3)); - } - if(($seccodecheck = $settings['seccodestatus'])) { - if(!($seccodecheck & 16)) { - $seccodecheck = setstatus(5, 1, $seccodecheck); - $newsettings['seccodestatus'] = $seccodecheck; - } - } - $seccodedata = dunserialize($settings['seccodedata']); - if(!$seccodedata['rule']) { - $seccodestatuss = sprintf('%05b', $seccodecheck); - $seccodedata['rule']['register']['allow'] = $seccodestatuss{4}; - $seccodedata['rule']['login']['allow'] = $seccodestatuss{3}; - $seccodedata['rule']['post']['allow'] = $seccodestatuss{2}; - $seccodedata['rule']['password']['allow'] = $seccodestatuss{1}; - $seccodedata['rule']['card']['allow'] = $seccodestatuss{0}; - $seccodedata['seccodedata']['type'] = intval($seccodedata['seccodedata']['type']); - $newsettings['seccodedata'] = serialize($seccodedata); - } - if(!isset($settings['collectionteamworkernum'])) { - $newsettings['collectionteamworkernum'] = '3'; - } - if(!isset($settings['collectionnum'])) { - $newsettings['collectionnum'] = '5'; - } - if(!$settings['numbercard']) { - $newsettings['numbercard'] = 'a:1:{s:3:"row";a:3:{i:1;s:7:"threads";i:2;s:5:"posts";i:3;s:7:"credits";}}'; - } - if(!isset($settings['threadguestlite'])) { - $newsettings['threadguestlite'] = '1'; - } - - $settings['search'] = dunserialize($settings['search']); - if(!is_array($settings['search']['collection'])) { - $newsettings['search'] = $settings['search']; - $newsettings['search']['collection']['status'] = '1'; - $newsettings['search']['collection']['searchctrl'] = '10'; - $newsettings['search']['collection']['maxspm'] = '10'; - $newsettings['search']['collection']['maxsearchresults'] = '500'; - DB::query("UPDATE ".DB::table('common_usergroup_field')." SET allowsearch = allowsearch | 64 WHERE groupid<'4' OR groupid>'9'"); - } - - if(empty($settings['lazyload'])) { - $newsettings['lazyload'] = 0; - } - if(empty($settings['guide'])) { - $newsettings['guide'] = array('hotdt' => 604800, 'digestdt' => 604800); - } - - $settings['memory'] = isset($settings['memory']) ? dunserialize($settings['memory']) : array(); - if(empty($settings['memory']) || isset($settings['memory']['diyblock']['enable'])) { - $memory = array(); - if(isset($settings['memory']['diyblock']['enable'])) { - foreach($settings['memory'] as $k => $v) { - if(!empty($v['enable'])) { - $memory['memory'][$k] = $v['ttl']; - } - } - } - unset($memory['forum_post']); - $newsettings['memory'] = array_merge(array('common_member' => 0,'common_member_count' => 0,'common_member_status' => 0,'common_member_profile' => 0, - 'common_member_field_home' => 0,'common_member_field_forum' => 0,'common_member_verify' => 0, - 'forum_thread' => 172800, 'forum_thread_forumdisplay' => 300, 'forum_collectionrelated' => 0, 'forum_postcache' => 300, - 'forum_collection' => 300,'home_follow' => 86400, 'forumindex' => 30, 'diyblock' => 300, 'diyblockoutput' => 30), $memory); - } - - if(!isset($settings['blockmaxaggregationitem'])) { - $newsettings['blockmaxaggregationitem'] = 20000; - } - - if(!isset($settings['showfollowcollection'])) { - $newsettings['showfollowcollection'] = 8; - } - - if(!isset($settings['antitheft'])) { - $newsettings['antitheft'] = array('allow' => 0, 'max' => 200); - } - - if(!isset($settings['repliesrank'])) { - $newsettings['repliesrank'] = 1; - $newsettings['threadblacklist'] = 1; - $newsettings['threadhotreplies'] = 3; - $newsettings['threadfilternum'] = 10; - $newsettings['hidefilteredpost'] = 1; - $newsettings['nofilteredpost'] = 0; - $newsettings['filterednovote'] = 1; - } - - $group_userperm = dunserialize($settings['group_userperm']); - if(!isset($group_userperm['allowlivethread'])) { - $group_userperm['allowlivethread'] = '1'; - $newsettings['group_userperm'] = serialize($group_userperm); - } - - if(!isset($settings['darkroom'])) { - $newsettings['darkroom'] = '1'; - } - - if(!isset($settings['showfjump'])) { - $newsettings['showfjump'] = 1; - } - if(!isset($settings['grid'])) { - $newsettings['grid'] = 'a:8:{s:8:"showgrid";s:1:"0";s:8:"gridtype";s:1:"0";s:8:"textleng";s:2:"30";s:4:"fids";a:1:{i:0;i:0;}s:9:"highlight";s:1:"1";s:11:"targetblank";s:1:"1";s:8:"showtips";s:1:"1";s:9:"cachelife";s:3:"600";}'; - } - - if(!empty($newsettings)) { - C::t('common_setting')->update_batch($newsettings); - } - - if(!DB::result_first("SELECT allowreplycredit FROM ".DB::table('common_usergroup_field')." WHERE groupid = 1")) { - DB::query("UPDATE ".DB::table('common_usergroup_field')." SET allowreplycredit = '1' WHERE groupid = 1"); - } - show_msg("อัปเดตส่วนเสริมเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'admingroup') { - $nextop = 'updatethreadtype'; - if(!DB::result_first("SELECT allowclearrecycle FROM ".DB::table('common_admingroup')." WHERE allowclearrecycle='1'")) { - DB::query('UPDATE '.DB::table('common_admingroup')." SET allowclearrecycle='1' WHERE admingid='1' OR admingid='2'"); - } - DB::query('UPDATE '.DB::table('common_admingroup')." SET allowmanagetag='1' WHERE admingid IN ('1', '2', '3')"); - DB::query('UPDATE '.DB::table('common_admingroup')." SET allowlivethread='1' WHERE admingid IN ('1', '2', '3')"); - DB::query('UPDATE '.DB::table('common_usergroup_field')." SET allowposttag='1' WHERE groupid=1"); - if(DB::result_first("SELECT cpgroupid FROM ".DB::table('common_admincp_group')." WHERE cpgroupid='3'")) { - if(!DB::result_first("SELECT cpgroupid FROM ".DB::table('common_admincp_perm')." WHERE cpgroupid='3' AND perm='threads_group'")) { - DB::query("INSERT INTO ".DB::table('common_admincp_perm')." VALUES ('3', 'threads_group')"); - DB::query("INSERT INTO ".DB::table('common_admincp_perm')." VALUES ('3', 'prune_group')"); - DB::query("INSERT INTO ".DB::table('common_admincp_perm')." VALUES ('3', 'attach_group')"); - DB::query("ALTER TABLE ".DB::table('common_admingroup')." DROP `disablepostctrl`"); - DB::query("UPDATE ".DB::table('common_usergroup_field')." SET allowgroupdirectpost='3'"); - DB::query("UPDATE ".DB::table('common_usergroup_field')." SET allowgroupposturl='3' WHERE groupid='1'"); - } - } - if(DB::result_first("SELECT cpgroupid FROM ".DB::table('common_admincp_group')." WHERE cpgroupid='1'")) { - if(!DB::result_first("SELECT cpgroupid FROM ".DB::table('common_admincp_perm')." WHERE cpgroupid='1' AND perm='postcomment'")) { - DB::query("INSERT INTO ".DB::table('common_admincp_perm')." VALUES ('1', 'postcomment')"); - } - } - if(!DB::result_first("SELECT allowbanvisituser FROM ".DB::table('common_admingroup')." WHERE allowbanvisituser='1'")) { - DB::query('UPDATE '.DB::table('common_admingroup')." SET allowbanvisituser='1' WHERE admingid='1' OR admingid='2'"); - } - if($first_to_2_5) { - DB::query('UPDATE '.DB::table('common_admingroup')." SET allowmanagecollection='1' WHERE admingid='1' OR admingid='2'"); - } - DB::query('UPDATE '.DB::table('common_admingroup')." SET allowmakehtml='1' WHERE admingid=1"); - show_msg("อัปเดตการจัดการกลุ่มสมาชิกเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'updatethreadtype') { - $nextop = 'updatecron'; - $selectoption = array(); - - $query = DB::query("SELECT * FROM ".DB::table('forum_typeoption')." WHERE type='select'"); - while($typeoptionarr = DB::fetch($query)) { - $selectoption[] = $typeoptionarr['identifier']; - } - - $query = C::t('forum_threadtype')->range(); - foreach($query as $threadtypearr) { - if(DB::num_rows(DB::query("SHOW TABLES LIKE '".DB::table('forum_optionvalue')."$threadtypearr[typeid]'")) != 1) { - continue; - } - $varnames = array(); - $queryoptionvalue = DB::query("SELECT * FROM ".DB::table('forum_optionvalue')."$threadtypearr[typeid] LIMIT 1"); - if($optionvaluearr = DB::fetch($queryoptionvalue)) { - foreach($optionvaluearr as $key => $value) { - if(in_array($key, $selectoption)) { - $varnames[] = 'CHANGE `'.$key.'` `'.$key.'` VARCHAR(50) NOT NULL'; - } - } - } - if(!empty($varnames)) { - DB::query("ALTER TABLE ".DB::table('forum_optionvalue')."$threadtypearr[typeid] ".implode(',', $varnames)); - } - } - show_msg("อัปเดตประเภทกระทู้เสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'updatecron') { - $nextop = 'updatemagic'; - if(!DB::result_first("SELECT filename FROM ".DB::table('common_cron')." WHERE filename='cron_cleanfeed.php'")) { - DB::query("INSERT INTO ".DB::table('common_cron')." VALUES ('', '1','system','เคลียร์ข้อมูลวามเคลื่อนไหวที่หมดอายุ','cron_cleanfeed.php','1269746634','1269792000','-1','-1','0','0')"); - } - - if(!DB::result_first("SELECT filename FROM ".DB::table('common_cron')." WHERE filename='cron_checkpatch_daily.php'")) { - DB::query("INSERT INTO ".DB::table('common_cron')." VALUES ('', '1','system','อัปเดตการเข้าถึงไฟล์แพทช์ประจำวัน','cron_checkpatch_daily.php','1269746639','1269792000','-1','-1','2','22')"); - } - - if(!DB::result_first("SELECT filename FROM ".DB::table('common_cron')." WHERE filename='cron_publish_halfhourly.php'")) { - DB::query("INSERT INTO ".DB::table('common_cron')." VALUES ('', '1','system','อัปเดตการเผยแพร่เนื้อหาทุกครึ่งชั่วโมง','cron_publish_halfhourly.php','1269746639','1269792000','-1','-1','-1','0 30')"); - } - - if(!DB::result_first("SELECT filename FROM ".DB::table('common_cron')." WHERE filename='cron_follow_daily.php'")) { - DB::query("INSERT INTO ".DB::table('common_cron')." VALUES ('','1','system','อัปเดตการจัดเก็บการติดตามประจำวัน','cron_follow_daily.php','1269746639','1269792000','-1','-1','02','0')"); - } - if(!DB::result_first("SELECT filename FROM ".DB::table('common_cron')." WHERE filename='cron_todayviews_daily.php'")) { - DB::query("INSERT INTO ".DB::table('common_cron')." VALUES ('','1','system','อัปเดตการนับจำนวนผู้เข้าชมประจำวัน','cron_todayviews_daily.php','1321500558','1321556400','-1','-1','3','0 5 10 15 20 25 30 35 40 45 50 55')"); - } - if(!DB::result_first("SELECT filename FROM ".DB::table('common_cron')." WHERE filename='cron_member_optimize_daily.php'")) { - DB::query("INSERT INTO ".DB::table('common_cron')." VALUES ('','0','system','อัปเดตการเพิ่มประสิทธิภาพตารางฐานข้อมูลประจำวัน','cron_member_optimize_daily.php','1321500558','1321556400','-1','-1','2','0 5 10 15 20 25 30 35 40 45 50 55')"); - } - if(DB::result_first("SELECT COUNT(*) FROM ".DB::table('common_cron')." WHERE filename='cron_birthday_daily.php'")) { - DB::query("DELETE FROM ".DB::table('common_cron')." WHERE filename='cron_birthday_daily.php'"); - } - - if(!DB::result_first("SELECT filename FROM ".DB::table('common_cron')." WHERE filename='cron_todayheats_daily.php'")) { - DB::query("INSERT INTO ".DB::table('common_cron')." VALUES ('','1','system','อัปเดตการนับจำนวนกระทู้ยอดนิยม','cron_todayheats_daily.php','1269746623','1269792000','-1','-1','0','0')"); - } - - show_msg("อัปเดตแผนการดำเนินการเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'updatemagic') { - $nextop = 'updatereport'; - if(DB::result_first("SELECT name FROM ".DB::table('common_magic')." WHERE identifier='highlight'")) { - DB::query("UPDATE ".DB::table('common_magic')." SET name='การ์ดสีสัน', description='เน้นสีบล็อกหรือกระทู้ของคุณให้มีสีสันกันเถอะ' WHERE identifier='highlight'"); - } - if(DB::result_first("SELECT name FROM ".DB::table('common_magic')." WHERE identifier='namepost'")) { - DB::query("UPDATE ".DB::table('common_magic')." SET name='การ์ดล่องหน', description='เข้าอ่านกระทู้โหมดบุคคลนิรนาม' WHERE identifier='namepost'"); - } - if(DB::result_first("SELECT name FROM ".DB::table('common_magic')." WHERE identifier='anonymouspost'")) { - DB::query("UPDATE ".DB::table('common_magic')." SET name='การ์ดนิรนาม', description='ซ่อนชื่อเป็นบุคคลนิรนาม' WHERE identifier='anonymouspost'"); - } - - show_msg("อัปเดตไอเท็มเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'updatereport') { - $nextop = 'myappcount'; - if(!C::t('common_setting')->skey_exists('report_reward')) { - $report_uids = array(); - $founders = $_G['config']['admincp']['founder'] !== '' ? explode(',', str_replace(' ', '', addslashes($_G['config']['admincp']['founder']))) : array(); - if($founders) { - $founderexists = true; - $fuid = $fuser = array(); - foreach($founders as $founder) { - if(is_numeric($founder)) { - $fuid[] = $founder; - } else { - $fuser[] = $founder; - } - } - $query = DB::query("SELECT uid, username FROM ".DB::table('common_member')." WHERE ".($fuid ? "uid IN (".dimplode($fuid).")" : '0')." OR ".($fuser ? "username IN (".dimplode($fuser).")" : '0')); - while($founder = DB::fetch($query)) { - $report_uids[] = $founder['uid']; - } - } - $query = DB::query("SELECT uid FROM ".DB::table('common_admincp_perm')." ap LEFT JOIN ".DB::table('common_admincp_member')." am ON am.cpgroupid=ap.cpgroupid where perm='report'"); - while($user = DB::fetch($query)) { - if(empty($users[$user[uid]])) { - $report_uids[] = $user['uid']; - } - } - if($report_uids) { - $report_receive = array('adminuser' => $report_uids, 'supmoderator' => array()); - C::t('common_setting')->update('report_receive', $report_receive); - } - $report_reward = array(); - $report_reward['min'] = '-3'; - $report_reward['max'] = '3'; - C::t('common_setting')->update('report_reward', $report_receive); - } - - show_msg("อัปเดตรายงานเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'myappcount') { - - $nextop = 'nav'; - $needupgrade = DB::query("SELECT COUNT(*) FROM ".DB::table('common_myapp_count'), 'SILENT'); - if($needupgrade) { - DB::query("DROP TABLE `".DB::table('common_myapp_count')."`"); - DB::query("DROP TABLE `".DB::table('home_userapp_stat')."`"); - } - show_msg("อัปเดตแอพลิเคชันเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - - } elseif($_GET['op'] == 'nav') { - - $nextop = 'forumstatus'; - $parentids = $navs = $subnavs = array(); - $query = DB::query("SELECT * FROM ".DB::table('common_nav')." WHERE navtype='0' AND parentid<>'0'"); - while($nav = DB::fetch($query)) { - $parentids[$nav['parentid']] = $nav['parentid']; - } - - $query = DB::query("SELECT * FROM ".DB::table('common_nav')." WHERE type='0'"); - while($nav = DB::fetch($query)) { - if($nav['identifier'] == 5 && $nav['navtype'] == 0 && $nav['available'] == -1) { - $nav['available'] = 1; - } - $navs[] = $nav; - if($parentids[$nav['id']]) { - $subnavs[$nav['id']] = $nav['id']; - } - } - - - $navid = DB::result_first("SELECT id FROM ".DB::table('common_nav')." WHERE navtype=0 AND type=0 AND identifier=12"); - DB::delete('common_nav', "type='0'"); - DB::delete('common_nav', "name='{hr}'"); - DB::delete('common_nav', "name='{userpanelarea1}'"); - DB::delete('common_nav', "name='{userpanelarea2}'"); - $sql = implode('', file(DISCUZ_ROOT.'./install/data/install_data.sql')); - preg_match("/\[update\_nav\](.+?)\[\/update\_nav\]/is", $sql, $a); - runquery($a[1]); - foreach($navs as $nav) { - if($nav['identifier']) { - if($nav['identifier'] == 4) { - $homestatus = C::t('common_setting')->fetch('homestatus'); - $nav['available'] = $homestatus ? $nav['available'] : -1; - if(!$navid) { - DB::update('common_nav', array('available' => $homestatus ? 0 : -1), - "navtype IN(0, 2, 3) AND type=0 AND identifier IN('feed', 'blog', 'album', 'share', 'doing', 'wall', '12', '13', '14', '15')"); - if($homestatus) { - DB::update('common_nav', array('available' => 1), - "navtype=2 AND type=0 AND identifier IN('feed', 'blog', 'album', 'share', 'doing', 'wall')"); - } - DB::query("REPLACE INTO ".DB::table('common_setting')." VALUES ('homestyle', '1'),('homepagestyle', '1'),('feedstatus', '$homestatus'),('blogstatus', '$homestatus'),('doingstatus', '$homestatus'),('albumstatus', '$homestatus'),('sharestatus', '$homestatus'),('wallstatus', '$homestatus')"); - } - } - DB::update('common_nav', array('name' => $nav['name'], 'available' => $nav['available'], 'displayorder' => $nav['displayorder']), - "navtype='$nav[navtype]' AND identifier='$nav[identifier]'"); - - if($subnavs[$nav['id']]) { - $parentid = DB::result_first("SELECT id FROM ".DB::table('common_nav')." WHERE navtype='$nav[navtype]' AND identifier='$nav[identifier]'"); - DB::update('common_nav', array('parentid' => $parentid), "parentid='$nav[id]'"); - } - - } - } - - show_msg("อัปเดตเมนูเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - - } elseif($_GET['op'] == 'forumstatus') { - - $nextop = 'usergroup'; - $query = DB::query("SELECT fid FROM ".DB::table('forum_forum')." WHERE status='2'"); - if(DB::num_rows($query)) { - while($row = DB::fetch($query)) { - $fids[] = $row['fid']; - } - DB::update('forum_forum', array('status' => 1), "status='2'"); - } - - show_msg("อัปเดตเว็บบอร์ดเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - - } elseif($_GET['op'] == 'usergroup') { - $nextop = 'creditrule'; - DB::update('common_usergroup', array('allowvisit' => 2), "groupid='1'"); - DB::update('common_usergroup_field', array('allowbegincode' => 1), "groupid='1'"); - if(DB::result_first("SELECT COUNT(*) FROM ".DB::table('forum_forum')." WHERE allowmediacode>'0'") && - !DB::result_first("SELECT COUNT(*) FROM ".DB::table('common_usergroup_field')." WHERE allowmediacode>'0'")) { - DB::update('common_usergroup_field', array('allowmediacode' => 1), "groupid<'4' OR groupid>'9'"); - } - show_msg("อัปเดตสิทธิ์สมาชิกเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'creditrule') { - $nextop = 'bbcode'; - $delrule = array('register', 'realname', 'invitefriend', 'report', 'uploadimage', 'editrealname', 'editrealemail', 'delavatar'); - $count = DB::result(DB::query("SELECT COUNT(*) FROM ".DB::table('common_credit_rule')." WHERE action IN(".dimplode($delrule).")"),0); - if($count) { - DB::query("DELETE FROM ".DB::table('common_credit_rule')." WHERE action IN(".dimplode($delrule).")"); - } - DB::update('common_credit_rule', array('rulename' => 'บันทึกประจำวัน'), "rulename='ลงชื่อเข้าใช้งานประจำวัน'"); - $count = DB::result_first("SELECT COUNT(*) FROM ".DB::table('common_credit_rule')." WHERE action='portalcomment'"); - if(!$count) { - DB::query("INSERT INTO ".DB::table('common_credit_rule')." (`rulename`, `action`, `cycletype`, `cycletime`, `rewardnum`, `norepeat`, `extcredits1`, `extcredits2`, `extcredits3`, `extcredits4`, `extcredits5`, `extcredits6`, `extcredits7`, `extcredits8`, `fids`) VALUES ('文章评论','portalcomment','1','0','40','1','0','1','0','0','0','0','0','0','')"); - } - $count = DB::result_first("SELECT COUNT(*) FROM ".DB::table('common_credit_rule')." WHERE action='followedcollection'"); - if(!$count) { - DB::query("INSERT INTO ".DB::table('common_credit_rule')." (`rulename`, `action`, `cycletype`, `cycletime`, `rewardnum`, `norepeat`, `extcredits1`, `extcredits2`, `extcredits3`, `extcredits4`, `extcredits5`, `extcredits6`, `extcredits7`, `extcredits8`, `fids`) VALUES ('淘专辑被订阅','followedcollection','1','0','3','0','0','1','0','0','0','0','0','0','')"); - } - - show_msg("อัปเดตเครดิตเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'bbcode') { - $nextop = 'stamp'; - $allowcusbbcodes = array(); - $query = DB::query("SELECT * FROM ".DB::table('common_usergroup_field')); - while($row = DB::fetch($query)) { - if($row['allowcusbbcode']) { - $allowcusbbcodes[] = $row['groupid']; - } - } - if($allowcusbbcodes) { - DB::query("UPDATE ".DB::table('forum_bbcode')." SET perm='".implode("\t", $allowcusbbcodes)."' WHERE perm=''"); - } - show_msg("อัปเดตสิทธิ์โค้ดแบบกำหนดเองเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'stamp') { - $nextop = 'block_item'; - $stampnew = DB::result_first("SELECT COUNT(*) FROM ".DB::table('forum_thread')." WHERE stamp>'0'"); - if(!$stampnew) { - $query = DB::query("SELECT t.tid, tm.stamp FROM ".DB::table('forum_thread')." t - INNER JOIN ".DB::table('forum_threadmod')." tm ON t.tid=tm.tid AND tm.action='SPA' - WHERE t.status|16=t.status"); - while($row = DB::fetch($query)) { - DB::query("UPDATE ".DB::table('forum_thread')." SET stamp='$row[stamp]' WHERE tid='$row[tid]'", 'UNBUFFERED'); - } - } - if(!DB::result_first("SELECT COUNT(*) FROM ".DB::table('common_smiley')." WHERE url='010.gif'")) { - DB::query("REPLACE INTO ".DB::table('common_smiley')." (typeid, displayorder, type, code, url) VALUES ('4','19','stamp','รับรองการแก้ไข','010.gif')"); - } - if(!DB::result_first("SELECT COUNT(*) FROM ".DB::table('common_smiley')." WHERE url='010.small.gif'")) { - DB::query("REPLACE INTO ".DB::table('common_smiley')." (typeid, displayorder, type, code, url) VALUES ('0','18','stamplist','รับรองการแก้ไข','010.small.gif')"); - } - if(!DB::result_first("SELECT COUNT(*) FROM ".DB::table('common_smiley')." WHERE url='011.small.gif'")) { - DB::query("REPLACE INTO ".DB::table('common_smiley')." (typeid, displayorder, type, code, url) VALUES ('0','20','stamplist','โพสต์ใหม่','011.small.gif')"); - $setnewbie = true; - } - require_once libfile('function/cache'); - updatecache('stamps'); - updatecache('stamptypeid'); - if($setnewbie) { - $id = DB::result_first("SELECT displayorder FROM ".DB::table('common_smiley')." WHERE url='011.small.gif'"); - DB::query("REPLACE INTO ".DB::table('common_setting')." VALUES ('newbie', '$id')"); - } - show_msg("อัปเดตแสตมป์เสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'block_item') { - $nextop = 'block_permission'; - $bids = $items = $blocks = array(); - $query = DB::query("SELECT itemid, bid, pic, picflag, thumbpath FROM ".DB::table('common_block_item')." WHERE makethumb='1'"); - while($row = DB::fetch($query)) { - if(empty($row['thumbpath'])) { - $bids[$row['bid']] = $row['bid']; - $items[] = $row; - } - } - if($bids) { - $query = DB::query("SELECT bid, picwidth, picheight FROM ".DB::table('common_block')." WHERE bid IN(".dimplode($bids).")"); - while($value = DB::fetch($query)) { - $blocks[$value['bid']] = $value; - } - foreach($items as $item) { - $block = $blocks[$item['bid']]; - $hash = md5($item['pic'].'-'.$item['picflag'].':'.$block['picwidth'].'|'.$block['picheight']); - $thumbpath = 'block/'.substr($hash, 0, 2).'/'.$hash.'.jpg'; - DB::update('common_block_item', array('thumbpath' => $thumbpath), "itemid='$item[itemid]'"); - } - } - show_msg("อัปเดตสิทธิ์รูปขนาดย่อโมดูลเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - - } elseif($_GET['op'] == 'block_permission') { - $nextop = 'portalcategory_permission'; - if(!C::t('common_setting')->skey_exists('group_recommend')) { - DB::query("UPDATE ".DB::table('common_block_permission')." SET allowmanage=allowsetting,allowrecommend=allowdata"); - } - if(!DB::result_first('SELECT inheritedtplname FROM '.DB::table('common_template_permission')." WHERE inheritedtplname != '' LIMIT 1")) { - $query = DB::query('SELECT * FROM '.DB::table('common_template_permission')." WHERE inheritedtplname = ''"); - $templatearr = array(); - while($value = DB::fetch($query)) { - $templatearr[$value['targettplname']][] = $value; - } - if(!empty($templatearr)) { - require_once libfile('class/blockpermission'); - $tplpermissions = new template_permission(); - foreach($templatearr as $tplname => $users) { - $tplpermissions->add_users($tplname, $users); - } - } - } - show_msg("อัปเดตสิทธิ์โมดูลเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'portalcategory_permission') { - $nextop = 'portal_comment'; - if(!DB::result_first('SELECT inheritedcatid FROM '.DB::table('portal_category_permission')." WHERE inheritedcatid > '0' LIMIT 1")) { - $query = DB::query('SELECT * FROM '.DB::table('portal_category_permission')." WHERE inheritedcatid = '0'"); - $catearr = array(); - while($value = DB::fetch($query)) { - $catearr[$value['catid']][] = $value; - } - if(!empty($catearr)) { - require_once libfile('class/portalcategory'); - $categorypermissions = new portal_category(); - foreach($catearr as $catid => $users) { - $categorypermissions->add_users_perm($catid, $users); - } - } - } - show_msg("อัปเดตหมวดหมู่พอร์ทัลเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'portal_comment') { - $nextop = 'portal_article_cover_img'; - $one = DB::fetch_first('SELECT * FROM '.DB::table('portal_comment')." WHERE id=0 AND idtype='' LIMIT 1"); - if($one && isset($one['aid'])) { - DB::query("UPDATE ".DB::table('portal_comment')." SET id=aid,idtype='aid' WHERE aid>0"); - } - show_msg("อัปเดตความคิดเห็นบทความเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - - } elseif($_GET['op'] == 'portal_article_cover_img') { - $nextop = 'block_style'; - $pic = DB::result_first('SELECT pic FROM '.DB::table('portal_article_title')." WHERE LENGTH(pic)>6 LIMIT 1"); - if($pic && is_numeric(substr($pic, 0, strpos($pic,'/')))) { - DB::query("UPDATE ".DB::table('portal_article_title')." SET pic=CONCAT('portal/',pic) WHERE LENGTH(pic)>6"); - } - show_msg("อัปเดตหน้าปกบทความเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - - } elseif($_GET['op'] == 'block_style') { - $nextop = 'block_script'; - $sql = implode('', file(DISCUZ_ROOT.'./install/data/install_data.sql')); - preg_match("/\[block\_style\](.+?)\[\/block\_style\]/is", $sql, $a); - unset($sql); - preg_match_all("/\[key\:(.+?)\](.+?)\[\/key\]/is", $a[1], $aa); - $data = array(); - if(!empty($aa[1])) { - foreach($aa[1] as $key => $value){ - $data[$value] = $aa[2][$key]; - } - $hashs = array_keys($data); - $query = DB::query('SELECT hash FROM '.DB::table('common_block_style')." WHERE hash IN (".dimplode($hashs).")"); - while($value = DB::fetch($query)) { - unset($data[$value['hash']]); - } - if(!empty($data)) { - $sql = implode("\r\n", $data); - runquery($sql); - } - DB::query("UPDATE ".DB::table('common_block_style')." SET name = replace(`name`, 'X1.5', 'บิวท์อิน')"); - DB::query("UPDATE ".DB::table('common_block_style')." SET name = replace(`name`, 'X2.0', 'บิวท์อิน')"); - } - show_msg("อัปเดตเทมเพลทโมดูลเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'block_script') { - $nextop = 'common_usergroup_field'; - include_once libfile('function/block'); - $blocks = $styles = $styleids = array(); - $query = DB::query('SELECT * FROM '.DB::table('common_block')." WHERE blockclass='forum_attachment' OR blockclass='group_attachment'"); - while($value = DB::fetch($query)) { - $blocks[$value['bid']] = $value; - if(empty($value['blockstyle'])) { - $styleids[$value['styleid']] = $value['styleid']; - } - } - - if($styleids) { - $query = DB::query('SELECT * FROM '.DB::table('common_block_style')." WHERE styleid IN (".dimplode($styleids).")"); - while($value = DB::fetch($query)) { - $value['template'] = dunserialize($value['template']); - $styles[$value['styleid']] = $value; - } - } - foreach($blocks as $bid => $block) { - unset($block['bid']); - if(empty($block['blockstyle'])) { - $block['blockstyle'] = $styles[$block['styleid']]; - } else { - $block['blockstyle'] = dunserialize($block['blockstyle']); - } - $block = block_conver_to_thread($block); - DB::update('common_block', $block, array('bid'=>$bid)); - - DB::query('DELETE FROM '.DB::table('common_block_style')." WHERE blockclass='forum_attachment' OR blockclass='group_attachment'"); - $_G['block'][$bid] = $block; - block_updatecache($bid, true); - } - - show_msg("อัปเดตโมดูลสคริปต์เสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'common_usergroup_field') { - $nextop = 'group_index'; - if(!C::t('common_setting')->skey_exists('group_recommend')) { - DB::query("UPDATE ".DB::table('common_usergroup_field')." - SET allowcommentarticle=allowcomment,allowblogmod=allowblog,allowdoingmod=allowdoing,allowuploadmod=allowupload,allowsharemod=allowshare,allowdownlocalimg=allowpostarticle"); - } - $queryraterange = DB::query("SELECT groupid, raterange FROM ".DB::table('common_usergroup_field')); - while($usergroupfield = DB::fetch($queryraterange)) { - if($usergroupfield['raterange']) { - $raterangearray = array(); - foreach(explode("\n", $usergroupfield['raterange']) as $range) { - $range = explode("\t", $range); - if(count($range) == 4) { - $raterangearray[$range[0]] = implode("\t", array($range[0], 'isself' => 0, 'min' => $range[1], 'max' => $range[2], 'mrpd' => $range[3])); - } - } - if(!empty($raterangearray)) { - DB::query("UPDATE ".DB::table('common_usergroup_field')." SET raterange='".implode("\n", $raterangearray)."' WHERE groupid='".$usergroupfield['groupid']."'"); - } - } - } - - if($first_to_2_5) { - DB::query('UPDATE '.DB::table('common_usergroup_field')." SET allowat='50' WHERE groupid=1"); - DB::query('UPDATE '.DB::table('common_usergroup_field')." SET allowcreatecollection='5',allowcommentcollection='1',allowfollowcollection='30' WHERE groupid<'4' OR groupid>'9'"); - } - - show_msg("อัปเดตสิทธิ์ของกลุ่มสมาชิกเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - - } elseif($_GET['op'] == 'group_index') { - $nextop = 'domain'; - if(!C::t('common_setting')->skey_exists('group_recommend')) { - $arr = array( - 0 => array('importfile'=>'./data/group_index.xml','primaltplname'=>'group/index', 'targettplname'=>'group/index'), - ); - foreach ($arr as $v) { - import_diy($v['importfile'], $v['primaltplname'], $v['targettplname']); - } - } - show_msg("อัปเดตหน้าแรกคลับเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - - } elseif($_GET['op'] == 'domain') { - $nextop = 'pm'; - $newsettings = array(); - if(!empty($_G['config']['app']['domain'])) { - $update = 0; - foreach($_G['config']['app']['domain'] as $key => $value) { - if($value && !$_G['setting']['domain']['app'][$key]) { - $update = 1; - } - } - if($update) { - $domain = array( - 'defaultindex' => !empty($_G['config']['app']['default']) ? $_G['config']['app']['default'].'.php' : '', - 'app' => $_G['config']['app']['domain'], - ); - $newsettings['domain'] = $domain; - } - } - if(!empty($_G['config']['app']['default']) && !$_G['setting']['defaultindex']) { - $newsettings['defaultindex'] = $_G['config']['app']['default'].'.php'; - } - if(!empty($_G['config']['home']['holddomain']) && !$_G['setting']['holddomain']) { - $holddomain = implode('|', explode(',', $_G['config']['home']['holddomain'])); - $newsettings['holddomain'] = $holddomain; - } - if(!empty($_G['config']['home']['allowdomain']) && !$_G['setting']['allowspacedomain']) { - $newsettings['allowspacedomain'] = 1; - } - - if(!DB::result_first("SELECT domain FROM ".DB::table('common_domain')." WHERE idtype='home'")) { - $domainroot = $_G['config']['home']['domainroot'] ? $_G['config']['home']['domainroot'] : ''; - DB::query("INSERT INTO ".DB::table('common_domain')." (domain, domainroot, id, idtype) SELECT domain, '$domainroot', uid, 'home' FROM ".DB::table('common_member_field_home')." WHERE domain<>''"); - } - if(!empty($newsettings)) { - C::t('common_setting')->update_batch($newsettings); - } - show_msg("อัปเดตการตั้งค่าโดเมนเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - - } elseif($_GET['op'] == 'pm') { - $nextop = 'allowgetimage'; - DB::query("UPDATE ".DB::table('common_member')." SET newpm='0', newprompt='0'"); - show_msg("อัปเดตโพสต์ยอดนิยมเสร็จสมบูรณ์", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'allowgetimage') { - $nextop = 'verify'; - if(!DB::result_first("SELECT COUNT(*) FROM ".DB::table('common_usergroup_field')." WHERE allowgetimage='1'")) { - $query = DB::query("SELECT groupid, allowgetattach FROM ".DB::table('common_usergroup_field')); - while($row = DB::fetch($query)) { - DB::query('UPDATE '.DB::table('common_usergroup_field')." SET allowgetimage='".intval($row['allowgetattach'])."' WHERE groupid='$row[groupid]'"); - } - $query = DB::query("SELECT uid, allowgetattach FROM ".DB::table('forum_access')); - while($row = DB::fetch($query)) { - DB::query('UPDATE '.DB::table('forum_access')." SET allowgetimage='".intval($row['allowgetattach'])."' WHERE uid='$row[uid]'"); - } - } - show_msg("อัปเดตสิทธิ์การดูรูปภาพเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - - } elseif($_GET['op'] == 'verify') { - $nextop = 'threadimage'; - $settings = $verifys = array(); - - $settings = C::t('common_setting')->fetch_all(array('verify', 'realname', 'videophoto', 'video_allowviewspace')); - $verifys = (array)dunserialize($settings['verify']); - $updateverify = $_GET['updateverify'] ? true : false; - if(!isset($verifys[6])) { - $verifys[6] = array( - 'title' => 'ยืนยันตัวตน', - 'available' => $settings['realname'], - 'showicon' => 0, - 'viewrealname' => 0, - 'field' => array('realname' => realname), - 'icon' => '' - ); - $verifys[7] = array( - 'title' => 'ยืนยันรูปถ่ายวิดีโอ', - 'available' => $settings['videophoto'], - 'showicon' => 0, - 'viewvideophoto' => $settings['video_allowviewspace'], - 'icon' => '' - ); - if($verifys['enabled'] && ($settings['realname'] || $settings['videophoto'])) { - $verifys['enabled'] = 1; - } - C::t('common_setting')->update('verify', $verifys); - $updateverify = true; - } - if($updateverify) { - $p = 1000; - $i = !empty($_GET['i']) ? intval($_GET['i']) : 0; - $n = 0; - $t = DB::result_first("SELECT COUNT(*) FROM ".DB::table('common_member_profile')." WHERE realname != ''"); - if($t) { - $query = DB::query('SELECT mp.realname, m.* FROM '.DB::table('common_member_profile')." mp LEFT JOIN ".DB::table('common_member')." m USING(uid) WHERE mp.uid>'$i' AND mp.realname != '' LIMIT $p"); - while($value=DB::fetch($query)) { - $n = intval($value['uid']); - $havauser = DB::result_first("SELECT COUNT(*) FROM ".DB::table('common_member_verify')." WHERE uid='$n'"); - $data = array( - 'verify6' => '1', - 'verify7' => $value['videophotostatus'] ? 1 : 0, - ); - if($havauser) { - DB::update('common_member_verify', $data, array('uid' => $n)); - } else { - $data['uid'] = $n; - DB::insert('common_member_verify', $data); - } - - } - if($n) { - show_msg("อัปเดตการตรวจสอบชื่อจริง[$n/$t]", "$theurl?step=data&op=verify&i=$n&updateverify=true"); - } - } - } - show_msg("อัปเดตข้อมูลการตรวจสอบความถูกต้องเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'forumattach') { - $nextop = 'forumstatlog'; - $limit = 10000; - $start = !empty($_GET['start']) ? $_GET['start'] : 0; - $needupgrade = DB::query("SELECT COUNT(*) FROM ".DB::table('forum_attachmentfield'), 'SILENT'); - $count = DB::result_first("SELECT COUNT(*) FROM ".DB::table('forum_attachment')); - if($needupgrade && $count) { - if(!$start) { - for($i = 0;$i < 10;$i++) { - DB::query("TRUNCATE ".DB::table('forum_attachment_'.$i)); - } - } - $query = DB::query("SELECT a.*,af.description FROM ".DB::table('forum_attachment')." a - LEFT JOIN ".DB::table('forum_attachmentfield')." af USING(aid) - ORDER BY aid LIMIT $start, $limit"); - if(DB::num_rows($query)) { - while($row = DB::fetch($query)) { - $tid = (string)$row['tid']; - $tableid = $tid{strlen($tid)-1}; - DB::update('forum_attachment', array('tableid' => $tableid), array('aid' => $row['aid'])); - DB::insert('forum_attachment_'.$tableid, array( - 'aid' => $row['aid'], - 'tid' => $row['tid'], - 'pid' => $row['pid'], - 'uid' => $row['uid'], - 'dateline' => $row['dateline'], - 'filename' => $row['filename'], - 'filesize' => $row['filesize'], - 'attachment' => $row['attachment'], - 'remote' => $row['remote'], - 'description' => $row['description'], - 'readperm' => $row['readperm'], - 'price' => $row['price'], - 'isimage' => $row['isimage'], - 'width' => $row['width'], - 'thumb' => $row['thumb'], - 'picid' => $row['picid'], - )); - } - $start += $limit; - show_msg("กำลังอัปเดตตารางไฟล์แนบในเว็บบอร์ด ... $start/$count", "$theurl?step=data&op=forumattach&start=$start"); - } - DB::query("DROP TABLE `".DB::table('forum_attachmentfield')."`"); - $dropsql = array(); - $dropfields = array('width', 'dateline', 'readperm', 'price', 'filename', 'filetype', 'filesize', 'attachment', 'isimage', 'thumb', 'remote', 'picid'); - $query = DB::query('SHOW COLUMNS FROM `'.DB::table('forum_attachment').'`'); - while($field = DB::fetch($query)) { - if(in_array($field['Field'], $dropfields, true)) { - $dropsql[] = 'DROP `'.$field['Field'].'`'; - } - } - if($dropsql) { - DB::query("ALTER TABLE ".DB::table('forum_attachment').' '.implode(', ', $dropsql)); - } - } - show_msg("อัปเดตตารางไฟล์แนบในเว็บบอร์ดเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'forumstatlog') { - $nextop = 'moderate'; - DB::query('DELETE FROM '.DB::table('forum_statlog')." WHERE logdate='0000-00-00'"); - show_msg("อัปเดตสถิติของบอร์ดเสร็จสมบูรณ์", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'threadimage') { - $nextop = 'forumattach'; - $defaultmonth = 10; - $limit = 1000; - $start = !empty($_GET['start']) ? $_GET['start'] : 0; - $needupgraded = DB::query("SELECT COUNT(*) FROM ".DB::table('forum_attachmentfield'), 'SILENT'); - if($needupgraded) { - $cachefile = DISCUZ_ROOT.'./data/threadimage.cache'; - if(!file_exists($cachefile)) { - $dateline = time() - 86400 * $defaultmonth * 30; - $query = DB::query("SELECT tid from ".DB::table('forum_thread')." WHERE dateline>'$dateline' AND attachment='2' AND posttableid='0'"); - $data = array(); - while($row = DB::fetch($query)) { - $data[] = $row['tid']; - } - if($data && @$fp = fopen($cachefile, 'w')) { - fwrite($fp, implode('|', $data)); - fclose($fp); - } else { - show_msg("ไม่สามารถประมวลผลตารางรูปภาพในกระทู้ ข้ามขั้นตอนนี้", "$theurl?step=data&op=$nextop"); - } - } else { - $data = @file($cachefile); - if(!$data) { - show_msg("ไม่สามารถประมวลผลตารางรูปภาพในกระทู้ ข้ามขั้นตอนนี้", "$theurl?step=data&op=$nextop"); - } - $data = explode('|', $data[0]); - } - $tids = array_slice($data, $start, $limit); - if(!$tids) { - @unlink($cachefile); - show_msg("ประมวลผลตารางรูปภาพในกระทู้", "$theurl?step=data&op=$nextop"); - } - $insertsql = array(); - foreach(C::t('forum_post')->fetch_all_by_tid(0, $tids, false, '', 0, 0, 1) as $row) { - $threadimage = DB::fetch_first("SELECT attachment, remote FROM ".DB::table(getattachtablebytid($row['tid']))." WHERE pid='$row[pid]' AND isimage IN ('1', '-1') ORDER BY width DESC LIMIT 1"); - if($threadimage['attachment']) { - $threadimage = daddslashes($threadimage); - $insertsql[$row['tid']] = "('$row[tid]', '$threadimage[attachment]', '$threadimage[remote]')"; - } - } - if($insertsql) { - DB::query("INSERT INTO ".DB::table('forum_threadimage')." (`tid`, `attachment`, `remote`) VALUES ".implode(',', $insertsql)); - } - $start += $limit; - show_msg("กำลังประมวลผลตารางรูปภาพในกระทู้ ... $start ", "$theurl?step=data&op=threadimage&start=$start"); - } else { - show_msg("ไม่สามารถประมวลผลตารางรูปภาพในกระทู้ ข้ามขั้นตอนนี้", "$theurl?step=data&op=$nextop"); - } - } elseif($_GET['op'] == 'moderate') { - - $nextop = 'moderate_update'; - if(DB::fetch_first("SHOW TABLES LIKE '".DB::table('common_moderate')."'")) { - $modcount = DB::result_first("SELECT COUNT(*) FROM ".DB::table('common_moderate'), array(), true); - } else { - $modcount = false; - } - if(!$modcount) { - $query = DB::query("SELECT tid FROM ".DB::table('forum_thread')." WHERE displayorder='-2'"); - while($row = DB::fetch($query)) { - updatemoderate('tid', $row['tid']); - } - loadcache('posttable_info'); - $posttables = array(); - if(!empty($_G['cache']['posttable_info']) && is_array($_G['cache']['posttable_info'])) { - foreach($_G['cache']['posttable_info'] as $posttableid => $data) { - $posttables[] = $posttableid; - } - } else { - $posttables[] = 0; - } - foreach($posttables as $postableid) { - $query = DB::query("SELECT pid FROM ".DB::table(getposttable($postableid))." WHERE invisible='-2' AND first='0'"); - while($row = DB::fetch($query)) { - updatemoderate('pid', $row['pid']); - } - } - - $query = DB::query("SELECT blogid FROM ".DB::table('home_blog')." WHERE status='1'"); - while($row = DB::fetch($query)) { - updatemoderate('blogid', $row['blogid']); - } - $query = DB::query("SELECT doid FROM ".DB::table('home_doing')." WHERE status='1'"); - while($row = DB::fetch($query)) { - updatemoderate('doid', $row['doid']); - } - $query = DB::query("SELECT picid FROM ".DB::table('home_pic')." WHERE status='1'"); - while($row = DB::fetch($query)) { - updatemoderate('picid', $row['picid']); - } - $query = DB::query("SELECT sid FROM ".DB::table('home_share')." WHERE status='1'"); - while($row = DB::fetch($query)) { - updatemoderate('sid', $row['sid']); - } - $query = DB::query("SELECT idtype, cid FROM ".DB::table('home_comment')." WHERE status='1'"); - while($row = DB::fetch($query)) { - updatemoderate($row['idtype'].'_cid', $row['cid']); - } - $query = DB::query("SELECT aid FROM ".DB::table('portal_article_title')." WHERE status='1'"); - while($row = DB::fetch($query)) { - updatemoderate('aid', $row['aid']); - } - $query = DB::query("SELECT cid FROM ".DB::table('portal_comment')." WHERE idtype='aid' AND status='1'"); - while($row = DB::fetch($query)) { - updatemoderate('aid_cid', $row['cid']); - } - $query = DB::query("SELECT cid FROM ".DB::table('portal_comment')." WHERE idtype='topic' AND status='1'"); - while($row = DB::fetch($query)) { - updatemoderate('topicid_cid', $row['cid']); - } - } - show_msg("อัปเดตข้อมูลการตรวจสอบเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - - } elseif($_GET['op'] == 'moderate_update') { - $nextop = 'founder'; - - if($first_to_2_5 && DB::fetch_first("SHOW TABLES LIKE '".DB::table('common_moderate')."'")) { - $tables = array( - 'tid' => 'forum_thread_moderate', - 'pid' => 'forum_post_moderate', - 'blogid' => 'home_blog_moderate', - 'picid' => 'home_pic_moderate', - 'doid' => 'home_doing_moderate', - 'sid' => 'home_share_moderate', - 'aid' => 'portal_article_moderate', - 'aid_cid' => 'portal_article_comment_moderate', - 'topicid_cid' => 'portal_comment_moderate', - 'uid_cid' => 'home_comment_moderate', - 'blogid_cid' => 'home_comment_moderate', - 'sid_cid' => 'home_comment_moderate', - 'picid_cid' => 'home_comment_moderate', - ); - - $query = DB::query("SELECT * FROM ".DB::table('common_moderate')); - while($row = DB::fetch($query)) { - if(isset($tables[$row['idtype']])) { - $row = daddslashes($row); - $table = $tables[$row['idtype']]; - if($table != 'home_comment_moderate') { - unset($row['idtype']); - } - DB::insert($table, $row, false, true); - } - } - } - show_msg("อัปเดตการตรวจสอบการแปลงข้อมูลเสร็จสมบูรณ์", "$theurl?step=data&op=$nextop"); - - } elseif($_GET['op'] == 'founder') { - - $nextop = 'threadprofile'; - $founders = explode(',', str_replace(' ', '', $_G['config']['admincp']['founder'])); - if($founders) { - foreach($founders as $founder) { - if(is_numeric($founder)) { - $fuid[] = $founder; - } else { - $fuser[] = $founder; - } - } - $query = DB::query("SELECT uid FROM ".DB::table('common_member')." WHERE ".($fuid ? "uid IN (".dimplode($fuid).")" : '0')." OR ".($fuser ? "username IN (".dimplode($fuser).")" : '0')); - $founders = array(); - while($founder = DB::fetch($query)) { - $founders[] = $founder['uid']; - } - if($founders) { - C::t('common_member')->update_admincp_manage($founders); - } - } - - show_msg("อัปเดตข้อมูลผู้ดูแลระบบเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - - } elseif($_GET['op'] == 'threadprofile') { - - $nextop = 'plugin'; - if(!DB::result_first("SELECT COUNT(*) FROM ".DB::table("forum_threadprofile")." WHERE global=1")) { - DB::query("INSERT INTO ".DB::table("forum_threadprofile")." (`id`, `name`, `template`, `global`) VALUES - (1, 'โปรไฟล์มาตรฐาน', 'a:2:{s:4:\"left\";s:399:\"{numbercard}\r\n{groupicon}

    {*}

    {/groupicon}\r\n{authortitle}

    {*}

    {/authortitle}\r\n{customstatus}

    {*}

    {/customstatus}\r\n{star}

    {*}

    {/star}\r\n{upgradeprogress}

    {*}

    {/upgradeprogress}\r\n
    \r\n\t
    {baseinfo=credits,1}
    {baseinfo=credits,0}
    \r\n
    \r\n{medal}

    {*}

    {/medal}\r\n
    {baseinfo=field_qq,0}
    \";s:3:\"top\";s:82:\"
    \r\n
    {baseinfo=credits,1}
    {baseinfo=credits,0}
    \r\n
    \";}', 1);"); - DB::query("REPLACE INTO ".DB::table("forum_bbcode")." VALUES ('2','2','qq','bb_qq.gif','','[qq]688888[/qq]','แสดงสถานะ QQ ออนไลน์,คลิกที่ไอคอนของเขา(เธอ)เพื่อสนทนา','1','กรุณาใส่หมายเลข QQ:เพื่อแสดงสถานะออนไลน์  ','1','21','1 2 3 10 11 12 13 14 15 16 17 18 19');"); - } - - show_msg("อัปเดตข้อมูลโปรไฟล์เรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - - } elseif($_GET['op'] == 'plugin') { - - $nextop = 'notification'; - - loadcache('pluginlanguage_script'); - loadcache('pluginlanguage_template'); - loadcache('pluginlanguage_install'); - if(!$_G['cache']['pluginlanguage_script'] && !$_G['cache']['pluginlanguage_template'] && !$_G['cache']['pluginlanguage_install']) { - $query = DB::query("SELECT identifier, pluginid, modules FROM ".DB::table('common_plugin')); - while($plugin = DB::fetch($query)) { - $plugin['modules'] = dunserialize($plugin['modules']); - if(!empty($plugin['modules']['extra']['langexists'])) { - @include DISCUZ_ROOT.'./data/plugindata/'.$plugin['identifier'].'.lang.php'; - if(!empty($scriptlang)) { - $_G['cache']['pluginlanguage_script'][$plugin['identifier']] = $scriptlang[$plugin['identifier']]; - } - if(!empty($templatelang)) { - $_G['cache']['pluginlanguage_template'][$plugin['identifier']] = $templatelang[$plugin['identifier']]; - } - if(!empty($installlang)) { - $_G['cache']['pluginlanguage_install'][$plugin['identifier']] = $installlang[$plugin['identifier']]; - } - } - } - savecache('pluginlanguage_script', $_G['cache']['pluginlanguage_script']); - savecache('pluginlanguage_template', $_G['cache']['pluginlanguage_template']); - savecache('pluginlanguage_install', $_G['cache']['pluginlanguage_install']); - } - - show_msg("อัปเดตชุดภาษาปลั๊กอินเสร็จเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'notification') { - $nextop = 'medal'; - if(!DB::result_first("SELECT id FROM ".DB::table('home_notification')." WHERE category>0")) { - $_G['notice_structure']['follow'] = array('follow'); - $_G['notice_structure']['follower'] = array('follower'); - foreach($_G['notice_structure'] as $key => $val) { - switch ($key) { - case 'mypost' : $category = 1; break; - case 'interactive' : $category = 2; break; - case 'system' : $category = 3; break; - case 'manage' : $category = 4; break; - case 'follow' : $category = 5; break; - case 'follower' : $category = 6; break; - default : $category = 0; - } - if($category) { - DB::query("UPDATE ".DB::table('home_notification')." SET category=$category WHERE type IN(".dimplode($val).")"); - } - } - DB::query("UPDATE ".DB::table('home_notification')." SET category=2,type='comment' WHERE type IN('piccomment','blogcomment','sharecomment','doing')"); - DB::query("UPDATE ".DB::table('home_notification')." SET category=3,type='click' WHERE type IN('clickblog','clickarticle','clickpic')"); - } - show_msg("อัปเดตข้อมูลเสร็จสมบูรณ์", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'medal') { - - $nextop = 'closeswitch'; - - if(!DB::result_first("SELECT COUNT(*) FROM ".DB::table('common_member_medal'))) { - - $query = DB::query("SELECT uid, medals FROM ".DB::table('common_member_field_forum')." WHERE medals != ''"); - while($member = DB::fetch($query)) { - $medals = explode("\t", $member['medals']); - foreach($medals as $medalid) { - $medalid = intval($medalid); - DB::insert('common_member_medal', array( - 'uid' => $member['uid'], - 'medalid' => $medalid - ), 0, 1); - } - } - } - show_msg("อัปเดตเหรียญรางวัลเรียบร้อยแล้ว", "$theurl?step=data&op=$nextop"); - } elseif($_GET['op'] == 'closeswitch') { - $nextop = 'end'; - if($first_to_2_5) { - $newsettings = array(); - $newsettings['strongpw'] = 0; - $newsettings['pwlength'] = 0; - C::t('common_setting')->update_batch($newsettings); - } - show_msg("สิ้นสุดการอัปเดตแล้ว", "$theurl?step=data&op=$nextop"); - } else { - - $deletevar = array('app', 'home');//config中需要删除的项目 - $default_config = $_config = array(); - $default_configfile = DISCUZ_ROOT.'./config/config_global_default.php'; - if(!file_exists($default_configfile)) { - exit('config_global_default.php was lost, please reupload this file.'); - } else { - include $default_configfile; - $default_config = $_config; - } - $configfile = DISCUZ_ROOT.'./config/config_global.php'; - include $configfile; - DB::query("UPDATE ".DB::table('common_plugin')." SET available='0' WHERE modules NOT LIKE '%s:6:\"system\";i:2;%'"); - if(save_config_file($configfile, $_config, $default_config, $deletevar)) { - show_msg("การประมวลผลข้อมูลเสร็จเรียบร้อยแล้ว", "$theurl?step=delete"); - } else { - show_msg('ไฟล์ "config/config_global.php" ได้ถูกแก้ไขระหว่างการอัปเดต แต่โฟลเดอร์ "config/" ไม่สามารถทำการเขียนได้ ซึ่งเราได้แก้ไขเบื้องต้น โดยทำการจัดเก็บไฟล์ดังกล่าวไว้ที่ โฟลเดอร์ "data/" กรุณาใช้โปรแกรมจัดการ FTP ย้ายไฟล์มาไว้ที่โฟลเดอร์ "config/" สามารถอัปโหลดทับตัวเก่าได้ทันที

    เมื่อดำเนินการตามที่กล่าวข้างต้นเสร็จแล้ว คลิกที่นี่เพื่อดำเนินการต่อ'); - } - } - -}elseif ($_GET['step'] == 'delete') { - - if(!$devmode) { - show_msg("ลบการประมวลผลข้อมูล ขั้นตอนต่อไป", "$theurl?step=style"); - } - - $oldtables = array(); - $query = DB::query("SHOW TABLES LIKE '$config[tablepre]%'"); - while ($value = DB::fetch($query)) { - $values = array_values($value); - $oldtables[] = $values[0]; - } - - $sql = implode('', file($sqlfile)); - preg_match_all("/CREATE\s+TABLE.+?pre\_(.+?)\s+\((.+?)\)\s*(ENGINE|TYPE)\s*\=/is", $sql, $matches); - $newtables = empty($matches[1])?array():$matches[1]; - - $connecttables = array('common_member_connect', 'common_uin_black', 'connect_feedlog', 'connect_memberbindlog', 'connect_tlog', 'connect_tthreadlog', 'common_connect_guest', 'connect_disktask'); - - $newsqls = empty($matches[0])?array():$matches[0]; - - $deltables = array(); - $delcolumns = array(); - - foreach ($oldtables as $tname) { - $tname = substr($tname, strlen($config['tablepre'])); - if(in_array($tname, $newtables)) { - $query = DB::query("SHOW CREATE TABLE ".DB::table($tname)); - $cvalue = DB::fetch($query); - $oldcolumns = getcolumn($cvalue['Create Table']); - - $i = array_search($tname, $newtables); - $newcolumns = getcolumn($newsqls[$i]); - - foreach ($oldcolumns as $colname => $colstruct) { - if($colname == 'UNIQUE' || $colname == 'KEY') { - foreach ($colstruct as $key_index => $key_value) { - if(empty($newcolumns[$colname][$key_index])) { - $delcolumns[$tname][$colname][$key_index] = $key_value; - } - } - } else { - if(empty($newcolumns[$colname])) { - $delcolumns[$tname][] = $colname; - } - } - } - } else { - if(!strexists($tname, 'uc_') && !strexists($tname, 'ucenter_') && !preg_match('/forum_(thread|post)_(\d+)$/i', $tname) && !in_array($tname, $connecttables)) { - $deltables[] = $tname; - } - } - } - - show_header(); - echo '
    '; - - $deltablehtml = ''; - if($deltables) { - $deltablehtml .= ''; - foreach ($deltables as $tablename) { - $deltablehtml .= ""; - } - $deltablehtml .= '
    {$config['tablepre']}$tablename
    '; - echo "

    ตารางข้อมูล ต่อไปนี้ เมื่อเปรียบเทียบกับฐานข้อมูลมาตรฐานพบว่า มีข้อมูลที่ซ้ำซ้อนกัน:
    คุณสามารถเลือกที่จะลบหรือไม่ลบก็ได้

    $deltablehtml"; - } - - $delcolumnhtml = ''; - if($delcolumns) { - $delcolumnhtml .= ''; - foreach ($delcolumns as $tablename => $cols) { - foreach ($cols as $coltype => $col) { - if (is_array($col)) { - foreach ($col as $index => $indexvalue) { - $delcolumnhtml .= ""; - } - } else { - $delcolumnhtml .= ""; - } - } - } - $delcolumnhtml .= '
    {$config['tablepre']}$tablenameดัชนี($coltype) $index $indexvalue
    {$config['tablepre']}$tablenameฟิลด์ $col
    '; - - echo "

    ฟิลด์ ต่อไปนี้ เมื่อเปรียบเทียบกับฐานข้อมูลมาตรฐานพบว่า มีข้อมูลที่ซ้ำซ้อนกัน:
    คุณสามารถเลือกที่จะลบหรือไม่ลบก็ได้

    $delcolumnhtml"; - } - - if(empty($deltables) && empty($delcolumns)) { - echo "

    เมื่อเปรียบเทียบกับฐานข้อมูลมาตรฐาน พบว่า ไม่จำเป็นต้องลบข้อมูลตารางและฟิลด์

    กรุณาคลิกที่นี่เพื่อไปยังขั้นตอนต่อไป

    "; - } else { - echo "

    คุณสามารถละเว้นการเพิ่มตารางและฟิลด์ได้
    ไปยังขั้นตอนต่อไป

    "; - } - echo '
    '; - - show_footer(); - exit(); - -} elseif ($_GET['step'] == 'style') { - if(empty($_GET['confirm'])) { - show_msg("คุณต้องการคืนค่าสกินหลักหรือไม่? (แนะนำให้เลือก ใช่)

    [ ใช่ ]  [ ไม่ ]", ''); - } - - define('IN_ADMINCP', true); - require_once libfile('function/admincp'); - require_once libfile('function/importdata'); - $dir = DB::result_first("SELECT t.directory FROM ".DB::table('common_style')." s LEFT JOIN ".DB::table('common_template')." t ON t.templateid=s.templateid WHERE s.styleid='1'"); - import_styles(1, $dir, 1, 0, 0); - C::t('common_setting')->update('styleid', 1); - - show_msg("อัปเดตการคืนค่าสกินหลักเรียบร้อยแล้ว ไปยังขั้นตอนต่อไป", "$theurl?step=cache"); - -} elseif ($_GET['step'] == 'cache') { - - dir_clear(ROOT_PATH.'./data/template'); - dir_clear(ROOT_PATH.'./data/cache'); - dir_clear(ROOT_PATH.'./data/threadcache'); - dir_clear(ROOT_PATH.'./uc_client/data'); - dir_clear(ROOT_PATH.'./uc_client/data/cache'); - savecache('setting', ''); - - show_msg('กำลังอัปเดตไฟล์แคช กรุณารอสักครู่ ...'); - -} - -function has_another_special_table($tablename, $key) { - if(!$key) { - return $tablename; - } - - $tables_array = get_special_tables_array($tablename); - - if($key > count($tables_array)) { - return FALSE; - } else { - return TRUE; - } -} - -function get_special_tables_array($tablename) { - $tablename = DB::table($tablename); - $tablename = str_replace('_', '\_', $tablename); - $query = DB::query("SHOW TABLES LIKE '{$tablename}\_%'"); - $dbo = DB::object(); - $tables_array = array(); - while($row = $dbo->fetch_array($query, $dbo->drivertype == 'mysqli' ? MYSQLI_NUM : MYSQL_NUM)) { - if(preg_match("/^{$tablename}_(\\d+)$/i", $row[0])) { - $prefix_len = strlen($dbo->tablepre); - $row[0] = substr($row[0], $prefix_len); - $tables_array[] = $row[0]; - } - } - return $tables_array; -} - -function get_special_table_by_num($tablename, $num) { - $tables_array = get_special_tables_array($tablename); - - $num --; - return isset($tables_array[$num]) ? $tables_array[$num] : FALSE; -} - -function getcolumn($creatsql) { - - $creatsql = preg_replace("/ COMMENT '.*?'/i", '', $creatsql); - preg_match("/\((.+)\)\s*(ENGINE|TYPE)\s*\=/is", $creatsql, $matchs); - - $cols = explode("\n", $matchs[1]); - $newcols = array(); - foreach ($cols as $value) { - $value = trim($value); - if(empty($value)) continue; - $value = remakesql($value); - if(substr($value, -1) == ',') $value = substr($value, 0, -1); - - $vs = explode(' ', $value); - $cname = $vs[0]; - - if($cname == 'KEY' || $cname == 'INDEX' || $cname == 'UNIQUE') { - - $name_length = strlen($cname); - if($cname == 'UNIQUE') $name_length = $name_length + 4; - - $subvalue = trim(substr($value, $name_length)); - $subvs = explode(' ', $subvalue); - $subcname = $subvs[0]; - $newcols[$cname][$subcname] = trim(substr($value, ($name_length+2+strlen($subcname)))); - - } elseif($cname == 'PRIMARY') { - - $newcols[$cname] = trim(substr($value, 11)); - - } else { - - $newcols[$cname] = trim(substr($value, strlen($cname))); - } - } - return $newcols; -} - -function remakesql($value) { - $value = trim(preg_replace("/\s+/", ' ', $value)); - $value = str_replace(array('`',', ', ' ,', '( ' ,' )', 'mediumtext'), array('', ',', ',','(',')','text'), $value); - return $value; -} - -function show_msg($message, $url_forward='', $time = 1, $noexit = 0, $notice = '') { - - if($url_forward) { - $url_forward = $_GET['from'] ? $url_forward.'&from='.rawurlencode($_GET['from']).'&frommd5='.rawurlencode($_GET['frommd5']) : $url_forward; - $message = "$message (ข้ามไปยังหน้าถัดไป...)
    $notice"; - } - - show_header(); - print<< - $message - -END; - show_footer(); - !$noexit && exit(); -} - - -function show_header() { - global $config; - - $nowarr = array($_GET['step'] => ' class="current"'); - if(in_array($_GET['step'], array('waitingdb','prepare'))) { - $nowarr = array('sql' => ' class="current"'); - } - print<< - - - - เครื่องมือช่วยอัปเดตฐานข้อมูลของ Discuz! - - - -
    -

    เครื่องมืออัปเกรดฐานข้อมูล

    -
    - - - เริ่มต้นการอัปเกรด - เพิ่มและอัปเดตโครงสร้างฐานข้อมูล - อัปเดตข้อมูล - ลบโครงสร้างฐานข้อมูล - อัปเดตเสร็จสมบูรณ์ - - -
    -END; -} - -function show_footer() { - print<< - -
    -
    - - -END; -} - -function runquery($sql) { - global $_G; - $tablepre = $_G['config']['db'][1]['tablepre']; - $dbcharset = $_G['config']['db'][1]['dbcharset']; - - $sql = str_replace("\r", "\n", str_replace(array(' {tablepre}', ' cdb_', ' `cdb_', ' pre_', ' `pre_'), array(' '.$tablepre, ' '.$tablepre, ' `'.$tablepre, ' '.$tablepre, ' `'.$tablepre), $sql)); - $ret = array(); - $num = 0; - foreach(explode(";\n", trim($sql)) as $query) { - $queries = explode("\n", trim($query)); - foreach($queries as $query) { - $ret[$num] .= $query[0] == '#' || $query[0].$query[1] == '--' ? '' : $query; - } - $num++; - } - unset($sql); - - foreach($ret as $query) { - $query = trim($query); - if($query) { - - if(substr($query, 0, 12) == 'CREATE TABLE') { - $name = preg_replace("/CREATE TABLE ([a-z0-9_]+) .*/is", "\\1", $query); - DB::query(create_table($query, $dbcharset)); - - } else { - DB::query($query); - } - - } - } -} - - -function import_diy($importfile, $primaltplname, $targettplname) { - global $_G; - - $css = $html = ''; - $arr = array(); - - $content = file_get_contents(realpath($importfile)); - if (empty($content)) return $arr; - require_once DISCUZ_ROOT.'./source/class/class_xml.php'; - $diycontent = xml2array($content); - - if ($diycontent) { - - foreach ($diycontent['layoutdata'] as $key => $value) { - if (!empty($value)) getframeblock($value); - } - $newframe = array(); - foreach ($_G['curtplframe'] as $value) { - $newframe[] = $value['type'].random(6); - } - - $mapping = array(); - if (!empty($diycontent['blockdata'])) { - $mapping = block_import($diycontent['blockdata']); - unset($diycontent['blockdata']); - } - - $oldbids = $newbids = array(); - if (!empty($mapping)) { - foreach($mapping as $obid=>$nbid) { - $oldbids[] = 'portal_block_'.$obid; - $newbids[] = 'portal_block_'.$nbid; - } - } - - require_once DISCUZ_ROOT.'./source/class/class_xml.php'; - $xml = array2xml($diycontent['layoutdata'],true); - $xml = str_replace($oldbids, $newbids, $xml); - $xml = str_replace((array)array_keys($_G['curtplframe']), $newframe, $xml); - $diycontent['layoutdata'] = xml2array($xml); - - $css = str_replace($oldbids, $newbids, $diycontent['spacecss']); - $css = str_replace((array)array_keys($_G['curtplframe']), $newframe, $css); - - $arr['spacecss'] = $css; - $arr['layoutdata'] = $diycontent['layoutdata']; - $arr['style'] = $diycontent['style']; - save_diy_data($primaltplname, $targettplname, $arr, true); - } - return $arr; -} - -function save_config_file($filename, $config, $default, $deletevar) { - $config = setdefault($config, $default, $deletevar); - $date = gmdate("Y-m-d H:i:s", time() + 3600 * 8); - $content = << $config)); - $content .= "\r\n// ".str_pad(' THE END ', 50, '-', STR_PAD_BOTH)." //\r\n\r\n?>"; - if(!is_writable($filename) || !($len = file_put_contents($filename, $content))) { - file_put_contents(DISCUZ_ROOT.'./data/config_global.php', $content); - return 0; - } - return 1; -} - -function setdefault($var, $default, $deletevar = array()) { - foreach ($default as $k => $v) { - if(!isset($var[$k])) { - $var[$k] = $default[$k]; - } elseif(is_array($v)) { - $var[$k] = setdefault($var[$k], $default[$k]); - } - } - foreach ($deletevar as $k) { - unset($var[$k]); - } - return $var; -} - -function getvars($data, $type = 'VAR') { - $evaluate = ''; - foreach($data as $key => $val) { - if(!preg_match("/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/", $key)) { - continue; - } - if(is_array($val)) { - $evaluate .= buildarray($val, 0, "\${$key}")."\r\n"; - } else { - $val = addcslashes($val, '\'\\'); - $evaluate .= $type == 'VAR' ? "\$$key = '$val';\n" : "define('".strtoupper($key)."', '$val');\n"; - } - } - return $evaluate; -} - -function buildarray($array, $level = 0, $pre = '$_config') { - static $ks; - if($level == 0) { - $ks = array(); - $return = ''; - } - - foreach ($array as $key => $val) { - if(!preg_match("/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/", $key)) { - continue; - } - - if($level == 0) { - $newline = str_pad(' CONFIG '.strtoupper($key).' ', 70, '-', STR_PAD_BOTH); - $return .= "\r\n// $newline //\r\n"; - if($key == 'admincp') { - $newline = str_pad(' Founders: $_config[\'admincp\'][\'founder\'] = \'1,2,3\'; ', 70, '-', STR_PAD_BOTH); - $return .= "// $newline //\r\n"; - } - } - - $ks[$level] = $ks[$level - 1]."['$key']"; - if(is_array($val)) { - $ks[$level] = $ks[$level - 1]."['$key']"; - $return .= buildarray($val, $level + 1, $pre); - } else { - $val = is_string($val) || strlen($val) > 12 || !preg_match("/^\-?[1-9]\d*$/", $val) ? '\''.addcslashes($val, '\'\\').'\'' : $val; - $return .= $pre.$ks[$level - 1]."['$key']"." = $val;\r\n"; - } - } - return $return; -} - -function dir_clear($dir) { - global $lang; - if($directory = @dir($dir)) { - while($entry = $directory->read()) { - $filename = $dir.'/'.$entry; - if(is_file($filename)) { - @unlink($filename); - } - } - $directory->close(); - @touch($dir.'/index.htm'); - } -} - -function block_conver_to_thread($block){ - if($block['blockclass'] == 'forum_attachment') { - $block['blockclass'] = 'forum_thread'; - $block['script'] = 'thread'; - } else if($block['blockclass'] == 'group_attachment') { - $block['blockclass'] = 'group_thread'; - $block['script'] = 'groupthread'; - } - $block['param'] = is_array($block['param']) ? $block['param'] : (array)dunserialize($block['param']); - unset($block['param']['threadmethod']); - $block['param']['special'] = array(0); - $block['param']['picrequired'] = 1; - $block['param'] = serialize($block['param']); - $block['styleid'] = 0; - $block['blockstyle'] = block_style_conver_to_thread($block['blockstyle'], $block['blockclass']); - return $block; -} - -function block_style_conver_to_thread($style, $blockclass) { - $template = block_build_template($style['template']); - $search = array('threadurl', 'threadsubject', 'threadsummary', 'filesize', 'downloads'); - $replace = array('url', 'title', 'summary', ''); - $template = str_replace($search, $replace, $template); - $arr = array( - 'name' => '', - 'blockclass' => $blockclass, - ); - block_parse_template($template, $arr); - $arr['fields'] = dunserialize($arr['fields']); - $arr['template'] = dunserialize($arr['template']); - $arr = serialize($arr); - return $arr; -} - -function create_table($sql, $dbcharset) { - $type = strtoupper(preg_replace("/^\s*CREATE TABLE\s+.+\s+\(.+?\).*(ENGINE|TYPE)\s*=\s*([a-z]+?).*$/isU", "\\2", $sql)); - $type = in_array($type, array('MYISAM', 'HEAP', 'MEMORY')) ? $type : 'MYISAM'; - return preg_replace("/^\s*(CREATE TABLE\s+.+\s+\(.+?\)).*$/isU", "\\1", $sql). - (helper_dbtool::dbversion() > '4.1' ? " ENGINE=$type DEFAULT CHARSET=".$dbcharset : " TYPE=$type"); -} - -?> \ No newline at end of file