OSDN Git Service

elFinderのライブラリ依存関係を自動処理にした。
authornaoki hirata <naoki@magic3.org>
Mon, 16 Sep 2013 03:08:02 +0000 (12:08 +0900)
committernaoki hirata <naoki@magic3.org>
Mon, 16 Sep 2013 03:08:02 +0000 (12:08 +0900)
include/common/scriptLibInfo.php
include/manager/pageManager.php
include/sql/update_widgets.sql
widgets/admin_main/include/container/admin_mainFilebrowserWidgetContainer.php

index e8e1c13..1e534d6 100644 (file)
@@ -438,6 +438,19 @@ const JQUERY_JQPLOT_CSS                            = 'jquery/jqplot1.0.7/jquery.jqplot.min.css';
                return $libs;
        }
        /**
+        * 依存ライブラリ取得
+        *
+        * @param $string $lib  ライブラリID
+        * @return array                ライブラリ
+        */
+       static function getDependentLib($lib)
+       {
+               // ##### 依存ライブラリ情報 #####
+               static $dependentLib = array(self::LIB_ELFINDER =>      array(self::LIB_JQUERY_UI_WIDGETS_DIALOG, self::LIB_JQUERY_UI_WIDGETS_SLIDER));
+               
+               return $dependentLib[$lib];
+       }
+       /**
         * jQuery UIライブラリ情報取得
         *
         * @return array                ライブラリ情報
index 2451196..493baf4 100644 (file)
@@ -1326,7 +1326,35 @@ class PageManager extends Core
                                $libsArray = explode(',', $libs);
                                for ($j = 0; $j < count($libsArray); $j++){
                                        $lib = strtolower(trim($libsArray[$j]));// 小文字に変換
+
                                        if (isset($this->libFiles[$lib])){              // ライブラリが存在するとき
+                                               // 依存ライブラリを取得
+                                               if (strcmp($lib, 'elfinder') == 0){             // elFinderを使用する場合
+                                                       // jQuery UIライブラリを追加
+                                                       $dependentLib = ScriptLibInfo::getDependentLib($lib);
+                                                       for ($l = 0; $l < count($dependentLib); $l++){
+                                                               $addLib = $dependentLib[$l];
+
+                                                               // ライブラリのファイルを追加
+                                                               if (isset($this->libFiles[$addLib]['script'])){
+                                                                       $scriptFiles = $this->libFiles[$addLib]['script'];
+                                                                       for ($m = 0; $m < count($scriptFiles); $m++){
+                                                                               $this->addAdminScriptFile($scriptFiles[$m]);            // 通常機能用のスクリプト追加
+                                                                       }
+                                                               }
+                                                               if (isset($this->libFiles[$addLib]['css'])){
+                                                                       $cssFiles = $this->libFiles[$addLib]['css'];
+                                                                       for ($m = 0; $m < count($cssFiles); $m++){
+                                                                               $this->addAdminCssFile($cssFiles[$m]);          // 通常機能用のCSS追加
+                                                                       }
+                                                               }
+                                                       }
+                                                       // jQueryUIテーマを追加
+                                                       if (!$this->outputTheme){                               // jQueryUIテーマ出力を行ったかどうか
+                                                               $this->addAdminCssFile($this->getAdminDefaultThemeUrl());               // CSS追加(絶対パス)
+                                                               $this->outputTheme = true;
+                                                       }
+                                               }
                                                // Javascript追加
                                                if (isset($this->libFiles[$lib]['script'])){
                                                        $scriptFiles = $this->libFiles[$lib]['script'];
index 12740aa..379f154 100644 (file)
@@ -26,7 +26,7 @@ INSERT INTO _widgets
 DELETE FROM _widgets WHERE wd_id = 'admin_main';\r
 INSERT INTO _widgets\r
 (wd_id,        wd_name,      wd_admin, wd_version, wd_author,      wd_copyright, wd_license, wd_official_level, wd_add_script_lib, wd_available, wd_editable, wd_has_admin, wd_enable_operation, wd_use_instance_def, wd_initialized, wd_release_dt, wd_install_dt, wd_create_dt) VALUES\r
-('admin_main', '管理用画面', true,     '1.1.0', 'Naoki Hirata', 'Magic3.org', 'GPL',      10,                'pagedef=jquery-ui.tabs;pagedef_mobile=jquery-ui.tabs;pagedef_smartphone=jquery-ui.tabs;menudef=jquery.jstree;analyzegraph=jquery.jqplot;adjustwidget=jquery-ui.tabs,wysiwyg_editor;filebrowser=jquery-ui.dialog,jquery-ui.slider;', false,        false,       false,        true,          false, true, '2013-03-04', now(),now());\r
+('admin_main', '管理用画面', true,     '1.1.0', 'Naoki Hirata', 'Magic3.org', 'GPL',      10,                'pagedef=jquery-ui.tabs;pagedef_mobile=jquery-ui.tabs;pagedef_smartphone=jquery-ui.tabs;menudef=jquery.jstree;analyzegraph=jquery.jqplot;adjustwidget=jquery-ui.tabs,wysiwyg_editor;filebrowser=elfinder;', false,        false,       false,        true,          false, true, '2013-03-04', now(),now());\r
 DELETE FROM _widgets WHERE wd_id = 'admin/analytics';\r
 INSERT INTO _widgets\r
 (wd_id,             wd_name,            wd_admin, wd_version, wd_author,      wd_copyright, wd_license, wd_official_level, wd_add_script_lib, wd_available, wd_editable, wd_has_admin, wd_initialized,  wd_release_dt, wd_install_dt, wd_create_dt) VALUES\r
@@ -156,7 +156,7 @@ INSERT INTO _widgets (wd_id, wd_name, wd_type, wd_version, wd_params, wd_author,
 ('youtube2',     'YouTube2',           'YOUT', '1.0.0',  '',        'Naoki Hirata', 'Magic3.org', 'GPL', 10, 'YouTubeの投稿動画を表示。',         false,           false,       true,         true,        true,        false,               true,true,           0, 1, 1, now(), now());\r
 DELETE FROM _widgets WHERE wd_id = 'flash';\r
 INSERT INTO _widgets (wd_id, wd_name, wd_type, wd_version, wd_params, wd_author, wd_copyright, wd_license, wd_official_level, wd_description, wd_add_script_lib_a, wd_available, wd_editable, wd_has_admin, wd_enable_operation, wd_use_instance_def, wd_initialized, wd_launch_index, wd_cache_type, wd_view_control_type, wd_install_dt, wd_create_dt) VALUES\r
-('flash',     'Flash',           '', '1.1.0',  '',        'Naoki Hirata', 'Magic3.org', 'GPL', 10, 'Flashファイルを表示。',         'jquery-ui.dialog,jquery-ui.slider,elfinder', true,         true,        true,        false,               true,true,           0, 1, 1, now(), now());\r
+('flash',     'Flash',           '', '1.1.0',  '',        'Naoki Hirata', 'Magic3.org', 'GPL', 10, 'Flashファイルを表示。',         'elfinder', true,         true,        true,        false,               true,true,           0, 1, 1, now(), now());\r
 DELETE FROM _widgets WHERE wd_id = 'release_info';\r
 INSERT INTO _widgets (wd_id, wd_name, wd_type, wd_version, wd_params, wd_author, wd_copyright, wd_license, wd_official_level, wd_description, wd_read_scripts, wd_read_css, wd_available, wd_editable, wd_has_admin, wd_enable_operation, wd_use_instance_def, wd_initialized, wd_launch_index, wd_cache_type, wd_view_control_type, wd_install_dt, wd_create_dt) VALUES\r
 ('release_info',               'Magic3リリース情報',                   'RINF', '1.0.0',  '',  'Naoki Hirata', 'Magic3.org', 'GPL', 10, 'Magic3の最新リリース情報を表示。',      false,           false,       true,         true,        false,        false,               false,true,           0, 1, -1, now(), now());\r
@@ -206,7 +206,7 @@ INSERT INTO _widgets
 DELETE FROM _widgets WHERE wd_id = 'pretty_photo';\r
 INSERT INTO _widgets\r
 (wd_id,          wd_name,          wd_version, wd_author,      wd_copyright, wd_license, wd_official_level, wd_description, wd_add_script_lib, wd_add_script_lib_a,  wd_available, wd_editable, wd_has_admin, wd_enable_operation, wd_use_instance_def, wd_initialized, wd_launch_index, wd_cache_type, wd_view_control_type, wd_release_dt, wd_install_dt, wd_create_dt) VALUES\r
-('pretty_photo', 'プリティフォト', '2.1.0',    'Naoki Hirata', 'Magic3.org', 'GPL',      10, 'サムネール表示した画像を拡大します。', 'jquery.prettyphoto', 'jquery.tablednd,jquery.prettyphoto,jquery-ui.dialog,jquery-ui.slider,elfinder',               true,         true,        true,         true,                                true,                true,              0,  3,             1, '2013-09-15', now(),         now());\r
+('pretty_photo', 'プリティフォト', '2.1.0',    'Naoki Hirata', 'Magic3.org', 'GPL',      10, 'サムネール表示した画像を拡大します。', 'jquery.prettyphoto', 'jquery.tablednd,jquery.prettyphoto,elfinder',               true,         true,        true,         true,                                true,                true,              0,  3,             1, '2013-09-15', now(),         now());\r
 DELETE FROM _widgets WHERE wd_id = 'css_add';\r
 INSERT INTO _widgets\r
 (wd_id,   wd_name, wd_version, wd_params, wd_author,      wd_copyright, wd_license, wd_official_level, wd_description, wd_read_scripts, wd_read_css, wd_available, wd_editable, wd_has_admin, wd_enable_operation, wd_use_instance_def, wd_initialized, wd_launch_index, wd_cache_type, wd_view_control_type, wd_install_dt, wd_create_dt) VALUES\r
index 69e4dbe..282ba26 100644 (file)
@@ -27,12 +27,11 @@ class admin_mainFilebrowserWidgetContainer extends admin_mainBaseWidgetContainer
        const FILEBROWSER_CSS_FILE              = '/elfinder-2.0-rc1/css/elfinder.min.css';             // ファイルブラウザelfinder用CSSファイル
        const FILEBROWSER_PLUS_CSS_FILE = '/elfinder-2.0-rc1/css/theme.css';            // ファイルブラウザelfinder用追加CSSファイル*/
        const FILE_BROWSER_PATH                 = '/elfinder-2.0/php/connector.php';            // ファイルブラウザのパス
