public function delete() { $mds = ModelDescription::get_by_modelId($this->id); foreach ($mds as $md) { $md->delete(); } if ($this->modelType == 'V') { $pm = ParticipleModel::loadByVerbModel($this->number); $pm->delete(); } parent::delete(); }
foreach ($mms as $mm) { print "Creating {$mm->modelType}{$mm->slaveNumber} from " . "{$mm->modelType}{$mm->masterNumber}\n"; $master = Model::loadByTypeNumber($mm->modelType, $mm->masterNumber); // Create the model $slave = Model::create($mm->modelType, $mm->slaveNumber, "Derivat din {$mm->modelType}{$mm->masterNumber}"); $slave->save(); $slave->id = db_getLastInsertedId(); // Clone the model descriptions $mds = ModelDescription::loadByModelId($master->id); foreach ($mds as $md) { $md->id = 0; $md->modelId = $slave->id; $md->save(); } // Clone the participle model if ($mm->modelType == 'V') { $pm = ParticipleModel::loadByVerbModel($mm->masterNumber); $clonePm = ParticipleModel::create($mm->slaveNumber, $pm->participleModel); $clonePm->save(); } // Delete the mapping mysql_query("delete from model_mappings where model_type = " . " '{$mm->modelType}' and slave_no = '{$mm->slaveNumber}'"); // Regenerate the lexems. In theory the paradigm won't change, but we want // to actually see it. $lexems = Lexem::loadByCanonicalModel($mm->modelType, $mm->slaveNumber); foreach ($lexems as $l) { print "\tRegenerating paradigm for {$l->form} ({$l->modelType}" . "{$l->modelNumber})\n"; $l->regenerateParadigm(); } } mysql_query('drop table model_mappings');
if (!count($errorMessages)) { // Clone the model $model = Model::factory('FlexModel')->where('modelType', $modelType)->where('number', $modelNumber)->find_one(); $cloneModel = FlexModel::create($modelType, $newModelNumber, "Clonat după {$modelType}{$modelNumber}", $model->exponent); $cloneModel->save(); // Clone the model descriptions $mds = Model::factory('ModelDescription')->where('modelId', $model->id)->order_by_asc('inflectionId')->order_by_asc('variant')->order_by_asc('applOrder')->find_many(); foreach ($mds as $md) { $newMd = Model::factory('ModelDescription')->create(); $newMd->copyFrom($md); $newMd->modelId = $cloneModel->id; $newMd->save(); } // Clone the participle model if ($modelType == 'V') { $pm = ParticipleModel::loadByVerbModel($modelNumber); $clonePm = Model::factory('ParticipleModel')->create(); $clonePm->verbModel = $newModelNumber; $clonePm->adjectiveModel = $pm->adjectiveModel; $clonePm->save(); } // Migrate the selected lexems. if ($chooseLexems && $lexemModelIds) { foreach ($lexemModelIds as $lexemModelId) { $lm = LexemModel::get_by_id($lexemModelId); $lm->modelNumber = $newModelNumber; $lm->save(); // It is not necessary to regenerate the paradigm for now, since // the inflected forms are identical. } }
/** * Called when the model type of a lexem changes from VT to something else. * Only deletes participles that do not have their own definitions. */ public function deleteParticiple() { $infl = Inflection::loadParticiple(); $adjModels = array(); foreach ($this->getLexemModels() as $lm) { if ($lm->modelType == 'V' || $lm->modelType == 'VT') { $pm = ParticipleModel::get_by_verbModel($lm->modelNumber); $adjModels[] = $pm->adjectiveModel; } } $this->_deleteDependentModels($infl->id, 'A', $adjModels); }
function saveModel($modelNumber, $infinitive, $longInfinitive, $imperative, $slaveModels, $participle, $gerund, $participleModel, $present, $subjonctive, $imperfect, $perfectSimple, $pastPerfect) { $forms = array(); $inflections = array(); $forms[] = $infinitive; $inflections[] = INFL_INFINITIVE; $forms[] = $longInfinitive; $inflections[] = INFL_LONG_INFINITIVE; $forms[] = $imperative; $inflections[] = INFL_IMPERATIVE; $forms[] = $participle; $inflections[] = INFL_PARTICIPLE; $forms[] = $gerund; $inflections[] = INFL_GERUND; addPersonalForms($forms, $inflections, $present, INFL_PRESENT); addPersonalForms($forms, $inflections, $subjonctive, INFL_SUBJONCTIVE); addPersonalForms($forms, $inflections, $imperfect, INFL_IMPERFECT); addPersonalForms($forms, $inflections, $perfectSimple, INFL_PERFECT_SIMPLE); addPersonalForms($forms, $inflections, $pastPerfect, INFL_PAST_PERFECT); saveCommonModel('V', $modelNumber, $forms, '', $inflections); // Add the mapping from this verb model to the corresponding adjective model $pm = ParticipleModel::create($modelNumber, $participleModel); $pm->save(); foreach ($slaveModels as $sm) { $mm = ModelMapping::create('V', $sm, $modelNumber); $mm->save(); } }
/** * Called when the model type of a lexem changes from VT to something else. * Only deletes participles that do not have their own definitions. */ public function deleteParticiple($oldModelNumber) { $infl = Inflection::loadParticiple(); $pm = ParticipleModel::loadByVerbModel($oldModelNumber); $this->_deleteDependentModels($infl->id, 'A', array($pm->adjectiveModel)); }
public static function loadByVerbModel($verbModel) { return ParticipleModel::get_by_verbModel(addslashes($verbModel)); }