', 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 .= '
)';
}
}
}
$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').':
'.
($membersmod ? ''.cplang('home_mod_members').'('.$membersmod.')' : '').
($threadsmod ? ''.cplang('home_mod_threads').'('.$threadsmod.')' : '').
($postsmod ? ''.cplang('home_mod_posts').'('.$postsmod.')' : '').
($medalsmod ? ''.cplang('home_mod_medals').'('.$medalsmod.')' : '').
($groupmod ? ''.cplang('group_mod_wait').'('.$groupmod.')' : '').
($blogsmod ? ''.cplang('home_mod_blogs').'('.$blogsmod.')' : '').
($picturesmod ? ''.cplang('home_mod_pictures').'('.$picturesmod.')' : '').
($doingsmod ? ''.cplang('home_mod_doings').'('.$doingsmod.')' : '').
($sharesmod ? ''.cplang('home_mod_shares').'('.$sharesmod.')' : '').
($commentsmod ? ''.cplang('home_mod_comments').'('.$commentsmod.')' : '').
($articlesmod ? ''.cplang('home_mod_articles').'('.$articlesmod.')' : '').
($articlecommentsmod ? ''.cplang('home_mod_articlecomments').'('.$articlecommentsmod.')' : '').
($topiccommentsmod ? ''.cplang('home_mod_topiccomments').'('.$topiccommentsmod.')' : '').
($reportcount ? ''.cplang('home_mod_reports').'('.$reportcount.')' : '').
($threadsdel ? ''.cplang('home_del_threads').'('.$threadsdel.')' : '').
$verify.
'
';
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();
}