OSDN Git Service

シャットダウンイベント追加。
[magic3/magic3.git] / include / container / baseFrameContainer.php
index 4e77aa5..b16c68b 100644 (file)
@@ -376,7 +376,11 @@ class BaseFrameContainer extends Core
                                // 画面を作成
                                $pageData = $this->_createPage($request, $curTemplateId, $subTemplateId);
                                
-                               // 使用した非共通ウィジェットの数をチェック
+                               // ##### 非共通ウィジェットがページ上になくてもエラーとしない #####
+                               $this->gCache->setPageCache($request, $pageData);               // キャッシュデータを設定
+                               echo $pageData;
+                                       
+/*                             // 使用した非共通ウィジェットの数をチェック
                                $nonSharedWidgetCount = $this->gPage->getNonSharedWidgetCount();
                                if ($nonSharedWidgetCount == -1){               // カウントなしの場合
                                        $this->gCache->setPageCache($request, $pageData);               // キャッシュデータを設定
@@ -395,13 +399,8 @@ class BaseFrameContainer extends Core
 
                                                // アクセス不可ページへ遷移
                                                $this->gPage->redirect('?' . M3_REQUEST_PARAM_PAGE_SUB_ID . '=_accessdeny');
-                                               // システム制御モードに変更
-                                               //$this->gPage->setSystemHandleMode(11/*アクセス不可*/);
-
-                                               // システム制御画面を表示
-                                               //$this->_showSystemPage($request, 0/*アクセス不可画面*/);
                                        }
-                               }
+                               }*/
                        } else {
                                echo $cacheData;
                        }
@@ -708,6 +707,7 @@ class BaseFrameContainer extends Core
                        require_once($this->gEnv->getWordpressRootPath() . '/wp-includes/functions.php');
                        require_once($this->gEnv->getWordpressRootPath() . '/wp-includes/default-filters.php');
                        require_once($this->gEnv->getWordpressRootPath() . '/wp-includes/l10n.php');
+                       require_once($this->gEnv->getWordpressRootPath() . '/wp-includes/class-wp-error.php');
                        require_once($this->gEnv->getWordpressRootPath() . '/wp-includes/class-wp.php');
                        require_once($this->gEnv->getWordpressRootPath() . '/wp-includes/class-wp-locale.php');
                        require_once($this->gEnv->getWordpressRootPath() . '/wp-includes/class-wp-user.php');
@@ -724,6 +724,7 @@ class BaseFrameContainer extends Core
 //                     require_once($this->gEnv->getWordpressRootPath() . '/wp-includes/class-wp-dependency.php');
                        require_once($this->gEnv->getWordpressRootPath() . '/wp-includes/class-wp-post.php');                   // コンテンツAPIマネージャーからWP_Post型でデータを取得
                        require_once($this->gEnv->getWordpressRootPath() . '/wp-includes/class-wp-post-type.php');
+                       require_once($this->gEnv->getWordpressRootPath() . '/wp-includes/class-wp-embed.php');
 
                        require_once($this->gEnv->getWordpressRootPath() . '/wp-includes/query.php');
                        require_once($this->gEnv->getWordpressRootPath() . '/wp-includes/pluggable.php');
@@ -767,7 +768,9 @@ class BaseFrameContainer extends Core
 
                        // ##### データ初期化 #####
                        wp_initial_constants();                 // WordPressその他定義値設定
+                       wp_cookie_constants();                  // クッキー用定義
                        create_initial_post_types();    // WP_Post型データ型登録
+                       register_shutdown_function('shutdown_action_hook');             // 終了時イベント登録
                        
                        // プラグイン初期化
                        $GLOBALS['wp_plugin_paths'] = array();                  // $wp_plugin_pathsは未使用?
@@ -780,24 +783,27 @@ class BaseFrameContainer extends Core
                        // WordPressメインオブジェクト作成
                        $GLOBALS['wp_version'] = '4.7.0';                       // 下位互換性チェックで引っかかるのでv4.7.0に定める
                        $GLOBALS['locale'] = $this->gEnv->getCurrentLanguage();         // 表示言語を設定
+                       $GLOBALS['wp_embed'] = new WP_Embed();
                        $GLOBALS['wp_the_query'] = new WP_Query();                              // $wp_the_queryは変更不可変数で$wp_queryは変更可変数
                        $GLOBALS['wp_query'] = $GLOBALS['wp_the_query'];
                        $GLOBALS['wp'] = new WP();
                        $GLOBALS['wp_widget_factory'] = new WP_Widget_Factory();
                        $GLOBALS['gContentApi'] = new contentApi();                     // Magic3コンテンツAPIオブジェクト
                        $GLOBALS['gMenuApi'] = new menuApi();                   // Magic3メニュー情報APIオブジェクト
+                       $GLOBALS['m3WpOptions'] = array();                              // 定義値初期化
                        // テンプレートから参照可能にする
                        global $wp_query;
 
-                       // ページに配置されているウィジェットの状況からWordPress以外の主コンテンツ用のプラグインをロード
+                       // ページに配置されているウィジェットの状況からWordPress以外の主コンテンツ用のプラグイン(WooCommerce等)をロード
+                       // setup_themeイベント処理を設定
                        $GLOBALS['gContentApi']->loadPlugin();
-
+                       
                        // テンプレート初期処理
                        do_action('setup_theme');
                        load_default_textdomain();                      // 言語リソースを読み込む
                        m3WpInit();                                                     // 言語リソース読み込み後にMagic3用インターフェイス初期化。$GLOBALS['m3WpOptions']を初期化し、get_option()はここから使用可能にする。
                        $GLOBALS['wp_locale'] = new WP_Locale();                // 言語リソース読み込み後に生成
-                       
+
                        // functions.phpを読み込む。ファイル内で定義されている変数はグローバル変数に変換する。
                        $this->_loadFileAsGlobal(TEMPLATEPATH . '/functions.php');
 
@@ -947,6 +953,18 @@ class BaseFrameContainer extends Core
                                                        return;                         // ここで終了
                                                }
                                        }
+//                             } else {
+//                                     // 検索キーワードが設定されている場合は画面タイトルを設定
+//                                     $value = $request->trimValueOf(M3_REQUEST_PARAM_KEYWORD);
+//                                     if (!empty($value)){
+//                                     }
+                               }
+                               
+                               // ##### デフォルトのページタイトルを設定 #####
+                               $pageInfo = $this->gPage->getCurrentPageInfo();
+                               if (!empty($pageInfo)){
+                                       $pageTitle = $pageInfo['pg_name'];
+                                       if (!empty($pageTitle)) $GLOBALS['gContentApi']->setPostTitle($pageTitle);
                                }
                                
                                // コンテンツタイプが設定されていないページ(お問合わせページ等)に場合は、固定ページ用のテンプレートを使用
@@ -1225,9 +1243,10 @@ class BaseFrameContainer extends Core
                                }
                                
                                // オプションのテンプレートがある場合はオプションを優先
-                               $optionTemplate = $this->gPage->getOptionTemplateId();
+                               list($optionTemplate, $optionSubTemplate) = $this->gPage->getOptionTemplateId();
                                if (!empty($optionTemplate)){
                                        $curTemplate = $optionTemplate;
+                                       $subTemplateId = $optionSubTemplate;
                                        $templateDefined = true;                // テンプレート固定かどうか
                                }