Example #1
0
 /**
  * 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();
 }
Example #2
0
 /**
  * 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);
 }