예제 #1
0
 function display($tpl = null)
 {
     // Initialise variables.
     $app = JFactory::getApplication();
     $user = JFactory::getUser();
     $userId = $user->get('id');
     $dispatcher = JDispatcher::getInstance();
     $this->item = $this->get('Item');
     /*	if ($this->item->state == 0) {
     			//echo 42; print_r($this->item);die(42);
     			$this->setRedirect('..');
     			$this->redirect();
     			die();
     		}*/
     $this->category = ideary::getCategoryById($this->item->catid);
     $this->writer = ideary::getWriterById($this->item->created_by);
     // $this->writerFiveRecentTexts = ideary::getFiveRecentTextsByAuthor($this->writer->id,$this->item->id);
     // if($this->item->allow_comments){
     $this->comments = ideary::getCommentsByTextId($this->item->id);
     $comment_text_of_string = JText::_('COMMENT_TEXT_OF');
     $comment_text_of_string = str_replace('{AUTHOR}', $this->writer->name, $comment_text_of_string);
     //$comment_text_of_string = str_replace('{X}', count($this->comments), $comment_text_of_string);
     $this->comment_text_of = $comment_text_of_string;
     // }
     $this->applauses = ideary::getApplausesByTextId($this->item->id);
     $this->applausesAndCommentsIndex = array();
     $datesForSort = array();
     for ($i = 0; $i < count($this->applauses); $i++) {
         $this->applausesAndCommentsIndex[] = array(0, $i, $this->applauses[$i]->ctime);
     }
     for ($i = 0; $i < count($this->comments); $i++) {
         $this->applausesAndCommentsIndex[] = array(1, $i, $this->comments[$i]->ctime);
     }
     foreach ($this->applausesAndCommentsIndex as $key => $row) {
         $datesForSort[$key] = $row[2];
     }
     array_multisort($datesForSort, SORT_DESC, $this->applausesAndCommentsIndex);
     $this->print = JRequest::getBool('print');
     $this->state = $this->get('State');
     $this->user = $user;
     $this->is_applauded = ideary::isApplauded($this->item->id, $userId);
     $this->is_favorite = ideary::isFavorite($this->item->id, $userId);
     $this->is_saved = ideary::isSaved($this->item->id, $userId);
     $this->is_reported = ideary::isReported($this->item->id, $userId);
     $this->is_writer_followed = ideary::isFollowed($this->item->created_by, $userId);
     // Check for errors.
     if (count($errors = $this->get('Errors'))) {
         JError::raiseWarning(500, implode("\n", $errors));
         return false;
     }
     // Create a shortcut for $item.
     $item =& $this->item;
     // Add router helpers.
     $item->slug = $item->alias ? $item->id . ':' . $item->alias : $item->id;
     $item->catslug = $item->category_alias ? $item->catid . ':' . $item->category_alias : $item->catid;
     $item->parent_slug = $item->category_alias ? $item->parent_id . ':' . $item->parent_alias : $item->parent_id;
     // TODO: Change based on shownoauth
     $item->readmore_link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug));
     // Merge article params. If this is single-article view, menu params override article params
     // Otherwise, article params override menu item params
     $this->params = $this->state->get('params');
     $active = $app->getMenu()->getActive();
     $temp = clone $this->params;
     // Check to see which parameters should take priority
     if ($active) {
         $currentLink = $active->link;
         // If the current view is the active item and an article view for this article, then the menu item params take priority
         if (strpos($currentLink, 'view=article') && strpos($currentLink, '&id=' . (string) $item->id)) {
             // $item->params are the article params, $temp are the menu item params
             // Merge so that the menu item params take priority
             $item->params->merge($temp);
             // Load layout from active query (in case it is an alternative menu item)
             if (isset($active->query['layout'])) {
                 $this->setLayout($active->query['layout']);
             }
         } else {
             // Current view is not a single article, so the article params take priority here
             // Merge the menu item params with the article params so that the article params take priority
             $temp->merge($item->params);
             $item->params = $temp;
             // Check for alternative layouts (since we are not in a single-article menu item)
             // Single-article menu item layout takes priority over alt layout for an article
             if ($layout = $item->params->get('article_layout')) {
                 $this->setLayout($layout);
             }
         }
     } else {
         // Merge so that article params take priority
         $temp->merge($item->params);
         $item->params = $temp;
         // Check for alternative layouts (since we are not in a single-article menu item)
         // Single-article menu item layout takes priority over alt layout for an article
         if ($layout = $item->params->get('article_layout')) {
             $this->setLayout($layout);
         }
     }
     $offset = $this->state->get('list.offset');
     // Check the view access to the article (the model has already computed the values).
     /*	if ($item->params->get('access-view') != true && (($item->params->get('show_noauth') != true &&  $user->get('guest') ))) {
     
     						JError::raiseWarning(403, JText::_('JERROR_ALERTNOAUTHOR'));
     
     				return;
     
     		}
     	//Se Saco porque estaba entrando aca ya que no estaba asignado a ningun item de menu. 270513
     	*/
     if ($item->params->get('show_intro', '1') == '1') {
         $item->text = $item->introtext . ' ' . $item->fulltext;
     } elseif ($item->fulltext) {
         $item->text = $item->fulltext;
     } else {
         $item->text = $item->introtext;
     }
     //
     // Process the content plugins.
     //
     JPluginHelper::importPlugin('content');
     $results = $dispatcher->trigger('onContentPrepare', array('com_content.article', &$item, &$this->params, $offset));
     $item->event = new stdClass();
     $results = $dispatcher->trigger('onContentAfterTitle', array('com_content.article', &$item, &$this->params, $offset));
     $item->event->afterDisplayTitle = trim(implode("\n", $results));
     $results = $dispatcher->trigger('onContentBeforeDisplay', array('com_content.article', &$item, &$this->params, $offset));
     $item->event->beforeDisplayContent = trim(implode("\n", $results));
     $results = $dispatcher->trigger('onContentAfterDisplay', array('com_content.article', &$item, &$this->params, $offset));
     $item->event->afterDisplayContent = trim(implode("\n", $results));
     // Increment the hit counter of the article.
     if (!$this->params->get('intro_only') && $offset == 0) {
         $model = $this->getModel();
         $model->hit();
     }
     //Escape strings for HTML output
     $this->pageclass_sfx = htmlspecialchars($this->item->params->get('pageclass_sfx'));
     $this->_prepareDocument();
     parent::display($tpl);
 }