assertEquals('mama', StringUtil::cleanupQuery('"mama"')); assertEquals('aăbcdef', StringUtil::cleanupQuery("aăbc<mamă foo bar>def")); assertEquals('AĂBCDEF', StringUtil::cleanupQuery("AĂBC<MAMĂ FOO BAR>DEF")); assertEquals('a~abcdef', StringUtil::cleanupQuery("a~abc<mam~a foo bar>def")); assertEquals('a~ABcdef', StringUtil::cleanupQuery("a~ABc<mam~a foo bar>def")); assertEquals('1234', StringUtil::cleanupQuery('12&qweasd;34')); assert(StringUtil::hasDiacritics('mamă')); assert(!StringUtil::hasDiacritics('mama')); $def = Model::factory('Definition')->create(); $def->sourceId = 1; $def->internalRep = 'abcd'; assertEquals('abcd', AdminStringUtil::extractLexicon($def)); $def->internalRep = 'wxyz'; assertEquals('wxyz', AdminStringUtil::extractLexicon($def)); $def->internalRep = 'mamă'; assertEquals('mamă', AdminStringUtil::extractLexicon($def)); assert(StringUtil::hasRegexp('asd[0-9]')); assert(!StringUtil::hasRegexp('ăâîșț')); assert(StringUtil::hasRegexp('cop?l')); assertEquals("like 'cop%l'", StringUtil::dexRegexpToMysqlRegexp('cop*l')); assertEquals("like 'cop_l'", StringUtil::dexRegexpToMysqlRegexp('cop?l')); assertEquals("rlike '^(cop[a-z]l)\$'", StringUtil::dexRegexpToMysqlRegexp('cop[a-z]l')); assertEquals("rlike '^(cop[^a-z]l)\$'", StringUtil::dexRegexpToMysqlRegexp('cop[^a-z]l')); assertEquals("rlike '^(cop[â-z]l)\$'", StringUtil::dexRegexpToMysqlRegexp('cop[â-z]l')); assertEquals("rlike '^(cop[â-z]l.*)\$'", StringUtil::dexRegexpToMysqlRegexp('cop[â-z]l*')); assertEqualArrays(array(0, 0, 0), StringUtil::analyzeQuery('mama')); assertEqualArrays(array(1, 0, 0), StringUtil::analyzeQuery('mamă')); assertEqualArrays(array(0, 1, 0), StringUtil::analyzeQuery('cop?l')); assertEqualArrays(array(0, 1, 0), StringUtil::analyzeQuery('cop[c-g]l')); assertEqualArrays(array(1, 1, 0), StringUtil::analyzeQuery('căț[c-g]l')); assertEqualArrays(array(0, 0, 1), StringUtil::analyzeQuery('1234567'));
} if ($errorMessage) { smarty_assign('lexemNames', $lexemNames); smarty_assign('sourceId', $sourceId); smarty_assign('def', $def); FlashMessage::add($errorMessage); 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.
<?php define('FILE_NAME', __DIR__ . '/../../corectii DEXOnline.txt'); require_once __DIR__ . '/../../phplib/util.php'; util_assertModerator(PRIV_EDIT); util_assertNotMirror(); $id = util_getRequestParameter('id'); $def = Definition::get_by_id($id); assert($def); $lines = file(FILE_NAME); $lines = array_slice($lines, 1); // First line contains the column descriptions foreach ($lines as $line) { $parts = explode("\t", trim($line)); assert(count($parts) == 4); list($id, $wrong, $right, $code) = $parts; if ($id == $def->id) { $def->internalRep = $right; $def->htmlRep = AdminStringUtil::htmlize($right, $def->sourceId); $def->lexicon = AdminStringUtil::extractLexicon($def); $def->save(); break; // I know. Shut up. } }