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})"); }
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 "));
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); }
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'); }
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);