Changeset 18489

Show
Ignore:
Timestamp:
08/30/08 22:38:10 (6 years ago)
Author:
ha1t
Message:

rss周りの実装

Location:
websites/events.php.gr.jp/branches/cake/app/controllers
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • websites/events.php.gr.jp/branches/cake/app/controllers/event_attendees_controller.php

    r18484 r18489  
    11<?php 
    22/** 
    3  * 
     3 * event_attendees_controller.php 
    44 * 
    55 */ 
     
    88    var $name = 'EventAttendees'; 
    99 
     10    /** 
     11     * cancel 
     12     * 
     13     */ 
    1014    function cancel($id) 
    1115    { 
     
    2327    } 
    2428 
     29    /** 
     30     * cancelrevert 
     31     * 
     32     */ 
    2533    function cancelrevert($id) 
    2634    { 
     35        // adminじゃなければさようなら 
     36        if ($this->Session->read('role') != 'admin') { 
     37            $this->redirect('/'); 
     38        } 
     39 
    2740        $event_attendee = $this->EventAttendee->findById($id); 
    2841        if (!$event_attendee) { 
     
    3851    } 
    3952 
     53    /** 
     54     * join 
     55     * 
     56     * @TODO もうちょっと綺麗になおす 
     57     */ 
     58    function join() 
     59    { 
     60        if (!$this->Session->check('id')) { 
     61            $this->redirect('/users/login'); 
     62        } 
     63 
     64        if ($this->data) { 
     65            $this->data['EventAttendee']['user_id'] = $this->Session->read('id'); 
     66            $this->data['EventAttendee']['canceled'] = 0; 
     67            $this->EventAttendee->save($this->data); 
     68        } 
     69 
     70        $this->redirect('/events/show/' . $this->data['EventAttendee']['event_id']); 
     71    } 
     72 
    4073} 
    4174?> 
  • websites/events.php.gr.jp/branches/cake/app/controllers/events_controller.php

    r18485 r18489  
    1010    var $name = 'Event'; 
    1111    var $helpers = array('Rss', 'Datespan'); 
     12    var $uses = array('Event', 'Trackback'); 
    1213 
    1314    /** 
     
    171172            'description' => 'Feed', 
    172173        )); 
    173         $this->index(); 
     174 
     175        if ($id == 'trackback') { 
     176            $result = $this->Trackback->find('all', array( 
     177                'order' => 'Trackback.id DESC', 
     178                'limit' => '20', 
     179            )); 
     180 
     181            $this->set('events', $result); 
     182 
     183        } else if (is_numeric($id)) { 
     184 
     185            $has_many = array( 
     186                'EventComment' => array( 
     187                    'className' => 'EventComment', 
     188                    'foreignKey' => 'event_id' 
     189                ), 
     190                'EventAttendee' => array( 
     191                    'className' => 'EventAttendee', 
     192                    'foreignKey' => 'event_id' 
     193                ), 
     194            ); 
     195 
     196            $has_one = array( 
     197                'User' => array( 
     198                    'className' => 'User', 
     199                    'foreignKey' => 'user_id', 
     200                ) 
     201            ); 
     202 
     203            $this->Event->bindModel(array('hasMany' => $has_many)); 
     204            $this->Event->EventComment->bindModel(array('belongsTo' => $has_one)); 
     205            $this->Event->EventAttendee->bindModel(array('belongsTo' => $has_one)); 
     206 
     207            $event = $this->Event->findById($id, null, null, 2); 
     208            if (!$event) { 
     209                $this->index(); 
     210                return null; 
     211            } 
     212 
     213            $result = array(); 
     214 
     215            foreach ($event['EventComment'] as $event_comment) { 
     216                $item = array(); 
     217                $item['Event']['title'] = 'comment'; 
     218                $item['Event']['description'] = $event_comment['User']['nickname'] .':'.$event_comment['comment']; 
     219                $item['Event']['id'] = $event_comment['event_id']; 
     220                $item['Event']['publish_date'] = $event_comment['created']; 
     221                if (!$event_comment['created']) { 
     222                    $item['Event']['publish_date'] = date('Y-m-d H:i:s'); 
     223                } 
     224                $key = strtotime($item['Event']['publish_date']) . '0'; 
     225                $result[$key] = $item; 
     226            } 
     227 
     228            foreach ($event['EventAttendee'] as $event_attendee) { 
     229                $item = array(); 
     230                $item['Event']['title'] = 'joined'; 
     231                $item['Event']['description'] = $event_attendee['User']['nickname'] .':'.$event_attendee['comment']; 
     232                $item['Event']['id'] = $event_attendee['event_id']; 
     233                $item['Event']['publish_date'] = $event_attendee['created']; 
     234                if (!$event_attendee['created']) { 
     235                    $item['Event']['publish_date'] = date('Y-m-d H:i:s'); 
     236                } 
     237                $key = strtotime($item['Event']['publish_date']) . '1'; 
     238                $result[$key] = $item; 
     239            } 
     240 
     241            krsort($result); 
     242 
     243            $events = array(); 
     244            foreach ($result as $value) { 
     245                $events[] = $value; 
     246            } 
     247 
     248            $this->set('events', $events); 
     249 
     250        } else { 
     251            $this->index(); 
     252        } 
     253 
    174254    } 
    175255