OSDN Git Service

多階層メニュー定義画面にリンク先URL作成機能を組み込む。 v2.7.13
authornaoki hirata <naoki@magic3.org>
Sat, 2 Nov 2013 13:59:12 +0000 (22:59 +0900)
committernaoki hirata <naoki@magic3.org>
Sat, 2 Nov 2013 13:59:12 +0000 (22:59 +0900)
widgets/admin_main/include/container/admin_mainMenudefWidgetContainer.php
widgets/admin_main/include/container/admin_mainSmenudefWidgetContainer.php
widgets/admin_main/include/template/menudef.tmpl.html
widgets/admin_main/include/template/menudef_detail.tmpl.html
widgets/admin_main/include/template/smenudef.tmpl.html

index b246ab5..3ad2ca6 100644 (file)
@@ -21,14 +21,11 @@ class admin_mainMenudefWidgetContainer extends admin_mainBaseWidgetContainer
        private $db;    // DB接続オブジェクト
        private $serialNo;              // 選択中の項目のシリアル番号(メニュー項目IDを使用)
        private $serialArray = array();                 // 表示中のシリアル番号
-       private $currentPageSubId;      // 現在のページサブID
-       private $contentId;                     // 現在のコンテンツID
-       private $isExistsMenuItem;              // メニュー項目が存在するかどうか
        private $menuId;                // 現在選択中のメニューID
        private $menuItemType;  // メニュー項目タイプ
        private $menuDeviceType;        // メニューの端末タイプ
        private $itemTypeArray;         // メニュー項目の種類
-       private $menuHtml;      // コンテンツメニュー
+       private $isExistsMenuItem;              // メニュー項目が存在するかどうか
        private $isMultiLang;                   // 多言語対応画面かどうか
        private $availableLangRows;     // 利用可能な言語
        private $availableLangArray;    // 利用可能な言語
@@ -52,6 +49,8 @@ class admin_mainMenudefWidgetContainer extends admin_mainBaseWidgetContainer
        const ITEM_NAME_HEAD = 'item_name_';                            // 多言語対応名前ヘッダ部
        const ITEM_TITLE_HEAD = 'item_title_';                          // 多言語対応タイトルヘッダ部
        const TREE_ITEM_HEAD = 'treeitem_';             // ツリー項目IDヘッダ
