OSDN Git Service

初回コミット(v2.6.17.1)
[magic3/magic3.git] / widgets / blog_archive_menu / include / db / blog_archive_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: blog_archive_menuDb.php 5270 2012-10-04 12:19:21Z fishbone $
14  * @link       http://www.magic3.org
15  */
16 require_once($gEnvManager->getDbPath() . '/baseDb.php');
17
18 class blog_archive_menuDb extends BaseDb
19 {
20         const USER_ID_SEPARATOR = ',';          // ユーザIDセパレータ
21         
22         /**
23          * すべてのブログ記事を取得
24          *
25          * @param string        $langId                         言語
26          * @param array         $rows                           取得データ
27          * @return                      なし
28          */
29         function getAllEntry($langId, &$rows)
30         {
31                 $params = array();
32                 $initDt = $this->gEnv->getInitValueOfTimestamp();
33                 $now = date("Y/m/d H:i:s");     // 現在日時
34                 if (!$this->gEnv->isSystemManageUser()) $userId = $this->gEnv->getCurrentUserId();              // システム管理ユーザの場合
35                 
36 /*              $queryStr = 'SELECT be_regist_dt FROM blog_entry ';
37                 $queryStr .=  'WHERE be_deleted = false ';              // 削除されていない
38                 $queryStr .=    'AND be_status = ? ';
39                 $queryStr .=    'AND be_language_id = ? ';
40                 $queryStr .=    'AND be_regist_dt <= ? ';       // 投稿日時が現在日時よりも過去のものを取得
41                 
42                 // 公開範囲を指定
43                 $queryStr .=    'AND (be_active_start_dt = ? OR (be_active_start_dt != ? AND be_active_start_dt <= ?)) ';
44                 $queryStr .=    'AND (be_active_end_dt = ? OR (be_active_end_dt != ? AND be_active_end_dt > ?)) ';*/
45                 //$queryStr = 'SELECT * FROM blog_entry LEFT JOIN blog_id ON be_blog_id = bl_id AND bl_deleted = false ';
46                 $queryStr = 'SELECT be_regist_dt FROM blog_entry LEFT JOIN blog_id ON be_blog_id = bl_id AND bl_deleted = false ';
47                 $queryStr .=  'WHERE be_deleted = false ';              // 削除されていない
48                 $queryStr .=    'AND be_status = ? ';           $params[] = 2;  // 「公開」(2)データを表示
49                 $queryStr .=    'AND be_language_id = ? ';      $params[] = $langId;
50                 $queryStr .=    'AND be_regist_dt <= ? ';       $params[] = $now;               // 投稿日時が現在日時よりも過去のものを取得
51
52                 // ユーザ参照制限
53                 if (isset($userId)){
54                         $queryStr .=     'AND (be_blog_id = \'\' ';
55                         $queryStr .=     'OR (be_blog_id != \'\' ';
56                         $queryStr .=     'AND ((bl_owner_id = ? AND bl_owner_id != 0) ';        $params[] = $userId;
57                         $queryStr .=     'OR bl_user_limited = false ';
58                         $queryStr .=     'OR (bl_user_limited = true AND bl_limited_user_id = \'\' AND 0 != ' . $userId . ') ';
59                         $queryStr .=     'OR (bl_user_limited = true AND bl_limited_user_id != \'\' AND bl_limited_user_id LIKE \'%' . self::USER_ID_SEPARATOR . $userId . self::USER_ID_SEPARATOR . '%\')))) ';
60                 }
61                         
62                 // 公開期間を指定
63                 $queryStr .=    'AND (be_active_start_dt = ? OR (be_active_start_dt != ? AND be_active_start_dt <= ?)) ';
64                 $queryStr .=    'AND (be_active_end_dt = ? OR (be_active_end_dt != ? AND be_active_end_dt > ?)) ';
65                 $params[] = $initDt;
66                 $params[] = $initDt;
67                 $params[] = $now;
68                 $params[] = $initDt;
69                 $params[] = $initDt;
70                 $params[] = $now;
71                 
72                 $queryStr .=  'ORDER BY be_regist_dt desc';
73                 //$retValue = $this->selectRecords($queryStr, array(2, $langId, $now, $initDt, $initDt, $now, $initDt, $initDt, $now), $rows);// 「公開」(2)データを取得
74                 $retValue = $this->selectRecords($queryStr, $params, $rows);
75                 return $retValue;               
76         }
77 }
78 ?>