<?php require_once "../../phplib/util.php"; $lexemName = util_getRequestParameter('lexemName'); if (StringUtil::hasRegexp($lexemName)) { $hasDiacritics = StringUtil::hasDiacritics($lexemName); $lexems = Lexem::searchRegexp($lexemName, $hasDiacritics, null, true); } else { $lexems = Lexem::loadByExtendedName($lexemName); } if (count($lexems) == 1) { util_redirect('lexemEdit.php?lexemId=' . $lexems[0]->id); } smarty_assign('lexems', $lexems); smarty_assign('sectionTitle', "Căutare lexem: '{$lexemName}'"); smarty_assign('recentLinks', RecentLink::loadForUser()); smarty_displayWithoutSkin('admin/lexemList.ihtml');
$definition = Model::factory('Definition')->create(); $definition->displayed = 0; $definition->status = ST_PENDING; $definition->userId = session_getUserId(); $definition->sourceId = $sourceId; $definition->internalRep = $def; $definition->htmlRep = AdminStringUtil::htmlize($def, $sourceId); $definition->lexicon = AdminStringUtil::extractLexicon($definition); $definition->abbrevReview = count($ambiguousMatches) ? ABBREV_AMBIGUOUS : ABBREV_REVIEW_COMPLETE; $definition->save(); log_userLog("Added definition {$definition->id} ({$definition->lexicon})"); $ldms = array(); foreach ($lexemNames as $lexemName) { $lexemName = addslashes(AdminStringUtil::formatLexem($lexemName)); if ($lexemName) { $matches = Lexem::loadByExtendedName($lexemName); if (count($matches) >= 1) { foreach ($matches as $match) { LexemDefinitionMap::associate($match->id, $definition->id); log_userLog("Associating with lexem {$match->id} ({$match->form})"); } } else { // Create a new lexem. $lexem = Lexem::create($lexemName, 'T', '1', ''); $lexem->save(); $lexem->regenerateParadigm(); LexemDefinitionMap::associate($lexem->id, $definition->id); log_userLog("Created lexem {$lexem->id} ({$lexem->form})"); } } }
} if ($lexemNoAccent !== null) { $lexem->noAccent = $lexemNoAccent != ''; } // The new model type, number and restrictions can come from three sources: // $similarModel, $similarLexemName or ($modelType, $modelNumber, // $restriction) directly $errorMessage = ''; if ($similarModel !== null) { $parts = FlexModel::splitName($similarModel); $lexem->modelType = $parts[0]; $lexem->modelNumber = $parts[1]; $lexem->restriction = $parts[2]; } else { if ($similarLexemName) { $matches = Lexem::loadByExtendedName($similarLexemName); if (count($matches) == 1) { $similarLexem = $matches[0]; $lexem->modelType = $similarLexem->modelType; $lexem->modelNumber = $similarLexem->modelNumber; $lexem->restriction = $similarLexem->restriction; } else { $errorMessage = count($matches) == 0 ? "Lexemul <i>" . htmlentities($similarLexemName) . "</i> nu există." : "Lexemul <i>" . htmlentities($similarLexemName) . "</i> este ambiguu."; } } else { if ($modelType !== null) { $lexem->modelType = $modelType; $lexem->modelNumber = $modelNumber; $lexem->restriction = $restriction; } }