+       const PREVIEW_ICON_FILE = '/images/system/preview.png';         // プレビュー用アイコン
+       const PREVIEW_TITLE = 'プレビュー';
        
        /**
         * コンストラクタ
@@ -146,13 +145,8 @@ class admin_mainMenudefWidgetContainer extends admin_mainBaseWidgetContainer
                        $localeText['label_link_type'] = $this->_('Link Type');         // 表示方法
                        $localeText['label_link_self'] = $this->_('Open page in the same window');              // 同ウィンドウで表示
                        $localeText['label_link_other'] = $this->_('Open page in the other window');            // 別ウィンドウで表示
-                       $localeText['label_select_link'] = $this->_('Select Link Type');                // リンク先を選択
-                       $localeText['label_unselected'] = $this->_('Unselected');       // 未選択
-                       $localeText['label_link_top'] = $this->_('Top');        // トップ
-                       $localeText['label_input'] = $this->_('Input URL');     // URL任意設定
-                       $localeText['label_page_id'] = $this->_('Page ID:');    // ページID:
-                       $localeText['label_content'] = $this->_('General Contents:');   // 汎用コンテンツ:
-                       $localeText['label_url'] = $this->_('URL');     // リンク先URL
+                       $localeText['label_link_url'] = $this->_('Link URL');   // リンク先URL
+                       $localeText['label_create_url'] = $this->_('Create URL');       // URLを作成
                        $localeText['label_item_visible'] = $this->_('Item Control');   // 表示制御
                        $localeText['label_visible'] = $this->_('Visible');     // 公開
                        $localeText['label_title'] = $this->_('Title'); // タイトル
@@ -177,7 +171,7 @@ class admin_mainMenudefWidgetContainer extends admin_mainBaseWidgetContainer
                        $localeText['label_check'] = $this->_('Select');                        // 選択
                        $localeText['label_name'] = $this->_('Name');                   // 名前
                        $localeText['label_lang'] = $this->_('Language');                       // 言語
-                       $localeText['label_url'] = $this->_('URL');                     // リンク先URL
+                       $localeText['label_link_url'] = $this->_('Link URL');                   // リンク先URL
                        $localeText['label_link_type'] = $this->_('Link Type');                 // 表示方法
                        $localeText['label_visible'] = $this->_('Visible');                     // 公開
                        $localeText['label_operation'] = $this->_('Operation');         // 操作
@@ -383,8 +377,6 @@ class admin_mainMenudefWidgetContainer extends admin_mainBaseWidgetContainer
                $visible = ($request->trimValueOf('item_visible') == 'on') ? 1 : 0;             // チェックボックス
                $userLimited = ($request->trimValueOf('item_user_limited') == 'on') ? 1 : 0;            // ユーザ制限するかどうか
                $linkContent = ($request->trimValueOf('item_link_content') == 'on') ? 1 : 0;            // コンテンツにリンクしてメニュー項目を表示制御するかどうか
-               $this->currentPageSubId = $request->trimValueOf('item_sub_id');                 // ページサブID
-               $this->contentId = $request->trimValueOf('item_content_id');                    // コンテンツID
                $url = $request->trimValueOf('item_url');               // 決定したURL
                $url = str_replace($this->gEnv->getRootUrl(), M3_TAG_START . M3_TAG_MACRO_ROOT_URL . M3_TAG_END, $url);// マクロ変換
                
@@ -414,20 +406,6 @@ class admin_mainMenudefWidgetContainer extends admin_mainBaseWidgetContainer
                $ret = $this->db->getMenuId($this->menuId, $row);
                if ($ret) $this->menuDeviceType = $row['mn_device_type'];
                
-               // コンテンツタイプを取得
-               switch ($this->menuDeviceType){
-                       case 0:                 // PC用
-                       default:
-                               $contType = self::CONTENT_TYPE_PC;                      // 汎用コンテンツのコンテンツタイプ
-                               break;
-                       case 1:                 // 携帯用
-                               $contType = self::CONTENT_TYPE_MOBILE;                  // 汎用コンテンツのコンテンツタイプ
-                               break;
-                       case 2:                 // スマートフォン用
-                               $contType = self::CONTENT_TYPE_SMARTPHONE;                      // 汎用コンテンツのコンテンツタイプ
-                               break;
-               }
-               
                $reloadData = false;            // データの再読み込み
                if ($act == 'add'){// 新規追加
                        // 入力チェック
@@ -525,27 +503,6 @@ class admin_mainMenudefWidgetContainer extends admin_mainBaseWidgetContainer
                        }
                        $this->gCache->clearCacheByWidgetType(self::WIDGET_TYPE_MENU);          // キャッシュをクリア
                        $this->gPage->updateParentWindow();// 親ウィンドウを更新
-               } else if ($act == 'select'){   // ページサブIDを変更
-                       if ($this->currentPageSubId == '_root'){
-                               $url = M3_TAG_START . M3_TAG_MACRO_ROOT_URL . M3_TAG_END . '/';
-                       } else if ($this->currentPageSubId == '_other'){                // 任意設定以外のとき
-                               $url = '';
-                       } else {
-                               $url = $this->gEnv->getDefaultUrl() . '?' . M3_REQUEST_PARAM_PAGE_SUB_ID . '=' . $this->currentPageSubId;
-                               if (!empty($this->contentId)) $url .= '&' . M3_REQUEST_PARAM_CONTENT_ID . '=' . $this->contentId;
-                       }
-               } else if ($act == 'getmenu'){          // コンテンツ選択メニュー取得
-                       // コンテンツIDを取得
-                       $contentSerial = $request->trimValueOf('content_serial');
-                       $ret = $this->db->getContentBySerial($contentSerial, $row);
-                       if ($ret) $this->contentId = $row['cn_id'];
-                       
-                       // コンテンツ選択メニューを作成
-                       $this->menuHtml  = '<select name="item_content_id" onchange="selectPage();">';
-               $this->menuHtml .= '<option value="">-- 未選択 --</option>';
-                       $this->db->getAllContents($langId, $contType, array($this, 'contentListLoop'));
-                       $this->menuHtml .= '</select>';
-                       $this->gInstance->getAjaxManager()->addData('menu_html', $this->menuHtml);
                } else {
                        $reloadData = true;             // データの再読み込み
                }
@@ -572,15 +529,6 @@ class admin_mainMenudefWidgetContainer extends admin_mainBaseWidgetContainer
                                        $userLimited = $row['md_user_limited'];// ユーザ制限するかどうか
                                        $url = $row['md_link_url'];     // リンク先
                                        
-                                       // リンク先を解析
-                                       if ($url == M3_TAG_START . M3_TAG_MACRO_ROOT_URL . M3_TAG_END . '/'){           // トップのとき
-                                               $this->currentPageSubId = '_root';
-                                       } else {
-                                               // システム以下へのリンクかチェック
-                                               $testUrl = str_replace(M3_TAG_START . M3_TAG_MACRO_ROOT_URL . M3_TAG_END, $this->gEnv->getRootUrl(), $url);             // マクロ展開
-                                               $ret = $this->gEnv->parseUrl($testUrl, $pageId, $pageSubId, $paramArray);
-                                               if (!$ret) $this->currentPageSubId = '_other';          // 他サイトへのリンクのとき
-                                       }
                                        // コンテンツにリンクしてメニュー項目を表示制御するかどうか
                                        $linkContent = 0;
                                        if (!empty($row['md_content_type'])) $linkContent = 1;                  // リンクコンテンツが設定されている場合はメニューの表示制御を行う
@@ -596,115 +544,12 @@ class admin_mainMenudefWidgetContainer extends admin_mainBaseWidgetContainer
                // リンク先を実URLに変換
                $url = str_replace(M3_TAG_START . M3_TAG_MACRO_ROOT_URL . M3_TAG_END, $this->gEnv->getRootUrl(), $url);         // マクロ展開
                
-               $contentType = '';              // コンテンツタイプ(ページ属性)
-               if ($this->currentPageSubId == '_root'){
-                       $this->tmpl->setAttribute('input_no_url', 'visibility', 'visible');// URL非表示データ
-                       $this->tmpl->addVar('_widget', 'root_selected', 'selected');            // ページサブID選択
-               } else if ($this->currentPageSubId == '_other'){
-                       $this->tmpl->setAttribute('input_url', 'visibility', 'visible');// URL入力エリア表示
-                       $this->tmpl->addVar('_widget', 'other_selected', 'selected');           // ページサブID選択
-               } else {                // ルート、任意設定以外のとき
-                       $this->tmpl->setAttribute('input_no_url', 'visibility', 'visible');// URL非表示データ
-
-                       // URLを解析
-                       $ret = $this->gEnv->parseUrl($url, $pageId, $pageSubId, $paramArray);
-                       if ($ret){
-                               $this->currentPageSubId = $pageSubId;
-
-                               // ページ情報を取得
-                               $ret = $this->db->getPageInfo($this->gEnv->getDefaultPageId(), $this->currentPageSubId, $row);
-                               if ($ret){
-                                       $contentType = $row['pn_content_type'];
-                               }
-                               // メニューの端末タイプごとのアクセスポイントを取得
-                               // 汎用コンテンツのコンテンツタイプを取得
-                               switch ($this->menuDeviceType){
-                                       case 0:                 // PC用
-                                       default:
-                                               $url = $this->gEnv->getDefaultUrl();
-                                               break;
-                                       case 1:                 // 携帯用
-                                               $url = $this->gEnv->getDefaultMobileUrl();
-                                               break;
-                                       case 2:                 // スマートフォン用
-                                               $url = $this->gEnv->getDefaultSmartphoneUrl();
-                                               break;
-                               }
-                               
-                               // 表示データタイプごとの処理
-                               switch ($contentType){
-                                       case M3_VIEW_TYPE_CONTENT:                              // 汎用コンテンツ
-                                               $this->contentId = $paramArray[M3_REQUEST_PARAM_CONTENT_ID];
-                                               $url .= '?' . M3_REQUEST_PARAM_CONTENT_ID . '=' . $this->contentId;
-                                               break;
-                                       case M3_VIEW_TYPE_PRODUCT:                              // 製品
-                                       case M3_VIEW_TYPE_BBS:                                  // BBS
-                                       case M3_VIEW_TYPE_BLOG:                         // ブログ
-                                       case M3_VIEW_TYPE_WIKI:                         // wiki
-                                       case M3_VIEW_TYPE_USER:                         // ユーザ作成コンテンツ
-                                       default:
-                                               $url .= '?' . M3_REQUEST_PARAM_PAGE_SUB_ID . '=' . $this->currentPageSubId;
-                                               break;
-                               }
-                       }
-               }
-               
-               // 表示データタイプごとの表示処理
-               switch ($contentType){
-                       case M3_VIEW_TYPE_CONTENT:                              // 汎用コンテンツ
-                               $this->tmpl->setAttribute('sel_content', 'visibility', 'visible');// コンテンツ選択メニュー表示
-                               $this->db->getAllContents($langId, $contType, array($this, 'contentListLoop'));
-                               break;
-                       case M3_VIEW_TYPE_PRODUCT:                              // 製品
-                               break;
-                       case M3_VIEW_TYPE_BBS:                                  // BBS
-                               break;
-                       case M3_VIEW_TYPE_BLOG:                         // ブログ
-                               break;
-                       case M3_VIEW_TYPE_WIKI:                         // wiki
-                               break;
-                       case M3_VIEW_TYPE_USER:                         // ユーザ作成コンテンツ
-                               break;
-                       default:
-                               break;
-               }
-               
-               // リンク先設定用メニュー
-               //$this->db->getPageIdList(array($this, 'pageSubIdLoop'), 1);// ウィジェットサブIDメニュー作成
-               switch ($this->menuDeviceType){
-                       case 0:                 // PC用
-                       default:
-                               $defaultPageId = $this->gEnv->getDefaultPageId();
-                               break;
-                       case 1:                 // 携帯用
-                               $defaultPageId = $this->gEnv->getDefaultMobilePageId();
-                               break;
-                       case 2:                 // スマートフォン用
-                               $defaultPageId = $this->gEnv->getDefaultSmartphonePageId();
-                               break;
-               }
-               $this->db->getPageSubIdList($defaultPageId, ''/*言語なし*/, array($this, 'pageSubIdLoop'));
-               
                // メニュー項目タイプメニュー
                $this->createItemTypeMenu();
                
                // メニューID選択メニュー作成
                $this->db->getAllMenuItems($this->menuId, array($this, 'menuIdLoop'));
                
