public function display($tpl = null)
 {
     $this->board = new QuipForumBoardInfo();
     $session =& JFactory::getSession();
     if (!($this->boardId = JRequest::getInt('id'))) {
         $this->boardId = $session->get('quipforum_board_id', '1');
     }
     # will need to change to first available published forum. Redirect??
     $this->userAccessLevel = $this->get('UserAccessLevel');
     $this->userData = JFactory::getUser();
     if (!$this->userAccessLevel) {
         return JError::raiseWarning(403, JText::_('JERROR_ALERTNOAUTHOR'));
     }
     if (!$this->board->data[$this->boardId]->published) {
         return JError::raiseWarning(403, JText::_('JERROR_ALERTNOAUTHOR'));
     }
     if ($this->userData->id) {
         $this->userPanel = "Welcome back, " . $this->userData->name;
         $this->settingsOptions = " <div class='qforum-index-settings'>\n\t\t\t\t<a href='" . JRoute::_('index.php?option=com_quipforum&view=settings') . "'><s> Settings</s></a>\n\t\t\t\t</div>";
         $userSettings = comQuipForumHelper::getUserSettings();
         if ($userSettings->flags->flag_unread) {
             $this->get('BoardRead');
             $this->get('PostsRead');
             $this->postReadClearOptions = " <div class='qforum-board-clear-unread'>\n\t\t\t\t\t\t<a href='" . JRoute::_('index.php?option=com_quipforum&view=board&task=clear_unread') . "'>Clear All Unread Flags</a>\n\t\t\t\t\t\t</div>";
         }
     }
     $this->preBoardMarkup = $this->get('PreBoardMarkup');
     $this->boardThreads = $this->get('BoardThreads');
     $this->threadMarkup = $this->get('ThreadMarkup');
     $this->pageNav = comQuipForumHelper::buildPageNav();
     $session->set('quipforum_board_id', $this->boardId);
     $document =& JFactory::getDocument();
     $document->addStyleSheet("components/com_quipforum/assets/css/board.css", 'text/css', "screen");
     $this->threadMarkup = comQuipForumHelper::icons($this->threadMarkup);
     $this->threadMarkup = comQuipForumHelper::smilies($this->threadMarkup);
     if ($this->userData->authorise('core.manage', 'com_quipforum') || $this->userAccessLevel > 3) {
         $this->adminOptions = "";
         // takes a long time for some reason.
         /*if($this->adminPostTrash = $this->get('PostTrashDB'))
         		{
         		
         			$this->adminOptions .= "There are deleted posts in the trash. Empty it.";
         		}*/
         $this->jsonLog = $this->get('JsonLog');
     }
     switch ($this->userAccessLevel) {
         case 1:
             $this->postOptions = " <div class='qforum-add-post'>\n\t        \t\tCannot Add New Post\n\t        \t\t</div>";
             break;
         case 2:
         case 3:
         case 4:
             $this->postOptions = " <div class='qforum-add-post'>\n\t        \t\t<a href='" . JRoute::_('index.php?option=com_quipforum&view=add') . "'>New Post</a>\n\t        \t\t</div>";
     }
     parent::display($tpl);
 }
 public function display($tpl = null)
 {
     $this->postData = $this->get('PostData');
     $this->boardData = $this->get('BoardData');
     $this->userAccessLevel = $this->get('UserAccessLevel');
     if (!$this->userAccessLevel) {
         return JError::raiseWarning(403, JText::_('JERROR_ALERTNOAUTHOR'));
     }
     $this->threadMarkup = $this->get('ThreadMarkup');
     $document =& JFactory::getDocument();
     $document->addStyleSheet("components/com_quipforum/assets/css/board.css", 'text/css', "screen");
     $document->addStyleSheet("components/com_quipforum/assets/css/post.css", 'text/css', "screen");
     $this->userData = JFactory::getUser();
     if ($this->userData->id == $this->postData->user_id && $this->userData->id) {
         $this->adminOptions .= "<li><a href='" . JRoute::_('index.php?option=com_quipforum&view=post&id=' . $this->postData->id . '&task=edit') . "'>Edit Post</a></li>";
     }
     if ($this->postData->id == $this->postData->thread_id && $this->userAccessLevel > 2 && $this->userData->id) {
         $this->adminOptions .= "<li><a href='" . JRoute::_('index.php?option=com_quipforum&view=post&id=' . $this->postData->id . '&task=request_sticky') . "'>Request Sticky</a></li>";
     }
     if ($this->userData->authorise('core.manage', 'com_quipforum') || $this->userAccessLevel > 3) {
         if ($this->postData->id == $this->postData->thread_id) {
             $this->adminOptions .= "<li><a href='" . JRoute::_('index.php?option=com_quipforum&view=post&id=' . $this->postData->id . '&task=toggle_sticky') . "'>Toggle Sticky</a></li>";
             $this->adminOptions .= "<li><a href='" . JRoute::_('index.php?option=com_quipforum&view=post&id=' . $this->postData->id . '&task=toggle_announcement') . "'>Toggle Announcement</a></li>";
         }
         $this->adminOptions .= "<li><a href='" . JRoute::_('index.php?option=com_quipforum&view=post&id=' . $this->postData->id . '&task=edit') . "'>Edit Post (as Admin)</a></li>";
         $this->adminOptions .= "<li><a href='" . JRoute::_('index.php?option=com_quipforum&view=post&id=' . $this->postData->id . '&task=delete') . "'>Delete Post</a></li>";
         $this->adminOptions .= "<li><a href='" . JRoute::_('index.php?option=com_quipforum&view=post&id=' . $this->postData->id . '&task=clear_all') . "'>Clear All Flags</a></li>";
         $this->jsonLog = $this->get('JsonLog');
     }
     if ($this->userData->id) {
         $userSettings = comQuipForumHelper::getUserSettings();
         if ($userSettings->flags->flag_unread) {
             $this->get('PostRead');
         }
         $this->adminOptions .= "<li><a href='" . JRoute::_('index.php?option=com_quipforum&view=post&id=' . $this->postData->thread_id . '&task=watch_thread&post_return_id=' . $this->postData->id) . "'>Toggle Thread Watch Status</a></li>";
         $this->adminOptions .= "<li><a href='" . JRoute::_('index.php?option=com_quipforum&view=post&id=' . $this->postData->id . '&task=favourite') . "'>Toggle Favourite</a></li>";
         $this->adminOptions .= "<li><a href='" . JRoute::_('index.php?option=com_quipforum&view=post&id=' . $this->postData->id . '&task=off_topic') . "'>Flag as Off-Topic</a></li>";
         $this->adminOptions .= "<li><a href='" . JRoute::_('index.php?option=com_quipforum&view=post&id=' . $this->postData->id . '&task=report_spam') . "'>Report as Spam</a></li>";
         $this->adminOptions .= "<li><a href='" . JRoute::_('index.php?option=com_quipforum&view=post&id=' . $this->postData->id . '&task=report_offensive') . "'>Report Offensive Material</a></li>";
     }
     if ($this->userAccessLevel > 1) {
         $this->adminOptions .= " <li><a href='#reply'> Reply</a></li>";
         $this->replyAllowed = 1;
     }
     if ($this->userAccessLevel > 3 || $this->userData->authorise('core.manage', 'com_quipforum')) {
         $this->adminLog = comQuipForumHelper::getLog($this->postData->id);
     }
     parent::display($tpl);
 }
 public function clear_unread()
 {
     $userData = JFactory::getUser();
     $userSettings = comQuipForumHelper::getUserSettings();
     $session =& JFactory::getSession();
     $boardId = $session->get('quipforum_board_id', '0');
     if (!$userData->id || !$userSettings->flags->flag_unread) {
         return JError::raiseWarning(403, JText::_('JERROR_ALERTNOAUTHOR'));
     }
     $query = "DELETE FROM #__quipforum_boards_read " . "WHERE #__quipforum_boards_read.user_id = '" . $userData->id . "' " . "AND #__quipforum_boards_read.board_id = '" . $boardId . "' ";
     $db =& JFactory::getDBO();
     $db->setQuery($query);
     $result = $db->loadObjectList();
     $query = "DELETE #__quipforum_posts_read.* FROM #__quipforum_posts_read " . "LEFT JOIN #__quipforum_post_references " . "ON #__quipforum_post_references.id = #__quipforum_posts_read.post_id " . "WHERE #__quipforum_post_references.board_id = '" . $boardId . "' " . "AND #__quipforum_posts_read.user_id = '" . $userData->id . "' ";
     $db =& JFactory::getDBO();
     $db->setQuery($query);
     $result = $db->loadObjectList();
     $query = "INSERT INTO #__quipforum_boards_read " . "(user_id, board_id, datetime) " . "VALUES ('" . $userData->id . "','" . $boardId . "', '" . comQuipForumHelper::sqlDateTime() . "' )";
     $db =& JFactory::getDBO();
     $db->setQuery($query);
     $result = $db->loadObjectList();
     $this->setRedirect(JRoute::_('index.php?option=com_quipforum&view=board&id=' . $boardId), 'Unread posts cleared.');
 }