root/websites/planet.php.gr.jp/trunk/app/Delphinus_DB.class.php @ 12955

Revision 12955, 6.3 kB (checked in by ha1t, 5 years ago)

認証系プラグインの追加

  • Property svn:mime-type set to text/x-php charset=euc-jp
Line 
1<?php
2// vim: foldmethod=marker
3/**
4 *  Delphinus_DB.class.php
5 *
6 *  @package    Delphinus
7 *  @author     halt <halt.feits@gmail.com>
8 *  @version    $Id$
9 */
10
11require_once 'Ethna/class/DB/Ethna_DB_Creole.php';
12
13/**
14 *  Delphinus DB Class
15 *
16 *  Delphinus内でのオリジナルな処理を記述したクラス
17 *
18 *  @author     halt <halt.feits@gmail.com>
19 *  @access     public
20 *  @package    Delphinus
21 */
22class Delphinus_DB extends Ethna_DB_Creole
23{
24   
25    /**
26     * getRssFromId
27     *
28     * @access public
29     */
30    function getRssFromId($id)
31    {
32        $query = "SELECT * FROM rss_list WHERE id = {$id} LIMIT 1";
33
34        try {
35
36            $result = $this->db->executeQuery($query);
37            $result->next();
38            return $result->getRow();
39
40        } catch (Exception $e) {
41       
42            var_dump($e);
43
44        }
45
46    }
47   
48    /**
49     *
50     * getRssList
51     *
52     * @return  array    rss information
53     * @access  public
54     */
55    function getRssList()
56    {
57        $rows = array();
58        try{
59       
60            $query = 'SELECT * FROM rss_list';
61            $result = $this->db->executeQuery($query);
62            foreach($result as $row){
63                $rows[$row['id']] = $row;
64            }
65
66        }catch(Exception $e){
67            var_dump($e);
68        }
69
70        return $rows;
71    }
72   
73    /**
74     * setRssList
75     *
76     */
77    function setRssList($rss_info, $id = false)
78    {
79        if ( is_numeric($id) ) {
80            $query = "UPDATE rss_list SET";
81            foreach( $rss_info as $key => $value) {
82                $query .= " {$key} = ? ,";
83            }
84            $query = substr($query, 0, -1);
85            $query.= " WHERE id = {$id}";
86        } else {
87            $query = 'INSERT INTO rss_list (name,url,author) VALUES (?,?,?)';
88        }
89
90        try{
91            $Statement = $this->db->prepareStatement($query);
92
93            $vars = array_values($rss_info);
94            $Statement->executeUpdate($vars);
95        }catch(Exception $e){
96            var_dump($e);
97        }
98    }
99
100    function deleteFeed($id)
101    {
102        $query = "DELETE FROM rss_list WHERE id = {$id}";
103        try {
104            $this->db->executeQuery($query);
105        } catch(Exception $e) {
106            var_dump($e);
107        }
108
109        $this->deleteEntriesFromRssId($id);
110    }
111
112    /**
113     * deleteEntry
114     *
115     * @param string $url entry url
116     */
117    function deleteEntry($url)
118    {
119        $query = "DELETE FROM entries WHERE link = ?";
120        $Statement = $this->db->prepareStatement($query);
121        $Statement->executeUpdate(array($url));
122    }
123
124    function deleteCommentsFromEntryId($id)
125    {
126        $query = "DELETE FROM comments WHERE entry_id = {$id}";
127        try {
128            $this->db->executeQuery($query);
129        } catch(Exception $e) {
130            var_dump($e);
131        }
132    }
133
134    function getRecentEntries()
135    {
136        $entries = array();
137        try{
138            $query = 'SELECT * FROM entries ORDER BY date DESC LIMIT 10';
139            $rs = $this->db->executeQuery($query);
140           
141            while ($rs->next()) {
142               
143                $entries[] = $rs->getRow();
144           
145            }
146
147            return $entries;
148       
149        } catch (Exception $e) {
150            var_dump($e);
151        }
152    }
153   
154    /**
155     * setEntry
156     *
157     * @param int $rss_id
158     */
159    function setEntry($rss_id, $item)
160    {
161        try{
162       
163            $query = 'INSERT INTO entries (
164                rss_id,
165                title,
166                date,
167                description,
168                link
169                ) VALUES (?,?,?,?,?)';
170            $Statement = $this->db->prepareStatement($query);
171
172            $vars = array(
173                $rss_id,
174                $item['title'],
175                $item['date'],
176                $item['description'],
177                $item['link']
178            );
179           
180            $Statement->executeUpdate($vars);
181       
182        }catch(Exception $e){
183       
184            var_dump($e);
185       
186        }
187
188    }
189
190    /**
191     * deleteEntriesFromRssId
192     *
193     * @access public
194     */
195    function deleteEntriesFromRssId($rss_id)
196    {
197        try{
198            $query = "DELETE FROM entries WHERE rss_id = {$rss_id}";
199            $this->db->executeQuery($query);
200        } catch(Exception $e) {
201            var_dump($e);
202        }
203    }
204   
205    /**
206     *
207     * existsEntryFromLink
208     *
209     * @return   boolean
210     * @access   public
211     */
212    function existsEntryFromLink($link)
213    {
214        try{
215            $query = "SELECT count(*) as count FROM entries WHERE link = '{$link}'";
216            $ResultSet = $this->db->executeQuery($query);
217            $ResultSet->next();
218            $count = $ResultSet->get('count');
219
220            if ( $count == '0') {
221                return false;
222            } else {
223                return true;
224            }
225
226        } catch(Exception $e) {
227            var_dump($e);
228        }
229    }
230
231    /**
232     *
233     * registerComment
234     *
235     * @access public
236     */
237    function registerComment($id, $item)
238    {
239        $query = "INSERT INTO comments (
240            entry_id,
241            name,
242            timestamp,
243            comment,
244            ip,
245            ua,
246            email,
247            url
248            ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
249        ";
250 
251        try {
252            $Statement = $this->db->prepareStatement($query);
253
254            $vars = array(
255                $id,
256                $item['name'],
257                date('Y-m-d H:i:s'),
258                $item['comment'],
259                $_SERVER['REMOTE_ADDR'],
260                $_SERVER['HTTP_USER_AGENT'],
261                $item['email'],
262                $item['url']
263            );
264           
265            $Statement->executeUpdate($vars);
266       
267        } catch( Exception $e) {
268       
269            var_dump($e);
270            //var_dump($vars);
271       
272        }
273
274    }
275
276    /**
277     * getCommentsFromEntryId()
278     *
279     * @access public
280     */
281    function getCommentsFromEntryId($id)
282    {
283        $id = intval($id);
284        $query = "SELECT * FROM comments WHERE entry_id = {$id}";
285        $vars = array();
286
287        try {
288       
289            $ResultSet = $this->db->executeQuery($query);
290            while ($ResultSet->next()) {
291                $vars[] = $ResultSet->getRow();
292            }
293
294            return $vars;
295           
296        } catch(Exception $e) {
297            var_dump($e);
298        }
299    }
300
301}
302?>
Note: See TracBrowser for help on using the browser.