ThreadController.php
00001 <?php
00009 class Scroll_ThreadController extends Dsao_Controller_Action
00010 {
00011 public function preDispatch()
00012 {
00013 $this->_setDefaultModelClass('Scroll_Thread')->getHelper('History')->setAddToHistory();
00014 }
00015
00021 public function showAction()
00022 {
00023
00024 $idThread = $this->getUri()->id;
00025
00026 $thread = $this->_getModel()
00027 ->fetchThread($idThread, $this->getUser()->getId());
00028
00029
00030
00031 if (!$thread->getThreads())
00032 {
00033
00034
00035 $this->getHelper('history')->setAddToHistory(false);
00036 $this->getLog()->err('scroll_thread_show_error_invalid_thread_id');
00037 $this->getView()->addTemplate(false);
00038
00039 return;
00040 }
00041
00042
00043 if (!$thread->isRead())
00044 {
00045
00046 if (!$this->getHelper('SessionToken')->hasValidToken())
00047 {
00048 return;
00049 }
00050
00051
00052 $thread->markRead($this->getUser()->getId());
00053 }
00054
00055
00056 $scrollThreadAnswer = clone $thread->getScroll($idThread);
00057
00058
00059 $scrollThreadAnswer->content = null;
00060 $scrollThreadAnswer->nameRecipient = $scrollThreadAnswer
00061 ->getOtherUser($this->getUser()->getId())->username;
00062 $scrollThreadAnswer->subject = $scrollThreadAnswer->subject;
00063 $scrollThreadAnswer->idThread = $scrollThreadAnswer->id;
00064
00065 $this->getView()->assign(array
00066 (
00067 'scrollThread' => $thread->toArrayDecoded(),
00068 'scrollThreadAnswer' => $scrollThreadAnswer
00069 ));
00070 }
00071 }