/** * Generate module */ protected function compile() { // Get ID $strAlias = \Input::get('auto_item') ? \Input::get('auto_item') : \Input::get('store'); // Find published store from ID if (($objStore = AnyStoresModel::findPublishedByIdOrAlias($strAlias)) !== null) { // load all details $objStore->loadDetails(); // generate description $objDescription = \ContentModel::findPublishedByPidAndTable($objStore->id, $objStore->getTable()); if ($objDescription !== null) { while ($objDescription->next()) { $objStore->description .= \Controller::getContentElement($objDescription->current()); } } // Get referer for back button $objStore->referer = $this->getReferer(); // generate google map if template and geodata is set if ($this->anystores_mapTpl != '' && is_numeric($objStore->latitude) && is_numeric($objStore->longitude)) { $objMapTemplate = new \FrontendTemplate($this->anystores_mapTpl); $objMapTemplate->setData($objStore->row()); $objStore->gMap = $objMapTemplate->parse(); } // Template $objDetailTemplate = new \FrontendTemplate($this->anystores_detailTpl); $objDetailTemplate->setData($objStore->row()); $this->Template->store = $objDetailTemplate->parse(); } else { $this->_redirect404(); } }
/** * Generate the content element */ protected function compile() { $arrContent = array(); $objBlock = BlockModuleModel::findByPk($this->block); if ($objBlock === null) { return; } $objElement = \ContentModel::findPublishedByPidAndTable($this->block, 'tl_block_module'); if ($objElement !== null) { while ($objElement->next()) { $arrContent[] = \Controller::getContentElement($objElement->current()); } } $strReturn = implode('', $arrContent); if ($objBlock->addWrapper) { $strReturn = ModuleBlock::createBlockWrapper($objBlock, $strReturn); } $this->Template->content = $strReturn; }
protected function generateFields($objItem) { $arrItem = parent::generateFields($objItem); if (in_array('member_content_archives', \ModuleLoader::getActive())) { $arrFilterTags = deserialize($this->memberContentArchiveTags, true); $arrItem['fields']['memberContent'] = ''; if (($objMemberContentArchives = \HeimrichHannot\MemberContentArchives\MemberContentArchiveModel::findBy(array('mid=?', 'published=?'), array($objItem->memberId ?: $objItem->id, true))) !== null) { while ($objMemberContentArchives->next()) { if (in_array($objMemberContentArchives->tag, $arrFilterTags)) { $arrItem['fields']['memberContentId'] = $objMemberContentArchives->id; $objElement = \ContentModel::findPublishedByPidAndTable($objMemberContentArchives->id, 'tl_member_content_archive'); if ($objElement !== null) { while ($objElement->next()) { $arrItem['fields']['memberContent'] .= \Controller::getContentElement($objElement->current()); } } } } if ($objMemberContentArchives->tag == $this->memberContentArchiveTeaserTag) { $arrItem['fields']['memberContentTitle'] = $objMemberContentArchives->title; $arrItem['fields']['memberContentTeaser'] = $objMemberContentArchives->teaser; } // override member fields $arrOverridableMemberFields = deserialize(\Config::get('overridableMemberFields')); if (!empty($arrOverridableMemberFields)) { foreach ($arrOverridableMemberFields as $strField) { $strFieldOverride = 'member' . ucfirst($strField); if ($objMemberContentArchives->{$strFieldOverride}) { if (\Validator::isUuid($objMemberContentArchives->{$strFieldOverride})) { $objMemberContentArchives->{$strFieldOverride} = Files::getPathFromUuid($objMemberContentArchives->{$strFieldOverride}); } $arrItem['fields'][$strField] = $objMemberContentArchives->{$strFieldOverride}; } } } } } return $arrItem; }
protected function parseItem($objItem, $strClass = '', $intCount = 0) { if (in_array('member_content_archives', \ModuleLoader::getActive())) { $arrFilterTags = deserialize($this->memberContentArchiveTags, true); $objItem->memberContent = ''; if (($objMemberContentArchives = \HeimrichHannot\MemberContentArchives\MemberContentArchiveModel::findBy('mid', $objItem->memberId ?: $objItem->id)) !== null) { while ($objMemberContentArchives->next()) { if (in_array($objMemberContentArchives->tag, $arrFilterTags)) { $objItem->memberContentId = $objMemberContentArchives->id; $objElement = \ContentModel::findPublishedByPidAndTable($objMemberContentArchives->id, 'tl_member_content_archive'); if ($objElement !== null) { while ($objElement->next()) { $objItem->memberContent .= \Controller::getContentElement($objElement->current()); } } } } if ($objMemberContentArchives->tag == $this->memberContentArchiveTeaserTag) { $objItem->memberContentTitle = $objMemberContentArchives->title; $objItem->memberContentTeaser = $objMemberContentArchives->teaser; } // override member fields $arrOverridableMemberFields = deserialize(\Config::get('overridableMemberFields')); if (!empty($arrOverridableMemberFields)) { foreach ($arrOverridableMemberFields as $strField) { $strFieldOverride = 'member' . ucfirst($strField); if ($objMemberContentArchives->{$strFieldOverride}) { if (\Validator::isUuid($objMemberContentArchives->{$strFieldOverride})) { $objMemberContentArchives->{$strFieldOverride} = Files::getPathFromUuid($objMemberContentArchives->{$strFieldOverride}); } $objItem->{$strField} = $objMemberContentArchives->{$strFieldOverride}; } } } } } return parent::parseItem($objItem, $strClass, $intCount); }
protected function getListGridList($arrArticles, $blnAddArchive, $objModule) { if (!$objModule->addListGrid) { return $arrArticles; } $objConfig = \HeimrichHannot\ListGrid\ListGridModel::findByPk($objModule->listGrid); $objConfigItems = \HeimrichHannot\ListGrid\ListGridContentModel::findPublishedByPidAndTypes($objConfig->id); if ($objConfigItems === null) { return $arrArticles; } $arrArticlesList = array(); $idxNews = 0; while ($objConfigItems->next()) { // skip listgrid_news, handled by static::getListGridTicket if ($objConfigItems->type == 'listgrid_news') { $arrArticlesList[] = $arrArticles[$idxNews]; $idxNews++; continue; } $arrArticlesList[] = \Controller::getContentElement($objConfigItems->id, $objModule->inColumn); } return $arrArticlesList; }
protected function renderContent($objChild) { $strContent = ''; $objElement = \ContentModel::findPublishedByPidAndTable($objChild->id, 'tl_block_module'); if ($objElement !== null) { while ($objElement->next()) { if (!\Controller::isVisibleElement($objElement->current())) { return ''; } $strContent .= \Controller::getContentElement($objElement->current()); } } return $strContent; }
/** * Return the demanded frontend module or content element parsed as html string * * Required GET data: * * action: "reload-element" * * element: "ce::id" or "mod::id" (replace 'id' with the element's id) * * page: "id" (optionally, replace 'id' with the current page's id) * * auto_item: (an optional auto_item which will be set before fetching the element) */ public function getModuleOrContentElement() { if (!\Environment::get('isAjaxRequest') || Input::get('action') != 'reload-element') { return; } global $objPage; // Set page object as it may be needed for the language e.g. if (!$objPage && (int) Input::get('page')) { $objPage = \PageModel::findWithDetails((int) Input::get('page')); } $GLOBALS['TL_LANGUAGE'] = null !== $objPage ? $objPage->language : $GLOBALS['TL_LANGUAGE']; list($strElementType, $intElementId) = trimsplit('::', Input::get('element')); $strError = ''; $return = ''; // Authenticate front end user, e.g. for insert tags if (FE_USER_LOGGED_IN) { /** @noinspection PhpUndefinedMethodInspection */ $this->import('FrontendUser', 'User'); /** @var \FrontendUser $this ->User */ $this->User->authenticate(); } // Load default language file \System::loadLanguageFile('default'); // Set a given auto_item to fetch the correct version of a module or content element if ($strAutoItem = Input::get('auto_item')) { Input::setGet('auto_item', $strAutoItem); } switch ($strElementType) { case 'mod': /** @type \Model $objModule */ $objModule = \ModuleModel::findByPk($intElementId); if (null === $objModule) { $strError = sprintf('Could not find module ID %s', $intElementId); continue; } if (!$objModule->allowAjaxReload) { $strError = sprintf('Module ID %u is not allowed to fetch', $intElementId); continue; } $return = \Controller::getFrontendModule($objModule); break; case 'ce': /** @type \Model $objContent */ $objContent = ContentModel::findByPk($intElementId); if (null === $objContent) { $strError = sprintf('Could not find content element ID %s', $intElementId); continue; } if (!$objContent->allowAjaxReload) { $strError = sprintf('Content element ID %u is not allowed to fetch', $intElementId); continue; } $return = \Controller::getContentElement($objContent); break; default: $strError = 'Could not determine whether the element is a module or content element'; break; } $arrResponse = array(); if ($strError) { $arrResponse['status'] = 'error'; $arrResponse['error'] = $strError; } else { $arrResponse['status'] = 'ok'; $arrResponse['html'] = $return; } $objResponse = new JsonResponse($arrResponse); $objResponse->send(); }