/** * Compile the content element. * * @return void */ protected function compile() { $objItemRenderer = new ItemList(); $this->Template->searchable = !$this->metamodel_donotindex; $sorting = $this->metamodel_sortby; $direction = $this->metamodel_sortby_direction; if ($this->metamodel_sort_override) { if (\Input::get('orderBy')) { $sorting = \Input::get('orderBy'); } if (\Input::get('orderDir')) { $direction = \Input::get('orderDir'); } } $objItemRenderer->setServiceContainer($this->getServiceContainer())->setMetaModel($this->metamodel, $this->metamodel_rendersettings)->setLimit($this->metamodel_use_limit, $this->metamodel_offset, $this->metamodel_limit)->setPageBreak($this->perPage)->setSorting($sorting, $direction)->setFilterSettings($this->metamodel_filtering)->setFilterParameters(deserialize($this->metamodel_filterparams, true), $this->getFilterParameters($objItemRenderer))->setMetaTags($this->metamodel_meta_title, $this->metamodel_meta_description); $this->Template->items = $objItemRenderer->render($this->metamodel_noparsing, $this); $this->Template->numberOfItems = $objItemRenderer->getItems()->getCount(); $this->Template->pagination = $objItemRenderer->getPagination(); }
/** * Get an item. * * @param string|int $metaModelIdOrName ID or name of MetaModels. * * @param string|int $mixDataId ID of the data row. * * @param int $intIdRenderSetting ID of render setting. * * @param string $strOutput Name of output. Default:null (fallback to htmlfynf)|text|html5|xhtml|... * * @return boolean|string Return false when nothing was found or return the value. */ protected function getItem($metaModelIdOrName, $mixDataId, $intIdRenderSetting, $strOutput = null) { // Get the MetaModel. Return if we can not find one. $objMetaModel = $this->loadMetaModel($metaModelIdOrName); if ($objMetaModel == null) { return false; } // Set output to default if not set. if (empty($strOutput)) { $strOutput = 'html5'; } $objMetaModelList = new ItemList(); $objMetaModelList->setServiceContainer($this->getServiceContainer())->setMetaModel($objMetaModel->get('id'), $intIdRenderSetting)->overrideOutputFormat($strOutput); // Handle a set of ids. $arrIds = trimsplit(',', $mixDataId); // Check each id if published. foreach ($arrIds as $intKey => $intId) { if (!$this->isPublishedItem($objMetaModel, $intId)) { unset($arrIds[$intKey]); } } // Render an empty insert tag rather than displaying a list with an empty. // result information. do not return false here because the insert tag itself is correct. if (count($arrIds) < 1) { return ''; } $objMetaModelList->addFilterRule(new StaticIdList($arrIds)); return $objMetaModelList->render(false, $this); }