Source for file view.html.php
Documentation is available at view.html.php
* @subpackage com_content
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
* HTML Article View class for the Content component
* @subpackage com_content
public function display($tpl =
null)
$this->print =
$app->input->getBool('print');
if (count($errors =
$this->get('Errors')))
// Create a shortcut for $item.
$item->tagLayout =
new JLayoutFile('joomla.content.tags');
$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->parent_alias ?
($item->parent_id .
':' .
$item->parent_alias) :
$item->parent_id;
// No link for ROOT category
if ($item->parent_alias ==
'root')
$item->parent_slug =
null;
// TODO: Change based on shownoauth
// Merge article params. If this is single-article view, menu params override article params
// Otherwise, article params override menu item params
$active =
$app->getMenu()->getActive();
$temp =
clone ($this->params);
// Check to see which parameters should take priority
$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)))
// Load layout from active query (in case it is an alternative menu item)
if (isset
($active->query['layout']))
// Check for alternative layout of article
elseif ($layout =
$item->params->get('article_layout'))
// $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);
// 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);
// 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'))
// Merge so that article params take priority
$temp->merge($item->params);
// 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'))
$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') )))
if ($item->params->get('show_intro', '1') ==
'1')
$item->text =
$item->introtext.
' '.
$item->fulltext;
$item->text =
$item->fulltext;
$item->text =
$item->introtext;
$item->tags->getItemTags('com_content.article', $this->item->id);
// Process the content plugins.
$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)
//Escape strings for HTML output
$menus =
$app->getMenu();
$pathway =
$app->getPathway();
// Because the application sets a default page title,
// we need to get it from the menu item itself
$menu =
$menus->getActive();
$this->params->def('page_heading', $this->params->get('page_title', $menu->title));
$this->params->def('page_heading', JText::_('JGLOBAL_ARTICLES'));
$title =
$this->params->get('page_title', '');
$id = (int)
@$menu->query['id'];
// if the menu item does not concern this article
if ($menu &&
($menu->query['option'] !=
'com_content' ||
$menu->query['view'] !=
'article' ||
$id !=
$this->item->id))
// If this is not a single article menu item, set the page title to the article title
$title =
$this->item->title;
$path =
array(array('title' =>
$this->item->title, 'link' =>
''));
while ($category &&
($menu->query['option'] !=
'com_content' ||
$menu->query['view'] ==
'article' ||
$id !=
$category->id) &&
$category->id >
1)
$category =
$category->getParent();
$pathway->addItem($item['title'], $item['link']);
// Check for empty title and add site name if param is set
$title =
$app->getCfg('sitename');
elseif ($app->getCfg('sitename_pagetitles', 0) ==
1)
$title =
JText::sprintf('JPAGETITLE', $app->getCfg('sitename'), $title);
elseif ($app->getCfg('sitename_pagetitles', 0) ==
2)
$title =
JText::sprintf('JPAGETITLE', $title, $app->getCfg('sitename'));
$title =
$this->item->title;
$this->document->setTitle($title);
if ($this->item->metadesc)
$this->document->setDescription($this->item->metadesc);
elseif (!$this->item->metadesc &&
$this->params->get('menu-meta_description'))
$this->document->setDescription($this->params->get('menu-meta_description'));
if ($this->item->metakey)
$this->document->setMetadata('keywords', $this->item->metakey);
elseif (!$this->item->metakey &&
$this->params->get('menu-meta_keywords'))
$this->document->setMetadata('keywords', $this->params->get('menu-meta_keywords'));
if ($this->params->get('robots'))
$this->document->setMetadata('robots', $this->params->get('robots'));
if ($app->getCfg('MetaAuthor') ==
'1')
$this->document->setMetaData('author', $this->item->author);
$mdata =
$this->item->metadata->toArray();
foreach ($mdata as $k =>
$v)
$this->document->setMetadata($k, $v);
// If there is a pagebreak heading or title, add it to the page title
if (!empty($this->item->page_title))
$this->item->title =
$this->item->title .
' - ' .
$this->item->page_title;
$this->document->setTitle($this->item->page_title .
' - ' .
JText::sprintf('PLG_CONTENT_PAGEBREAK_PAGE_NUM', $this->state->get('list.offset') +
1));
$this->document->setMetaData('robots', 'noindex, nofollow');
Documentation generated on Tue, 19 Nov 2013 15:17:11 +0100 by phpDocumentor 1.4.3