Esempio n. 1
0
<?php

require_once "../../phplib/util.php";
set_time_limit(0);
// If no GET arguments are set, print usage and return.
if (count($_GET) == 0) {
    SmartyWrap::addCss('polar');
    SmartyWrap::displayWithoutSkin('update3Instructions.tpl');
    return;
}
util_enforceGzipEncoding();
header('Content-type: text/xml');
$export = util_getRequestParameter('export');
$timestamp = util_getRequestIntParameter('timestamp');
$version = util_getRequestParameterWithDefault('version', '3.0');
if ($export && util_isDesktopBrowser() && !session_getUser()) {
    SmartyWrap::display('bits/updateError.tpl');
    exit;
}
if ($export == 'sources') {
    SmartyWrap::assign('sources', Model::factory('Source')->find_many());
    SmartyWrap::displayWithoutSkin('xml/update3Sources.tpl');
} else {
    if ($export == 'inflections') {
        SmartyWrap::assign('inflections', Model::factory('Inflection')->order_by_asc('id')->find_many());
        SmartyWrap::displayWithoutSkin('xml/update3Inflections.tpl');
    } else {
        if ($export == 'abbrev') {
            SmartyWrap::assign('abbrev', AdminStringUtil::loadRawAbbreviations());
            SmartyWrap::displayWithoutSkin('xml/update3Abbrev.tpl');
        } else {
Esempio n. 2
0
<?php

require_once "../phplib/util.php";
$TODAY = date("Y-m-d");
$FOLDER = util_getRootPath() . '/wwwbase/download/xmldump';
$URL = 'http://dexonline.ro/download/xmldump';
if (count($_GET) == 0) {
    util_redirect("http://wiki.dexonline.ro/wiki/Update4Instructions");
}
$lastDump = getLastDumpDate($TODAY, $FOLDER);
smarty_assign('lastDump', $lastDump);
smarty_assign('url', $URL);
$lastClientUpdate = util_getRequestParameterWithDefault('last', '0');
if ($lastClientUpdate == '0') {
    // Dump the freshest full dump we have
    // TODO: return an error if there is no full dump
    smarty_assign('serveFullDump', true);
    $lastClientUpdate = $lastDump;
}
smarty_assign('diffs', getDiffsBetween($lastClientUpdate, $TODAY, $FOLDER));
header('Content-type: text/xml');
print smarty_fetch('common/update4.ihtml');
/**************************************************************************/
// Do not return a dump for today, in case it is still being built
function getLastDumpDate($today, $folder)
{
    $files = scandir($folder, 1);
    // descending
    foreach ($files as $file) {
        $matches = array();
        if (preg_match('/^(\\d\\d\\d\\d-\\d\\d-\\d\\d)-abbrevs.xml.gz$/', $file, $matches)) {
Esempio n. 3
0
<?php

require_once "../../phplib/util.php";
util_assertModerator(PRIV_EDIT);
util_assertNotMirror();
util_hideEmptyRequestParameters();
DebugInfo::disable();
$modelType = util_getRequestParameterWithDefault('modelType', 'M');
$submitButton = util_getRequestParameter('submitButton');
if ($submitButton) {
    $lexemsToDelete = array();
    foreach ($_REQUEST as $name => $value) {
        if (StringUtil::startsWith($name, 'merge_') && $value) {
            $parts = preg_split('/_/', $name);
            assert(count($parts) == 3);
            assert($parts[0] == 'merge');
            $src = Lexem::get_by_id($parts[1]);
            $dest = Lexem::get_by_id($parts[2]);
            // Merge $src into $dest
            $defs = Definition::loadByLexemId($src->id);
            foreach ($defs as $def) {
                LexemDefinitionMap::associate($dest->id, $def->id);
            }
            // Add $dest to LOC if $src is in LOC
            if ($src->isLoc() && !$dest->isLoc()) {
                $lm = $dest->getFirstLexemModel();
                $lm->isLoc = true;
                $lm->save();
            }
            // Delay the deletion because we might have to merge $src with other lexems.
            $lexemsToDelete[] = $src;
Esempio n. 4
0
function util_getRequestParameter($name)
{
    return util_getRequestParameterWithDefault($name, NULL);
}
Esempio n. 5
0
<?php

require_once "../phplib/util.php";
util_assertModerator(PRIV_ADMIN);
$userIds = util_getRequestParameter('userIds');
$newNick = util_getRequestParameter('newNick');
$newCheckboxes = util_getRequestParameterWithDefault("newPriv", array());
$submitButton = util_getRequestParameter('submitButton');
if ($submitButton) {
    foreach ($userIds as $userId) {
        $checkboxes = util_getRequestParameterWithDefault("priv_{$userId}", array());
        $user = User::get_by_id($userId);
        $user->moderator = array_sum($checkboxes);
        $user->save();
    }
    if ($newNick) {
        $user = User::get_by_nick($newNick);
        if ($user) {
            $user->moderator = array_sum($newCheckboxes);
            $user->save();
        } else {
            FlashMessage::add("Numele de utilizator „{$newNick}” nu există");
            util_redirect("moderatori");
        }
    }
    FlashMessage::add('Modificările au fost salvate', 'info');
    util_redirect("moderatori");
}
smarty_assign('page_title', 'Moderatori');
smarty_assign('users', Model::factory('User')->where_not_equal('moderator', 0)->order_by_asc('nick')->find_many());
smarty_displayCommonPageWithSkin('moderatori.ihtml');
Esempio n. 6
0
$sourceId = util_getRequestParameter('id');
$submitButton = util_getRequestParameter('submitButton');
$src = $sourceId ? Source::get_by_id($sourceId) : Model::factory('Source')->create();
if ($submitButton) {
    $src->name = util_getRequestParameter("name");
    $src->shortName = util_getRequestParameter("shortName");
    $src->urlName = util_getRequestParameter("urlName");
    $src->author = util_getRequestParameter("author");
    $src->publisher = util_getRequestParameter("publisher");
    $src->year = util_getRequestParameter("year");
    $src->link = util_getRequestParameter("link");
    $src->isActive = util_getRequestParameterWithDefault("isActive", 0);
    $src->isOfficial = util_getRequestParameterWithDefault("isOfficial", 0);
    $src->canContribute = util_getRequestParameterWithDefault("canContribute", 0);
    $src->canModerate = util_getRequestParameterWithDefault("canModerate", 0);
    $src->canDistribute = util_getRequestParameterWithDefault("canDistribute", 0);
    $src->defCount = util_getRequestIntParameter("defCount");
    if (validate($src)) {
        // For new sources, set displayOrder to the highest available + 1
        if (!$sourceId) {
            $src->displayOrder = Model::factory('Source')->count() + 1;
        }
        $src->updatePercentComplete();
        $src->save();
        FlashMessage::add('Modificările au fost salvate', 'info');
        util_redirect("editare-sursa?id={$src->id}");
    }
}
SmartyWrap::assign('src', $src);
SmartyWrap::assign('page_title', $sourceId ? "Editare sursă {$src->shortName}" : "Adăugare sursă");
SmartyWrap::addCss('jqueryui');
<?php

require_once "../phplib/util.php";
setlocale(LC_ALL, "ro_RO.utf8");
define('limit_freq', 1);
define('easy', 0.8);
define('normal', 0.6);
define('hard', 0.4);
define('imp', 0.2);
$difficulty = util_getRequestParameterWithDefault('d', 0);
switch ($difficulty) {
    case 0:
        $minFreq = easy;
        $maxFreq = limit_freq;
        break;
    case 1:
        $minFreq = normal;
        $maxFreq = easy;
        break;
    case 2:
        $minFreq = hard;
        $maxFreq = normal;
        break;
    default:
        $minFreq = imp;
        $maxFreq = hard;
}
$count = Model::factory('Lexem')->where_gte('frequency', $minFreq)->where_lte('frequency', $maxFreq)->where_raw('char_length(formUtf8General) > 5')->count();
do {
    $lexem = Model::factory('Lexem')->where_gte('frequency', $minFreq)->where_lte('frequency', $maxFreq)->where_raw('char_length(formUtf8General) > 5')->limit(1)->offset(rand(0, $count - 1))->find_one();
    // Select an official definition for this lexem.
Esempio n. 8
0
<?php

require_once "../phplib/util.php";
$sendButton = util_getRequestParameter('send');
$user = session_getUser();
if ($sendButton) {
    $detailsVisible = util_getRequestParameterWithDefault('detailsVisible', 0);
    $userPrefs = util_getRequestCheckboxArray('userPrefs', ',');
    $skin = util_getRequestParameter('skin');
    $widgets = util_getRequestParameter('widgets');
    Preferences::set($user, $detailsVisible, $userPrefs, $skin, array_sum($widgets));
    FlashMessage::add('Preferințele au fost salvate.', 'info');
    util_redirect('preferinte');
}
$detailsVisible = Preferences::getDetailsVisible($user);
$userPrefs = Preferences::getUserPrefs($user);
$skin = Preferences::getSkin($user);
$widgets = Preferences::getWidgets($user);
SmartyWrap::assign('detailsVisible', $detailsVisible);
SmartyWrap::assign('userPrefs', $userPrefs);
SmartyWrap::assign('skin', $skin);
SmartyWrap::assign('availableSkins', Config::get('global.skins'));
SmartyWrap::assign('privilegeNames', $PRIV_NAMES);
SmartyWrap::assign('widgets', $widgets);
SmartyWrap::display('preferinte.tpl');
Esempio n. 9
0
{
    $word = Model::factory('DefinitionSimple')->select('d.lexicon')->join('Definition', 'd.id = definitionId', 'd')->where('definitionId', $defId)->find_one();
    return $word->lexicon;
}
function getSimpleDefinitionsForLexemIds($lexemIds)
{
    $defIds = Model::factory('LexemDefinitionMap')->select('DefinitionId')->distinct()->where_in('LexemId', $lexemIds)->find_many();
    $defIds = array_map(function ($def) {
        return $def->DefinitionId;
    }, $defIds);
    $defs = Model::factory('DefinitionSimple')->where_in('DefinitionId', $defIds)->find_many();
    return $defs;
}
$difficulty = util_getRequestParameterWithDefault('d', 0);
$logAnswerId = util_getRequestParameterWithDefault('answerId', 0);
$logGuessed = util_getRequestParameterWithDefault('guessed', 0);
if ($logAnswerId != 0) {
    $log = Model::factory('DefinitionSimple')->select('*')->where('id', $logAnswerId)->find_one();
    $log->millShown++;
    $log->millGuessed = $log->millGuessed + $logGuessed;
    $log->save();
}
$count = Model::factory('DefinitionSimple')->count();
$chosenDef = rand(0, $count - 1);
$answer = rand(1, 4);
$maindef = Model::factory('DefinitionSimple')->limit(1)->offset($chosenDef)->find_one();
$word = getWordForDefitionId($maindef->definitionId);
$options = array();
$options[$answer] = array();
$options[$answer]['term'] = getWordForDefitionId($maindef->definitionId);
$options[$answer]['text'] = $maindef->getDisplayValue();