OSDN Git Service

初回コミット(v2.6.17.1)
[magic3/magic3.git] / widgets / _install / include / container / _installCheckenvWidgetContainer.php
1 <?php
2 /**
3  * index.php用コンテナクラス
4  *
5  * PHP versions 5
6  *
7  * LICENSE: This source file is licensed under the terms of the GNU General Public License.
8  *
9  * @package    Magic3 Framework
10  * @author     平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
11  * @copyright  Copyright 2006-2010 Magic3 Project.
12  * @license    http://www.gnu.org/copyleft/gpl.html  GPL License
13  * @version    SVN: $Id: _installCheckenvWidgetContainer.php 3791 2010-11-08 07:07:17Z fishbone $
14  * @link       http://www.magic3.org
15  */
16 require_once($gEnvManager->getCurrentWidgetContainerPath() .    '/_installBaseWidgetContainer.php');
17 require_once($gEnvManager->getCurrentWidgetDbPath() . '/_installDb.php');
18
19 class _installCheckenvWidgetContainer extends _installBaseWidgetContainer
20 {
21         private $db;    // DB接続オブジェクト
22
23         /**
24          * コンストラクタ
25          */
26         function __construct()
27         {
28                 // 親クラスを呼び出す
29                 parent::__construct();
30                 
31                 // DBオブジェクト作成
32                 $this->db = new _installDB();
33         }
34         /**
35          * テンプレートファイルを設定
36          *
37          * _assign()でデータを埋め込むテンプレートファイルのファイル名を返す。
38          * 読み込むディレクトリは、「自ウィジェットディレクトリ/include/template」に固定。
39          *
40          * @param RequestManager $request               HTTPリクエスト処理クラス
41          * @param object         $param                 任意使用パラメータ。そのまま_assign()に渡る
42          * @return string                                               テンプレートファイル名。テンプレートライブラリを使用しない場合は空文字列「''」を返す。
43          */
44         function _setTemplate($request, &$param)
45         {       
46                 return 'checkenv.tmpl.html';
47         }
48         /**
49          * テンプレートにデータ埋め込む
50          *
51          * _setTemplate()で指定したテンプレートファイルにデータを埋め込む。
52          *
53          * @param RequestManager $request               HTTPリクエスト処理クラス
54          * @param object         $param                 任意使用パラメータ。_setTemplate()と共有。
55          * @return                                                              なし
56          */
57         function _assign($request, &$param)
58         {
59                 // 利用可能なDBをチェック
60                 // PostgreSQLのPDOが使用可能かどうか
61                 if (extension_loaded('pdo_pgsql')){
62                         $status = $this->_('available');
63                         $version = exec("psql --version", $output);     // PostgreSQLバージョン取得
64                         // 出力からバージョンを抜き出す
65                         $words = explode(' ', $output[0]);
66                         $version = $words[count($words)-1];             // 行末にはバージョン数値が存在する
67                         if (empty($version)) $version = $this->_('version unknown');// バージョン不明
68                         $status .= '(' . $version . ')';
69                         $data = '<b><font color="green">' . $status . '</font></b>';
70                 } else {
71                         $status = $this->_('not available(pdo_pgsql not installed)');           // 利用不可(pdo_pgsqlがインストールされていません)
72                         $data = '<b><font color="red">' . $status . '</font></b>';
73                 }
74                 $this->tmpl->addVar("_widget","current_postgresql_status", $data);
75
76                 // MySQLのPDOが使用可能かどうか
77                 if (extension_loaded('pdo_mysql')){
78                         $status = $this->_('available');
79                         $version = exec("mysql_config --version");      // MySQLバージョン取得
80                         if (empty($version)) $version = $this->_('version unknown');
81                         $status .= '(' . $version . ')';
82                         $data = '<b><font color="green">' . $status . '</font></b>';
83                 } else {
84                         $status = $this->_('not available(pdo_mysql not installed)');                   // 利用不可(pdo_mysqlがインストールされていません)
85                         $data = '<b><font color="red">' . $status . '</font></b>';
86                 }
87                 $this->tmpl->addVar("_widget","current_mysql_status", $data);
88                 
89                 // PHPのバージョンをチェック
90                 $data = '<b><font color="green">' . $this->_('5.1.0 more') . '</font></b>';             // 5.1.0 以上
91                 $this->tmpl->addVar("_widget","config_php_version", $data);
92                 
93                 $phpVer = phpversion();
94                 if ($phpVer >= '5.1.0'){
95                         $data = '<b><font color="green">' . $phpVer . '</font></b>';
96                 } else {
97                         $data = '<b><font color="red">' . $phpVer . '</font></b>';
98                 }
99                 $this->tmpl->addVar("_widget","current_php_version", $data);
100                 
101                 // メモリ使用量のチェック
102                 $data = '<b><font color="green">' . M3_SYSTEM_MIN_MEMORY . $this->_('bytes(encouraged)') . '</font></b>';
103                 $this->tmpl->addVar("_widget","config_memory_limit", $data);
104                 
105                 $limit = ini_get('memory_limit');
106                 if (convBytes($limit) >= convBytes(M3_SYSTEM_MIN_MEMORY)){
107                         $data = '<b><font color="green">' . $limit . '</font></b>';
108                 } else {
109                         $data = '<b><font color="red">' . $limit . '</font></b>';
110                 }
111                 $this->tmpl->addVar("_widget","current_memory_limit", $data);
112                 
113                 // セーフモード
114                 $data = '<b><font color="green">' . $this->_('off(encouraged)') . '</font></b>';
115                 //$data = '<br />';
116                 $this->tmpl->addVar("_widget","config_safe_mode", $data);
117                 if (ini_get('safe_mode')){
118                         //$data = '<b><font color="red">on</font></b>';
119                         $data = '<b><font color="green">on</font></b>';
120                 } else {
121                         $data = '<b><font color="green">off</font></b>';
122                 }
123                 $this->tmpl->addVar("_widget","current_safe_mode", $data);
124         
125                 // Magic Quote
126                 $data = '<b><font color="green">off</font></b>';
127                 $this->tmpl->addVar("_widget","config_magic_quotes_gpc", $data);
128                 if (get_magic_quotes_gpc()){
129                         $data = '<b><font color="red">on</font></b>';
130                 } else {
131                         $data = '<b><font color="green">off</font></b>';
132                 }
133                 $this->tmpl->addVar("_widget","current_magic_quotes_gpc", $data);
134                 
135                 $data = '<b><font color="green">off</font></b>';
136                 $this->tmpl->addVar("_widget","config_magic_quotes_runtime", $data);
137                 if (get_magic_quotes_runtime()){
138                         $data = '<b><font color="red">on</font></b>';
139                 } else {
140                         $data = '<b><font color="green">off</font></b>';
141                 }
142                 $this->tmpl->addVar("_widget","current_magic_quotes_runtime", $data);
143                 $data = '<b><font color="green">on</font></b>';
144                 $this->tmpl->addVar("_widget","config_file_uploads", $data);
145                 if (ini_get('file_uploads')){
146                         $data = '<b><font color="green">on</font></b>';
147                 } else {
148                         $data = '<b><font color="red">off</font></b>';
149                 }
150                 $this->tmpl->addVar("_widget","current_file_uploads", $data);
151                 
152                 // ######## PHP拡張オプションのインストール状況 ########
153                 // PDO
154                 $data = '<b><font color="green">on</font></b>';
155                 $this->tmpl->addVar("_widget","config_pdo", $data);
156                 if (extension_loaded('pdo')){
157                         $data = '<b><font color="green">on</font></b>';
158                 } else {
159                         $data = '<b><font color="red">off(' . $this->_('PDO not installed') . ')</font></b>';           // pdoがインストールされていません
160                 }
161                 $this->tmpl->addVar("_widget","current_pdo", $data);
162                 
163                 // mbstring
164                 $data = '<b><font color="green">on</font></b>';
165                 $this->tmpl->addVar("_widget","config_mbstring", $data);
166                 if (extension_loaded('mbstring')){
167                         $data = '<b><font color="green">on</font></b>';
168                 } else {
169                         $data = '<b><font color="red">off</font></b>';
170                 }
171                 $this->tmpl->addVar("_widget","current_mbstring", $data);
172                 // mbstring.encoding_translation
173                 $data = '<b><font color="green">off</font></b>';
174                 $this->tmpl->addVar("_widget","config_mbstring_tran", $data);
175                 if (ini_get('mbstring.encoding_translation')){
176                         $data = '<b><font color="red">on</font></b>';
177                 } else {
178                         $data = '<b><font color="green">off</font></b>';
179                 }
180                 $this->tmpl->addVar("_widget","current_mbstring_tran", $data);
181
182                 // zlib
183                 $data = '<b><font color="green">on</font></b>';
184                 $this->tmpl->addVar("_widget","config_zlib", $data);
185                 if (extension_loaded('zlib')){
186                         $data = '<b><font color="green">on</font></b>';
187                 } else {
188                         $data = '<b><font color="red">off</font></b>';
189                 }
190                 $this->tmpl->addVar("_widget","current_zlib", $data);
191                 // gd
192                 $data = '<b><font color="green">on</font></b>';
193                 $this->tmpl->addVar("_widget","config_gd", $data);
194                 if (extension_loaded('gd')){
195                         $data = '<b><font color="green">on</font></b>';
196                 } else {
197                         $data = '<b><font color="red">off</font></b>';
198                 }
199                 $this->tmpl->addVar("_widget","current_gd", $data);
200                 // dom
201                 $data = '<b><font color="green">on</font></b>';
202                 $this->tmpl->addVar("_widget","config_dom", $data);
203                 if (extension_loaded('dom')){
204                         $data = '<b><font color="green">on</font></b>';
205                 } else {
206                         $data = '<b><font color="red">off</font></b>';
207                 }
208                 $this->tmpl->addVar("_widget","current_dom", $data);
209                 // xml
210                 //$data = '<b><font color="green">offでも動作可</font></b>';
211                 $data = '';
212                 $this->tmpl->addVar("_widget","config_xml", $data);
213                 if (extension_loaded('xml')){
214                         $data = '<b><font color="green">on</font></b>';
215                 } else {
216                         $data = '<b><font color="red">off</font></b>';
217                 }
218                 $this->tmpl->addVar("_widget","current_xml", $data);
219                 // gettext
220 /*              $data = '<b><font color="green">on</font></b>';
221                 $this->tmpl->addVar("_widget","config_gettext", $data);
222                 if (extension_loaded('gettext')){
223                         $data = '<b><font color="green">on</font></b>';
224                 } else {
225                         $data = '<b><font color="red">off</font></b>';
226                 }
227                 $this->tmpl->addVar("_widget","current_gettext", $data);*/
228                 
229                 // 設定ファイルのパス
230                 $data = $this->gConfig->configFilePath();
231                 $this->tmpl->addVar("_widget","current_config_path", $data);
232                 
233                 // 設定ファイルが書き込み可能かどうかチェック
234                 $data = '<b><font color="green">' . $this->_('writable') . '</font></b>';
235                 $this->tmpl->addVar("_widget","config_access", $data);
236                 
237                 if ($this->gConfig->isConfigDirWritable()){
238                         if ($this->gConfig->isConfigFileWritable()){
239                                 $data = '<b><font color="green">' . $this->_('writable') . '</font></b>';
240                         } else {
241                                 $data = '<b><font color="red">' . $this->_('not writable') . '</font></b>';
242                         }
243                 } else {
244                         $data = '<b><font color="red">' . $this->_('directory not writable') . '</font></b>';                   // ディレクトリ書き込み不可
245                 }
246                 $this->tmpl->addVar("_widget","current_access", $data);
247                 
248                 // クッキーの使用
249                 $data = '<b><font color="green">on</font></b>';
250                 $this->tmpl->addVar("_widget","config_sess_use_cookies", $data);
251                 if (ini_get('session.use_cookies')){
252                         $data = '<b><font color="green">on</font></b>';
253                 } else {
254                         $data = '<b><font color="red">off</font></b>';
255                 }
256                 $this->tmpl->addVar("_widget","current_sess_use_cookies", $data);
257                 
258                 // ##### セッション関係 #####
259                 // セッションIDの自動付加
260                 $data = '<b><font color="green">off</font></b>';
261                 $this->tmpl->addVar("_widget","config_sess_use_trans_sid", $data);
262                 if (ini_get('session.use_trans_sid')){
263                         $data = '<b><font color="red">on</font></b>';
264                 } else {
265                         $data = '<b><font color="green">off</font></b>';
266                 }
267                 $this->tmpl->addVar("_widget","current_sess_use_trans_sid", $data);
268                 
269                 // セッション起動
270                 $data = '<b><font color="green">off</font></b>';
271                 $this->tmpl->addVar("_widget","config_sess_auto_start", $data);
272                 if (ini_get('session.auto_start')){
273                         $data = '<b><font color="red">on</font></b>';
274                 } else {
275                         $data = '<b><font color="green">off</font></b>';
276                 }
277                 $this->tmpl->addVar("_widget","current_sess_auto_start", $data);
278                 
279                 // セッション保存用パス
280                 $sp = ini_get('session.save_path');
281                 $this->tmpl->addVar("_widget","current_session_path", $sp);
282                                                 
283                 //$data = '<b><font color="green">どちらでも可</font></b>';
284                 $data = '<br />';
285                 $this->tmpl->addVar("_widget","config_session_access", $data);
286                 
287                 if (@is_writable($sp)){
288                         $data = '<b><font color="green">' . $this->_('writable') . '</font></b>';
289                 } else {
290                         $data = '<b><font color="green">' . $this->_('not writable') . '</font></b>';
291                 }
292                 $this->tmpl->addVar("_widget","current_session_access", $data);
293                 
294                 // セッションID
295                 $data = '<b><font color="green">' . $this->_('enable') . '</font></b>';
296                 $this->tmpl->addVar("_widget","config_session_id", $data);
297                 $sid = session_id();
298                 if (empty($sid)){
299                         $data = '<b><font color="red">' . $this->_('disable') . '</font></b>';
300                 } else {
301                         $data = '<b><font color="green">' . $sid . '</font></b>';
302                 }
303                 $this->tmpl->addVar("_widget","current_session_id", $data);
304                 
305                 // 一時ディレクトリパス
306                 //$path = M3_SYSTEM_WORK_DIR_PATH;
307                 $path = $this->gEnv->getWorkDirPath();
308                 $this->tmpl->addVar("_widget","current_tmp_dir", $path);
309                 
310                 $data = '<b><font color="green">' . $this->_('writable') . '</font></b>';
311                 $this->tmpl->addVar("_widget","config_tmp_dir_access", $data);
312                 
313                 if (is_writable($path)){
314                         $data = '<b><font color="green">' . $this->_('writable') . '</font></b>';
315                 } else {
316                         $data = '<b><font color="red">' . $this->_('not writable') . '</font></b>';
317                 }
318                 $this->tmpl->addVar("_widget","current_tmp_dir_access", $data);
319                 
320                 // 画像格納ディレクトリパス
321                 $path = $this->gEnv->getResourcePath();
322                 $this->tmpl->addVar("_widget","current_resource_dir", $path);
323                                                 
324                 $data = '<b><font color="green">' . $this->_('writable') . '</font></b>';
325                 $this->tmpl->addVar("_widget","config_resource_dir_access", $data);
326                 
327                 if (is_writable($path)){
328                         $data = '<b><font color="green">' . $this->_('writable') . '</font></b>';
329                 } else {
330                         $data = '<b><font color="red">' . $this->_('not writable') . '</font></b>';
331                 }
332                 $this->tmpl->addVar("_widget","current_resource_dir_access", $data);
333                 
334                 // テキストをローカライズ
335                 $localeText = array();
336                 $localeText['title_check_env'] = $this->_('Check Install Environment');
337                 $localeText['label_check_item'] = $this->_('Check Item');
338                 $localeText['label_required_value'] = $this->_('Required Value');
339                 $localeText['label_current_value'] = $this->_('Current Value');
340                 $localeText['label_php_version'] = $this->_('PHP Version');
341                 $localeText['label_memory_limit'] = $this->_('Memory Limit(bytes)');                    // 最大メモリ量(バイト)
342                 $localeText['label_permit_upload'] = $this->_('Permit file uploading');                 // ファイルアップロード許可
343                 $localeText['label_session_path'] = $this->_('Session Path');   // セッション保存パス
344                 $localeText['label_session_path_permission'] = $this->_('Session Path Permission');// セッション保存パスのアクセス権
345                 $localeText['label_session_id'] = $this->_('Session ID');// セッションID
346                 $localeText['label_tmp_dir'] = $this->_('Temporary Directory(Install Use)');// 一時ディレクトリ(インストール時に使用する一時ディレクトリ)
347                 $localeText['label_tmp_dir_permission'] = $this->_('Temporary Directory Permission');// 一時ディレクトリのアクセス権
348                 $localeText['label_msg_dir_permission'] = $this->_('If directory is not writable, change permission to write or chenge directory to be writable.');// 書き込み不可の場合は書き込み可能なディレクトリあるいはアクセス権に設定する必要あり
349                 $localeText['label_magic3_config_file'] = $this->_('Magic3 Config File');                // Magic3設定ファイルのパス
350                 $localeText['label_magic3_config_file_permission'] = $this->_('Magic3 Config File Permission');// Magic3設定ファイルのアクセス権
351                 $localeText['label_resource_dir'] = $this->_('Resource Directory(for Image files etc)');// リソース(画像等)格納ディレクトリ
352                 $localeText['label_resource_dir_permission'] = $this->_('Resource Directory Permission');// リソース(画像等)格納ディレクトリのアクセス権
353                 $this->setLocaleText($localeText);
354         }
355 }
356 ?>