-       const FILEBROWSER_SCRIPT_FILE   = '/elfinder-2.0/js/elfinder.min.js';   // ファイルブラウザelfinderスクリプトファイル
-//     const FILEBROWSER_SCRIPT_FILE   = '/elfinder-2.0/js/elfinder.full.js';  // ファイルブラウザelfinderスクリプトファイル
-       const FILEBROWSER_LANG_FILE             = '/elfinder-2.0/js/i18n/elfinder.ja.js';               // ファイルブラウザelfinder言語ファイル
-       const FILEBROWSER_CSS_FILE              = '/elfinder-2.0/css/elfinder.min.css';         // ファイルブラウザelfinder用CSSファイル
-       const FILEBROWSER_PLUS_CSS_FILE = '/elfinder-2.0/css/theme.css';                // ファイルブラウザelfinder用追加CSSファイル
-       const DEFAULT_THEME_CSS_FILE    = '/smoothness/jquery-ui.custom.css';           // テーマファイル
+//     const FILEBROWSER_SCRIPT_FILE   = '/elfinder-2.0/js/elfinder.min.js';   // ファイルブラウザelfinderスクリプトファイル
+//     const FILEBROWSER_LANG_FILE             = '/elfinder-2.0/js/i18n/elfinder.ja.js';               // ファイルブラウザelfinder言語ファイル
+//     const FILEBROWSER_CSS_FILE              = '/elfinder-2.0/css/elfinder.min.css';         // ファイルブラウザelfinder用CSSファイル
+//     const FILEBROWSER_PLUS_CSS_FILE = '/elfinder-2.0/css/theme.css';                // ファイルブラウザelfinder用追加CSSファイル
+//     const DEFAULT_THEME_CSS_FILE    = '/smoothness/jquery-ui.custom.css';           // テーマファイル
        const DIALOG_FIX_CSS                    = 'body { margin: 0; } #elfinder { border: none; } .elfinder-toolbar, .elfinder-statusbar { border-radius: 0 !important; }';
        
        /**
@@ -91,13 +90,13 @@ class admin_mainFilebrowserWidgetContainer extends admin_mainBaseWidgetContainer
         * @param object         $param                 任意使用パラメータ。
         * @return string                                               CSS文字列。出力しない場合は空文字列を設定。
         */
