/** * Creates or renames the MetaModel table according to the given name. * Updates variant support information. * * @param DC_General $objDC the datacontainer where the model is loaded. * * @return void */ public function onSubmitCallback(DC_General $objDC) { // table name changed? $strOldTableName = ''; if ($objDC->getId()) { $objMetaModel = $this->Database->prepare("SELECT tableName FROM tl_metamodel WHERE id=?")->limit(1)->executeUncached($objDC->getId()); if ($objMetaModel->numRows) { $strOldTableName = $objMetaModel->tableName; } } $objDBModel = $objDC->getCurrentModel(); $strNewTableName = $objDBModel->getProperty('tableName'); // table name is different. if ($strNewTableName != $strOldTableName) { if ($strOldTableName && $this->Database->tableExists($strOldTableName, null, true)) { MetaModelTableManipulation::renameTable($strOldTableName, $strNewTableName); // TODO: notify fields that the MetaModel has changed its table name. } else { MetaModelTableManipulation::createTable($strNewTableName); } } MetaModelTableManipulation::setVariantSupport($strNewTableName, $objDBModel->getProperty('varsupport')); }