Files
conservatorio-tomadini/components/com_jem/classes/view.class.php
2024-12-17 17:34:10 +01:00

119 lines
3.1 KiB
PHP

<?php
/**
* @package JEM
* @copyright (C) 2013-2024 joomlaeventmanager.net
* @license https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
*/
defined('_JEXEC') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\MVC\View\HtmlView;
/**
* JemView class with JEM specific extensions
*
* @package JEM
*/
class JemView extends HtmlView
{
/**
* Layout style suffix
*
* @var string
* @since 2.3
*/
protected $_layoutStyleSuffix = null;
public function __construct($config = array())
{
parent::__construct($config);
// additional path for layout style + corresponding override path
$suffix = JemHelper::getLayoutStyleSuffix();
if (!empty($suffix)) {
$this->_layoutStyleSuffix = $suffix;
if (is_dir($this->_basePath . '/view')) {
$this->addTemplatePath($this->_basePath . '/view/' . $this->getName() . '/tmpl/' . $suffix);
}
else {
$this->addTemplatePath($this->_basePath . '/views/' . $this->getName() . '/tmpl/' . $suffix);
}
$this->addTemplatePath(JPATH_THEMES . '/' . Factory::getApplication()->getTemplate() . '/html/com_jem/' . $this->getName() . '/' . $suffix);
}
}
/**
* Adds a row to data indicating even/odd row number
*
* @return object $rows
*/
public function getRows($rowname = "rows")
{
if (!isset($this->$rowname) || !is_array($this->$rowname) || !count($this->$rowname)) {
return;
}
$k = 0;
foreach($this->$rowname as $row) {
$row->odd = $k;
$k = 1 - $k;
}
return $this->$rowname;
}
/**
* Add path for common templates.
*/
protected function addCommonTemplatePath()
{
// additional path for list part + corresponding override path
$this->addTemplatePath(JPATH_COMPONENT.'/common/views/tmpl');
$this->addTemplatePath(JPATH_THEMES . '/' . Factory::getApplication()->getTemplate() . '/html/com_jem/common');
if (!empty($this->_layoutStyleSuffix)) {
$this->addTemplatePath(JPATH_COMPONENT.'/common/views/tmpl/'.$this->_layoutStyleSuffix);
$this->addTemplatePath(JPATH_THEMES . '/' . Factory::getApplication()->getTemplate() . '/html/com_jem/common/'.$this->_layoutStyleSuffix);
}
}
/**
* Prepares the document.
*/
protected function prepareDocument()
{
$app = Factory::getApplication();
$menus = $app->getMenu();
$menu = $menus->getActive();
$print = $app->input->getBool('print', false);
if ($print) {
JemHelper::loadCss('print');
$this->document->setMetaData('robots', 'noindex, nofollow');
}
if ($menu) {
$this->params->def('page_heading', $this->params->get('page_title', $menu->title));
} else {
// TODO
$this->params->def('page_heading', Text::_('COM_JEM_DEFAULT_PAGE_TITLE_DAY'));
}
$title = $this->params->get('page_title', '');
if (empty($title)) {
$title = $app->get('sitename');
} elseif ($app->get('sitename_pagetitles', 0) == 1) {
$title = Text::sprintf('JPAGETITLE', $app->get('sitename'), $title);
} elseif ($app->get('sitename_pagetitles', 0) == 2) {
$title = Text::sprintf('JPAGETITLE', $title, $app->get('sitename'));
}
$this->document->setTitle($title);
// TODO: Metadata
$this->document->setMetadata('keywords', $this->params->get('page_title'));
}
}