7 * LICENSE: This source file is licensed under the terms of the GNU General Public License.
9 * @package Magic3 Framework
10 * @author 平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
11 * @copyright Copyright 2006-2013 Magic3 Project.
12 * @license http://www.gnu.org/copyleft/gpl.html GPL License
13 * @version SVN: $Id: admin_admin_menu3WidgetContainer.php 5793 2013-03-05 06:38:23Z fishbone $
14 * @link http://www.magic3.org
16 require_once($gEnvManager->getContainerPath() . '/baseAdminWidgetContainer.php');
17 require_once($gEnvManager->getCurrentWidgetDbPath() . '/admin_menuDb.php');
19 class admin_admin_menu3WidgetContainer extends BaseAdminWidgetContainer
21 protected $db; // DB接続オブジェクト
22 const SEL_MENU_ID = 'admin_menu'; // メニュー変換対象メニューバーID
23 const TREE_MENU_TASK = 'menudef'; // メニュー管理画面(多階層)
24 const SINGLE_MENU_TASK = 'smenudef'; // メニュー管理画面(単一階層)
29 function __construct()
32 parent::__construct();
35 $this->db = new admin_menuDB();
40 * _assign()でデータを埋め込むテンプレートファイルのファイル名を返す。
41 * 読み込むディレクトリは、「自ウィジェットディレクトリ/include/template」に固定。
43 * @param RequestManager $request HTTPリクエスト処理クラス
44 * @param object $param 任意使用パラメータ。そのまま_assign()に渡る
45 * @return string テンプレートファイル名。テンプレートライブラリを使用しない場合は空文字列「''」を返す。
47 function _setTemplate($request, &$param)
49 return 'admin.tmpl.html';
54 * _setTemplate()で指定したテンプレートファイルにデータを埋め込む。
56 * @param RequestManager $request HTTPリクエスト処理クラス
57 * @param object $param 任意使用パラメータ。_setTemplate()と共有。
60 function _assign($request, &$param)
62 $act = $request->trimValueOf('act');
64 if ($act == 'togglemenu'){ // メニュー管理画面を変更
66 $ret = $this->getMenuInfo($isHier, $itemId, $row);
70 $ret = $this->db->updateNavItemMenuType($itemId, self::SINGLE_MENU_TASK);
72 $ret = $this->db->updateNavItemMenuType($itemId, self::TREE_MENU_TASK);
76 $this->setMsg(self::MSG_GUIDANCE, 'データを更新しました');
77 $replaceNew = true; // データ再取得
79 $this->setMsg(self::MSG_APP_ERR, 'データ更新に失敗しました');
81 $this->gPage->updateParentWindow();// 親ウィンドウを更新
86 $ret = $this->getMenuInfo($isHier, $itemId, $row);
89 if ($isHier){ // 階層化メニューのとき
90 $this->tmpl->addVar("_widget", "menu_type_tree", 'checked'); // 多階層メニュー
92 $this->tmpl->addVar("_widget", "menu_type_single", 'checked'); // 単一階層メニュー
99 * @param bool $isHier 階層化メニューかどうか
100 * @param int $itemId メニュー項目ID
101 * @param array $row 取得レコード
102 * @return bool 取得できたかどうか
104 function getMenuInfo(&$isHier, &$itemId, &$row)
106 $isHier = false; // 多階層メニューかどうか
107 $ret = $this->db->getNavItemsByTask(self::SEL_MENU_ID, self::TREE_MENU_TASK, $row);
111 $ret = $this->db->getNavItemsByTask(self::SEL_MENU_ID, self::SINGLE_MENU_TASK, $row);
113 if ($ret) $itemId = $row['ni_id'];