Файл: contao-3.5.8/system/modules/core/modules/ModuleArticleList.php
Строк: 63
<?php
/**
* Contao Open Source CMS
*
* Copyright (c) 2005-2016 Leo Feyer
*
* @license LGPL-3.0+
*/
namespace Contao;
/**
* Front end module "article list".
*
* @author Leo Feyer <https://github.com/leofeyer>
*/
class ModuleArticleList extends Module
{
/**
* Template
* @var string
*/
protected $strTemplate = 'mod_article_list';
/**
* Do not display the module if there are no articles
*
* @return string
*/
public function generate()
{
if (TL_MODE == 'BE')
{
/** @var BackendTemplate|object $objTemplate */
$objTemplate = new BackendTemplate('be_wildcard');
$objTemplate->wildcard = '### ' . utf8_strtoupper($GLOBALS['TL_LANG']['FMD']['articleList'][0]) . ' ###';
$objTemplate->title = $this->headline;
$objTemplate->id = $this->id;
$objTemplate->link = $this->name;
$objTemplate->href = 'contao/main.php?do=themes&table=tl_module&act=edit&id=' . $this->id;
return $objTemplate->parse();
}
$strBuffer = parent::generate();
return !empty($this->Template->articles) ? $strBuffer : '';
}
/**
* Generate the module
*/
protected function compile()
{
/** @var PageModel $objPage */
global $objPage;
if (!strlen($this->inColumn))
{
$this->inColumn = 'main';
}
$intCount = 0;
$articles = array();
$id = $objPage->id;
$this->Template->request = Environment::get('request');
// Show the articles of a different page
if ($this->defineRoot && $this->rootPage > 0)
{
if (($objTarget = $this->objModel->getRelated('rootPage')) !== null)
{
$id = $objTarget->id;
/** @var PageModel $objTarget */
$this->Template->request = $objTarget->getFrontendUrl();
}
}
// Get published articles
$objArticles = ArticleModel::findPublishedByPidAndColumn($id, $this->inColumn);
if ($objArticles === null)
{
return;
}
while ($objArticles->next())
{
// Skip first article
if (++$intCount <= intval($this->skipFirst))
{
continue;
}
$cssID = deserialize($objArticles->cssID, true);
$alias = $objArticles->alias ?: $objArticles->title;
$articles[] = array
(
'link' => $objArticles->title,
'title' => specialchars($objArticles->title),
'id' => $cssID[0] ?: standardize($alias),
'articleId' => $objArticles->id
);
}
$this->Template->articles = $articles;
}
}