-               // コンテンツ編集用ウィジェット
-               switch ($contType){
-                       case self::CONTENT_TYPE_PC:                     // PC用
-                       default:
-                               $contentEditWidget = self::CONTENT_WIDGET_ID_PC;
-                               break;
-                       case self::CONTENT_TYPE_MOBILE:                 // 携帯用
-                               $contentEditWidget = self::CONTENT_WIDGET_ID_MOBILE;
-                               break;
-                       case self::CONTENT_TYPE_SMARTPHONE:                     // スマートフォン用
-                               $contentEditWidget = self::CONTENT_WIDGET_ID_SMARTPHONE;
-                               break;
-               }
-               
                // 多言語用入力エリア作成
                if ($this->isMultiLang){                // 多言語対応の場合
                        // デフォルト言語設定
@@ -721,13 +566,12 @@ class admin_mainMenudefWidgetContainer extends admin_mainBaseWidgetContainer
                $this->tmpl->addVar("_widget", "sel_item_name", $name);         // 名前
                $this->tmpl->addVar("_widget", "title", $this->convertToDispString($title));            // タイトル(HTML可)
                $this->tmpl->addVar("_widget", "desc", $desc);          // 説明
-               $this->tmpl->addVar("_widget", "sel_url", $url);                // 表示するURL
-               $this->tmpl->addVar("input_url", "sel_url", $url);              // 表示するURL
-               $this->tmpl->addVar("input_no_url", "sel_url", $url);           // 表示するURL
-               $attrStr = '';
-               if (!empty($contentType)) $attrStr = $this->_('Page Attribute:') . ' ' . $contentType;  // ページ属性:
-               $this->tmpl->addVar("_widget", "attr", $attrStr);               // ページ属性
-               $this->tmpl->addVar('_widget', 'content_widget_id', $contentEditWidget);// コンテンツ表示ウィジェット
+               $this->tmpl->addVar("_widget", "url", $url);            // 表示するURL
+               
+               $previewImg = $this->getUrl($this->gEnv->getRootUrl() . self::PREVIEW_ICON_FILE);
+               $this->tmpl->addVar("_widget", "preview_img", $previewImg);
+               $this->tmpl->addVar("_widget", "preview_str", self::PREVIEW_TITLE);     
+               
                // リンクタイプ
                switch ($linkType){
                        case 0:                 // 同ウィンドウで開くリンク
@@ -747,6 +591,7 @@ class admin_mainMenudefWidgetContainer extends admin_mainBaseWidgetContainer
                $this->tmpl->addVar("_widget", "menu_id", $this->menuId);               // メニューID
                $this->tmpl->addVar("_widget", "parent_id", $parentId);         // メニュー項目親ID
                $this->tmpl->addVar("_widget", "fixed_mode", $fixedMode);               // メニュー定義IDが固定かどうか
+               $this->tmpl->addVar("_widget", "device_type", $this->menuDeviceType);           // デバイスタイプ
                
                // ボタンの表示制御
                if (empty($this->serialNo)){            // 新規追加項目を選択しているとき
@@ -760,78 +605,6 @@ class admin_mainMenudefWidgetContainer extends admin_mainBaseWidgetContainer
                }
        }
        /**
-        * ページID、取得したデータをテンプレートに設定する
-        *
-        * @param int $index                    行番号(0~)
-        * @param array $fetchedRow             フェッチ取得した行
-        * @param object $param                 未使用
-        * @return bool                                 true=処理続行の場合、false=処理終了の場合
-        */
-       function pageIdLoop($index, $fetchedRow, $param)
-       {
-               $selected = '';
-               $row = array(
-                       'value'    => $this->convertToDispString($fetchedRow['pg_id']),                 // ページID
-                       'name'     => $this->convertToDispString($fetchedRow['pg_name']),                       // ページ名
-                       'selected' => $selected                                                                                                         // 選択中かどうか
-               );
-               $this->tmpl->addVars('main_id_list', $row);
-               $this->tmpl->parseTemplate('main_id_list', 'a');
-               return true;
-       }
-       /**
-        * ページサブID、取得したデータをテンプレートに設定する
-        *
-        * @param int $index                    行番号(0~)
-        * @param array $fetchedRow             フェッチ取得した行
-        * @param object $param                 未使用
-        * @return bool                                 true=処理続行の場合、false=処理終了の場合
-        */
-       function pageSubIdLoop($index, $fetchedRow, $param)
-       {
-               $selected = '';
-               if ($fetchedRow['pg_id'] == $this->currentPageSubId) $selected = 'selected';    // 現在のページサブID
-               
-               $contentType = $fetchedRow['pn_content_type'];
-               $name = $fetchedRow['pg_id'];
-               if (!empty($contentType)) $name .= '[' . $contentType . ']';
-               $name .= ' - ' . $fetchedRow['pg_name'];
-               
-               $row = array(
-                       'value'    => $this->convertToDispString($fetchedRow['pg_id']),                 // ページID
-                       'name'     => $this->convertToDispString($name),                        // ページ名
-                       'selected' => $selected                                                                                                         // 選択中かどうか
-               );
-               $this->tmpl->addVars('sub_id_list', $row);
-               $this->tmpl->parseTemplate('sub_id_list', 'a');
-               return true;
-       }
-       /**
-        * 取得したデータをテンプレートに設定する
-        *
-        * @param int $index                    行番号(0~)
-        * @param array $fetchedRow             フェッチ取得した行
-        * @param object $param                 未使用
-        * @return bool                                 true=処理続行の場合、false=処理終了の場合
-        */
-       function contentListLoop($index, $fetchedRow, $param)
-       {
-               $id = $fetchedRow['cn_id'];
-               $selected = '';
-               if ($id == $this->contentId) $selected = 'selected';    // 現在のコンテンツID
-               $row = array(
-                       'value'    => $this->convertToDispString($id),                  // ページID
-                       'name'     => $this->convertToDispString($fetchedRow['cn_name']),                       // ページ名
-                       'selected' => $selected                                                                                                         // 選択中かどうか
-               );
-               $this->tmpl->addVars('content_list', $row);
-               $this->tmpl->parseTemplate('content_list', 'a');
-               
-               // コンテンツ選択メニューHTML
-               $this->menuHtml .= '<option value="' . $id . '" ' . $selected . '>' . $this->convertToDispString($fetchedRow['cn_name']) . '</option>';
-               return true;
-       }
-       /**
         * 取得したデータをテンプレートに設定する
         *
         * @param int $index                    行番号(0~)
index f51dae2..e9ccd03 100644 (file)
@@ -24,9 +24,9 @@ class admin_mainSmenudefWidgetContainer extends admin_mainBaseWidgetContainer
        private $menuId;                // 現在選択中のメニューID
        private $menuItemType;  // メニュー項目タイプ
        private $menuDeviceType;        // メニューの端末タイプ
+       private $itemTypeArray;         // メニュー項目の種類
        private $isExistsMenuItem;              // メニュー項目が存在するかどうか
        private $isExistsPreviewMenuItem;               // プレビューメニュー項目が存在するかどうか
-       private $itemTypeArray;         // メニュー項目の種類
        private $isMultiLang;                   // 多言語対応画面かどうか
        private $availableLangRows;     // 利用可能な言語
        private $availableLangArray;    // 利用可能な言語
@@ -138,12 +138,6 @@ class admin_mainSmenudefWidgetContainer extends admin_mainBaseWidgetContainer
                        $localeText['label_link_type'] = $this->_('Link Type');         // 表示方法
                        $localeText['label_link_self'] = $this->_('Open page in the same window');              // 同ウィンドウで表示
                        $localeText['label_link_other'] = $this->_('Open page in the other window');            // 別ウィンドウで表示
-//                     $localeText['label_select_link'] = $this->_('Select Link Type');                // リンク先を選択
-//                     $localeText['label_unselected'] = $this->_('Unselected');       // 未選択
-//                     $localeText['label_link_top'] = $this->_('Top');        // トップ
-//                     $localeText['label_input'] = $this->_('Input URL');     // URL任意設定
-//                     $localeText['label_page_id'] = $this->_('Page ID:');    // ページID:
-//                     $localeText['label_content'] = $this->_('General Contents:');   // 汎用コンテンツ:
                        $localeText['label_link_url'] = $this->_('Link URL');   // リンク先URL
                        $localeText['label_create_url'] = $this->_('Create URL');       // URLを作成
                        $localeText['label_item_visible'] = $this->_('Item Control');   // 表示制御
@@ -169,7 +163,7 @@ class admin_mainSmenudefWidgetContainer extends admin_mainBaseWidgetContainer
                        $localeText['label_check'] = $this->_('Select');                        // 選択
                        $localeText['label_name'] = $this->_('Name');                   // 名前
                        $localeText['label_lang'] = $this->_('Language');                       // 言語
-                       $localeText['label_url'] = $this->_('Url');                     // リンク先URL
+                       $localeText['label_link_url'] = $this->_('Link URL');                   // リンク先URL
                        $localeText['label_link_type'] = $this->_('Link Type');                 // 表示方法
                        $localeText['label_visible'] = $this->_('Visible');                     // 公開
                        $localeText['label_operation'] = $this->_('Operation');         // 操作
@@ -353,7 +347,6 @@ class admin_mainSmenudefWidgetContainer extends admin_mainBaseWidgetContainer
                        // 入力チェック
                        $this->checkInput($name, $this->_('Name'));             // 名前
                        $this->checkInput($this->menuId, $this->_('Menu ID'));  // メニューID
-                       //$this->checkInput($url, 'リンク先');
 
                        // エラーなしの場合は、データを登録
                        if ($this->getMsgCount() == 0){
@@ -396,7 +389,6 @@ class admin_mainSmenudefWidgetContainer extends admin_mainBaseWidgetContainer
                } else if ($act == 'update'){           // 項目更新の場合
                        // 入力チェック
                        $this->checkInput($name, $this->_('Name'));             // 名前
-                       //$this->checkInput($url, 'リンク先');
 
                        // エラーなしの場合は、データを更新
                        if ($this->getMsgCount() == 0){
index 0e6eac0..6509f0e 100644 (file)
@@ -7,7 +7,7 @@
  * @author     平田直毅(Naoki Hirata) <naoki@aplo.co.jp>\r
  * @copyright  Copyright 2006-2013 Magic3 Project.\r
  * @license    http://www.gnu.org/copyleft/gpl.html  GPL License\r
- * @version    SVN: $Id: menudef.tmpl.html 5811 2013-03-09 12:38:32Z fishbone $\r
+ * @version    SVN: $Id$\r
  * @link       http://www.magic3.org\r
  */\r
 <patTemplate:tmpl name="_widget">\r
@@ -195,7 +195,7 @@ $(function(){
         <tr>\r
             <th width="35"><span {_HELP_MENUDEF_CHECK}>{_LC_LABEL_CHECK}</span></th>\r
             <th width="25%"><span {_HELP_MENUDEF_NAME}>{_LC_LABEL_NAME}</span></th>\r
-           <th width="40%"><span {_HELP_MENUDEF_LINK_URL}>{_LC_LABEL_URL}</span></th>\r
+           <th width="40%"><span {_HELP_MENUDEF_LINK_URL}>{_LC_LABEL_LINK_URL}</span></th>\r
            <th width="80"><span {_HELP_MENUDEF_LINK_TYPE}>{_LC_LABEL_LINK_TYPE}</span></th>\r
            <th width="50"><span {_HELP_MENUDEF_VISIBLE}>{_LC_LABEL_VISIBLE}</span></th>\r
            <th><span {_HELP_MENUDEF_ACT}>{_LC_LABEL_OPERATION}</span></th>\r
@@ -222,7 +222,7 @@ $(function(){
             <th width="35"><span {_HELP_MENUDEF_CHECK}>{_LC_LABEL_CHECK}</span></th>\r
             <th width="25%"><span {_HELP_MENUDEF_NAME}>{_LC_LABEL_NAME}</span></th>\r
            <th width="5%"><span {_HELP_MENUDEF_LANG}>{_LC_LABEL_LANG}</span></th>\r
-           <th width="40%"><span {_HELP_MENUDEF_LINK_URL}>{_LC_LABEL_URL}</span></th>\r
+           <th width="40%"><span {_HELP_MENUDEF_LINK_URL}>{_LC_LABEL_LINK_URL}</span></th>\r
            <th width="80"><span {_HELP_MENUDEF_LINK_TYPE}>{_LC_LABEL_LINK_TYPE}</span></th>\r
            <th width="50"><span {_HELP_MENUDEF_VISIBLE}>{_LC_LABEL_VISIBLE}</span></th>\r
            <th><span {_HELP_MENUDEF_ACT}>{_LC_LABEL_OPERATION}</span></th>\r
index 6245eb6..90f8fa8 100644 (file)
@@ -7,7 +7,7 @@
  * @author     平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
  * @copyright  Copyright 2006-2013 Magic3 Project.
  * @license    http://www.gnu.org/copyleft/gpl.html  GPL License
- * @version    SVN: $Id: menudef_detail.tmpl.html 5811 2013-03-09 12:38:32Z fishbone $
+ * @version    SVN: $Id$
  * @link       http://www.magic3.org
  */
 <patTemplate:tmpl name="_widget">
@@ -17,11 +17,6 @@ function selectMenu(){
        document.main.submit();
        return true;
 }
-function selectPage(){
-       document.main.act.value = 'select';
-       document.main.submit();
-       return true;
-}
 function addItem(){
        if (!window.confirm('{_LC_MSG_ADD}')) return false;
        document.main.act.value = 'add';
@@ -45,31 +40,27 @@ function cancelItem(){
        document.main.submit();
        return true;
 }
-function showUrl(url){
-       //window.open(url,"","toolbar=no,menubar=no,location=no,status=no,scrollbars=yes,resizable=yes,width=1000,height=900");
-       m3ShowPreviewWindow(0, url);
-       return false;
-}
-function createContent()
-{
-       m3ShowStandardWindow("{ADMIN_URL}?cmd=configwidget&openby=simple&widget={CONTENT_WIDGET_ID}&task=content_detail");
-}
-function m3UpdateByChildWindow(serial)
+// プレビューを別ウィンドウで表示
+function previewInOtherWindow()
 {
-       // コンテンツ選択メニュー作成
-       m3_ajax_request('', 'task=menudef_detail&act=getmenu&content_serial=' + serial, ajax_success_func, ajax_failure_func);
+       var url = $('#item_url').val();
+       m3ShowPreviewWindow({DEVICE_TYPE}, url);
 }
-function ajax_success_func(request, retcode, jsondata)
+// URL作成
+function createUrl()
 {
-       if (jsondata.menu_html){
-               $('#content_menu').html(jsondata.menu_html);
-               selectPage();
-       }
+       var url = $('#item_url').val();
+       m3CreateLinkUrl({DEVICE_TYPE}, url, setLinkUrl);
 }
-function ajax_failure_func(request)
+// 作成リンク取得用
+function setLinkUrl(url)
 {
-       alert('ajax failure!');
+       $('#item_url').val(url);
 }
+$(function(){
+       // CKEditorプラグイン直接実行
+       m3LoadCKTools();
+});
 //]]>
 </script>
 <div align="center">
@@ -90,9 +81,9 @@ function ajax_failure_func(request)
 
 <table class="simple-table">
     <tbody>
-        <tr>
+    <tr>
            <td class="table-headside" width="150"><span {_HELP_MENUDEF_NAME}>{_LC_LABEL_NAME}</span></td>
-           <td width="800" colspan="3">
+           <td width="700" colspan="3">
            <select name="item_sel_menuid" onchange="selectMenu();">
                <option value="0" {SELECTED}>-- {_LC_LABEL_NEW} --</option>
                 <patTemplate:tmpl name="menuid_list">
@@ -105,7 +96,7 @@ function ajax_failure_func(request)
            </patTemplate:tmpl>
            </td>
        </tr>
-        <tr class="even">
+    <tr class="even">
            <td class="table-headside"><span {_HELP_MENUDEF_ITEM_TYPE}>{_LC_LABEL_ITEM_TYPE}</span></td>
            <td>
            <select name="item_type">
@@ -122,40 +113,12 @@ function ajax_failure_func(request)
            </select>
            </td>
        </tr>
-        <tr>
-           <td class="table-headside"><span {_HELP_MENUDEF_SEL_LINK}>{_LC_LABEL_SELECT_LINK}</span></td>
-           <td colspan="3">
-           {_LC_LABEL_PAGE_ID}
-           <select name="item_sub_id" onchange="selectPage();">
-               <option value="">-- {_LC_LABEL_UNSELECTED} --</option>
-               <patTemplate:tmpl name="sub_id_list">
-               <option value="{VALUE}" {SELECTED}>{NAME}</option>
-               </patTemplate:tmpl>
-               <option value="_root" {ROOT_SELECTED}>[ {_LC_LABEL_LINK_TOP} ]</option>
-               <option value="_other" {OTHER_SELECTED}>[ {_LC_LABEL_INPUT} ]</option>
-           </select>&nbsp;&nbsp;{ATTR}<br />
-           <patTemplate:tmpl name="sel_content" visibility="hidden">
-           {_LC_LABEL_CONTENT}
-           <span id="content_menu"><select name="item_content_id" onchange="selectPage();">
-               <option value="">-- {_LC_LABEL_UNSELECTED} --</option>
-               <patTemplate:tmpl name="content_list">
-               <option value="{VALUE}" {SELECTED}>{NAME}</option>
-               </patTemplate:tmpl>
-           </select></span><input type="button" class="button" onclick="createContent();" value="コンテンツを追加" />
-           </patTemplate:tmpl>
-           <patTemplate:tmpl name="input_url" visibility="hidden">
-           <input type="text" name="item_url" value="{SEL_URL}" size="80" maxlength="120" />
-           </patTemplate:tmpl>
-           <patTemplate:tmpl name="input_no_url" visibility="hidden"><input type="hidden" name="item_url" value="{SEL_URL}" /></patTemplate:tmpl>
-           </td>
-       </tr>
-        <tr class="even">
-           <td class="table-headside"><span {_HELP_MENUDEF_LINK_URL}>{_LC_LABEL_URL}</span></td>
-           <td colspan="3">
-           <a id="linkurl" href="#" onclick="showUrl('{SEL_URL}');">{SEL_URL}</a>
+    <tr>
+           <td class="table-headside"><span {_HELP_MENUDEF_LINK_URL}>{_LC_LABEL_LINK_URL}</span></td>
+           <td colspan="3"><input type="text" id="item_url" name="item_url" value="{URL}" style="width:80%" readonly /><input type="button" class="button" onclick="createUrl();" value="{_LC_LABEL_CREATE_URL}" /><input type="image" src="{PREVIEW_IMG}" width="16" height="16" border="0" alt="{PREVIEW_STR}" title="{PREVIEW_STR}" onclick="previewInOtherWindow();return false;" />
            </td>
        </tr>
-    <tr>
+    <tr class="even">
            <td class="table-headside"><span {_HELP_MENUDEF_VISIBLE}>{_LC_LABEL_ITEM_VISIBLE}</span></td>
            <td colspan="3"><input type="checkbox" name="item_visible" {SEL_ITEM_VISIBLE} />{_LC_LABEL_VISIBLE}<br /><input type="checkbox" name="item_user_limited" {USER_LIMITED_CHECKED} />{_LC_MSG_USER_LIMITED}<br />
                <input type="checkbox" name="item_link_content" {LINK_CONTENT} />{_LC_MSG_LINK_TO_CONTENT}</td>
@@ -164,16 +127,16 @@ function ajax_failure_func(request)
            <td class="table-headside"><span {_HELP_MENUDEF_DESC}>{_LC_LABEL_DESC}</span></td>
            <td colspan="3"><input type="text" name="item_desc" value="{DESC}" size="100" maxlength="100" /></td>
        </tr>-->
-    <tr class="even">
+    <tr>
            <td class="table-headside"><span {_HELP_MENUDEF_TITLE}>{_LC_LABEL_TITLE}</span></td>
            <td colspan="3">
-               <input type="text" name="item_title" value="{TITLE}" maxlength="300" style="width:95%" />&nbsp;&nbsp;{LANG}<br />
+               <input type="text" name="item_title" value="{TITLE}" maxlength="300" style="width:80%" />&nbsp;&nbsp;{LANG}<br />
            <patTemplate:tmpl name="input_title" visibility="hidden">
-           <input type="text" name="item_title_{ID}" value="{VALUE}" maxlength="300" style="width:95%" />&nbsp;&nbsp;{LANG}<br />
+           <input type="text" name="item_title_{ID}" value="{VALUE}" maxlength="300" style="width:80%" />&nbsp;&nbsp;{LANG}<br />
            </patTemplate:tmpl>
                </td>
        </tr>
-       <tr>
+       <tr class="even">
        <td colspan="4" align="right">
 <patTemplate:tmpl name="del_button" visibility="hidden">
                <input type="button" class="button" onclick="delItem();" value="{_LC_LABEL_DELETE}" {DEL_BUTTON_DISABLED}/>
index 1195088..39fab4b 100644 (file)
@@ -5,9 +5,9 @@
  *\r
  * @package    Magic3 Framework\r
  * @author     平田直毅(Naoki Hirata) <naoki@aplo.co.jp>\r
- * @copyright  Copyright 2006-2010 Magic3 Project.\r
+ * @copyright  Copyright 2006-2013 Magic3 Project.\r
  * @license    http://www.gnu.org/copyleft/gpl.html  GPL License\r
- * @version    SVN: $Id: smenudef.tmpl.html 5321 2012-10-25 13:46:02Z fishbone $\r
+ * @version    SVN: $Id$\r
  * @link       http://www.magic3.org\r
  */\r
 <patTemplate:tmpl name="_widget">\r
@@ -134,7 +134,7 @@ $(function(){
         <tr>\r
             <th width="35"><span {_HELP_MENUDEF_CHECK}>{_LC_LABEL_CHECK}</span></th>\r
             <th width="20%"><span {_HELP_MENUDEF_NAME}>{_LC_LABEL_NAME}</span></th>\r
-           <th width="40%"><span {_HELP_MENUDEF_LINK_URL}>{_LC_LABEL_URL}</span></th>\r
+           <th width="40%"><span {_HELP_MENUDEF_LINK_URL}>{_LC_LABEL_LINK_URL}</span></th>\r
            <th width="80"><span {_HELP_MENUDEF_LINK_TYPE}>{_LC_LABEL_LINK_TYPE}</span></th>\r
            <th width="50"><span {_HELP_MENUDEF_VISIBLE}>{_LC_LABEL_VISIBLE}</span></th>\r
            <th><span {_HELP_MENUDEF_ACT}>{_LC_LABEL_OPERATION}</span></th>\r
@@ -161,7 +161,7 @@ $(function(){
             <th width="40"><span {_HELP_MENUDEF_CHECK}>{_LC_LABEL_CHECK}</span></th>\r
             <th width="20%"><span {_HELP_MENUDEF_NAME}>{_LC_LABEL_NAME}</span></th>\r
            <th width="5%"><span {_HELP_MENUDEF_LANG}>{_LC_LABEL_LANG}</span></th>\r
-           <th width="40%"><span {_HELP_MENUDEF_LINK_URL}>{_LC_LABEL_URL}</span></th>\r
+           <th width="40%"><span {_HELP_MENUDEF_LINK_URL}>{_LC_LABEL_LINK_URL}</span></th>\r
            <th width="80"><span {_HELP_MENUDEF_LINK_TYPE}>{_LC_LABEL_LINK_TYPE}</span></th>\r
            <th width="50"><span {_HELP_MENUDEF_VISIBLE}>{_LC_LABEL_VISIBLE}</span></th>\r
            <th><span {_HELP_MENUDEF_ACT}>{_LC_LABEL_OPERATION}</span></th>\r