/**
  * Populate the provided Template with the items and render them (in html5 mode as we are in the backend).
  *
  * @param MetaModelTemplate        $objTemplate The template to populate
  *
  * @param IMetaModelItem           $objItem     The MetaModel attached to the items.
  *
  * @param IMetaModelRenderSettings $objSettings The render settings to use (optional, defaults to: null).
  *
  *@return void
  */
 protected function prepareTemplate(MetaModelTemplate $objTemplate, IMetaModelItem $objItem, $objSettings = null)
 {
     $objTemplate->settings = $objSettings;
     $objTemplate->items = new MetaModelItems(array($objItem));
     $objTemplate->view = $objSettings;
     $objTemplate->data = array($objItem->parseValue('html5', $objSettings));
 }
示例#2
0
 /**
  * {@inheritdoc}
  */
 public function delete(IMetaModelItem $objItem)
 {
     $arrIds = array($objItem->get('id'));
     // determine if the model is a variant base and if so, fetch the variants additionally.
     if ($objItem->isVariantBase()) {
         $objVariants = $objItem->getVariants(new MetaModelFilter($this));
         foreach ($objVariants as $objVariant) {
             $arrIds[] = $objVariant->get('id');
         }
     }
     // complex attributes shall delete their values first.
     foreach ($this->getAttributes() as $objAttribute) {
         if ($this->isComplexAttribute($objAttribute)) {
             // complex saving
             $objAttribute->unsetDataFor($arrIds);
         }
     }
     // now make the real row disappear.
     Database::getInstance()->execute(sprintf('DELETE FROM %s WHERE id IN (%s)', $this->getTableName(), implode(',', $arrIds)));
 }
 /**
  * {@inheritdoc}
  */
 public function generateFilterUrlFrom(IMetaModelItem $objItem, IMetaModelRenderSettings $objRenderSetting)
 {
     $objAttribute = $this->getMetaModel()->getAttributeById($this->get('attr_id'));
     if ($objAttribute) {
         // TODO: shall we omit returning of empty values?
         $strResult = $objAttribute->getFilterUrlValue($objItem->get($objAttribute->getColName()));
         return array($this->getParamName() => $strResult);
     }
 }