Beispiel #1
0
 /**
  * decide which page to show.
  * This method is called automatically
  */
 public function index($args = false)
 {
     $User = APP_User::login();
     // The user must be logged in
     $request = $args->request;
     $model = new PollsModel();
     if (!isset($_SESSION['IdMember'])) {
         $page = new MessagesMustloginPage();
         $page->setRedirectURL(implode('/', $request));
         return $page;
     }
     //        print_r($args->post);
     // look at the request.
     switch (isset($request[1]) ? $request[1] : false) {
         case 'listall':
             $page = new PollsPage("", "listall", $model->LoadList(""));
             break;
         case 'create':
             $page = new PollsPage("", "create");
             break;
         case 'listClose':
             $page = new PollsPage("", "listClose", $model->LoadList("Close"));
             break;
         case 'listOpen':
             $page = new PollsPage("", "listOpen", $model->LoadList("Open"));
             break;
         case 'listProject':
             $page = new PollsPage("", "listProject", $model->LoadList("Project"));
             break;
         case 'cancelvote':
             $IdPoll = isset($request[2]) ? $request[2] : false;
             MOD_log::get()->write("Prepare to contribute cancel vote #" . $IdPoll, "polls");
             if ($model->CancelVote($IdPoll, "", $_SESSION["IdMember"])) {
                 $page = new PollsPage("", "cancelvote");
             } else {
                 $page = new PollsPage("", "votenotcancelable");
             }
             break;
         case 'seeresults':
             $IdPoll = isset($request[2]) ? $request[2] : false;
             if ($Data = $model->GetPollResults($IdPoll)) {
                 $page = new PollsPage("", "seeresults", $Data);
             } else {
                 $page = new PollsPage("", "resultsnotyetavailable");
             }
             break;
         case 'contribute':
             $IdPoll = isset($request[2]) ? $request[2] : false;
             MOD_log::get()->write("Prepare to contribute to poll #" . $IdPoll, "polls");
             if ($model->CanUserContribute($IdPoll)) {
                 $Data = $model->PrepareContribute($IdPoll);
                 $page = new PollsPage("", "contribute", $Data);
             } else {
                 $page = new PollsPage("", "sorryyoucannotcontribute");
             }
             break;
         case 'vote':
             // a nice trick to get all the post args as local variables...
             // they will all be prefixed by 'post_'
             extract($args->post, EXTR_PREFIX_ALL, 'post');
             $IdPoll = $post_IdPoll;
             if ($model->CanUserContribute($IdPoll)) {
                 MOD_log::get()->write("Tryin to vote for poll #" . $IdPoll, "polls");
                 $Data = $model->AddVote($args->post, "", $_SESSION["IdMember"]);
                 $page = new PollsPage("", "votedone", $Data);
             } else {
                 MOD_log::get()->write("Refusing vote for poll #" . $IdPoll, "polls");
                 $page = new PollsPage("", "probablyallreadyvote");
             }
             break;
         case 'update':
             $IdPoll = isset($request[2]) ? $request[2] : false;
             $page = new PollsPage("", "showpoll", $model->LoadPoll($IdPoll));
             break;
         case 'doupdatepoll':
             $IdPoll = $args->post["IdPoll"];
             $model->UpdatePoll($args->post);
             $page = new PollsPage("", "showpoll", $model->LoadPoll($IdPoll));
             break;
         case 'addchoice':
             $IdPoll = $args->post["IdPoll"];
             $model->AddChoice($args->post);
             $page = new PollsPage("", "showpoll", $model->LoadPoll($IdPoll));
             break;
         case 'updatechoice':
             $IdPoll = $args->post["IdPoll"];
             $model->UpdateChoice($args->post);
             $page = new PollsPage("", "showpoll", $model->LoadPoll($IdPoll));
             break;
         case 'createpoll':
             MOD_log::get()->write("Creating a poll ", "polls");
             $model->UpdatePoll($args->post);
             $page = new PollsPage("", "listall", $model->LoadList("Project"));
             break;
         case false:
         default:
         case '':
             // no request[1] was specified
             $page = new PollsPage("", "", $model->LoadList("Open"));
             // Without error
             break;
     }
     // return the $page object,
     // so the framework can call the "$page->render()" function.
     return $page;
 }
