Changeset 483

Show
Ignore:
Timestamp:
05/13/08 21:45:10 (7 months ago)
Author:
aarkerio
Message:

Messages system

Location:
trunk/app
Files:
2 added
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/app/controllers/messages_controller.php

    r480 r483  
    1010class MessagesController extends AppController 
    1111{ 
    12  public $helpers       = array('Javascript', 'Ajax', 'Fck', 'Time'); 
     12 public $helpers       = array('Javascript', 'Ajax', 'Fck', 'Time', 'Gags'); 
    1313  
    1414 public $components    = array('Portal', 'Security', 'Email', 'Session', 'Edublog'); 
     
    1616 public function beforeFilter()  
    1717 { 
    18     $this->Auth->allow(array('message', 'deliver', 'listing', 'compose')); 
     18    $this->Auth->allow(array('message', 'deliver', 'listing', 'compose', 'display', 'add')); 
    1919    parent::beforeFilter(); 
    2020 } 
     
    8484           $this->Message->create(); 
    8585            
    86            if ($this->Message->save($this->data["Message"])) 
    87        { 
     86           if ($this->Message->save($this->data["Message"])): 
     87 
    8888             $this->__sendMail($this->data["Message"]["user_id"], $this->data["Message"]["username"], $this->data["Message"]["title"]); 
    8989                 
    90                 if ( isset($this->data["Message"]["admin"])) 
    91                 { 
     90         if ( isset($this->data["Message"]["admin"])): 
    9291                      $this->render('sentadmin','ajax'); 
    93                 } 
    94                 else 
    95                 { 
    96                     $this->render('sent', 'ajax'); 
    97         } 
    98         } 
    99      } 
     92             else: 
     93                        $this->render('sent', 'ajax'); 
     94         endif; 
     95     endif; 
     96     } 
    10097 } 
    10198 
     
    110107       
    111108   $this->pageTitle = 'Messages'; 
    112        
    113    $conditions      = array("Message.user_id" => $this->Auth->user('id')); 
    114    fields          = array("Message.id", "Message.title", "Message.body", "Message.created", "Message.sender", "Message.status", "User.username"); 
    115       $order           = "Message.id DESC"; 
    116       $limit           = 20; 
    117        
    118       $this->set('data', $this->Message->findAll($conditions, $fields, $order, $limit)); 
    119  
    120       $this->Portal->statics(); // Charge Portal components aka Sidebars 
    121  } 
    122  
     109    
     110   $this->set('data', $this->Message->inbox($this->Auth->user('id')));     
     111  
     112   $this->Portal->statics(); // Charge Portal components aka Sidebars 
     113 } 
     114 
     115 public function display($message_id) 
     116 { 
     117 
     118   if ( !$this->Auth->user() ): 
     119         $this->redirect('/users/login'); 
     120         return false;         
     121   endif; 
     122 
     123   $this->layout    = 'portal'; 
     124 
     125   $this->pageTitle = 'Messages'; 
     126       
     127   $this->set('data', $this->Message->display($message_id, $this->Auth->user('id'))); 
     128 
     129   $this->Portal->statics(); // Charge Portal components aka Sidebars 
     130  } 
    123131 
    124132  /* == PRIVATE == **/ 
     
    264272    $data["Message"]["status"] = $message_status; 
    265273     
    266     $this->Message->save($data["Message"]); 
    267      
     274    $this->Message->save($data["Message"]);     
    268275 } 
    269276    
  • trunk/app/models/message.php

    r471 r483  
    1818      'sender_id' => VALID_NOT_EMPTY 
    1919      ); 
    20   /* return  
    21    * 
     20 
     21 public function inbox($user_id)  
     22 { 
     23  $this->unbindModel(array('belongsTo'=>array('User'))); 
     24 
     25  $this->bindModel(array('belongsTo'=>array( 
     26                                         'User' => array( 
     27                                                              'className'  => 'User', 
     28                                                              'foreignKey' => 'sender' 
     29                                                             ) 
     30                                              ) 
     31                  ) );  
     32 
     33   $conditions      = array("Message.user_id" => $user_id); 
     34   $fields          = array("Message.id", "Message.title", "Message.body", "Message.created", "Message.sender", "Message.status", "User.id", "User.username"); 
     35   $order           = "Message.id DESC"; 
     36   $limit           = 50; 
     37      
     38   $data = $this->findAll($conditions, $fields, $order, $limit); 
     39 
     40   return $data; 
     41 } 
     42 
     43 public function display($message_id, $user_id)  
     44 { 
     45  $this->unbindModel(array('belongsTo'=>array('User'))); 
     46 
     47  $this->bindModel(array('belongsTo'=>array( 
     48                                         'User' => array( 
     49                                                              'className'  => 'User', 
     50                                                              'foreignKey' => 'sender' 
     51                                                             ) 
     52                                              ) 
     53                  ) );  
     54 
     55   $conditions      = array("Message.user_id" => $user_id, "Message.id"=>$message_id); 
     56   $fields          = array("Message.id", "Message.title", "Message.body", "Message.created", "Message.sender", "Message.status", "User.id", "User.username"); 
     57         
     58   $data = $this->find($conditions, $fields); 
     59 
     60   if ( $data['Message']['status'] == 0 ):  // change from new to readed 
     61             $this->change($data['Message']['id'], 1); 
     62   endif; 
     63 
     64   return $data; 
     65 } 
     66 
     67  /* 
     68   * Change message status  
     69   * int  
     70   * int  
    2271   */ 
     72 public function change($message_id, $message_status) 
     73 { 
     74    $data['Message']['id']     = $message_id; 
     75     
     76    $data['Message']['status'] = $message_status; 
     77     
     78    $this->save($data["Message"]); 
     79     
     80    return true; 
     81 } 
     82 
     83 /*  
     84  *  return  
     85  *  $vclassroom_id int 
     86 */ 
    2387 public function getUsers($vclassroom_id) 
    2488 { 
  • trunk/app/views/messages/listing.ctp

    r480 r483  
    11<?php  
    2 echo $html->link($html->image('admin/compose_on.gif', array("alt"=>"Compose New Message", "title"=>"Compose New Message")), '/admin/messages/add', null, false, false); 
     2// die(debug($data)); 
     3echo $html->link($html->image('admin/compose_on.gif', array("alt"=>"Compose New Message", "title"=>"Compose New Message")), '/messages/add', null, false, false); 
    34 
    4 if ( $cU['User']['group_id'] == 1) // if user belongs to admin group 
    5 { 
    6    echo '<div style="position:absolute;right:300px;top:35px;">'; 
    7    echo $html->link($html->image('admin/message_board.gif', array("alt"=>"General Message", "title"=>"General Message")), '/admin/messages/general', null, false, false); 
    8    echo '</div>'; 
    9 } 
    10  
    11 echo $form->create('Message', array('admin_delete', 'onsubmit'=>'return chkList();', 'name'=>'privmsg_list')); 
     5echo $form->create('Message', array('delete', 'onsubmit'=>'return chkList();', 'name'=>'privmsg_list')); 
    126 
    137echo $form->hidden('Message.several', array("value"=>1)); 
     
    159 
    1610$th = array('Flag', 'Subject', 'From', 'Date', 'Mark'); 
    17 echo '<table class="tbadmin">'; 
     11 
     12e('<table style="width:100%;border:1px dotted orange;padding:3px;">'); 
     13 
    1814echo $html->tableHeaders($th); 
    1915 
     
    3834       $tr = array( 
    3935        $html->link($html->image('admin/'.$img, array("alt"=>$status, "title"=>$status)), '/admin/messages/display/'.$val['Message']['id'], null, null, false), 
    40         $html->link($val['Message']['title'], '/admin/messages/display/'.$val['Message']['id']), 
    41         $val['User']['username'], 
     36        $html->link($val['Message']['title'], '/messages/display/'.$val['Message']['id']), 
     37        $html->link($val['User']['username'], '/vclassrooms/aboutme/'.$val['User']['username']), 
    4238        $val['Message']['created'] . "\n", 
    4339        $form->checkbox('Message.id', array('value'=>$val['Message']['id'], 'id'=>'fieldid'.$val['Message']['id'])) . "\n"