delete_note($_GET['noteid'], (isfounder() ? '' : $_G['username'])); } if(!empty($_GET['newmessage'])) { $newaccess = 0; $_GET['newexpiration'] = TIMESTAMP + (intval($_GET['newexpiration']) > 0 ? intval($_GET['newexpiration']) : 30) * 86400; $_GET['newmessage'] = nl2br(dhtmlspecialchars($_GET['newmessage'])); $data = array( 'admin' => $_G['username'], 'access' => 0, 'adminid' => $_G['adminid'], 'dateline' => $_G['timestamp'], 'expiration' => $_GET['newexpiration'], 'message' => $_GET['newmessage'], ); C::t('common_adminnote')->insert($data); } } require_once libfile('function/cloudaddons'); $newversion = (CHARSET == 'utf-8') ? dunserialize($_G['setting']['cloudaddons_newversion']) : json_decode($_G['setting']['cloudaddons_newversion'], true); if(empty($newversion['newversion']) || !is_array($newversion['newversion']) || abs($_G['timestamp'] - $newversion['updatetime']) > 86400 || (isset($_GET['checknewversion']) && $_G['formhash'] == $_GET['formhash'])) { $newversion = json_decode(cloudaddons_open('&mod=app&ac=upgrade'), true); if(!empty($newversion['newversion'])) { $newversion['updatetime'] = $_G['timestamp']; C::t('common_setting')->update_setting('cloudaddons_newversion', ((CHARSET == 'utf-8') ? $newversion : json_encode($newversion))); updatecache('setting'); } else { $newversion = array(); } } $reldisp = is_numeric(DISCUZ_RELEASE) ? ('Release '.DISCUZ_RELEASE) : DISCUZ_RELEASE; cpheader(); shownav(); show_user_bar(); show_todo(); show_security_advise(); show_releasetips(); show_envcheck(); echo ' '; echo '
'; echo '
'; show_sysinfo(); show_news(); show_forever_thanks(); echo '
'; echo '
'; show_widgets(); echo '
'; echo '
'; echo ''; $now = date('Y'); echo <<

Powered by Discuz! {$_G['setting']['version']}

© 2001-$now Discuz! Team.

