/** * Page のアクション. * * @return void */ public function action() { // パラメーター管理クラス $objFormParam = Application::alias('eccube.form_param'); $this->initParam($objFormParam); $objFormParam->setParam($_POST); $mode = $this->getMode(); switch ($mode) { // ON/OFF case 'update_use': // エラーチェック $this->arrErr = $objFormParam->checkError(); if (!(count($this->arrErr) > 0)) { $arrPluginHookpointUse = $objFormParam->getValue('plugin_hookpoint_use'); $plugin_hookpoint_id = $objFormParam->getValue('plugin_hookpoint_id'); $use_flg = $arrPluginHookpointUse[$plugin_hookpoint_id] == 1 ? 1 : 0; PluginUtil::setPluginHookPointChangeUse($plugin_hookpoint_id, $use_flg); // Smartyコンパイルファイルをクリア Utils::clearCompliedTemplate(); } break; default: break; } // DBからプラグイン情報を取得 $arrRet = PluginUtil::getPluginHookPointList(); // 競合チェック $this->arrConflict = PluginUtil::checkConflictPlugin(); $arrHookPoint = array(); foreach ($arrRet as $key => $val) { $arrHookPoint[$val['hook_point']][$val['plugin_id']] = $val; } $this->arrHookPoint = $arrHookPoint; }
/** * Page のアクション. * * @return void */ public function action() { // パラメーター管理クラス $objFormParam = Application::alias('eccube.form_param'); $mode = $this->getMode(); // パラメーター情報の初期化 $this->initParam($objFormParam, $mode); $objFormParam->setParam($_POST); switch ($mode) { // インストール case 'install': $file_key = 'plugin_file'; $this->arrErr = $this->checkUploadFile($file_key); if ($this->isError($this->arrErr) === false) { $archive_file_name = $_FILES[$file_key]['name']; // インストール処理. $this->arrErr = $this->installPlugin($archive_file_name, 'plugin_file'); if ($this->isError($this->arrErr) === false) { // コンパイルファイルのクリア処理 Utils::clearCompliedTemplate(); $this->tpl_onload = "alert('プラグインをインストールしました。');"; } } break; // 削除 // 削除 case 'uninstall': // エラーチェック $this->arrErr = $objFormParam->checkError(); if ($this->isError($this->arrErr) === false) { $plugin_id = $objFormParam->getValue('plugin_id'); $plugin = PluginUtil::getPluginByPluginId($plugin_id); $this->arrErr = $this->uninstallPlugin($plugin); if ($this->isError($this->arrErr) === false) { // TODO 全プラグインのインスタンスを保持したまま後続処理が実行されるので、全てのインスタンスを解放する。 unset($GLOBALS['_PluginHelper_instance']); // コンパイルファイルのクリア処理 Utils::clearCompliedTemplate(); $this->tpl_onload = "alert('" . $plugin['plugin_name'] . "を削除しました。');"; } } break; // 有効化 // 有効化 case 'enable': // エラーチェック $this->arrErr = $objFormParam->checkError(); if ($this->isError($this->arrErr) === false) { $plugin_id = $objFormParam->getValue('plugin_id'); // プラグイン取得. $plugin = PluginUtil::getPluginByPluginId($plugin_id); $this->arrErr = $this->enablePlugin($plugin); if ($this->isError($this->arrErr) === false) { // TODO 全プラグインのインスタンスを保持したまま後続処理が実行されるので、全てのインスタンスを解放する。 unset($GLOBALS['_PluginHelper_instance']); // コンパイルファイルのクリア処理 Utils::clearCompliedTemplate(); $this->tpl_onload = "alert('" . $plugin['plugin_name'] . "を有効にしました。');"; } } break; // 無効化 // 無効化 case 'disable': // エラーチェック $this->arrErr = $objFormParam->checkError(); if ($this->isError($this->arrErr) === false) { $plugin_id = $objFormParam->getValue('plugin_id'); // プラグイン取得. $plugin = PluginUtil::getPluginByPluginId($plugin_id); $this->arrErr = $this->disablePlugin($plugin); if ($this->isError($this->arrErr) === false) { // TODO 全プラグインのインスタンスを保持したまま後続処理が実行されるので、全てのインスタンスを解放する。 unset($GLOBALS['_PluginHelper_instance']); // コンパイルファイルのクリア処理 Utils::clearCompliedTemplate(); $this->tpl_onload = "alert('" . $plugin['plugin_name'] . "を無効にしました。');"; } } break; // アップデート. // アップデート. case 'update': // エラーチェック $this->arrErr = $objFormParam->checkError(); if ($this->isError($this->arrErr) === false) { $plugin_id = $objFormParam->getValue('plugin_id'); $plugin = PluginUtil::getPluginByPluginId($plugin_id); $target_plugin_code = $plugin['plugin_code']; // アップデート対象のプラグインコード $this->arrErr = $this->checkUploadFile($target_plugin_code); if ($this->isError($this->arrErr) === false) { $update_plugin_file = $_FILES[$target_plugin_code]; $update_plugin_file_name = $update_plugin_file['name']; // アップデートファイルのファイル名. // インストール処理. $target_plugin = PluginUtil::getPluginByPluginCode($target_plugin_code); $this->arrErr = $this->updatePlugin($target_plugin, $update_plugin_file_name, $target_plugin_code); if ($this->isError($this->arrErr) === false) { // コンパイルファイルのクリア処理 Utils::clearCompliedTemplate(); $this->tpl_onload = "alert('プラグインをアップデートしました。');"; } } } break; // 優先度. // 優先度. case 'priority': // エラーチェック $arrErr = $objFormParam->checkError(); $plugin_id = $objFormParam->getValue('plugin_id'); if ($this->isError($arrErr) === false) { // 優先度の更新 $priority = $objFormParam->getValue('priority'); $this->updatePriority($plugin_id, $priority); // コンパイルファイルのクリア処理 Utils::clearCompliedTemplate(); } else { // エラーメッセージを詰め直す. $this->arrErr['priority'][$plugin_id] = $arrErr['priority']; } break; default: break; } // DBからプラグイン情報を取得 $plugins = PluginUtil::getAllPlugin(); foreach ($plugins as $key => $plugin) { // ロゴファイルへのパスを生成(ロゴが無い場合はNO_IMAGEを表示) if (file_exists(PLUGIN_HTML_REALDIR . $plugins[$key]['plugin_code'] . '/logo.png') === true) { $plugins[$key]['logo'] = ROOT_URLPATH . 'plugin/' . $plugins[$key]['plugin_code'] . '/logo.png'; } else { $plugins[$key]['logo'] = IMAGE_SAVE_URLPATH . 'noimage_plugin_list.png'; } // 設定ファイルがあるかを判定. $plugins[$key]['config_flg'] = $this->isContainsFile(PLUGIN_UPLOAD_REALDIR . $plugin['plugin_code'], 'config.php'); if ($plugins[$key]['enable'] === PLUGIN_ENABLE_TRUE) { // 競合するプラグインがあるかを判定. //$plugins[$key]['conflict_message']= $this->checkConflictPlugin($plugin['plugin_id']); $plugins[$key]['conflict_message'] = PluginUtil::checkConflictPlugin($plugin['plugin_id']); } } $this->plugins = $plugins; }