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-2012 Magic3 Project.
12 * @license http://www.gnu.org/copyleft/gpl.html GPL License
13 * @version SVN: $Id: default_menuDb.php 5457 2012-12-11 09:36:29Z fishbone $
14 * @link http://www.magic3.org
16 require_once($gEnvManager->getDbPath() . '/baseDb.php');
18 class default_menuDb extends BaseDb
23 * @param function $callback コールバック関数
26 function getMenuIdList($callback)
28 $queryStr = 'SELECT * FROM _menu_id ';
29 $queryStr .= 'WHERE mn_widget_id = \'\' '; // ウィジェット制限されていないメニュー
30 $queryStr .= 'ORDER BY mn_sort_order';
31 $this->selectLoop($queryStr, array(), $callback);
36 * @param string $menuId メニュー識別ID
37 * @param string $parentId 親項目ID
38 * @param string $langId 言語ID
39 * @param array $rows 取得レコード
40 * @return true=取得、false=取得せず
42 function getChildMenuItems($menuId, $parentId, $langId, &$rows)
44 $now = date("Y/m/d H:i:s"); // 現在日時
45 $initDt = $this->gEnv->getInitValueOfTimestamp();
48 //$queryStr = 'SELECT md_id, md_name, md_type, md_link_type, md_link_url, md_visible, md_content_type, cn_user_limited FROM _menu_def ';
49 $queryStr = 'SELECT * FROM _menu_def ';
50 if ($this->getDbType() == M3_DB_TYPE_PGSQL){ // PostgreSQLの場合
51 $queryStr .= 'LEFT JOIN content ON md_content_type = ? AND md_content_id = cn_id::text AND cn_type = ? AND cn_language_id = ? AND cn_deleted = false ';
53 $queryStr .= 'LEFT JOIN content ON md_content_type = ? AND md_content_id = cn_id AND cn_type = ? AND cn_language_id = ? AND cn_deleted = false ';
55 $params[] = M3_VIEW_TYPE_CONTENT; // 汎用コンテンツ
56 $params[] = ''; // PC用コンテンツ
60 $queryStr .= 'WHERE md_menu_id = ? ';
61 $queryStr .= 'AND md_parent_id = ? ';
63 $params[] = $parentId;
66 $queryStr .= 'AND (md_content_type != ? OR (md_content_type = ? ';
67 $queryStr .= 'AND cn_visible = true ';
68 $queryStr .= 'AND (cn_active_start_dt = ? OR (cn_active_start_dt != ? AND cn_active_start_dt <= ?)) ';
69 $queryStr .= 'AND (cn_active_end_dt = ? OR (cn_active_end_dt != ? AND cn_active_end_dt > ?)))) ';
70 $params[] = M3_VIEW_TYPE_CONTENT; // 汎用コンテンツ
71 $params[] = M3_VIEW_TYPE_CONTENT; // 汎用コンテンツ
79 $queryStr .= 'ORDER BY md_index';
80 $retValue = $this->selectRecords($queryStr, $params, $rows);
86 * @param string $id メニューID
87 * @return true=正常、false=異常
89 function getMenu($id, &$row)
91 $queryStr = 'SELECT * FROM _menu_id ';
92 $queryStr .= 'WHERE mn_id = ? ';
93 $ret = $this->selectRecord($queryStr, array($id), $row);