-       function _addCssFileToHead($request, &$param)
+/*     function _addCssFileToHead($request, &$param)
        {
                return array($this->getUrl($this->gEnv->getScriptsUrl() . self::FILEBROWSER_CSS_FILE),
                                        $this->getUrl($this->gEnv->getScriptsUrl() . self::FILEBROWSER_PLUS_CSS_FILE),
                                        $this->getUrl($this->gEnv->getAdminDefaultThemeUrl()),                  // テンプレートの読み込み順調整のためダミーでデフォルトテンプレートを読み込ませる
                                        $this->getUrl($this->gEnv->getThemesUrl() . self::DEFAULT_THEME_CSS_FILE));             // 「smoothness」テンプレート
-       }
+       }*/
        /**
         * JavascriptファイルをHTMLヘッダ部に設定
         *
@@ -108,12 +107,12 @@ class admin_mainFilebrowserWidgetContainer extends admin_mainBaseWidgetContainer
         * @param object         $param                 任意使用パラメータ。
         * @return string                                               Javascriptファイル。出力しない場合は空文字列を設定。
         */
-       function _addScriptFileToHead($request, &$param)
+/*     function _addScriptFileToHead($request, &$param)
        {
                $scriptArray = array($this->getUrl($this->gEnv->getScriptsUrl() . self::FILEBROWSER_SCRIPT_FILE),
                                                        $this->getUrl($this->gEnv->getScriptsUrl() . self::FILEBROWSER_LANG_FILE));
                return $scriptArray;
-       }
+       }*/
        /**
         * CSSデータをHTMLヘッダ部に設定
         *