/** * 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)); }
/** * {@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); } }