Changeset 20338 for events/phpframework

Show
Ignore:
Timestamp:
10/01/08 07:41:06 (6 years ago)
Author:
anatoo
Message:

メール周り追加

Location:
events/phpframework/plain_php/trunk/model
Files:
2 added
5 modified

Legend:

Unmodified
Added
Removed
  • events/phpframework/plain_php/trunk/model/phwittr/AcountService.php

    r20036 r20338  
    33class AcountService 
    44{ 
     5    /** 
     6     * @var PDO 
     7     */ 
    58    protected $pdo; 
    69     
     
    3639        $smt->bindValue(':delete_flag', $delete_flag, PDO::PARAM_INT); 
    3740        $smt->execute(); 
    38         return $smt->rowCount() === 1 ? true : false; 
     41        return $smt->rowCount() === 1; 
    3942    } 
    4043    function updatePicture($user_id, $image) 
     
    5053        } 
    5154        $smt->execute(); 
    52         return $smt->rowCount() === 1 ? true : false ; 
     55        return $smt->rowCount() === 1; 
    5356    } 
    5457    function updatePassword($user_id, $password) 
     
    6164        $smt->bindValue(':password', $password, PDO::PARAM_STR); 
    6265        $smt->execute(); 
    63         return $smt->rowCount() === 1 ? true : false; 
     66        return $smt->rowCount() === 1; 
    6467    } 
    6568    function updateEmail($user_id, $email) 
     
    7073        $smt->bindValue(':email', $email, PDO::PARAM_STR); 
    7174        $smt->execute(); 
    72         return $smt->rowCount() === 1 ? true : false; 
     75        return $smt->rowCount() === 1; 
    7376    } 
    7477     
     
    9497        $smt->bindValue(':act_key', $act_key, PDO::PARAM_STR); 
    9598        $smt->execute(); 
    96         return $smt->rowCount() === 1 ? true : false ; 
     99        return $smt->rowCount() === 1; 
    97100    } 
    98101     
    99102    function setPrivate($user_id) 
    100103    { 
    101         // @todo 後で実装する 
    102         return true; 
     104        $smt = $this->pdo->prepare(' 
     105            update users set private_flag = 1 where id = :user_id limit 1 
     106        '); 
     107        $smt->bindValue(':user_id', $user_id, PDO::PARAM_INT); 
     108        $smt->execute(); 
     109        return $smt->rowCount() === 1; 
    103110    } 
    104111    function setPublic($user_id) 
    105112    { 
    106         // @todo 後で実装する 
     113        $this->pdo->beginTransaction(); 
     114         
     115        $smt = $this->pdo->prepare(' 
     116            update users set private_flag = 0 where id = :user_id limit 1 
     117        '); 
     118        $smt->bindValue(':user_id', $user_id, PDO::PARAM_INT); 
     119        $smt->execute(); 
     120         
     121        if (!$smt->rowCount() === 1) { 
     122            $this->pdo->rollBack(); 
     123            return false; 
     124        } 
     125         
     126        $smt = $this->pdo->prepare(' 
     127            select * from requests 
     128            where request_id = :user_id 
     129        '); 
     130        $smt->bindValue(':user_id', $user_id, PDO::PARAM_INT); 
     131        $smt->execute(); 
     132        $arr = $smt->fetchAll(PDO::FETCH_ASSOC); // $user_idをリクエストしている行列を得る 
     133        if ($arr == false) { 
     134            $this->pdo->commit(); 
     135            return true; 
     136        } 
     137         
     138        foreach ($arr as $r) { 
     139            $smt = $this->pdo->prepare(' 
     140                insert into  
     141                followers(user_id, follow_id, created_at)  
     142                values(:user_id, :follow_id, NOW()) 
     143            '); 
     144            $smt->bindValue(':user_id', $r['user_id'], PDO::PARAM_INT); 
     145            $smt->bindValue(':follow_id', $user_id, PDO::PARAM_INT); 
     146            $smt->execute(); 
     147        } 
     148         
     149        $smt = $this->pdo->prepare(' 
     150            delete from requests where request_id = :user_id 
     151        '); 
     152        $smt->bindValue(':user_id', $user_id, PDO::PARAM_INT); 
     153        $smt->execute(); 
     154         
     155        $this->pdo->commit(); 
    107156        return true; 
    108157    } 
  • events/phpframework/plain_php/trunk/model/phwittr/FriendshipService.php

    r20036 r20338  
    8080    } 
    8181     
    82     function follow($user_id, $follow_user_name) 
     82    function follow($user_id, $follow_user_id) 
    8383    { 
    8484        $smt = $this->pdo->prepare(' 
    8585            insert into followers(user_id, follow_id, created_at)  
    86             values(:user_id, (select id from users where user_name =  
    87             :follow_user_name), now())'); 
     86            values(:user_id, :follow_user_id, now())'); 
    8887        $smt->bindValue(':user_id', $user_id, PDO::PARAM_INT); 
    89         $smt->bindValue(':follow_user_name', $follow_user_name, PDO::PARAM_STR); 
     88        $smt->bindValue(':follow_user_id', $follow_user_id, PDO::PARAM_INT); 
    9089        $smt->execute(); 
    9190    } 
    9291 
    93     function unfollow($user_id, $follow_user_name) 
     92    function request($user_id, $request_user_id) 
     93    { 
     94        $smt = $this->pdo->prepare(' 
     95            insert into requests(user_id, request_id, created_at)  
     96            values(:user_id, :request_user_id, now()) 
     97        '); 
     98        $smt->bindValue(':user_id', $user_id, PDO::PARAM_INT); 
     99        $smt->bindValue(':request_user_id', $request_user_id, PDO::PARAM_INT); 
     100        $smt->execute(); 
     101    } 
     102     
     103    function accept($user_id, $accept_user_id) 
     104    { 
     105        $this->pdo->beginTransaction(); 
     106        $this->deny($user_id, $accept_user_id); 
     107        $this->follow($accept_user_id, $user_id); 
     108        $this->pdo->commit(); 
     109    } 
     110 
     111    function deny($user_id, $deny_user_id) 
     112    { 
     113        $smt = $this->pdo->prepare( 
     114            'delete from requests where user_id = :deny_user_id and ' . 
     115            'request_id = :user_id'); 
     116        $smt->bindValue(':user_id', $user_id, PDO::PARAM_INT); 
     117        $smt->bindValue(':deny_user_id', $deny_user_id, PDO::PARAM_INT); 
     118        $smt->execute(); 
     119    } 
     120     
     121    function unfollow($user_id, $follow_user_id) 
    94122    { 
    95123        $smt = $this->pdo->prepare( 
    96124            'delete from followers where user_id = :user_id and ' . 
    97             'follow_id = (select id from users where user_name = :follow_user_name)'); 
     125            'follow_id = :follow_user_id'); 
    98126        $smt->bindValue(':user_id', $user_id, PDO::PARAM_INT); 
    99         $smt->bindValue(':follow_user_name', $follow_user_name, PDO::PARAM_STR); 
     127        $smt->bindValue(':follow_user_id', $follow_user_id, PDO::PARAM_INT); 
    100128        $smt->execute(); 
    101129    } 
    102130     
    103      
     131    function isFollowing($user_id, $follow_id) 
     132    { 
     133        $smt = $this->pdo->prepare(' 
     134            select followers.user_id  
     135            from followers  
     136            where user_id = :user_id and follow_id = :follow_id 
     137            limit 1 
     138        '); 
     139        $smt->bindValue(':user_id', $user_id, PDO::PARAM_INT); 
     140        $smt->bindValue(':follow_id', $follow_id, PDO::PARAM_INT); 
     141        $smt->execute(); 
     142         
     143        return $smt->fetch(PDO::FETCH_ASSOC) !== false; 
     144    } 
     145    function isRequesting($user_id, $follow_id) 
     146    { 
     147        $smt = $this->pdo->prepare(' 
     148            select requests.user_id  
     149            from requests 
     150            where user_id = :user_id and request_id = :follow_id 
     151            limit 1 
     152        '); 
     153        $smt->bindValue(':user_id', $user_id, PDO::PARAM_INT); 
     154        $smt->bindValue(':follow_id', $follow_id, PDO::PARAM_INT); 
     155        $smt->execute(); 
     156         
     157        return $smt->fetch(PDO::FETCH_ASSOC) !== false; 
     158    } 
    104159} 
  • events/phpframework/plain_php/trunk/model/phwittr/PhwittrFront.php

    r20036 r20338  
    3939                     '/(home|replies|public_timeline)' 
    4040                        => 'TimelineAction' , 
     41                     '/public_timeline/rss' 
     42                        => 'PublicTimelineRssAction' , 
    4143                     '/status/update' 
    4244                        => 'StatusUpdateAction' , 
     45                     '/status/update/ajax' 
     46                        => 'StatusUpdateAjaxAction' , 
    4347                     '/status/delete/([0-9]+)/([[:word:]]+)' 
    4448                        => 'StatusDeleteAction' , 
     
    5155                     '/friendships/create/([0-9]+)/([[:word:]]+)' 
    5256                        => 'FollowAction' , 
    53                      '/friendships/delete/([0-9]+)/([[:word:]]+)' 
     57                     '/friendships/destroy/([0-9]+)/([[:word:]]+)' 
    5458                        => 'RemoveAction' , 
    55                      '/friend_requests/accept/[0-9]+' 
    56                         => 'RequestAcceptAction' , 
    57                      '/friend_requests/deny/[0-9]+' 
    58                         => 'RequestDenyAction' , 
     59                     '/friend_requests/(accept|deny)/([0-9]+)/([[:word:]]+)' 
     60                        => 'RequestHandleAction' , 
    5961                     '/?' 
    6062                        => 'DefaultAction' , 
    6163                     '/([[:word:]]+)' 
    6264                        => 'UserAction', 
     65                     '/([[:word:]]+)/rss' 
     66                        => 'UserRssAction', 
    6367                     '/([[:word:]]+)/friends' 
    6468                        => 'UserFriendsAction', 
  • events/phpframework/plain_php/trunk/model/phwittr/StatusService.php

    r20036 r20338  
    44{ 
    55    protected $pdo; 
    6     function __construct(PDO $pdo) 
     6    function __construct(PDO $pdo, $base_url) 
    77    { 
    88        $this->pdo = $pdo; 
     9        $this->baseUrl = $base_url; 
    910    } 
    1011    function reply($user_id, $comment, $reply_user_id) 
     
    4849        $smt->execute(); 
    4950         
    50         return $smt->fetch(PDO::FETCH_ASSOC); 
     51        $s = $smt->fetch(PDO::FETCH_ASSOC); 
     52         
     53        if ($s) $s = $this->processStatus($s); 
     54        return $s; 
    5155    } 
    52          
     56    protected function processStatus($status) 
     57    { 
     58        $status['title_comment'] = h($status['comment']); 
     59        $status['comment'] = preg_replace('#(https?://[[:alnum:]+$;?.%,!\#~*/:@&=_-]+)#', '<a href="$1">$1</a>' , h($status['comment'])); 
     60        $status['comment'] = preg_replace('#@([[:word:]]{1,30})#',  
     61                                '@<a href="' . $this->baseUrl . '/$1">$1</a>',  
     62                                $status['comment']); 
     63        return $status; 
     64    } 
    5365} 
    5466 
  • events/phpframework/plain_php/trunk/model/phwittr/TimelineService.php

    r20036 r20338  
    33class TimelineService 
    44{ 
    5     protected $pdo, $context; 
    6     function __construct(PDO $pdo, ApplicationContext $context) 
     5    protected $pdo, $baseUrl; 
     6    function __construct(PDO $pdo, $base_url) 
    77    { 
    88        $this->pdo = $pdo; 
    9         $this->context = $context; 
     9        $this->baseUrl = $base_url; 
    1010    } 
    1111    function fetchPublicTimeline($offset, $limit) 
     
    5555    { 
    5656        $smt = $this->pdo->prepare(' 
    57             select statuses.* from statuses  
     57            select statuses.*, users.user_name, users.image from statuses  
    5858            left join users on users.id = statuses.user_id where users.id = :user_id  
    5959            order by statuses.created_at desc  
     
    9292            select count(users.id)  
    9393                from statuses left join users on users.id = statuses.user_id 
    94                      left join followers f1 on f1.user_id = users.id 
    95                        
    96                 where users.delete_flag = 0 and f1.follow_id = :user_id 
    97                       or users.id = :user_id'); 
     94                              left join (select * from followers where user_id = :user_id) f1 on f1.follow_id = users.id 
     95                           
     96                where users.delete_flag = 0 and f1.user_id = :user_id 
     97                      or users.id = :user_id '); 
    9898         
    9999        $smt->bindValue(':user_id', $user_id, PDO::PARAM_INT); 
     
    105105            select users.user_name, users.image, statuses.*  
    106106                from statuses left join users on users.id = statuses.user_id 
    107                               left join followers f1 on f1.user_id = users.id 
     107                              left join (select * from followers where user_id = :user_id) f1 on f1.follow_id = users.id 
    108108                           
    109                 where users.delete_flag = 0 and f1.follow_id = :user_id 
     109                where users.delete_flag = 0 and f1.user_id = :user_id 
    110110                      or users.id = :user_id  
    111111                        
     
    138138        $status['comment'] = preg_replace('#(https?://[[:alnum:]+$;?.%,!\#~*/:@&=_-]+)#', '<a href="$1">$1</a>' , h($status['comment'])); 
    139139        $status['comment'] = preg_replace('#@([[:word:]]{1,30})#',  
    140                                 '@<a href="' . $this->context->baseUrl . '/$1">$1</a>',  
     140                                '@<a href="' . $this->baseUrl . '/$1">$1</a>',  
    141141                                $status['comment']); 
    142142        return $status;