<?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})");
         }
     }
 }
示例#3
0
}
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;
        }
    }