OSDN Git Service

初回コミット(v2.6.17.1)
[magic3/magic3.git] / widgets / default_menu / include / db / default_menuDb.php
1 <?php
2 /**
3  * DBクラス
4  *
5  * PHP versions 5
6  *
7  * LICENSE: This source file is licensed under the terms of the GNU General Public License.
8  *
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
15  */
16 require_once($gEnvManager->getDbPath() . '/baseDb.php');
17
18 class default_menuDb extends BaseDb
19 {
20         /**
21          * メニューIDのリストを取得
22          *
23          * @param function $callback    コールバック関数
24          * @return                                              なし
25          */
26         function getMenuIdList($callback)
27         {
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);
32         }
33         /**
34          * メニュー項目を取得
35          *
36          * @param string $menuId                メニュー識別ID
37          * @param string $parentId              親項目ID
38          * @param string $langId                言語ID
39          * @param array  $rows                  取得レコード
40          * @return                                              true=取得、false=取得せず
41          */
42         function getChildMenuItems($menuId, $parentId, $langId, &$rows)
43         {
44                 $now = date("Y/m/d H:i:s");     // 現在日時
45                 $initDt = $this->gEnv->getInitValueOfTimestamp();
46                 $params = array();
47                 
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 ';
52                 } else {                // MySQLの場合
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 ';
54                 }
55                 $params[] = M3_VIEW_TYPE_CONTENT;               // 汎用コンテンツ
56                 $params[] = '';                         // PC用コンテンツ
57                 $params[] = $langId;
58                 
59                 // 共通の取得条件
60                 $queryStr .=   'WHERE md_menu_id = ? ';
61                 $queryStr .=     'AND md_parent_id = ? ';
62                 $params[] = $menuId;
63                 $params[] = $parentId;
64                 
65                 // 汎用コンテンツの表示条件
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;               // 汎用コンテンツ
72                 $params[] = $initDt;
73                 $params[] = $initDt;
74                 $params[] = $now;
75                 $params[] = $initDt;
76                 $params[] = $initDt;
77                 $params[] = $now;
78                 
79                 $queryStr .=   'ORDER BY md_index';
80                 $retValue = $this->selectRecords($queryStr, $params, $rows);
81                 return $retValue;
82         }
83         /**
84          * メニュー情報の取得
85          *
86          * @param string  $id                   メニューID
87          * @return                                              true=正常、false=異常
88          */
89         function getMenu($id, &$row)
90         {
91                 $queryStr  = 'SELECT * FROM _menu_id ';
92                 $queryStr .=   'WHERE mn_id = ? ';
93                 $ret = $this->selectRecord($queryStr, array($id), $row);
94                 return $ret;
95         }
96 }
97 ?>