source: branches/version-2_13-dev/data/class/helper/SC_Helper_News.php @ 23546

Revision 23546, 5.3 KB checked in by shutta, 10 years ago (diff)

#2580 Copyrightを更新
Copyrightを2014に更新

Line 
1<?php
2/*
3 * This file is part of EC-CUBE
4 *
5 * Copyright(c) 2000-2014 LOCKON CO.,LTD. All Rights Reserved.
6 *
7 * http://www.lockon.co.jp/
8 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * as published by the Free Software Foundation; either version 2
12 * of the License, or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22 */
23
24/**
25 * ニュースを管理するヘルパークラス.
26 *
27 * @package Helper
28 * @author pineray
29 * @version $Id:$
30 */
31class SC_Helper_News
32{
33    /**
34     * ニュースの情報を取得.
35     *
36     * @param  integer $news_id     ニュースID
37     * @param  boolean $has_deleted 削除されたニュースも含む場合 true; 初期値 false
38     * @return array
39     */
40    public static function getNews($news_id, $has_deleted = false)
41    {
42        $objQuery =& SC_Query_Ex::getSingletonInstance();
43        $col = '*, cast(news_date as date) as cast_news_date';
44        $where = 'news_id = ?';
45        if (!$has_deleted) {
46            $where .= ' AND del_flg = 0';
47        }
48        $arrRet = $objQuery->select($col, 'dtb_news', $where, array($news_id));
49
50        return $arrRet[0];
51    }
52
53    /**
54     * ニュース一覧の取得.
55     *
56     * @param  integer $dispNumber  表示件数
57     * @param  integer $pageNumber  ページ番号
58     * @param  boolean $has_deleted 削除されたニュースも含む場合 true; 初期値 false
59     * @return array
60     */
61    public function getList($dispNumber = 0, $pageNumber = 0, $has_deleted = false)
62    {
63        $objQuery =& SC_Query_Ex::getSingletonInstance();
64        $col = '*, cast(news_date as date) as cast_news_date';
65        $where = '';
66        if (!$has_deleted) {
67            $where .= 'del_flg = 0';
68        }
69        $table = 'dtb_news';
70        $objQuery->setOrder('rank DESC');
71        if ($dispNumber > 0) {
72            if ($pageNumber > 0) {
73                $objQuery->setLimitOffset($dispNumber, (($pageNumber - 1) * $dispNumber));
74            } else {
75                $objQuery->setLimit($dispNumber);
76            }
77        }
78        $arrRet = $objQuery->select($col, $table, $where);
79
80        return $arrRet;
81    }
82
83    /**
84     * ニュースの登録.
85     *
86     * @param  array    $sqlval
87     * @return multiple 登録成功:ニュースID, 失敗:FALSE
88     */
89    public function saveNews($sqlval)
90    {
91        $objQuery =& SC_Query_Ex::getSingletonInstance();
92
93        $news_id = $sqlval['news_id'];
94        $sqlval['update_date'] = 'CURRENT_TIMESTAMP';
95        // 新規登録
96        if ($news_id == '') {
97            // INSERTの実行
98            $sqlval['rank'] = $objQuery->max('rank', 'dtb_news') + 1;
99            $sqlval['create_date'] = 'CURRENT_TIMESTAMP';
100            $sqlval['news_id'] = $objQuery->nextVal('dtb_news_news_id');
101            $ret = $objQuery->insert('dtb_news', $sqlval);
102        // 既存編集
103        } else {
104            unset($sqlval['creator_id']);
105            unset($sqlval['create_date']);
106            $where = 'news_id = ?';
107            $ret = $objQuery->update('dtb_news', $sqlval, $where, array($news_id));
108        }
109
110        return ($ret) ? $sqlval['news_id'] : FALSE;
111    }
112
113    /**
114     * ニュースの削除.
115     *
116     * @param  integer $news_id ニュースID
117     * @return void
118     */
119    public function deleteNews($news_id)
120    {
121        $objDb = new SC_Helper_DB_Ex();
122        // ランク付きレコードの削除
123        $objDb->sfDeleteRankRecord('dtb_news', 'news_id', $news_id);
124    }
125
126    /**
127     * ニュースの表示順をひとつ上げる.
128     *
129     * @param  integer $news_id ニュースID
130     * @return void
131     */
132    public function rankUp($news_id)
133    {
134        $objDb = new SC_Helper_DB_Ex();
135        $objDb->sfRankUp('dtb_news', 'news_id', $news_id);
136    }
137
138    /**
139     * ニュースの表示順をひとつ下げる.
140     *
141     * @param  integer $news_id ニュースID
142     * @return void
143     */
144    public function rankDown($news_id)
145    {
146        $objDb = new SC_Helper_DB_Ex();
147        $objDb->sfRankDown('dtb_news', 'news_id', $news_id);
148    }
149
150    /**
151     * ニュースの表示順を指定する.
152     *
153     * @param  integer $news_id ニュースID
154     * @param  integer $rank    移動先の表示順
155     * @return void
156     */
157    public function moveRank($news_id, $rank)
158    {
159        $objDb = new SC_Helper_DB_Ex();
160        $objDb->sfMoveRank('dtb_news', 'news_id', $news_id, $rank);
161    }
162
163    /**
164     * ニュース記事数を計算.
165     *
166     * @param  boolean $has_deleted 削除されたニュースも含む場合 true; 初期値 false
167     * @return integer ニュース記事数
168     */
169    public function getCount($has_deleted = false)
170    {
171        $objDb = new SC_Helper_DB_Ex();
172        if (!$has_deleted) {
173            $where = 'del_flg = 0';
174        } else {
175            $where = '';
176        }
177
178        return $objDb->countRecords('dtb_news', $where);
179    }
180}
Note: See TracBrowser for help on using the repository browser.