/** * Parse the template * @return string */ public function generate() { if (TL_MODE == 'FE') { if ($this->tagsonly) { if (!strlen(\Input::get('tag'))) { return; } } } return parent::generate(); }
public function compile() { global $objPage; $this->loadLanguageFile('glossar_errors'); $glossarErrors = array(); if (!$this->sortGlossarBy) { $this->sortGlossarBy = 'alias'; } $this->sortGlossarBy = explode('_', $this->sortGlossarBy); $this->sortGlossarBy = $this->sortGlossarBy[0] . ($this->sortGlossarBy[1] ? ' ' . strtoupper($this->sortGlossarBy[1]) : ''); if (\Input::get('items') == '') { if (empty($this->glossar)) { $Glossar = \SwGlossarModel::findAll(array('order' => $this->sortGlossarBy)); } else { $Glossar = \SwGlossarModel::findByPid($this->glossar, array('order' => $this->sortGlossarBy)); } } else { $Glossar = \SwGlossarModel::findByAlias(\Input::get('items'), array(), array('order' => $this->sortGlossarBy)); } /* Gefundene Begriffe durch Links zum Glossar ersetzen */ $arrGlossar = array(); $filledLetters = array(); if ($Glossar) { while ($Glossar->next()) { $initial = substr($Glossar->alias, 0, 1); $filledLetters[] = $initial; if (\Input::get('items') != '' || (!$this->showAfterChoose || !$this->addAlphaPagination) || $this->addAlphaPagination && $this->showAfterChoose && \Input::get('pag') != '') { if (\Input::get('pag') == '' || $initial == \Input::get('pag')) { $newGlossarObj = new \FrontendTemplate('glossar_default'); $newGlossarObj->setData($Glossar->row()); if (\Input::get('items') != '') { $newGlossarObj->teaser = null; } $link = null; $Content = \ContentModel::findPublishedByPidAndTable($newGlossarObj->id, 'tl_sw_glossar'); if (!empty($Content)) { if (!$newGlossarObj->jumpTo) { $newGlossarObj->jumpTo = $GLOBALS['TL_CONFIG']['jumpToGlossar']; } if ($newGlossarObj->jumpTo) { $link = \PageModel::findByPk($newGlossarObj->jumpTo); } if ($link) { $newGlossarObj->link = $this->generateFrontendUrl($link->row(), ($GLOBALS['TL_CONFIG']['useAutoItem'] && !$GLOBALS['TL_CONFIG']['disableAlias'] ? '/' : '/items/') . $newGlossarObj->alias); } } else { $newGlossarObj->link = false; } if (\Input::get('items') == '') { $arrGlossar[] = $newGlossarObj->parse(); } else { $elements = $this->getGlossarElements($newGlossarObj->id); if (empty($elements) && $Glossar->description) { $descriptionObj = new \FrontendTemplate('glossar_description'); $descriptionObj->content = $Glossar->description; $elements = array($descriptionObj->parse()); } $arrGlossar[] = $elements; } } } } } $letters = array(); if ($this->addAlphaPagination) { for ($c = 65; $c <= 90; $c++) { if ($this->addOnlyTrueLinks && in_array(strtolower(chr($c)), $filledLetters) || !$this->addOnlyTrueLinks) { $letters[] = array('href' => $this->addToUrl('pag=' . strtolower(chr($c)) . '&alpha=&items=&auto_item='), 'initial' => chr($c), 'active' => \Input::get('pag') == strtolower(chr($c)), 'trueLink' => in_array(strtolower(chr($c)), $filledLetters) && !$this->addOnlyTrueLinks); } } } $objPagination = new \FrontendTemplate('glossar_pagination'); if ($objPage) { $objPagination->showAllHref = $this->generateFrontendUrl($objPage->row()); $objPagination->showAllLabel = $GLOBALS['TL_LANG']['glossar']['showAllLabel']; $objPagination->alphaPagination = $letters; $strAlphaPagination = $objPagination->parse(); } $this->Template->alphaPagination = $strAlphaPagination; if (\Input::get('items') != '' || (!$this->showAfterChoose || !$this->addAlphaPagination) || $this->addAlphaPagination && $this->showAfterChoose && \Input::get('pag') != '') { if (!$arrGlossar && $GLOBALS['glossar']['errors']['no_content']) { $glossarErrors[] = $GLOBALS['glossar']['errors']['no_content']; } } $termAsHeadline = false; if (\Input::get('items') != '') { if (($this->termAsHeadline || \Config::get('termAsHeadline')) && !$Glossar->termAsHeadline) { $Headline = new \StdModel(); $Headline->headline = serialize(array('value' => $Glossar->title, 'unit' => $this->headlineUnit)); // $Headline->cssID = serialize(array('','glossar_headline')); $Headline->type = 'glossar_headline'; $objHeadline = new \ContentHeadline($Headline); $termAsHeadline = $objHeadline->generate(); } $this->Template->termAsHeadline = $termAsHeadline; $this->Template->content = 1; $arrGlossar = array_shift($arrGlossar); } $this->Template->ppos = $this->paginationPosition; $this->Template->glossar = $arrGlossar; if ($glossarErrors) { $errorObj = new \FrontendTemplate('glossar_error'); $errorObj->msg = $glossarErrors; $this->Template->errors = $errorObj->parse(); } }