Ignore:
Timestamp:
2012/04/05 20:00:29 (10 years ago)
Author:
h_yoshimoto
Message:

#1737 アップデート処理を修正。全ての画面でプラグインが実行される仕様に変更。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/pages/admin/system/LC_Page_Admin_System_Plugin.php

    r21707 r21712  
    490490    function updatePlugin($target_plugin, $upload_file_name) { 
    491491        $arrErr = array(); 
    492  
     492         
    493493        // ファイルをチェックし展開します. 
    494494        $arrErr = $this->unpackPluginFile($upload_file_name, DOWNLOADS_TEMP_PLUGIN_UPDATE_DIR, $target_plugin['plugin_code']); 
     
    496496            return $arrErr; 
    497497        } 
    498  
    499         // plugin_infoを読み込み. 
    500         $arrErr = $this->requirePluginFile(DOWNLOADS_TEMP_PLUGIN_UPDATE_DIR . 'plugin_info.php', $target_plugin['plugin_code']); 
     498        // plugin_update.phpを読み込み. 
     499        $arrErr = $this->requirePluginFile(DOWNLOADS_TEMP_PLUGIN_UPDATE_DIR . 'plugin_update.php', $target_plugin['plugin_code']); 
    501500        if ($this->isError($arrErr) === true) { 
    502501            $this->rollBack(DOWNLOADS_TEMP_PLUGIN_UPDATE_DIR); 
    503502            return $arrErr; 
    504503        } 
    505  
    506         // リフレクションオブジェクトを生成. 
    507         $objReflection = new ReflectionClass('plugin_info'); 
    508         // プラグインクラスに必須となるパラメータが正常に定義されているかチェックします. 
    509         $arrErr = $this->checkPluginConstants($objReflection, DOWNLOADS_TEMP_PLUGIN_UPDATE_DIR); 
    510         if ($this->isError($arrErr) === true) { 
    511             $this->rollBack(DOWNLOADS_TEMP_PLUGIN_UPDATE_DIR); 
    512             return $arrErr; 
    513         } 
    514  
    515         // プラグインのクラス名を取得; 
    516          $class_name = $objReflection->getConstant('CLASS_NAME'); 
    517  
    518         // 展開されたディレクトリからプラグインクラスファイルを読み込みます. 
    519         $update_plugin_class_path = DOWNLOADS_TEMP_PLUGIN_UPDATE_DIR . $class_name . '.php'; 
    520         $arrErr = $this->requirePluginFile($update_plugin_class_path, $target_plugin['plugin_code']); 
    521         if ($this->isError($arrErr) === true) { 
    522             $this->rollBack(DOWNLOADS_TEMP_PLUGIN_UPDATE_DIR); 
    523             return $arrErr; 
    524         } 
    525504        // プラグインクラスファイルのUPDATE処理を実行. 
    526         $arrErr = $this->execPlugin($target_plugin, $class_name, 'update'); 
     505        $objPluginUpdate = new plugin_update; 
     506        $arrErr = $this->execPlugin($objPluginUpdate, 'plugin_update', 'update'); 
    527507 
    528508        // 保存ディレクトリの削除. 
     
    734714     * インスタンスを生成し、指定のメソッドを実行する. 
    735715     * 
    736      * @param integer $plugin プラグイン情報 
    737      * @param string $plugin_code プラグインコード 
     716     * @param object $obj インスタンス 
     717     * @param string $class_name クラス名 
    738718     * @param string $exec_func 実行するメソッド名. 
    739719     * @return array $arrErr エラー情報を格納した連想配列. 
    740720     * 
    741721     */ 
    742     function execPlugin($plugin, $class_name, $exec_func) { 
     722    function execPlugin($obj, $class_name, $exec_func) { 
    743723        $arrErr = array(); 
    744724        if (method_exists($class_name, $exec_func) === true) { 
    745             call_user_func(array($class_name, $exec_func), $plugin); 
     725            call_user_func(array($class_name, $exec_func), $obj); 
    746726        } else { 
    747727            $arrErr['plugin_error'] = '※ ' . $class_name . '.php に' . $exec_func . 'が見つかりません。<br/>'; 
Note: See TracChangeset for help on using the changeset viewer.