/**
  * 有効なプラグインのロード. プラグインエンジンが有効になっていない場合は
  * プラグインエンジン自身のインストール処理を起動する
  *
  * @return void
  */
 function load($plugin_activate_flg = true)
 {
     if (!defined('CONFIG_REALFILE') || !file_exists(CONFIG_REALFILE)) {
         return;
     }
     // インストール前
     if (GC_Utils_Ex::isInstallFunction()) {
         return;
     }
     // インストール中
     if ($plugin_activate_flg === false) {
         return;
     }
     // 有効なプラグインを取得
     $arrPluginDataList = SC_Plugin_Util_Ex::getEnablePlugin();
     // pluginディレクトリを取得
     $arrPluginDirectory = SC_Plugin_Util_Ex::getPluginDirectory();
     foreach ($arrPluginDataList as $arrPluginData) {
         // プラグイン本体ファイル名が取得したプラグインディレクトリ一覧にある事を確認
         if (array_search($arrPluginData['plugin_code'], $arrPluginDirectory) !== false) {
             // プラグイン本体ファイルをrequire.
             require_once PLUGIN_UPLOAD_REALDIR . $arrPluginData['plugin_code'] . '/' . $arrPluginData['class_name'] . '.php';
             // プラグインのインスタンス生成.
             $objPlugin = new $arrPluginData['class_name']($arrPluginData);
             // メンバ変数にプラグインのインスタンスを登録.
             $this->arrPluginInstances[$arrPluginData['plugin_id']] = $objPlugin;
             $this->arrPluginIds[] = $arrPluginData['plugin_id'];
             // ローカルフックポイントの登録.
             $this->registerLocalHookPoint($objPlugin, $arrPluginData['priority']);
             // スーパーフックポイントの登録.
             $this->registerSuperHookPoint($objPlugin, HOOK_POINT_PREPROCESS, 'preProcess', $arrPluginData['priority']);
             $this->registerSuperHookPoint($objPlugin, HOOK_POINT_PROCESS, 'process', $arrPluginData['priority']);
         }
     }
 }
Beispiel #2
0
 /**
  * 有効なプラグインのロード. プラグインエンジンが有効になっていない場合は
  * プラグインエンジン自身のインストール処理を起動する
  *
  * @return void
  */
 public function load($plugin_activate_flg = true)
 {
     if (!defined('CONFIG_REALFILE') || !file_exists(CONFIG_REALFILE)) {
         return;
     }
     // インストール前
     if (GC_Utils_Ex::isInstallFunction()) {
         return;
     }
     // インストール中
     if ($plugin_activate_flg === false) {
         return;
     }
     // 有効なプラグインを取得
     $arrPluginDataList = SC_Plugin_Util_Ex::getEnablePlugin();
     // pluginディレクトリを取得
     $arrPluginDirectory = SC_Plugin_Util_Ex::getPluginDirectory();
     foreach ($arrPluginDataList as $arrPluginData) {
         // プラグイン本体ファイル名が取得したプラグインディレクトリ一覧にある事を確認
         if (array_search($arrPluginData['plugin_code'], $arrPluginDirectory) !== false) {
             $plugin_file_path = PLUGIN_UPLOAD_REALDIR . $arrPluginData['plugin_code'] . '/' . $arrPluginData['class_name'] . '.php';
             // プラグイン本体ファイルが存在しない場合
             if (!file_exists($plugin_file_path)) {
                 // エラー出力
                 $msg = 'プラグイン本体ファイルが存在しない。当該プラグインを無視して続行する。';
                 $msg .= 'ファイル=' . var_export($plugin_file_path, true) . '; ';
                 trigger_error($msg, E_USER_WARNING);
                 // 次のプラグインへ続行
                 continue 1;
             }
             // プラグイン本体ファイルをrequire.
             require_once $plugin_file_path;
             // プラグインのインスタンス生成.
             $objPlugin = new $arrPluginData['class_name']($arrPluginData);
             // メンバ変数にプラグインのインスタンスを登録.
             $this->arrPluginInstances[$arrPluginData['plugin_id']] = $objPlugin;
             $this->arrPluginIds[] = $arrPluginData['plugin_id'];
             // ローカルフックポイントの登録.
             $this->registerLocalHookPoint($objPlugin, $arrPluginData['priority']);
             // スーパーフックポイントの登録.
             $this->registerSuperHookPoint($objPlugin, HOOK_POINT_PREPROCESS, 'preProcess', $arrPluginData['priority']);
             $this->registerSuperHookPoint($objPlugin, HOOK_POINT_PROCESS, 'process', $arrPluginData['priority']);
         }
     }
 }