Esempio n. 1
0
     smarty_assign('previewDivContent', AdminStringUtil::htmlize($def, $sourceId));
 } else {
     $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})");
             }
Esempio n. 2
0
assertEquals("ș'aibă", FlexStringUtil::placeAccent("șaibă", 3, 'a'));
assertEquals("șa'ibă", FlexStringUtil::placeAccent("șaibă", 2, 'i'));
assertEquals("șa'ibă", FlexStringUtil::placeAccent("șaibă", 3, 'i'));
assertEquals("unfuckingbelievable", FlexStringUtil::insert("unbelievable", "f*****g", 2));
assertEquals("abcdef", FlexStringUtil::insert("cdef", "ab", 0));
assertEquals("abcdef", FlexStringUtil::insert("abcd", "ef", 4));
assertEquals('mamă      ', AdminStringUtil::padRight('mamă', 10));
assertEquals('mama      ', AdminStringUtil::padRight('mama', 10));
assertEquals('ăâîșț   ', AdminStringUtil::padRight('ăâîșț', 8));
assertEquals('ăâîșț', AdminStringUtil::padRight('ăâîșț', 5));
assertEquals('ăâîșț', AdminStringUtil::padRight('ăâîșț', 3));
assertEqualArrays(array('c', 'a', 'r'), AdminStringUtil::unicodeExplode('car'));
assertEqualArrays(array('ă', 'a', 'â', 'ș', 'ț'), AdminStringUtil::unicodeExplode('ăaâșț'));
assertEqualArrays(array(1, 5, 10), util_intersectArrays(array(1, 3, 5, 7, 9, 10), array(1, 2, 4, 5, 6, 8, 10)));
assertEqualArrays(array(), util_intersectArrays(array(2, 4, 6, 8), array(1, 3, 5, 7)));
assert(!Lock::release('test'));
assert(!Lock::exists('test'));
assert(Lock::acquire('test'));
assert(Lock::exists('test'));
assert(!Lock::acquire('test'));
assert(Lock::release('test'));
assert(!Lock::exists('test'));
assert(!Lock::release('test'));
assertEquals(0, util_findSnippet(array(array(1, 2, 10))));
assertEquals(1, util_findSnippet(array(array(1, 2, 10), array(5, 6, 9))));
assertEquals(2, util_findSnippet(array(array(1, 2, 10), array(5, 6, 8))));
assertEquals(4, util_findSnippet(array(array(1, 2, 10), array(6, 20), array(8, 15))));
assertEquals('$abc$ @def@', AdminStringUtil::formatLexem('$abc$ @def@'));
// This is intentional -- lexem formatting is very lenient.
assertEquals("m'amă m'are", AdminStringUtil::formatLexem("m'am~a máre  "));
Esempio n. 3
0
function populate(&$lexem, &$original, $lexemForm, $lexemNumber, $lexemDescription, $lexemComment, $needsAccent, $hyphenations, $pronunciations, $variantOfId, $structStatus, $modelType, $modelNumber, $restriction, $lmTags, $isLoc, $sourceIds)
{
    $lexem->form = AdminStringUtil::formatLexem($lexemForm);
    $lexem->formNoAccent = str_replace("'", '', $lexem->form);
    $lexem->number = $lexemNumber;
    $lexem->description = AdminStringUtil::internalize($lexemDescription, false);
    $lexem->comment = trim(AdminStringUtil::internalize($lexemComment, false));
    // Sign appended comments
    if (StringUtil::startsWith($lexem->comment, $original->comment) && $lexem->comment != $original->comment && !StringUtil::endsWith($lexem->comment, ']]')) {
        $lexem->comment .= " [[" . session_getUser() . ", " . strftime("%d %b %Y %H:%M") . "]]";
    }
    $lexem->noAccent = !$needsAccent;
    $lexem->hyphenations = $hyphenations;
    $lexem->pronunciations = $pronunciations;
    $lexem->variantOfId = $variantOfId ? $variantOfId : null;
    $lexem->structStatus = $structStatus;
    // Create LexemModels and LexemSources
    $lexemModels = array();
    for ($i = 1; $i < count($modelType); $i++) {
        $lm = Model::factory('LexemModel')->create();
        $lm->lexemId = $lexem->id;
        $lm->setLexem($lexem);
        // Otherwise it will reload the original
        $lm->displayOrder = $i;
        $lm->modelType = $modelType[$i];
        $lm->modelNumber = $modelNumber[$i];
        $lm->restriction = $restriction[$i];
        $lm->tags = $lmTags[$i];
        $lm->isLoc = $isLoc[$i];
        $lm->generateInflectedFormMap();
        $lexemSources = array();
        foreach (explode(',', $sourceIds[$i]) as $sourceId) {
            $ls = Model::factory('LexemSource')->create();
            $ls->sourceId = $sourceId;
            $lexemSources[] = $ls;
        }
        $lm->setSources($lexemSources);
        $lexemModels[] = $lm;
    }
    $lexem->setLexemModels($lexemModels);
}
Esempio n. 4
0
     SmartyWrap::assign('def', $def);
     FlashMessage::add($errorMessage);
     SmartyWrap::assign('previewDivContent', AdminStringUtil::htmlize($def, $sourceId));
 } else {
     $definition = Model::factory('Definition')->create();
     $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})");
     foreach ($lexemIds as $lexemId) {
         $lexemId = addslashes(AdminStringUtil::formatLexem($lexemId));
         if (StringUtil::startsWith($lexemId, '@')) {
             // create a new lexem
             $lexem = Lexem::deepCreate(substr($lexemId, 1), 'T', '1');
             $lexem->deepSave();
             LexemDefinitionMap::associate($lexem->id, $definition->id);
             log_userLog("Created lexem {$lexem->id} ({$lexem->form})");
         } else {
             $lexem = Lexem::get_by_id($lexemId);
             LexemDefinitionMap::associate($lexem->id, $definition->id);
             log_userLog("Associating with lexem {$lexem->id} ({$lexem->form})");
         }
     }
     FlashMessage::add('Definiția a fost trimisă. Un moderator o va examina în scurt timp. Vă mulțumim!', 'info');
     util_redirect('contribuie');
 }
Esempio n. 5
0
    smarty_assign('lexem', $lexem);
    smarty_assign('homonyms', $homonyms);
    smarty_displayWithoutSkin('admin/lexemDeleted.ihtml');
    return;
}
if ($cloneLexem) {
    $newLexem = _cloneLexem($lexem);
    log_userLog("Cloned lexem {$lexem->id} ({$lexem->form}), new id is {$newLexem->id}");
    util_redirect("lexemEdit.php?lexemId={$newLexem->id}");
}
if (!$similarModel && !$similarLexemName && !$refreshLexem && !$updateLexem) {
    RecentLink::createOrUpdate("Lexem: {$lexem}");
}
if ($lexemForm !== null) {
    $oldUnaccented = $lexem->formNoAccent;
    $lexem->form = AdminStringUtil::formatLexem($lexemForm);
    $lexem->formNoAccent = str_replace("'", '', $lexem->form);
    $lexem->reverse = StringUtil::reverse($lexem->formNoAccent);
    if ($lexem->formNoAccent != $oldUnaccented) {
        $lexem->modelType = 'T';
        $lexem->modelNumber = 1;
    }
}
if ($lexemDescription !== null) {
    $lexem->description = AdminStringUtil::internalize($lexemDescription, false);
}
if ($lexemTags !== null) {
    $lexem->tags = AdminStringUtil::internalize($lexemTags, false);
}
if ($lexemSources !== null) {
    $lexem->source = join(',', $lexemSources);