root/events/phpframework/piece_framework/trunk/libs/Phwittr/Following.php @ 13246

Revision 13246, 3.9 kB (checked in by kumatch, 5 years ago)

Added the method for whether user is a friend or not.

  • Property svn:keywords set to Id Rev
Line 
1<?php
2/* vim: set expandtab tabstop=4 shiftwidth=4: */
3
4/*
5 * PHP versions 5
6 *
7 * @package    Phwittr_PieceFramework
8 * @copyright  2008 KUMAKURA Yousuke All rights reserved.
9 * @version    SVN: $Id:$
10 * @since      File available since Release 0.1.0
11 */
12
13require_once 'Phwittr/Config.php';
14
15// {{{ Phwittr_Following
16
17/**
18 * Phwittr ステータス
19 *
20 * @package    Phwittr_PieceFramework
21 * @copyright  2008 KUMAKURA Yousuke All rights reserved.
22 * @version    Release: @package_version@
23 * @since      Class available since Release 0.1.0
24 */
25class Phwittr_Following
26{
27
28    // {{{ properties
29
30    /**#@+
31     * @access public
32     */
33
34    /**#@-*/
35
36    /**#@+
37     * @access protected
38     */
39
40    /**#@-*/
41
42    /**#@+
43     * @access private
44     */
45
46    protected $_userId;
47
48    /**#@-*/
49
50    /**#@+
51     * @access public
52     */
53
54    // }}}
55    // {{{ __construct
56
57    /**
58     * __construct
59     *
60     * @param integer $userId
61     * @return void
62     */
63    public function __construct($userId)
64    {
65        Phwittr_Config::configurePieceORM();
66
67        $this->_userId = $userId;
68    }
69
70    // }}}
71    // {{{ addFriend
72
73    /**
74     * 指定ユーザを友人として followers に加える
75     *
76     * @param integer $targetUserId
77     * @return boolean
78     */
79    public function addFriend($targetUserId)
80    {
81        if ($targetUserId == $this->_userId) {
82            return false;
83        }
84
85        $follower = Piece_ORM::createObject('Followers');
86
87        $follower->userId = $this->_userId;
88        $follower->followId = $targetUserId;
89        $follower->createdAt = date('Y-m-d H:i:s');
90
91        $mapper = Piece_ORM::getMapper('Followers');
92        $result = $mapper->insert($follower);
93
94        if ($result) {
95            return true;
96        } else {
97            return false;
98        }
99    }
100
101    // }}}
102    // {{{ removeFriend
103
104    /**
105     * 指定した友人を削除する
106     *
107     * @param integer $targetUserId
108     * @return boolean
109     */
110    public function removeFriend($targetUserId)
111    {
112        $follower = Piece_ORM::createObject('Followers');
113        $follower->userId = $this->_userId;
114        $follower->followId = $targetUserId;
115
116        $mapper = Piece_ORM::getMapper('Followers');
117        $result = $mapper->delete($follower);
118
119        if ($result) {
120            return true;
121        } else {
122            return false;
123        }
124    }
125
126    // }}}
127    // {{{ listFriends
128
129    /**
130     * 友人を一覧化する
131     *
132     * @return array
133     */
134    public function listFriends()
135    {
136        $user = Piece_ORM::createObject('Users');
137        $user->id = $this->_userId;
138
139        $mapper = Piece_ORM::getMapper('Users');
140        return $mapper->findAllByIdForListFriends($user);
141    }
142
143    // }}}
144    // {{{ listFollowers
145
146    /**
147     * 自身をフォローしているユーザを一覧化する
148     *
149     * @return array
150     */
151    public function listFollowers()
152    {
153        $user = Piece_ORM::createObject('Users');
154        $user->id = $this->_userId;
155
156        $mapper = Piece_ORM::getMapper('Users');
157        return $mapper->findAllByIdForListFollowers($user);
158    }
159
160    // }}}
161    // {{{ isFriend
162
163    /**
164     * 対象ユーザがフレンドかどうか
165     *
166     * @param  $userName
167     * @return boolean
168     */
169    public function isFriend($userName)
170    {
171        $criteria = new stdClass();
172        $criteria->id = $this->_userId;
173        $criteria->targetUserName = $userName;
174
175        $mapper = Piece_ORM::getMapper('Users');
176        $user = $mapper->findByIdAndTargetUserNameUserNameForUserIsFriend($criteria);
177        var_dump($user);
178
179        if ($user) {
180            return true;
181        } else {
182            return false;
183        }
184
185    }
186
187    /**#@-*/
188
189    /**#@+
190     * @access private
191     */
192
193    /**#@-*/
194
195    // }}}
196}
197
198// }}}
199
200/*
201 * Local Variables:
202 * mode: php
203 * coding: utf-8
204 * tab-width: 4
205 * c-basic-offset: 4
206 * c-hanging-comment-ender-p: nil
207 * indent-tabs-mode: nil
208 * End:
209 */
210?>
Note: See TracBrowser for help on using the browser.