* * $Id: admincp_optimizer.php 31344 2012-08-15 04:01:32Z zhangjie $ */ if (!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) { exit('Access Denied'); } cpheader(); $optimizer_option = array('optimizer_plugin', 'optimizer_upgrade', 'optimizer_patch', 'optimizer_thread', 'optimizer_setting', 'optimizer_post', 'optimizer_member', 'optimizer_filecheck', 'optimizer_dbbackup', 'optimizer_dbbackup_clean', 'optimizer_seo'); if ($operation) { $type = $_GET['type']; if (!in_array($type, $optimizer_option)) { cpmsg('parameters_error', '', 'error'); } $_GET['anchor'] = $operation; include_once 'source/discuz_version.php'; $optimizer = new optimizer($type); } $_GET['anchor'] = in_array($_GET['anchor'], array('base', 'setting_optimizer', 'log_optimizer')) ? $_GET['anchor'] : 'base'; $current = array($_GET['anchor'] => 1); showsubmenu('nav_founder_optimizer', array(array('founder_optimizer_index', 'optimizer&anchor=base', $current['base']), array('founder_optimizer_setting', 'optimizer&operation=setting_optimizer&type=optimizer_setting&anchor=setting_optimizer', $current['setting_optimizer']))); if ($operation == 'optimize_unit') { $optimizer->optimizer(); } elseif ($operation == 'check_unit') { $checkstatus = $optimizer->check(); C::t('common_optimizer')->update($type . '_checkrecord', $checkstatus['status'] == 1 ? 1 : 0); C::t('common_optimizer')->update('check_record_time', $_G['timestamp']); include template('common/header_ajax'); echo '<script type="text/javascript">updatecheckstatus(\'' . $type . '\', \'' . $checkstatus['lang'] . '\', \'' . $checkstatus['status'] . '\', \'' . $checkstatus['type'] . '\');</script>'; include template('common/footer_ajax'); exit; } elseif ($operation == 'setting_optimizer') {
/** * nv_change_buffer() * * @param mixed $buffer * @return */ function nv_change_buffer($buffer) { global $db, $sys_info, $global_config, $client_info; if (NV_ANTI_IFRAME and !$client_info['is_myreferer']) { $buffer = preg_replace('/(<body[^>]*>)/', "\$1" . PHP_EOL . "<script>if(window.top!==window.self){document.write=\"\";window.top.location=window.self.location;setTimeout(function(){document.body.innerHTML=\"\"},1);window.self.onload=function(){document.body.innerHTML=\"\"}};</script>", $buffer, 1); } $body_replace = $internal = $external = ''; if (NV_CURRENTTIME > $global_config['cronjobs_next_time']) { $body_replace .= "<div id=\"run_cronjobs\" style=\"visibility:hidden;display:none;\"><img alt=\"\" src=\"" . NV_BASE_SITEURL . "index.php?second=cronjobs&p=" . nv_genpass() . "\" width=\"1\" height=\"1\" /></div>" . PHP_EOL; } if (defined('NV_SYSTEM') and preg_match('/^UA-\\d{4,}-\\d+$/', $global_config['googleAnalyticsID'])) { if ($global_config['googleAnalyticsMethod'] == 'universal') { $internal .= "(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){" . PHP_EOL; $internal .= "(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o)," . PHP_EOL; $internal .= "m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)" . PHP_EOL; $internal .= "})(window,document,'script','//www.google-analytics.com/analytics.js','ga');" . PHP_EOL; $internal .= "ga('create', '" . $global_config['googleAnalyticsID'] . "', '" . $global_config['cookie_domain'] . "');" . PHP_EOL; $internal .= "ga('send', 'pageview');" . PHP_EOL; } else { $dp = ''; if ($global_config['googleAnalyticsSetDomainName'] == 1) { $dp .= "_gaq.push([\"_setDomainName\",\"" . $global_config['cookie_domain'] . "\"]);"; } elseif ($global_config['googleAnalyticsSetDomainName'] == 2) { $dp .= "_gaq.push([\"_setDomainName\",\"none\"]);_gaq.push([\"_setAllowLinker\",true]);"; } $internal .= "var _gaq=_gaq||[];_gaq.push([\"_setAccount\",\"" . $global_config['googleAnalyticsID'] . "\"]);" . $dp . "_gaq.push([\"_trackPageview\"]);(function(){var a=document.createElement(\"script\");a.type=\"text/javascript\";a.async=true;a.src=(\"https:\"==document.location.protocol?\"https://ssl\":\"http://www\")+\".google-analytics.com/ga.js\";var b=document.getElementsByTagName(\"script\")[0];b.parentNode.insertBefore(a,b)})();" . PHP_EOL; } } if (!empty($internal)) { $internal = "<script>" . PHP_EOL . $internal . "</script>" . PHP_EOL; } $body_replace .= $internal . $external; if (!empty($body_replace)) { $buffer = preg_replace('/\\s*<\\/body>/i', PHP_EOL . $body_replace . '</body>', $buffer, 1); } $optimizer = new optimizer($buffer, NV_BASE_SITEURL); $buffer = $optimizer->process(); if (!empty($global_config['cdn_url'])) { $buffer = preg_replace("/\\<(script|link)(.*?)(src|href)=['\"]((?!http(s?)|ftp\\:\\/\\/).*?\\.(js|css))['\"](.*?)\\>/", "<\\1\\2\\3=\"" . $global_config['cdn_url'] . "\\4?t=" . $global_config['timestamp'] . "\"\\7>", $buffer); } else { $buffer = preg_replace("/\\<(script|link)(.*?)(src|href)=['\"]((?!http(s?)|ftp\\:\\/\\/).*?\\.(js|css))['\"](.*?)\\>/", "<\\1\\2\\3=\"\\4?t=" . $global_config['timestamp'] . "\"\\7>", $buffer); } return $buffer; }