示例#1
0
 /**
  * decide which page to show
  * This method is called from RoxFrontRouter
  *
  * @param unknown_type $args request, post and get
  * @param unknown_type $memory_image message from redirect
  * @return unknown
  */
 public function index($args = false)
 {
     $request = $args->request;
     $model = new MessagesModel();
     // look if the user is logged in.
     if (!isset($_SESSION['IdMember'])) {
         $page = new MessagesMustloginPage();
         $page->setRedirectURL(implode('/', $request));
     } else {
         // look at the request
         if (!isset($request[1])) {
             // simple, ugly page
             $page = new MessagesInboxPage();
         } else {
             switch ($request[1]) {
                 case 'received':
                 case 'inbox':
                 case 'sent':
                 case 'outbox':
                 case 'spam':
                 case 'drafts':
                     switch ($request[1]) {
                         case 'received':
                         case 'inbox':
                             $page = new MessagesInboxPage();
                             break;
                         case 'sent':
                         case 'outbox':
                             $page = new MessagesSentboxPage();
                             break;
                         case 'spam':
                             $page = new MessagesSpamboxPage();
                             break;
                         case 'drafts':
                         default:
                             $page = new MessagesDraftsboxPage();
                     }
                     $page->active_page = $this->getPageNumber($request, 2);
                     break;
                 case 'compose':
                     if (!($logged_member = $model->getLoggedInMember())) {
                         // We only request the Sender to be logged in
                         $page = new ContactNotPossible();
                     } else {
                         if (!isset($request[2])) {
                             // $request[2] should be the member who is going to receive the message
                             $page = new MessagesInboxPage();
                         } else {
                             if (!($member = $model->getMember($request[2]))) {
                                 $page = new MessagesInboxPage();
                             } else {
                                 if ($member->Status != 'Active' && $member->Status != 'ActiveHidden' && $member->Status != 'OutOfRemind') {
                                     $page = new ComposeMessageProhibitedPage();
                                 } else {
                                     $page = new ComposeMessagePage();
                                     $page->sender = $model->getLoggedInMember();
                                     $page->receiver = $member;
                                 }
                             }
                         }
                     }
                     break;
                 case 'with':
                     if (!isset($request[2])) {
                         $page = new MessagesInboxPage();
                     } else {
                         if (!($member = $model->getMember($request[2]))) {
                             $page = new MessagesInboxPage();
                         } else {
                             $page = new MessagesContactboxPage();
                             $page->contact_member = $member;
                         }
                     }
                     $page->active_page = $this->getPageNumber($request, 3);
                     break;
                 default:
                     if (!is_numeric($request[1])) {
                         // the request does not mean a message id
                         $page = new MessagesInboxPage();
                     } else {
                         if (!($message = $model->getMessage($request[1]))) {
                             // no message with that id found
                             $page = new MessagesInboxPage();
                         } else {
                             if (empty($message->WhenFirstRead) || $message->WhenFirstRead == '0000-00-00 00:00:00') {
                                 //Only mark as read when the receiver reads the message, not when the message is presented to the Sender with url /messages/77/sent
                                 $MessagedReader = $model->getLoggedInMember();
                                 if ($MessagedReader->getPKValue() == $message->IdReceiver) {
                                     $model->markMessage($message->id);
                                 }
                             }
                             if (!isset($request[2])) {
                                 $page = new ReadMessagePage();
                             } else {
                                 switch ($request[2]) {
                                     //message action
                                     case 'delete':
                                         $model->deleteMessage($request[1]);
                                         $page = new MessagesInboxPage();
                                         break;
                                     case 'edit':
                                         $page = new EditMessagePage();
                                         $page->sender = $model->getLoggedInMember();
                                         break;
                                     case 'reply':
                                         $page = new ReplyMessagePage();
                                         $page->sender = $model->getLoggedInMember();
                                         break;
                                     case 'sent':
                                         $page = new MessageSentPage();
                                         break;
                                     case 'spam':
                                         $model->moveMessage($message->id, 'Spam');
                                         $model->updateSpamInfo($message->id, 'SpamSayMember', 'NotSpam', $message->SpamInfo);
                                         $page = new MessagesInboxPage();
                                         break;
                                     case 'nospam':
                                         $model->moveMessage($message->id, 'Normal');
                                         $model->updateSpamInfo($message->id, 'NotSpam', array('SpamSayMember', 'SpamSayChecker'), $message->SpamInfo);
                                         $page = new MessagesInboxPage();
                                         break;
                                     case 'read':
                                     default:
                                         $page = new ReadMessagePage();
                                 }
                             }
                             $page->message = $message;
                         }
                     }
             }
         }
         $page->setModel($model);
         if (isset($_GET['sort'])) {
             $page->sort_element = $_GET['sort'];
         }
         if (isset($_GET['dir'])) {
             $page->sort_dir = $_GET['dir'];
         }
     }
     // finally display the page.
     // the render() method will call other methods to render the page.
     return $page;
 }
示例#2
0
 protected function column_col3()
 {
     $words = new MOD_words();
     echo '<p class="note">' . $words->get('Message_hasbeensent') . '</p>';
     parent::column_col3();
 }