Ignore:
Timestamp:
2012/02/13 22:05:16 (14 years ago)
Author:
h_yoshimoto
Message:

#1632 優先度変更処理、各エラー処理、アラート処理の実装

File:
1 edited

Legend:

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

    r21490 r21501  
    8484                    $plugin_file_name = $plugin_file['name']; 
    8585                    $plugin_code = $this->getPluginCode($plugin_file_name); 
    86  
     86                     
    8787                    // 既に登録されていないか判定. 
    8888                    if ($this->isInstalledPlugin($plugin_code) === false) { 
     
    106106                    $plugin_code = $objFormParam->getValue('plugin_code'); 
    107107                    $plugin_id = $objFormParam->getValue('plugin_id'); 
    108  
     108                    $plugin = SC_Helper_Plugin_Ex::getPluginByPluginId($plugin_id); 
     109                     
    109110                    $this->arrErr = $this->uninstallPlugin($plugin_id, $plugin_code); 
    110111                    // 完了メッセージアラート設定. 
    111112                    if ($this->isError($this->arrErr) === false) { 
    112                         $plugin = SC_Helper_Plugin_Ex::getPluginByPluginId($plugin_id); 
    113113                        // テンプレート再生成. 
    114114                        $this->remakeTemplate(); 
     
    182182            // 優先度. 
    183183            case 'priority': 
    184                 // TODO 優先度の変更処理. 
    185 //                // 優先度を取得 
    186 //                $priority_array = $objFormParam->getValue('priority'); 
    187 //                 
    188 //                // 優先度の更新 
    189 //                $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    190 //                foreach ($priority_array as $key => $value) { 
    191 //                    $sqlval['rank'] = $value; 
    192 //                    $objQuery->update('dtb_plugin', $sqlval, "plugin_id = ?", array($key)); 
    193 //                } 
    194 //                break; 
     184                // エラーチェック 
     185                $arrErr = $objFormParam->checkError(); 
     186                $plugin_id = $objFormParam->getValue('plugin_id'); 
     187                if ($this->isError($arrErr) === false) { 
     188                    // 優先度の更新 
     189                    $priority = $objFormParam->getValue('priority'); 
     190                    $this->updatePriority($plugin_id, $priority); 
     191                } else { 
     192                    // エラーメッセージを詰め直す. 
     193                    $this->arrErr['priority'][$plugin_id] = $arrErr['priority']; 
     194                } 
     195                 
     196                break; 
    195197            default: 
    196198                break; 
     
    231233        $objFormParam->addParam('plugin_id', 'plugin_id', INT_LEN, '', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 
    232234        $objFormParam->addParam('plugin_code', 'plugin_code', MTEXT_LEN, '', array('ALPHA_CHECK', 'MAX_LENGTH_CHECK')); 
    233         $objFormParam->addParam("優先順位", 'priority', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 
     235        $objFormParam->addParam('優先度', 'priority', INT_LEN, '', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 
    234236    } 
    235237 
     
    287289    function checkPluginFile($file_path, $plugin_code, $key_file) { 
    288290        $arrErr = array(); 
    289  
     291         
    290292        // Archive_Tarを生成します. 
    291293        $tar_obj = new Archive_Tar($file_path); 
    292  
     294         
    293295        // 圧縮ファイル名とディレクトリ名が同一であるかを判定します. 
    294296        if ($this->checkUploadFileName($tar_obj, $plugin_code) === false) { 
     
    383385            return $arrErr; 
    384386        } 
    385  
     387         
    386388        // リフレクションオブジェクトを生成. 
    387389        $objReflection = new ReflectionClass($plugin_code); 
     
    404406        $plugin_html_dir = PLUGIN_HTML_REALDIR . $plugin_code; 
    405407        $this->makeDir($plugin_html_dir); 
    406  
     408         
    407409        $plugin = SC_Helper_Plugin_Ex::getPluginByPluginCode($plugin_code); 
    408410        $arrErr = $this->execPlugin($plugin['plugin_id'], $plugin_code, 'install'); 
    409  
     411         
    410412        return $arrErr; 
    411413    } 
     
    535537        $this->makeDir($unpack_dir); 
    536538        $objUpFile->moveTempFile(); 
    537  
     539         
    538540        // 解凍 
    539541        $update_plugin_file_path = $unpack_dir . "/" . $unpack_file_name; 
     
    623625 
    624626        return $arrErr; 
     627    } 
     628     
     629    /** 
     630     * 優先度を更新します. 
     631     *  
     632     * @param int $plugin_id プラグインID 
     633     * @param int $priority 優先度 
     634     * @return integer 更新件数 
     635     */ 
     636    function updatePriority($plugin_id, $priority) { 
     637        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     638        // UPDATEする値を作成する。 
     639        $sqlval['rank'] = $priority; 
     640        $sqlval['update_date'] = 'CURRENT_TIMESTAMP'; 
     641        $where = "plugin_id = ?"; 
     642        // UPDATEの実行 
     643        $ret = $objQuery->update('dtb_plugin', $sqlval, $where, array($plugin_id)); 
     644        return $ret; 
    625645    } 
    626646 
     
    703723    function execPlugin($plugin_id, $plugin_code, $exec_func) { 
    704724        $arrErr = array(); 
    705             // インスタンスの生成. 
    706             $objPlugin = new $plugin_code(); 
    707             if (method_exists($objPlugin, $exec_func) === true) { 
    708                 $arrErr = $objPlugin->$exec_func($plugin_id); 
    709             } else { 
    710                 $arrErr['plugin_error'] = "※ " . $plugin_code . ".php に" . $exec_func . "が見つかりません。<br/>"; 
    711             } 
     725        if (method_exists($plugin_code, $exec_func) === true) { 
     726            call_user_func(array($plugin_code, $exec_func), $plugin_id); 
     727        } else { 
     728            $arrErr['plugin_error'] = "※ " . $plugin_code . ".php に" . $exec_func . "が見つかりません。<br/>"; 
     729        } 
    712730 
    713731        return $arrErr; 
Note: See TracChangeset for help on using the changeset viewer.