Exemple #1
0
function fetchNextRow($row)
{
    global $lexemDbResult;
    global $sourceMap;
    global $currentLexem;
    $def = Model::factory('Definition')->create($row);
    $def->internalRep = AdminStringUtil::xmlizeRequired($def->internalRep);
    if (hasFlag('d')) {
        $def->internalRep = AdminStringUtil::xmlizeOptional($def->internalRep);
    }
    $lexemNames = array();
    $lexemLatinNames = array();
    while (merge_compare($def, $currentLexem) < 0) {
        $currentLexem = $lexemDbResult->fetch();
    }
    while (merge_compare($def, $currentLexem) == 0) {
        $lexemNames[] = $currentLexem[1];
        $lexemLatinNames[] = StringUtil::unicodeToLatin($currentLexem[1]);
        $currentLexem = $lexemDbResult->fetch();
    }
    SmartyWrap::assign('def', $def);
    SmartyWrap::assign('lexemNames', $lexemNames);
    SmartyWrap::assign('lexemLatinNames', $lexemLatinNames);
    SmartyWrap::assign('source', $sourceMap[$def->sourceId]);
    SmartyWrap::assign('user', userCache_get($def->userId));
}
Exemple #2
0
     SmartyWrap::assign('abbrev', AdminStringUtil::loadRawAbbreviations());
     SmartyWrap::displayWithoutSkin('xml/update3Abbrev.tpl');
 } else {
     if ($export == 'definitions') {
         userCache_init();
         $statusClause = $timestamp ? '' : ' and status = 0';
         $defDbResult = db_execute("select * from Definition where modDate >= '{$timestamp}' and sourceId in (select id from Source where canDistribute) " . "{$statusClause} order by modDate, id", PDO::FETCH_ASSOC);
         //
         $lexemDbResult = db_execute("select Definition.id, lexemId from Definition force index(modDate), LexemDefinitionMap " . "where Definition.id = definitionId and Definition.modDate >= {$timestamp} " . "and sourceId in (select id from Source where canDistribute) " . "{$statusClause} order by Definition.modDate, Definition.id", PDO::FETCH_NUM);
         $currentLexem = $lexemDbResult->fetch();
         print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
         print "<Definitions>\n";
         print "  <NumResults>" . $defDbResult->rowCount() . "</NumResults>\n";
         foreach ($defDbResult as $dbRow) {
             $def = Model::factory('Definition')->create($dbRow);
             $def->internalRep = AdminStringUtil::xmlizeRequired($def->internalRep);
             $lexemIds = array();
             while ($currentLexem && $currentLexem[0] == $def->id) {
                 $lexemIds[] = $currentLexem[1];
                 $currentLexem = $lexemDbResult->fetch();
             }
             prepareDefForVersion($def);
             SmartyWrap::assign('def', $def);
             SmartyWrap::assign('lexemIds', $lexemIds);
             SmartyWrap::assign('user', userCache_get($def->userId));
             SmartyWrap::displayWithoutSkin('xml/update3Definitions.tpl');
         }
         print "</Definitions>\n";
     } else {
         if ($export == 'lexems') {
             $lexemDbResult = db_execute("select * from Lexem where modDate >= '{$timestamp}' order by modDate, id");
Exemple #3
0
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'));
assertEquals('&#x25;&#x7e;&#x24;&#x40;&#x27;', AdminStringUtil::xmlizeRequired('\\%\\~\\$\\@\\\''));
assertEquals('&lt;&gt;&amp;', AdminStringUtil::xmlizeRequired('<>&'));
$t = FlexStringUtil::extractTransforms('arde', 'arzând', 0);
assertEquals(4, count($t));
assertEquals('d', $t[0]->transfFrom);
assertEquals('z', $t[0]->transfTo);
assertEquals('e', $t[1]->transfFrom);
assertEquals('', $t[1]->transfTo);
assertEquals('', $t[2]->transfFrom);
assertEquals('ând', $t[2]->transfTo);
assertEquals(UNKNOWN_ACCENT_SHIFT, $t[3]);
$t = FlexStringUtil::extractTransforms('frumos', 'frumoasă', 0);
assertEquals(3, count($t));
assertEquals('o', $t[0]->transfFrom);
assertEquals('oa', $t[0]->transfTo);
assertEquals('', $t[1]->transfFrom);
assertEquals('ă', $t[1]->transfTo);
function dumpDefinitions($query, $remoteFile, $message)
{
    global $FTP, $USERS;
    log_scriptLog($message);
    $results = db_execute($query);
    $tmpFile = tempnam(Config::get('global.tempDir'), 'xmldump_');
    $file = gzopen($tmpFile, 'wb9');
    gzwrite($file, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
    gzwrite($file, "<Definitions>\n");
    foreach ($results as $row) {
        $def = Model::factory('Definition')->create($row);
        $def->internalRep = AdminStringUtil::xmlizeRequired($def->internalRep);
        SmartyWrap::assign('def', $def);
        SmartyWrap::assign('nick', $USERS[$def->userId]);
        gzwrite($file, SmartyWrap::fetch('xml/xmldump/definition.tpl'));
    }
    gzwrite($file, "</Definitions>\n");
    gzclose($file);
    $FTP->staticServerPut($tmpFile, $remoteFile);
    unlink($tmpFile);
}
function dumpDefinitions($query, $fileName, $message)
{
    global $USERS;
    log_scriptLog($message);
    $results = db_execute($query);
    $file = gzopen($fileName, 'wb9');
    gzwrite($file, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
    gzwrite($file, "<Definitions>\n");
    foreach ($results as $row) {
        $def = Model::factory('Definition')->create($row);
        $def->internalRep = AdminStringUtil::xmlizeRequired($def->internalRep);
        smarty_assign('def', $def);
        smarty_assign('nick', $USERS[$def->userId]);
        gzwrite($file, smarty_fetch('xmldump/definition.ihtml'));
    }
    gzwrite($file, "</Definitions>\n");
    gzclose($file);
}