EOT; function show_user_bar() { global $_G; if(isfounder()) { $cpadmingroup = cplang('founder_admin'); } else { if($GLOBALS['admincp']->adminsession['cpgroupid']) { $cpgroup = C::t('common_admincp_group')->fetch($GLOBALS['admincp']->adminsession['cpgroupid']); $cpadmingroup = $cpgroup['cpgroupname']; } else { $cpadmingroup = cplang('founder_master'); } } showsubmenu('home_welcome', array(), '
'.avatar(getglobal('uid'), 'middle', array('class' => 'avt')).'

'.cplang('home_welcome_txt').$_G['member']['username'].'

'.$cpadmingroup.' | '.cplang('home_mods').': 0

', array('bbname' => $_G['setting']['bbname'])); } function show_security_advise() { if(!isfounder()) { return; } global $lang, $_G; $securityadvise = ''; $securityadvise .= !$_G['config']['admincp']['founder'] ? $lang['home_security_nofounder'] : ''; $securityadvise .= !$_G['config']['admincp']['checkip'] ? $lang['home_security_checkip'] : ''; $securityadvise .= $_G['config']['admincp']['runquery'] ? $lang['home_security_runquery'] : ''; if($securityadvise) { showtableheader('home_security_tips', '', '', 0); showtablerow('', 'class="tipsblock"', ''); showtablefooter(); } } function show_todo() { global $_G; $membersmod = C::t('common_member_validate')->count_by_status(0); $threadsdel = C::t('forum_thread')->count_by_displayorder(-1); $groupmod = C::t('forum_forum')->validate_level_num(); $reportcount = C::t('common_report')->fetch_count(); $modcount = array(); foreach (C::t('common_moderate')->count_group_idtype_by_status(0) as $value) { $modcount[$value['idtype']] = $value['count']; } $medalsmod = C::t('forum_medallog')->count_by_type(2); $threadsmod = $modcount['tid']; $postsmod = $modcount['pid']; $blogsmod = $modcount['blogid']; $doingsmod = $modcount['doid']; $picturesmod = $modcount['picid']; $sharesmod = $modcount['sid']; $commentsmod = $modcount['uid_cid'] + $modcount['blogid_cid'] + $modcount['sid_cid'] + $modcount['picid_cid']; $articlesmod = $modcount['aid']; $articlecommentsmod = $modcount['aid_cid']; $topiccommentsmod = $modcount['topicid_cid']; $verify = ''; foreach (C::t('common_member_verify_info')->group_by_verifytype_count() as $value) { if($value['num']) { if($value['verifytype']) { $verifyinfo = !empty($_G['setting']['verify'][$value['verifytype']]) ? $_G['setting']['verify'][$value['verifytype']] : array(); if($verifyinfo['available']) { $verify .= ''.cplang('home_mod_verify_prefix').$verifyinfo['title'].'('.$value['num'].')'; } } else { $verify .= ''.cplang('home_mod_verify_prefix').cplang('members_verify_profile').'('.$value['num'].')'; } } } $modtotalnum = intval($membersmod + $threadsmod + $postsmod + $medalsmod + $blogsmod + $picturesmod + $doingsmod + $sharesmod + $commentsmod + $articlesmod + $articlecommentsmod + $topiccommentsmod + $reportcount + $threadsdel); if($modtotalnum > 0) { echo ''; } if($membersmod || $threadsmod || $postsmod || $medalsmod || $blogsmod || $picturesmod || $doingsmod || $sharesmod || $commentsmod || $articlesmod || $articlecommentsmod || $topiccommentsmod || $reportcount || $threadsdel || !empty($verify)) { showboxheader('', '', '', 1); echo '

'.cplang('home_mods').':

'; showboxfooter(); } } function show_releasetips() { global $_G, $reldisp, $newversion; $siteuniqueid = C::t('common_setting')->fetch_setting('siteuniqueid'); if(empty($siteuniqueid) || strlen($siteuniqueid) < 16) { $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'; $siteuniqueid = 'DX'.$chars[date('y') % 60].$chars[date('n')].$chars[date('j')].$chars[date('G')].$chars[date('i')].$chars[date('s')].substr(md5($_G['clientip'].$_G['username'].TIMESTAMP), 0, 4).random(4); C::t('common_setting')->update_setting('siteuniqueid', $siteuniqueid); require_once libfile('function/cache'); 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/cloudaddons'); $newversion = json_decode(cloudaddons_open('&mod=app&ac=upgrade'), true); if(!empty($newversion['newversion'])) { $newversion['updatetime'] = $_G['timestamp']; C::t('common_setting')->update_setting('cloudaddons_newversion', ((CHARSET == 'utf-8') ? $newversion : json_encode($newversion))); } else { $newversion = array(); } require_once libfile('function/cache'); updatecache('setting'); } if($sitereleasetips) { showboxheader('version_tips', '', 'id="version_tips"'); echo ''.lang("admincp", "version_tips_msg", array('ADMINSCRIPT' => ADMINSCRIPT, 'version' => constant("DISCUZ_VERSION").' '.$reldisp)).''; showboxfooter(); } } function show_onlines() { $admincp_session = C::t('common_admincp_session')->fetch_all_by_panel(1); if(count($admincp_session) == 1) { return; } $onlines = ''; $members = C::t('common_member')->fetch_all(array_keys($admincp_session), false, 0); foreach ($admincp_session as $uid => $online) { $onlines .= ''.$members[$uid]['username'].'   '; } showboxheader('home_onlines', '', 'id="home_onlines"'); echo $onlines; showboxfooter(); } function show_note() { global $_G; showformheader('index'); showboxheader('home_notes', '', 'id="home_notes"'); $notemsghtml = ''; foreach (C::t('common_adminnote')->fetch_all_by_access(0) as $note) { if($note['expiration'] < TIMESTAMP) { C::t('common_adminnote')->delete_note($note['id']); } else { $note['adminenc'] = rawurlencode($note['admin']); $note['expiration'] = ceil(($note['expiration'] - $note['dateline']) / 86400); $note['dateline'] = dgmdate($note['dateline'], 'dt'); $notemsghtml .= '
'.''. ("

{$note['admin']}

{$note['dateline']}

(".cplang('home_notes_add').cplang('validity').": {$note['expiration']} ".cplang('days').")

{$note['message']}

").'
'; } } if($notemsghtml) { echo '
'.$notemsghtml.'
'; } showboxrow('style="align-items: center"', array('class="dcol lineheight"', 'class="dcol lineheight"'), array( cplang('home_notes_add'), ''.cplang('validity').': '.cplang('days').' ' )); showboxfooter(); showformfooter(); } function show_filecheck() { global $lang; if(!isfounder()) { return; } $filecheck = C::t('common_cache')->fetch('checktools_filecheck_result'); if($filecheck) { list($modifiedfiles, $deletedfiles, $unknownfiles, $doubt) = dunserialize($filecheck['cachevalue']); $filecheckresult = "
{$lang['filecheck_modify']}$modifiedfiles". "{$lang['filecheck_delete']}$deletedfiles". "{$lang['filecheck_unknown']}$unknownfiles". "{$lang['filecheck_doubt']}$doubt

". $lang['filecheck_last_homecheck'].': '.dgmdate($filecheck['dateline'], 'u').' ['.$lang['filecheck_view_list'].']

'; } else { $filecheckresult = ''; } showboxheader($lang['nav_filecheck'].' ['.$lang['filecheck_check_now'].']', 'nobottom fixpadding', 'id="filecheck"'); echo '
'.$filecheckresult.'
'; showboxfooter(); if(TIMESTAMP - $filecheck['dateline'] > 86400 * 7) { echo ''; } } function show_envcheck() { global $reldisp; $return = ''; $env_ok = true; $now_ver_gd = function_exists('gd_info') ? gd_info() : false; $now_ver = array('PHP' => constant('PHP_VERSION'), 'MySQL' => helper_dbtool::dbversion(), 'XML' => function_exists('xml_parser_create'), 'JSON' => function_exists('json_encode'), 'FileSock Function' => (function_exists('fsockopen') || function_exists('pfsockopen') || function_exists('stream_socket_client') || function_exists('curl_init')), 'GD' => ($now_ver_gd ? preg_replace('/[^0-9.]+/', '', $now_ver_gd['GD Version']) : false)); $req_ver = array('PHP' => '5.6.0', 'MySQL' => '5.5.3', 'XML' => true, 'JSON' => true, 'FileSock Function' => true, 'GD' => '1.0'); $sug_ver = array('PHP' => '7.4.0', 'MySQL' => '8.0.0', 'XML' => true, 'JSON' => true, 'FileSock Function' => true, 'GD' => '2.0'); foreach ($now_ver as $key => $value) { if($req_ver[$key] === true) { if(!$value) { $return .= ''.lang("admincp", "req_not_found", array('req' => $key)).''; $env_ok = false; } } elseif(version_compare($value, $req_ver[$key], '<')) { $return .= ''.lang("admincp", "req_ver_too_low", array('req' => $key, 'now_ver' => $value, 'sug_ver' => $sug_ver[$key], 'req_ver' => $req_ver[$key])).''; $env_ok = false; } } if(!$env_ok) { showboxheader('detect_environment', '', 'id="detect_environment"'); echo $return; showboxfooter(); } } function show_sysinfo() { global $newversion, $reldisp, $lang, $_G; loaducenter(); if(empty($newversion['newversion']['qqqun'])) { $newversion['newversion']['qqqun'] = '73'.'210'.'36'.'90'; } showboxheader('home_sys_info', 'listbox', 'id="home_sys_info"'); showboxrow('', array('class="dcol lineheight d-14"', 'class="dcol lineheight d-1"'), array( cplang('home_discuz_version'), 'Discuz! '.DISCUZ_VERSION.' '.$reldisp.' '.strtoupper(CHARSET).((strlen(DISCUZ_RELEASE) == 8 && DISCUZ_RELEASE != '20180101') ? '' : cplang('home_git_version')) )); $newversion['newversion'] = !empty($newversion['newversion']) ? $newversion['newversion'] : array(); $reldisp_addon = is_numeric($newversion['newversion']['release']) ? ('Release '.$newversion['newversion']['release']) : $newversion['newversion']['release']; $downlist = array(); foreach ($newversion['newversion']['downlist'] as $key => $value) { $downlist[] = ''.discuzcode(strip_tags(diconv($value['title'], 'utf-8', CHARSET)), 1, 0).''; } showboxrow('', array('class="dcol lineheight d-14"', 'class="dcol lineheight d-1"'), array( cplang('home_check_newversion'), ($newversion['newversion']['release'] ? ($newversion['newversion']['release'] != DISCUZ_RELEASE ? '' : '').'Discuz! '.$newversion['newversion']['version'].' '.$reldisp_addon.' '.strtoupper(CHARSET).' '.($newversion['newversion']['release'] != DISCUZ_RELEASE ? '' : '') : ''.cplang('detect_environment_error').''). ' [ '.cplang('refresh').' ]  

'. (!empty($downlist) ? implode('、', $downlist).($newversion['newversion']['qqqun'] ? '  |  '.cplang('qq_group').$newversion['newversion']['qqqun'].'' : '') : ''.cplang('download_latest').' | '.cplang('qq_group').'73'.'21'.'03'.'690') )); showboxrow('', array('class="dcol lineheight d-14"', 'class="dcol lineheight d-1"'), array( cplang('home_ucclient_version'), 'UCenter '.UC_CLIENT_VERSION.' Release '.UC_CLIENT_RELEASE )); showboxrow('', array('class="dcol lineheight d-14"', 'class="dcol lineheight d-1"'), array( cplang('home_environment'), PHP_OS.'('.PHP_OS_FAMILY.') / PHP '.PHP_VERSION.(PHP_ZTS ? ' TS' : '').(PHP_DEBUG ? ' DEBUG' : '').' / '.PHP_SAPI )); showboxrow('', array('class="dcol lineheight d-14"', 'class="dcol lineheight d-1"'), array( cplang('home_serversoftware'), $_SERVER['SERVER_SOFTWARE'] )); showboxrow('', array('class="dcol lineheight d-14"', 'class="dcol lineheight d-1"'), array( cplang('home_database'), helper_dbtool::dbversion() )); if(@ini_get('file_uploads')) { require_once libfile('function/upload'); $fileupload = getmaxupload(); } else { $fileupload = ''.$lang['no'].''; } showboxrow('', array('class="dcol lineheight d-14"', 'class="dcol lineheight d-1"'), array( cplang('home_upload_perm'), $fileupload )); $dbsize = helper_dbtool::dbsize(); $dbsize = $dbsize ? sizecount($dbsize) : $lang['unknown']; showboxrow('', array('class="dcol lineheight d-14"', 'class="dcol lineheight d-1"'), array( cplang('home_database_size'), $dbsize )); if(isset($_GET['attachsize'])) { $attachsize = C::t('forum_attachment_n')->get_total_filesize(); $attachsize = is_numeric($attachsize) ? sizecount($attachsize) : $lang['unknown']; } else { $attachsize = '[ '.$lang['detail'].' ]'; } showboxrow('', array('class="dcol lineheight d-14"', 'class="dcol lineheight d-1"'), array( cplang('home_attach_size'), $attachsize )); showboxfooter(); } function show_news() { global $newversion; showboxheader('discuz_news', 'listbox', 'id="discuz_news"'); if(!empty($newversion['news'])) { $newversion['news'] = dhtmlspecialchars($newversion['news']); foreach ($newversion['news'] as $v) { showboxrow('', array('class="dcol d-1 lineheight"', 'class="dcol"'), array( ''.discuzcode(strip_tags(diconv($v['title'], 'utf-8', CHARSET)), 1, 0).'', '['.discuzcode(strip_tags($v['date']), 1, 0).']', )); } } else { showboxrow('', array('class="dcol d-1"', 'class="dcol td21" style="text-align:right;"'), array( ''.cplang('log_in_to_update').'', '', )); showboxrow('', array('class="dcol d-1"', 'class="dcol td21" style="text-align:right;"'), array( ''.cplang('download_latest').'', '', )); } showboxfooter(); } function show_widgets() { $widgets = array( array('.', 'show_onlines'), array('.', 'show_note'), array('.', 'show_filecheck'), ); $plugins = C::t('common_plugin')->fetch_all_data(); foreach ($plugins as $plugin) { $cpindexfile = DISCUZ_ROOT.'./source/plugin/'.$plugin['identifier'].'/admin/admin_widget.php'; if(!file_exists($cpindexfile)) { continue; } $widgets[] = array($cpindexfile, 'widget_'.$plugin['identifier']); } foreach ($widgets as $widget) { list($file, $func) = $widget; if($file != '.') { require_once $file; } if(!function_exists($func)) { continue; } $func(); } } function show_forever_thanks() { $copyRightMessage = array( '版权所有', '腾讯云计算(北京)有限责任公司', '承接运营', '合肥贰道网络科技有限公司', ); $gitTeamStr = ''; $gitTeam = array( 'laozhoubuluo' => '老周部落', 'popcorner' => 'popcorner', 'oldhuhu' => 'oldhuhu', 'zoewho' => '湖中沉', '3dming' => '诸葛晓明', 'brotherand2' => 'brotherand2', 'contributions' => 'git', 'nftstudio' => '逆风天', 'ONEXIN' => 'ONEXIN', ); foreach ($gitTeam as $id => $name) { $gitTeamStr .= ''.$name.''; } $devTeamStr = ''; $devTeam = array( '174393' => 'Guode \'sup\' Li', '859' => 'Hypo \'Cnteacher\' Wang', '263098' => 'Liming \'huangliming\' Huang', '706770' => 'Jun \'Yujunhao\' Du', '80629' => 'Ning \'Monkeye\' Hou', '246213' => 'Lanbo Liu', '322293' => 'Qingpeng \'andy888\' Zheng', '401635' => 'Guosheng \'bilicen\' Zhang', '2829' => 'Mengshu \'msxcms\' Chen', '492114' => 'Liang \'Metthew\' Xu', '1087718' => 'Yushuai \'Max\' Cong', '875919' => 'Jie \'tom115701\' Zhang', ); foreach ($devTeam as $id => $name) { $devTeamStr .= ''.$name.''; } $devSkins = array( '294092' => 'Fangming \'Lushnis\' Li', '674006' => 'Jizhou \'Iavav\' Yuan', '717854' => 'Ruitao \'Pony.M\' Ma', ); $devSkinsStr = ''; foreach ($devSkins as $id => $name) { $devSkinsStr .= ''.$name.''; } $devThanksStr = ''; $devThanks = array( '122246' => 'Heyond', '632268' => 'JinboWang', '15104' => 'Redstone', '10407' => 'Qiang Liu', '210272' => 'XiaoDunFang', '86282' => 'Jianxieshui', '9600' => 'Theoldmemory', '2629' => 'Rain5017', '26926' => 'Snow Wolf', '17149' => 'Hehechuan', '9132' => 'Pk0909', '248' => 'feixin', '675' => 'Laobing Jiuba', '13877' => 'Artery', '233' => 'Huli Hutu', '122' => 'Lao Gui', '159' => 'Tyc', '177' => 'Stoneage', '7155' => 'Gregry', ); foreach ($devThanks as $id => $name) { $devThanksStr .= ''.$name.''; } showboxheader('home_dev', 'fixpadding', 'id="home_dev"'); showboxrow('', array('class="dcol d-1 lineheight"', 'class="dcol lineheight team"'), array($copyRightMessage[0], ''.$copyRightMessage[1].'')); showboxrow('', array('class="dcol d-1 lineheight"', 'class="dcol lineheight team"'), array($copyRightMessage[2], ''.$copyRightMessage[3].'')); showboxrow('', array('class="dcol d-1 lineheight"', 'class="dcol lineheight team"'), array(cplang('contributors'), $gitTeamStr)); showboxrow('', array('class="dcol d-1 lineheight"', 'class="dcol lineheight team"'), array('', ''.cplang('contributors_see').'')); showboxrow('', array('class="dcol d-1 lineheight"', 'class="dcol lineheight team"'), array(cplang('home_dev_manager'), ''.cplang('dev_manager').'')); showboxrow('', array('class="dcol d-1 lineheight"', 'class="dcol lineheight team"'), array(cplang('home_dev_team'), $devTeamStr)); showboxrow('', array('class="dcol d-1 lineheight"', 'class="dcol lineheight team"'), array(cplang('home_dev_skins'), $devSkinsStr)); showboxrow('', array('class="dcol d-1 lineheight"', 'class="dcol lineheight team"'), array(cplang('home_dev_thanks'), $devThanksStr)); showboxrow('', array('class="dcol d-1 lineheight"', 'class="dcol lineheight team tm"'), array(cplang('home_dev_links'), ' '.cplang('discuz_git').''.cplang('discussion_area').',   '.cplang('app_discussion').''.cplang('app_center').'')); showboxfooter(); }