Файл: concrete5.7.5.6/concrete/controllers/single_page/dashboard/system/environment/info.php
Строк: 296
<?php
namespace ConcreteControllerSinglePageDashboardSystemEnvironment;
use ConcreteCoreFoundationEnvironment;
use ConcreteCorePageControllerDashboardPageController;
use ConcreteCorePackagePackageList;
use Config;
use Core;
use Localization;
class Info extends DashboardPageController
{
public function get_environment_info()
{
$activeLocale = Localization::activeLocale();
if ($activeLocale != 'en_US') {
Localization::changeLocale('en_US');
}
$maxExecutionTime = ini_get('max_execution_time');
set_time_limit(5);
$environmentMessage = "# concrete5 Versionn";
$environmentMessage .= "Core Version - " . Config::get('concrete.version') . "n";
$environmentMessage .= "Version Installed - " . Config::get('concrete.version_installed') . "n";
$environmentMessage .= "Database Version - " . Config::get('concrete.version_db') . "nn";
$environmentMessage .= "# concrete5 Packagesn";
$pla = PackageList::get();
$pl = $pla->getPackages();
$packages = array();
foreach ($pl as $p) {
if ($p->isPackageInstalled()) {
$packages[] = $p->getPackageName() . ' (' . $p->getPackageVersion() . ')';
}
}
if (count($packages) > 0) {
natcasesort($packages);
$environmentMessage .= implode(', ', $packages);
$environmentMessage .= ".n";
} else {
$environmentMessage .= "Nonen";
}
$environmentMessage .= "n";
// overrides
$environmentMessage .= "# concrete5 Overridesn";
$env = Environment::get();
$overrides = $env->getOverrideList();
if (count($overrides) > 0) {
$environmentMessage .= implode(', ', $overrides);
$environmentMessage .= "n";
} else {
$environmentMessage .= "Nonen";
}
$environmentMessage .= "n";
print $environmentMessage;
// cache
$environmentMessage = "# concrete5 Cache Settingsn";
$environmentMessage .= sprintf("Block Cache - %sn", Config::get('concrete.cache.blocks') ? 'On' : 'Off');
$environmentMessage .= sprintf("Overrides Cache - %sn", Config::get('concrete.cache.overrides') ? 'On' : 'Off');
$environmentMessage .= sprintf("Full Page Caching - %sn", (Config::get('concrete.cache.pages') == 'blocks' ? 'On - If blocks on the particular page allow it.' : (Config::get('concrete.cache.pages') == 'all' ? 'On - In all cases.' : 'Off')));
if (Config::get('concrete.cache.full_page_lifetime')) {
$environmentMessage .= sprintf("Full Page Cache Lifetime - %sn", (Config::get('concrete.cache.full_page_lifetime') == 'default' ? sprintf('Every %s (default setting).', Core::make('helper/date')->describeInterval(Config::get('concrete.cache.lifetime'))) : (Config::get('concrete.cache.full_page_lifetime') == 'forever' ? 'Only when manually removed or the cache is cleared.' : sprintf('Every %s minutes.', Config::get('concrete.cache.full_page_lifetime_value')))));
}
$environmentMessage .= "n";
print $environmentMessage;
$environmentMessage = "# Server Softwaren" . $_SERVER['SERVER_SOFTWARE'] . "nn";
$environmentMessage .= "# Server APIn" . php_sapi_name() . "nn";
$environmentMessage .= "# PHP Versionn" . PHP_VERSION . "nn";
$environmentMessage .= "# PHP Extensionsn";
if (function_exists('get_loaded_extensions')) {
$gle = @get_loaded_extensions();
natcasesort($gle);
$environmentMessage .= implode(', ', $gle);
$environmentMessage .= ".n";
} else {
$environmentMessage .= "Unable to determinen";
}
print $environmentMessage;
ob_start();
phpinfo();
$section = 'phpinfo';
$phpinfo = array($section => array());
if (preg_match_all('#(?:<h2>(?:<a name=".*?">)?(.*?)(?:</a>)?</h2>)|(?:<tr(?: class=".*?")?><t[hd](?: class=".*?")?>(.*?)s*</t[hd]>(?:<t[hd](?: class=".*?")?>(.*?)s*</t[hd]>(?:<t[hd](?: class=".*?")?>(.*?)s*</t[hd]>)?)?</tr>)#s', ob_get_clean(), $matches, PREG_SET_ORDER)) {
foreach ($matches as $match) {
if (strlen($match[1])) {
$section = $match[1];
$phpinfo[$section] = array();
} elseif (isset($match[3])) {
$phpinfo[$section][$match[2]] = isset($match[4]) ? array($match[3], $match[4]) : $match[3];
} else {
$phpinfo[$section][] = $match[2];
}
}
}
$environmentMessage = "n# PHP Settingsn";
$environmentMessage .= "max_execution_time - $maxExecutionTimen";
foreach ($phpinfo as $name => $section) {
foreach ($section as $key => $val) {
if (preg_match('/.*max_execution_time*/', $key)) {
continue;
}
if (!preg_match('/.*limit.*/', $key) && !preg_match('/.*safe.*/', $key) && !preg_match('/.*max.*/', $key)) {
continue;
}
if (is_array($val)) {
$environmentMessage .= "$key - $val[0]n";
} elseif (is_string($key)) {
$environmentMessage .= "$key - $valn";
} else {
$environmentMessage .= "$valn";
}
}
}
print $environmentMessage;
exit;
}
}