Beispiel #2
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;
 }
Beispiel #3
0
 /**
  * decide which page to show.
  * This method is called automatically
  */
 public function index($args = false)
 {
     $request = PRequest::get()->request;
     if (!($User = APP_User::login())) {
         // First ensure that the user is logged in
         $page = new MessagesMustloginPage();
         $page->setRedirectURL(implode('/', $request));
         return $page;
     }
     $model = new LinkModel();
     // look at the request.
     if (!isset($request[0])) {
         $page = new LinkShowPage('showlink');
     } else {
         switch ($request[0]) {
             case 'link':
             default:
                 if (!isset($request[1])) {
                     $page = new LinkShowPage('showlink');
                 } else {
                     switch ($request[1]) {
                         case 'myself':
                             $result->strerror = "";
                             $result->from = $_SESSION['Username'];
                             $result->to = $request[2];
                             $IdGuy = $this->_model->getMemberID($result->to);
                             if ($IdGuy <= 0) {
                                 if ($result->to == "") {
                                     $result->strerror .= "<br />You must give a second Username ";
                                 } else {
                                     $result->strerror .= "<br />No such member " . $result->to;
                                 }
                             }
                             if (isset($request[3])) {
                                 $result->limit = $request[3];
                             } else {
                                 $result->limit = 10;
                             }
                             $result->linksFull = $this->_model->getLinksFull($result->from, $result->to, $result->limit);
                             $result->links = $this->_model->getLinks($result->from, $result->to, $result->limit);
                             $page = new LinkShowPage($request[1], $result);
                             break;
                         case 'display':
                             // Nota : display must not be a user name !
                             // fully decorated page
                             $page = new LinkDisplayPage($request[1]);
                             break;
                         case 'update':
                             // fully decorated page
                             set_time_limit(0);
                             $page = new LinkUpdatePage($request[1]);
                             break;
                         case 'rebuild':
                         case 'rebuildmissing':
                             // fully decorated page
                             set_time_limit(0);
                             $page = new LinkRebuildPage($request[1]);
                             break;
                         case 'showlink':
                             // page with submenu
                             $page = new LinkShowPage($request[1]);
                             break;
                         case 'showfriends':
                             // page with submenu
                             $page = new LinkShowFriendsPage($request[1]);
                             break;
                         default:
                             $result->strerror = "";
                             $result->from = $request[1];
                             $IdGuy = $this->_model->getMemberID($result->from);
                             if ($IdGuy <= 0) {
                                 if ($result->from == "") {
                                     $result->strerror .= "<br />You must give a first Username ";
                                 } else {
                                     $result->strerror .= "<br />No such member " . $result->from;
                                 }
                             }
                             $result->to = $request[2];
                             $IdGuy = $this->_model->getMemberID($result->to);
                             if ($IdGuy <= 0) {
                                 if ($result->to == "") {
                                     $result->strerror .= "<br />You must give a second Username ";
                                 } else {
                                     $result->strerror .= "<br />No such member " . $result->to;
                                 }
                             }
                             if (isset($request[3])) {
                                 $result->limit = $request[3];
                             } else {
                                 $result->limit = 10;
                             }
                             $result->linksFull = $this->_model->getLinksFull($result->from, $result->to, $result->limit);
                             $result->links = $this->_model->getLinks($result->from, $result->to, $result->limit);
                             $page = new LinkShowPage($request[1], $result);
                             break;
                     }
                 }
         }
     }
     // return the $page object, so the "$page->render()" function can be called somewhere else.
     return $page;
 }