123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328 |
- <?php
- /**
- * [Discuz!] (C)2001-2099 Comsenz Inc.
- * This is NOT a freeware, use is subject to license terms
- *
- * $Id: admincp_optimizer.php 33867 2013-08-23 06:12:21Z jeffjzhang $
- */
- if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
- exit('Access Denied');
- }
- cpheader();
- $optimizer_option = array(
- 'optimizer_thread',
- 'optimizer_setting',
- 'optimizer_post',
- 'optimizer_member',
- 'optimizer_dbbackup',
- 'optimizer_dbbackup_clean',
- 'optimizer_seo'
- );
- $security_option = array(
- 'optimizer_inviteregister',
- 'optimizer_emailregister',
- 'optimizer_pwlength',
- 'optimizer_regmaildomain',
- 'optimizer_ipregctrl',
- 'optimizer_newbiespan',
- 'optimizer_editperdel',
- 'optimizer_recyclebin',
- 'optimizer_forumstatus',
- 'optimizer_usergroup9',
- 'optimizer_usergroup4',
- 'optimizer_usergroup5',
- 'optimizer_usergroup6',
- 'optimizer_cloudsecurity',
- 'optimizer_attachexpire',
- 'optimizer_attachrefcheck',
- 'optimizer_filecheck',
- 'optimizer_plugin',
- 'optimizer_upgrade',
- 'optimizer_patch',
- 'optimizer_loginpwcheck',
- 'optimizer_loginoutofdate',
- 'optimizer_eviluser',
- 'optimizer_white_list',
- 'optimizer_security_daily',
- );
- if($_G['setting']['connect']['allow']) {
- $security_option[] = 'optimizer_postqqonly';
- $security_option[] = 'optimizer_aggid';
- }
- $check_record_time_key = 'check_record_time';
- if(in_array($operation, array('security', 'performance'))) {
- $_GET['anchor'] = $operation;
- $operation = '';
- }
- if($_GET['anchor'] == 'security') {
- shownav('safe', 'menu_security');
- $optimizer_option = $security_option;
- $check_record_time_key = 'security_check_record_time';
- showsubmenu('menu_security');
- } elseif($_GET['anchor'] == 'performance') {
- shownav('founder', 'menu_optimizer');
- showsubmenu('menu_optimizer');
- }
- if($operation) {
- $type = $_GET['type'];
- if(!in_array($type, $optimizer_option)) {
- cpmsg('parameters_error', '', 'error');
- }
- include_once 'source/discuz_version.php';
- $optimizer = new optimizer($type);
- }
- $_GET['anchor'] = in_array($_GET['anchor'], array('security', 'performance')) ? $_GET['anchor'] : 'security';
- $current = array($_GET['anchor'] => 1);
- showmenu('nav_founder_optimizer', array(
- array('founder_optimizer_security', 'optimizer&anchor=security', $current['security']),
- array('founder_optimizer_performance', 'optimizer&anchor=performance', $current['performance']),
- ));
- if($operation == 'optimize_unit') {
- $optimizer->optimizer();
- } elseif($operation == 'check_unit') {
- $checkstatus = $optimizer->check();
- C::t('common_optimizer')->update($type.'_checkrecord', ($checkstatus['status'] == 1 ? $checkstatus['status'] : 0));
- C::t('common_optimizer')->update($check_record_time_key, $_G['timestamp']);
- include template('common/header_ajax');
- echo '<script type="text/javascript">updatecheckstatus(\''.$type.'\', \''.$checkstatus['lang'].'\', \''.$checkstatus['status'].'\', \''.$checkstatus['type'].'\', \''.$checkstatus['extraurl'].'\');</script>';
- include template('common/footer_ajax');
- exit;
- } elseif($operation == 'setting_optimizer') {
- if(submitcheck('setting_optimizer', 1)) {
- $setting_options = $_GET['options'];
- if($optimizer->option_optimizer($setting_options)) {
- cpmsg('founder_optimizer_setting_succeed', 'action=optimizer&operation=setting_optimizer&type=optimizer_setting', 'succeed');
- } else {
- cpmsg('founder_optimizer_setting_error', '', 'error');
- }
- } else {
- showformheader('optimizer&operation=setting_optimizer&type=optimizer_setting');
- showtableheader();
- $option = $optimizer->get_option();
- echo '<tr class="header">';
- echo '<th></th>';
- echo '<th class="td24">'.$lang['founder_optimizer_setting_option'].'</th>';
- echo '<th>'.$lang['founder_optimizer_setting_option_description'].'</th>';
- echo '<th class="td24">'.$lang['founder_optimizer_setting_description'].'</th>';
- echo '</tr>';
- foreach($option as $setting) {
- $color = ' style="'.($setting[4] ? 'color:red;' : 'color:green').'"';
- echo '<tr>';
- echo '<td><input type="checkbox" name="options[]" value="'.$setting[0].'" '.($setting[4] ? 'checked' : 'disabled').' /></td>';
- echo '<td'.$color.'>'.$setting[1].'</td>';
- echo '<td'.$color.'>'.$setting[2].'</td>';
- echo '<td'.$color.'>'.$setting[3].'</td>';
- echo '</tr>';
- }
- showsubmit('setting_optimizer');
- showtablefooter();
- showformfooter();
- }
- } else {
- $checkrecordtime = C::t('common_optimizer')->fetch($check_record_time_key);
- if(!$_GET['checking'] && $_GET['anchor'] == 'security') {
- showtips('optimizer_security_tips');
- }
- showtableheader();
- echo '<div class="optblock cl">';
- echo $_GET['checking'] ? '<a href="javascript:;" id="checking" class="btn_big">'.$lang['founder_optimizer_checking'].'</a>' :
- '<a href="'.ADMINSCRIPT.'?action=optimizer&checking=1&anchor='.$_GET['anchor'].'" id="checking" class="btn_big">'.$lang['founder_optimizer_start_check'].'</a>';
- if($_GET['checking']) {
- echo '<div class="pbg" id="processid">';
- echo '<div class="pbr" style="width: 0;" id="percentprocess"></div>';
- echo '<div class="xs0" id="percent">0%</div>';
- echo '</div>';
- }
- echo '<div id="checkstatus">';
- if(!$checkrecordtime) {
- echo $lang['founder_optimizer_first_use'];
- } else {
- $num = 0;
- $checkrecordkey = array();
- foreach($optimizer_option as $option) {
- $checkrecordkey[] = $option.'_checkrecord';
- }
- foreach(C::t('common_optimizer')->fetch_all($checkrecordkey) as $checkrecordvalue) {
- if($checkrecordvalue['v'] == 1) {
- $num++;
- }
- }
- if(!$_GET['checking']) {
- echo $lang['founder_optimizer_lastcheck'].dgmdate($checkrecordtime).$lang['founder_optimizer_findnum'].$num.$lang['founder_optimizer_neednum'];
- }
- }
- echo '</div>';
- echo '</div>';
- if($_GET['checking']) {
- $inc_unit = ceil(100/count($optimizer_option));
- $adminscipt = ADMINSCRIPT;
- $C = '$C';
- print <<<END
- <script type="text/javascript">
- var checkpercent = 0;
- var checknum = 0;
- var optimize_num = 0;
- var security_num = 0;
- var tip_num = 0;
- var securitygrade = '';
- function updatecheckpercent() {
- checkpercent += {$inc_unit};
- checknum++;
- $('percent').innerHTML = parseInt(checkpercent) + '%';
- $('percentprocess').style.width = parseInt(checkpercent) * 2 + 'px';
- }
- function updatecheckstatus(id, msg, status, type, extraurl) {
- var optimize_table = $('optimizerable');
- var optimize_tablerows = optimize_table.rows.length;
- var security_table = $('securityoption');
- var security_tablerows = security_table.rows.length;
- var tip_table = $('tipoption');
- var tip_tablerows = tip_table.rows.length;
- if(id == 'optimizer_upgrade' || id == 'optimizer_patch') {
- securitygrade = '{$lang[founder_optimizer_low]}';
- }
- var optiontype = id;
- id = 'progress_' + id;
- $(id + '_tr').style.display = 'none';
- var color = 'green';
- if(status == 1) {
- color = 'red';
- optimize_num++;
- $('optimizerablenum').innerHTML = optimize_num;
- optimize_table.style.display = 'block';
- var newtr = optimize_table.insertRow(optimize_tablerows);
- newtr.className = 'ooclass';
- } else if(status == 2) {
- color = 'blue';
- tip_num++;
- $('tipoptionnum').innerHTML = tip_num;
- tip_table.style.display = 'block';
- var newtr = tip_table.insertRow(tip_tablerows);
- newtr.className = 'toclass';
- newtr.style.display = 'none';
- } else {
- color = 'green';
- security_num++;
- $('securityoptionnum').innerHTML = security_num;
- security_table.style.display = 'block';
- var newtr = security_table.insertRow(security_tablerows);
- newtr.className = 'soclass';
- newtr.style.display = 'none';
- }
- var statusstr = '';
- if(status != 0) {
- if(type == 'header') {
- statusstr = '<a class="btn" href="$adminscipt?action=optimizer&operation=optimize_unit&anchor=$_GET[anchor]&type='+ optiontype + extraurl + '" target="_blank">{$lang[founder_optimizer_optimizer]}</a>';
- } else if(type == 'view') {
- statusstr = '<a class="btn" href="$adminscipt?action=optimizer&operation=optimize_unit&anchor=$_GET[anchor]&type='+ optiontype + extraurl + '" target="_blank">{$lang[founder_optimizer_view]}</a>';
- } else if(type == 'scan') {
- statusstr = '<a class="btn" href="$adminscipt?action=optimizer&operation=optimize_unit&anchor=$_GET[anchor]&type='+ optiontype + extraurl + '" target="_blank">{$lang[founder_optimizer_scan]}</a>';
- }
- }
- newtr.insertCell(0).innerHTML = $(id + '_unit').innerHTML;
- newtr.insertCell(1).innerHTML = msg;
- newtr.insertCell(2).innerHTML = statusstr;
- if(parseInt(checkpercent) >= 100) {
- $('checking').innerHTML = '{$lang[founder_optimizer_recheck_js]}';
- $('checking').href = '{$adminscipt}?action=optimizer&checking=1&anchor={$_GET[anchor]}';
- $('processid').style.display = 'none';
- if('$_GET[anchor]' == 'security') {
- if(securitygrade == '') {
- if(optimize_num <= 1) {
- securitygrade = '{$lang[founder_optimizer_high]}';
- } else if(optimize_num >=2 && optimize_num <=4) {
- securitygrade = '{$lang[founder_optimizer_middle]}';
- } else {
- securitygrade = '{$lang[founder_optimizer_low]}';
- }
- }
- $('checkstatus').innerHTML = '{$lang[founder_optimizer_check_complete_js]}' + checknum + '{$lang[founder_optimizer_findnum]}' + optimize_num + '{$lang[founder_optimizer_neednum]}' + ' {$lang[founder_optimizer_level]}: <span style="color:green;font-size:16px;font-weight:700;">' + securitygrade + '</span>';
- } else {
- $('checkstatus').innerHTML = '{$lang[founder_optimizer_check_complete_js]}' + checknum + '{$lang[founder_optimizer_findnum]}' + optimize_num + '{$lang[founder_optimizer_neednum]}';
- }
- }
- }
- function showoptions(obj, option) {
- var o = $C(option);
- var isopen = 0;
- if(obj.innerHTML == '[-]') {
- isoepn = 0;
- obj.innerHTML = '[+]';
- } else {
- isopen = 1;
- obj.innerHTML = '[-]';
- }
- for(var i=0; i<o.length; i++) {
- if(isopen == 1) {
- o[i].style.display = '';
- } else {
- o[i].style.display = 'none';
- }
- }
- }
- function showlistmore(btnid, classname) {
- var btn = $(btnid);
- var o = $C(classname);
- btn.style.display = 'none';
- for(var i=0; i<o.length; i++) {
- o[i].style.display = 'block';
- }
- }
- </script>
- END;
- echo '<table class="tb tb2 tb3" style="margin-top:0;">';
- foreach($optimizer_option as $option) {
- echo '<tr class="hover" id="progress_'.$option.'_tr">';
- echo '<td width="200"><div id="progress_'.$option.'_unit">'.$lang['optimizer_check_unit_'.$option].'</td>';
- echo '<td width="350"><div id="progress_'.$option.'">'.$lang['founder_optimizer_checking'].'...</div></td><script type="text/javascript">ajaxget(\''.ADMINSCRIPT.'?action=optimizer&operation=check_unit&type='.$option.'&anchor='.$_GET['anchor'].'\', \'progress_'.$option.'\', \'\', \'\', \'\', updatecheckpercent)</script>';
- echo '<td><div id="progress_'.$option.'_status"></div></td>';
- echo '</tr>';
- }
- echo '</table>';
- echo '<table id="optimizerable" class="tb tb2 tb3" style="margin-top:0;display:none;">';
- echo '<tr><td width="200" style="color:red;font-weight:700;"><a href="javascript:;" onclick="showoptions(this, \'ooclass\')">[-]</a> '.$lang['founder_optimizer_needopti'].'(<span id="optimizerablenum"></span>)</td><td width="350"></td><td></td></tr>';
- echo '</table>';
- echo '<table id="securityoption" class="tb tb2 tb3" style="margin-top:0;display:none;">';
- echo '<tr><td width="200" style="color:green;font-weight:700;"><a href="javascript:;" onclick="showoptions(this, \'soclass\')">[+]</a> '.$lang['founder_optimizer_safe'].'(<span id="securityoptionnum"></span>)</td><td width="350"></td><td></td></tr>';
- echo '</table>';
- echo '<table id="tipoption" class="tb tb2 tb3" style="margin-top:0;display:none;">';
- echo '<tr><td width="200" style="color:blue;font-weight:700;"><a href="javascript:;" onclick="showoptions(this, \'toclass\')">[+]</a> '.$lang['founder_optimizer_notice'].'(<span id="tipoptionnum"></span>)</td><td width="350"></td><td></td></tr>';
- echo '</table>';
- }
- showtablefooter();
- }
- ?>
|