/** * Check whether the target page and article are published * @return string */ public function generate() { $objArticle = \ArticleModel::findPublishedById($this->article); if ($objArticle === null) { return ''; } $objPage = $objArticle->getPage(); if ($objPage === null) { return ''; } $objArticle->pid = $objPage; $this->objArticle = $objArticle; return parent::generate(); }
/** * Check whether the target page and the article are published * * @return string */ public function generate() { $objArticle = \ArticleModel::findPublishedById($this->article); if ($objArticle === null) { return ''; } // Use findPublished() instead of getRelated() $objParent = \PageModel::findPublishedById($objArticle->pid); if ($objParent === null) { return ''; } $this->objArticle = $objArticle; $this->objParent = $objParent; return parent::generate(); }
protected function renderArticle($objChild) { $objArticles = \ArticleModel::findPublishedById($objChild->articleAlias); if ($objArticles === null) { return ''; } if (!\Controller::isVisibleElement($objArticles)) { return ''; } return \Controller::getArticle($objArticles); }
/** * Handle articles * @return bool return true, or false if the articles does not exist */ protected function handleArticle() { if (($objArticle = \ArticleModel::findPublishedById($this->articleId, array('eager' => true))) === null) { return false; } if (($objTarget = \PageModel::findPublishedById($objArticle->pid)) === null) { return false; } $objTarget = $objTarget->loadDetails(); if ($objTarget->domain != '' && $objTarget->domain != \Environment::get('host')) { $this->target = true; } $strParams = '/articles/' . (!\Config::get('disableAlias') && $objArticle->alias != '' ? $objArticle->alias : $objArticle->id); $this->setHref(ampersand(\Controller::generateFrontendUrl($objTarget->row(), $strParams, null, $this->target))); $this->setTitle(sprintf($GLOBALS['TL_LANG']['MSC']['linkteaser']['articleTitle'], $objArticle->title)); $this->setLink(sprintf($this->getLink(), $objArticle->title)); return true; }
public function findRelatedByCredit($objCredit, $arrPids) { $this->result = $objCredit; $objFile = \FilesModel::findByPk($objCredit->id); if ($objFile === null) { return null; } $this->file = $objFile; switch ($objCredit->ptable) { case 'tl_article': $objArticle = \ArticleModel::findPublishedById($objCredit->parent); if ($objArticle === null) { return null; } $this->parent = $objArticle; $objJumpTo = $objArticle->getRelated('pid'); if ($objJumpTo == null) { return null; } if (!in_array($objJumpTo->id, $arrPids)) { return null; } $this->page = $objJumpTo; break; case 'tl_news': $objNews = \NewsModel::findByPk($objCredit->parent); if ($objNews === null) { return null; } $this->parent = $objNews->current(); $objNewsArchive = \NewsArchiveModel::findByPk($objNews->pid); $objJumpTo = \PageModel::findPublishedById($objNewsArchive->jumpTo); if ($objJumpTo == null) { return null; } if (!in_array($objJumpTo->id, $arrPids)) { return null; } $this->page = $objJumpTo; break; default: $this->parent = null; $this->page = null; // TODO refactor if (isset($GLOBALS['TL_FILECREDIT_MODELS'][$objCredit->ptable])) { $strClass = $GLOBALS['TL_MODELS'][$objCredit->ptable]; if (!$this->classFileExists($strClass)) { return null; } $this->loadDataContainer($objCredit->ptable); $archiveTable = $GLOBALS['TL_DCA'][$objCredit->ptable]['config']['ptable']; if (!$archiveTable || !isset($GLOBALS['TL_MODELS'][$archiveTable])) { return null; } $strArchiveClass = $GLOBALS['TL_MODELS'][$archiveTable]; if (!$this->classFileExists($strArchiveClass)) { return null; } $objItem = $strClass::findByPk($objCredit->parent); if ($objItem === null) { return null; } $this->parent = $objItem->current(); $objItemArchive = $strArchiveClass::findByPk($objItem->pid); $objJumpTo = \PageModel::findPublishedById($objItemArchive->jumpTo); if ($objJumpTo == null) { return null; } if (!in_array($objJumpTo->id, $arrPids)) { return null; } $this->page = $objJumpTo; } } return $this; }