示例#1
0
 /**
  * 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'));
 }