Ignore:
Timestamp:
2009/11/07 01:38:52 (14 years ago)
Author:
Seasoft
Message:
  • プラグインを管理機能[プラグイン] - [プラグイン管理]画面からインストール・アンインストールするように改訂。現状では、XMLへの登録・削除とSQLの実行に対応。今後拡張していく予定。
  • 管理機能のメニュー表示をサーバサイドで処理するように変更。
  • インストール中はプラグインの影響が無いように改修。
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/comu-ver2/data/class/util/SC_Utils.php

    r18355 r18370  
    22382238        return $data_list; 
    22392239    } 
     2240 
     2241    /** 
     2242     * プラグインが配置されているディレクトリ(フルパス)を取得する 
     2243     * 
     2244     * @param string $file プラグイン情報ファイル(info.php)のパス 
     2245     * @return SimpleXMLElement プラグイン XML 
     2246     */ 
     2247    function sfGetPluginFullPathByRequireFilePath($file) { 
     2248        return str_replace('\\', '/', dirname($file)) . '/'; 
     2249    } 
     2250 
     2251    /** 
     2252     * プラグインのパスを取得する 
     2253     * 
     2254     * @param string $pluginFullPath プラグインが配置されているディレクトリ(フルパス) 
     2255     * @return SimpleXMLElement プラグイン XML 
     2256     */ 
     2257    function sfGetPluginPathByPluginFullPath($pluginFullPath) { 
     2258        return basename(rtrim($pluginFullPath, '/')); 
     2259    } 
     2260 
     2261    /** 
     2262     * プラグイン情報配列の基本形を作成する 
     2263     * 
     2264     * @param string $file プラグイン情報ファイル(info.php)のパス 
     2265     * @return array プラグイン情報配列 
     2266     */ 
     2267    function sfMakePluginInfoArray($file) { 
     2268        $fullPath = SC_Utils_Ex::sfGetPluginFullPathByRequireFilePath($file); 
     2269 
     2270        return 
     2271            array( 
     2272                // パス 
     2273                'path' => SC_Utils_Ex::sfGetPluginPathByPluginFullPath($fullPath), 
     2274                // プラグイン名 
     2275                'name' => '未定義', 
     2276                // フルパス 
     2277                'fullpath' => $fullPath, 
     2278                // バージョン 
     2279                'version' => null, 
     2280                // 著作者 
     2281                'auther' => '未定義', 
     2282            ) 
     2283        ; 
     2284    } 
     2285 
     2286    /** 
     2287     * プラグイン情報配列を取得する 
     2288     * 
     2289     * TODO include_once を利用することで例外対応をサボタージュしているのを改善する。 
     2290     * 
     2291     * @param string $path プラグインのディレクトリ名 
     2292     * @return array プラグイン情報配列 
     2293     */ 
     2294    function sfGetPluginInfoArray($path) { 
     2295        return (array)include_once(PLUGIN_PATH . "$path/plugin_info.php"); 
     2296    } 
     2297 
     2298    /** 
     2299     * プラグイン XML を読み込む 
     2300     * 
     2301     * TODO 空だったときを考慮 
     2302     * 
     2303     * @return SimpleXMLElement プラグイン XML 
     2304     */ 
     2305    function sfGetPluginsXml() { 
     2306        return simplexml_load_file(PLUGIN_PATH . 'plugins.xml'); 
     2307    } 
     2308 
     2309    /** 
     2310     * プラグイン XML を書き込む 
     2311     * 
     2312     * @param SimpleXMLElement $pluginsXml プラグイン XML 
     2313     * @return integer ファイルに書き込まれたバイト数を返します。 
     2314     */ 
     2315    function sfPutPluginsXml($pluginsXml) { 
     2316        if (!($pluginsXml instanceof SimpleXMLElement)) SC_Utils_Ex::sfDispException(); 
     2317 
     2318        $xml = $pluginsXml->asXML(); 
     2319        if (strlen($xml) == 0) SC_Utils_Ex::sfDispException(); 
     2320 
     2321        $return = file_put_contents(PLUGIN_PATH . 'plugins.xml', $pluginsXml->asXML()); 
     2322        if ($return === false) SC_Utils_Ex::sfDispException(); 
     2323 
     2324        return $return; 
     2325    } 
     2326 
     2327    function sfLoadPluginInfo($filenamePluginInfo) { 
     2328        return (array)include_once $filenamePluginInfo; 
     2329    } 
    22402330} 
    22412331?> 
Note: See TracChangeset for help on using the changeset viewer.