Ignore:
Timestamp:
2012/02/08 13:55:06 (10 years ago)
Author:
h_yoshimoto
Message:

#1603 #1632 プラグインの管理画面を作成しました。それに伴うエンジン部分の修正。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/helper/SC_Helper_Plugin.php

    r21450 r21455  
    5454        foreach ($arrPluginDataList as $arrPluginData) { 
    5555            // プラグイン本体ファイル名が取得したプラグインディレクトリ一覧にある事を確認 
    56             if (array_search($arrPluginData['class_name'], $arrPluginDirectory) !== false) { 
     56            if (array_search($arrPluginData['plugin_code'], $arrPluginDirectory) !== false ) { 
    5757                // プラグイン本体ファイルをrequire. 
    58                 require_once PLUGIN_UPLOAD_REALDIR . $arrPluginData['class_name'] . '/' . $arrPluginData['class_name'] . '.php'; 
     58                require_once(PLUGIN_UPLOAD_REALDIR . $arrPluginData['plugin_code'] . '/' . $arrPluginData['plugin_code'] . '.php'); 
     59                 
    5960                // プラグインのインスタンス生成. 
    60                 $objPlugin = new $arrPluginData['class_name']($arrPluginData); 
     61                $objPlugin = new $arrPluginData['plugin_code']($arrPluginData); 
    6162                // メンバ変数にプラグインのインスタンスを登録. 
    6263                $this->arrPluginInstances[$arrPluginData['plugin_id']] = $objPlugin; 
     
    118119        $col = '*'; 
    119120        $table = 'dtb_plugin'; 
    120         $where = 'enable = 1 AND del_flg = 0'; 
     121        $where = 'enable = 1'; 
    121122        // XXX 2.11.0 互換のため 
    122123        $arrCols = $objQuery->listTableFields($table); 
     
    130131    /** 
    131132     * インストールされているプラグインを取得する。 
     133     *  
     134     * @return array $arrRet インストールされているプラグイン. 
    132135     */ 
    133136    function getAllPlugin(){ 
     
    135138        $col = '*'; 
    136139        $table = 'dtb_plugin'; 
    137         $where = 'del_flg = 0'; 
    138140        // XXX 2.11.0 互換のため 
    139141        $arrCols = $objQuery->listTableFields($table); 
    140142        if (in_array('rank', $arrCols)) { 
    141             $objQuery->setOrder('rank DESC'); 
    142         } 
    143         $arrRet = $objQuery->select($col,$table,$where); 
     143            $objQuery->setOrder('plugin_id ASC'); 
     144        } 
     145        $arrRet = $objQuery->select($col,$table); 
    144146        return $arrRet; 
     147    } 
     148 
     149    /** 
     150     * プラグインIDをキーにプラグインを取得する。 
     151     *  
     152     * @param int $plugin_id プラグインID. 
     153     * @return array プラグインの基本情報. 
     154     */ 
     155    function getPluginByPluginId($plugin_id){ 
     156        $objQuery = new SC_Query_Ex(); 
     157        $col = '*'; 
     158        $table = 'dtb_plugin'; 
     159        $where = 'plugin_id = ?'; 
     160        // XXX 2.11.0 互換のため 
     161        $arrCols = $objQuery->listTableFields($table); 
     162        if (in_array('rank', $arrCols)) { 
     163            $objQuery->setOrder('rank ASC'); 
     164        } 
     165        $arrRet = $objQuery->select($col, $table, $where, array($plugin_id)); 
     166        return $arrRet[0]; 
     167    } 
     168     
     169    /** 
     170     * プラグインコードをキーにプラグインを取得する。 
     171     *  
     172     * @param string $plugin_code プラグインコード. 
     173     * @return array プラグインの基本情報. 
     174     */ 
     175    function getPluginByPluginCode($plugin_code){ 
     176        $objQuery = new SC_Query_Ex(); 
     177        $col = '*'; 
     178        $table = 'dtb_plugin'; 
     179        $where = 'plugin_code = ?'; 
     180        // XXX 2.11.0 互換のため 
     181        $arrCols = $objQuery->listTableFields($table); 
     182        if (in_array('rank', $arrCols)) { 
     183            $objQuery->setOrder('rank ASC'); 
     184        } 
     185        $arrRet = $objQuery->select($col, $table, $where, array($plugin_code)); 
     186        return $arrRet[0]; 
    145187    } 
    146188 
     
    266308        // キャッシュテンプレートを削除 
    267309        if ($test_mode === false) { 
    268             $this->unlinkRecurse(PLUGIN_TMPL_CACHE_REALDIR, false); 
     310            SC_Utils_Ex::deleteFile(PLUGIN_TMPL_CACHE_REALDIR, false); 
    269311        } 
    270312        $objTemplateTransformList = SC_Plugin_Template_Transform_List::getSingletonInstance(); 
     
    279321 
    280322    /** 
    281      * 指定されたパスの配下を再帰的に unlink 
    282      * 
    283      * @param string  $path       削除対象のディレクトリまたはファイルのパス 
    284      * @param boolean $del_myself $pathそのものを削除するか. true なら削除する. 
    285      * @return void 
    286      */ 
    287     function unlinkRecurse($path, $del_myself = true) { 
    288         if (!file_exists($path)) { 
    289             // TODO エラー処理; パスが存在しません 
    290         } elseif (is_dir($path)) { 
    291             // ディレクトリ 
    292             $handle = opendir($path); 
    293             if (!$handle) { 
    294                 // TODO エラー処理; ディレクトリが開けませんでした 
    295             } 
    296  
    297             while (($item = readdir($handle)) !== false) { 
    298                 if ($item === '.' || $item === '..') continue; 
    299                 $cur_path = $path . '/' . $item; 
    300                 if (is_dir($cur_path)) SC_Helper_Plugin::unlinkRecurse($cur_path); 
    301                 else @unlink($cur_path); 
    302             } 
    303             closedir($handle); 
    304  
    305             // ディレクトリを削除 
    306             if ($del_myself) @rmdir($path); 
    307         } else { 
    308             // ファイルが指定された 
    309             @unlink($path); 
    310         } 
    311     } 
    312  
    313     /** 
    314323     * テンプレートキャッシュファイルのフルパスを返す. 
    315324     * 
     
    319328    function getPluginTemplateCachePath($objPage) { 
    320329        // main_template の差し替え 
    321     if (strpos($objPage->tpl_mainpage, SMARTY_TEMPLATES_REALDIR) === 0) { 
    322     // フルパスで指定された 
    323     $dir = ''; 
    324     $default_tpl_mainpage = str_replace(SMARTY_TEMPLATES_REALDIR, '', $objPage->tpl_mainpage); 
    325     } else { 
     330        if (strpos($objPage->tpl_mainpage, SMARTY_TEMPLATES_REALDIR) === 0) { 
     331            // フルパスで指定された 
     332            $dir = ''; 
     333            $default_tpl_mainpage = str_replace(SMARTY_TEMPLATES_REALDIR, '', $objPage->tpl_mainpage); 
     334        } else { 
    326335            // フロントページ or 管理画面を判定 
    327         $dir = ($objPage instanceof LC_Page_Admin) ? 'admin/' : TEMPLATE_NAME . '/'; 
    328     $default_tpl_mainpage = $objPage->tpl_mainpage; 
    329     } 
     336            $dir = ($objPage instanceof LC_Page_Admin) ? 'admin/' : TEMPLATE_NAME . '/'; 
     337            $default_tpl_mainpage = $objPage->tpl_mainpage; 
     338        } 
    330339        return PLUGIN_TMPL_CACHE_REALDIR . $dir . $default_tpl_mainpage; 
    331340    } 
Note: See TracChangeset for help on using the changeset viewer.