From 33489f6a5b225671fb619b42f3b922489be74919 Mon Sep 17 00:00:00 2001
From: akasima
Date: Thu, 5 Dec 2013 16:08:47 +0900
Subject: [PATCH] add server Env view page
---
modules/admin/admin.admin.model.php | 42 ++++++++++++
modules/admin/admin.admin.view.php | 100 ++++++++++++++++++++++++++++
modules/admin/conf/module.xml | 1 +
modules/admin/lang/lang.xml | 9 +++
modules/admin/tpl/_footer.html | 1 +
modules/admin/tpl/server_env.html | 8 +++
6 files changed, 161 insertions(+)
create mode 100644 modules/admin/tpl/server_env.html
diff --git a/modules/admin/admin.admin.model.php b/modules/admin/admin.admin.model.php
index 313ce855b..5e544903a 100644
--- a/modules/admin/admin.admin.model.php
+++ b/modules/admin/admin.admin.model.php
@@ -315,6 +315,9 @@ class adminAdminModel extends admin
'ext' => array('pcre', 'json', 'hash', 'dom', 'session', 'spl', 'standard', 'date', 'ctype', 'tokenizer', 'apache2handler', 'filter', 'posix', 'reflection', 'pdo')
, 'module' => array('addon', 'admin', 'autoinstall', 'comment', 'communication', 'counter', 'document', 'editor', 'file', 'importer', 'install', 'integration_search', 'layout', 'member', 'menu', 'message', 'module', 'opage', 'page', 'point', 'poll', 'rss', 'session', 'spamfilter', 'tag', 'trackback', 'trash', 'widget')
, 'addon' => array('autolink', 'blogapi', 'captcha', 'counter', 'member_communication', 'member_extra_info', 'mobile', 'openid_delegation_id', 'point_level_icon', 'resize_image')
+ , 'layout' => array('default')
+ , 'widget' => array('content', 'language_select', 'login_info','mcontent')
+ , 'widgetstyle' => array(),
);
$info = array();
$db_info = Context::getDBInfo();
@@ -370,6 +373,45 @@ class adminAdminModel extends admin
}
$info['addon'] = substr($info['addon'], 1);
+ $info['layout'] = "";
+ $oLayoutModel = getModel('layout');
+ $layout_list = $oLayoutModel->getDownloadedLayoutList();
+ foreach($layout_list as $layout)
+ {
+ if(in_array($layout->layout, $skip['layout']))
+ {
+ continue;
+ }
+ $info['layout'] .= '|' . $layout->layout;
+ }
+ $info['layout'] = substr($info['layout'], 1);
+
+ $info['widget'] = "";
+ $oWidgetModel = getModel('widget');
+ $widget_list = $oWidgetModel->getDownloadedWidgetList();
+ foreach($widget_list as $widget)
+ {
+ if(in_array($widget->widget, $skip['widget']))
+ {
+ continue;
+ }
+ $info['widget'] .= '|' . $widget->widget;
+ }
+ $info['widget'] = substr($info['widget'], 1);
+
+ $info['widgetstyle'] = "";
+ $oWidgetModel = getModel('widget');
+ $widgetstyle_list = $oWidgetModel->getDownloadedWidgetStyleList();
+ foreach($widgetstyle_list as $widgetstyle)
+ {
+ if(in_array($widgetstyle->widgetStyle, $skip['widgetstyle']))
+ {
+ continue;
+ }
+ $info['widgetstyle'] .= '|' . $widgetstyle->widgetStyle;
+ }
+ $info['widgetstyle'] = substr($info['widgetstyle'], 1);
+
$param = '';
foreach($info as $k => $v)
{
diff --git a/modules/admin/admin.admin.view.php b/modules/admin/admin.admin.view.php
index 55928d8b4..9c0caddc3 100644
--- a/modules/admin/admin.admin.view.php
+++ b/modules/admin/admin.admin.view.php
@@ -534,6 +534,106 @@ class adminAdminView extends admin
}
}
+ /**
+ * Retrun server environment to XML string
+ * @return object
+ */
+ function dispAdminViewServerEnv()
+ {
+ $info = array();
+
+ $oAdminModel = getAdminModel('admin');
+ $envInfo = $oAdminModel->getEnv();
+ $tmp = explode("&", $envInfo);
+ $arrInfo = array();
+ $xe_check_env = array();
+ foreach($tmp as $value) {
+ $arr = explode("=", $value);
+ if($arr[0]=="type") {
+ continue;
+ }elseif($arr[0]=="phpext" ) {
+ $str = urldecode($arr[1]);
+ $xe_check_env[$arr[0]]= str_replace("|", ", ", $str);
+ } elseif($arr[0]=="module" ) {
+ $str = urldecode($arr[1]);
+ $arrModuleName = explode("|", $str);
+ $oModuleModel = getModel("module");
+ $mInfo = array();
+ foreach($arrModuleName as $moduleName) {
+ $moduleInfo = $oModuleModel->getModuleInfoXml($moduleName);
+ $mInfo[] = "{$moduleName}({$moduleInfo->version})";
+ }
+ $xe_check_env[$arr[0]]= join(", ", $mInfo);
+ } elseif($arr[0]=="addon") {
+ $str = urldecode($arr[1]);
+ $arrAddonName = explode("|", $str);
+ $oAddonModel = getAdminModel("addon");
+ $mInfo = array();
+ foreach($arrAddonName as $addonName) {
+ $addonInfo = $oAddonModel->getAddonInfoXml($addonName);
+ $mInfo[] = "{$addonName}({$addonInfo->version})";
+ }
+ $xe_check_env[$arr[0]]= join(", ", $mInfo);
+ } elseif($arr[0]=="widget") {
+ $str = urldecode($arr[1]);
+ $arrWidgetName = explode("|", $str);
+ $oWidgetModel = getModel("widget");
+ $mInfo = array();
+ foreach($arrWidgetName as $widgetName) {
+ $widgetInfo = $oWidgetModel->getWidgetInfo($widgetName);
+ $mInfo[] = "{$widgetName}({$widgetInfo->version})";
+ }
+ $xe_check_env[$arr[0]]= join(", ", $mInfo);
+ } elseif($arr[0]=="widgetstyle") {
+ $str = urldecode($arr[1]);
+ $arrWidgetstyleName = explode("|", $str);
+ $oWidgetModel = getModel("widget");
+ $mInfo = array();
+ foreach($arrWidgetstyleName as $widgetstyleName) {
+ $widgetstyleInfo = $oWidgetModel->getWidgetStyleInfo($widgetstyleName);
+ $mInfo[] = "{$widgetstyleName}({$widgetstyleInfo->version})";
+ }
+ $xe_check_env[$arr[0]]= join(", ", $mInfo);
+
+ } elseif($arr[0]=="layout") {
+ $str = urldecode($arr[1]);
+ $arrLayoutName = explode("|", $str);
+ $oLayoutModel = getModel("layout");
+ $mInfo = array();
+ foreach($arrLayoutName as $layoutName) {
+ $layoutInfo = $oLayoutModel->getLayoutInfo($layoutName);
+ $mInfo[] = "{$layoutName}({$layoutInfo->version})";
+ }
+ $xe_check_env[$arr[0]]= join(", ", $mInfo);
+ } else {
+ $xe_check_env[$arr[0]] = urldecode($arr[1]);
+ }
+ }
+ $info['XE_Check_Evn'] = $xe_check_env;
+
+ $ini_info = ini_get_all();
+ $php_core = array();
+ $php_core['max_file_uploads'] = "{$ini_info['max_file_uploads']['local_value']}";
+ $php_core['post_max_size'] = "{$ini_info['post_max_size']['local_value']}";
+ $php_core['memory_limit'] = "{$ini_info['memory_limit']['local_value']}";
+ $info['PHP_Core'] = $php_core;
+
+ $str_info = "[XE Server Environment " . date("Y-m-d") . "]\n\n";
+ foreach( $info as $key=>$value )
+ {
+ if( is_array( $value ) == false ) {
+ $str_info .= "{$key} : {$value}\n";
+ } else {
+ //$str_info .= "\n{$key} \n";
+ foreach( $value as $key2=>$value2 )
+ $str_info .= "{$key2} : {$value2}\n";
+ }
+ }
+
+ Context::set('str_info', $str_info);
+ $this->setTemplateFile('server_env.html');
+ }
+
}
/* End of file admin.admin.view.php */
/* Location: ./modules/admin/admin.admin.view.php */
diff --git a/modules/admin/conf/module.xml b/modules/admin/conf/module.xml
index 5d1fbad2c..5412b7392 100644
--- a/modules/admin/conf/module.xml
+++ b/modules/admin/conf/module.xml
@@ -7,6 +7,7 @@
+
diff --git a/modules/admin/lang/lang.xml b/modules/admin/lang/lang.xml
index 2eba3f2e4..d5effc6a7 100644
--- a/modules/admin/lang/lang.xml
+++ b/modules/admin/lang/lang.xml
@@ -1240,6 +1240,15 @@
+ -
+
+
+
+ -
+
+
+
+
-
diff --git a/modules/admin/tpl/_footer.html b/modules/admin/tpl/_footer.html
index cb9860666..6f3ff772b 100644
--- a/modules/admin/tpl/_footer.html
+++ b/modules/admin/tpl/_footer.html
@@ -10,6 +10,7 @@
|
|
|
+ {$lang->cmd_view_server_env} |
{$lang->bug_report}
diff --git a/modules/admin/tpl/server_env.html b/modules/admin/tpl/server_env.html
new file mode 100644
index 000000000..5e63724b4
--- /dev/null
+++ b/modules/admin/tpl/server_env.html
@@ -0,0 +1,8 @@
+
+
+
+