/** * Render an item in the backend (list/tree) * * @param InterfaceGeneralModel $objModelRow the model to be drawn * * @return void */ protected function drawItem(InterfaceGeneralModel $objModelRow) { $objNativeItem = $objModelRow->getItem(); $objMetaModel = $objNativeItem->getMetaModel(); $objView = MetaModelRenderSettingsFactory::byId($objMetaModel, $this->intViewId); if ($objView) { $objTemplate = new MetaModelTemplate($objView->get('template')); } else { return 'No rendersetting defined.'; } if ($objMetaModel->hasVariants() && !$objNativeItem->isVariantBase()) { // create a clone to have a seperate copy of the object as we are going to manipulate it here. $objView = clone $objView; // loop over all attributes and remove those from rendering that are not desired. foreach (array_keys($objMetaModel->getInVariantAttributes()) as $strAttrName) { $objView->setSetting($strAttrName, NULL); } } $this->prepareTemplate($objTemplate, $objNativeItem, $objView); return $objTemplate->parse('html5', true); }
/** * Check if two models have the same values in all properties. * * @param InterfaceGeneralModel $objModel1 The first model to compare. * * @param InterfaceGeneralModel $objModel2 The second model to compare. * * @return boolean True - If both models are same, false if not. */ public function sameModels($objModel1, $objModel2) { /** * These must be: * @var GeneralModelMetaModel $objModel1 * @var GeneralModelMetaModel $objModel2 */ $objNative1 = $objModel1->getItem(); $objNative2 = $objModel2->getItem(); if ($objNative1->getMetaModel() != $objNative2->getMetaModel()) { return false; } foreach ($objNative1->getMetaModel()->getAttributes() as $objAttribute) { if ($objNative1->get($objAttribute->getColName()) != $objNative2->get($objAttribute->getColName())) { return false; } } return true; }