<?php

require_once "../../phplib/util.php";
util_assertNotMirror();
util_assertNotLoggedIn();
$token = util_getRequestParameter('token');
$identity = util_getRequestParameter('identity');
$pt = PasswordToken::get_by_token($token);
$data = FileCache::get($identity);
if (!$pt) {
    FlashMessage::add('Ați introdus un cod de recuperare incorect.');
} else {
    if ($pt->createDate < time() - 24 * 3600) {
        FlashMessage::add('Codul de recuperare introdus a expirat.');
    } else {
        if (!$data) {
            FlashMessage::add('Ați introdus o identitate incorectă.');
        } else {
            $user = User::get_by_id($pt->userId);
            if (!$user) {
                FlashMessage::add('Ați introdus un cod de recuperare incorect.');
            } else {
                if ($user->identity) {
                    FlashMessage::add('Acest cont a fost deja revendicat de o identitate OpenID.');
                } else {
                    FlashMessage::add('Contul dumneavoastră a fost recuperat și unificat cu identitatea OpenID.', 'info');
                    session_login($user, $data);
                }
            }
        }
    }
Beispiel #2
0
<?php

require_once "../phplib/util.php";
$submitButton = util_getRequestParameter('submitButton');
if ($submitButton) {
    util_assertModerator(PRIV_ADMIN);
    $order = 1;
    $ids = util_getRequestParameter("ids");
    foreach ($ids as $id) {
        $src = Source::get_by_id($id);
        $src->displayOrder = $order++;
        $src->save();
    }
    FlashMessage::add('Ordinea a fost salvată.', 'info');
    util_redirect('surse');
}
$sources = util_isModerator(PRIV_VIEW_HIDDEN) ? Model::factory('Source')->order_by_asc('displayOrder')->find_many() : Model::factory('Source')->where_not_equal('isOfficial', SOURCE_TYPE_HIDDEN)->order_by_asc('displayOrder')->find_many();
smarty_assign('sources', $sources);
smarty_assign('page_title', 'Surse');
smarty_displayCommonPageWithSkin('surse.ihtml');
<?php

require_once "../../phplib/util.php";
util_assertModerator(PRIV_ADMIN);
util_assertNotMirror();
$MAX_AFFECTED = 1000;
$search = util_getRequestParameter('search');
$replace = util_getRequestParameter('replace');
$sourceId = util_getRequestParameter('source');
$realRun = util_getRequestParameter('realRun');
$sourceClause = $sourceId ? "and sourceId = {$sourceId}" : '';
$count = Model::factory('Definition')->where_raw("status = 0 {$sourceClause} and binary internalRep like '%{$search}%'")->count();
if ($count > $MAX_AFFECTED) {
    if ($realRun) {
        FlashMessage::add("{$count} definiții se potrivesc, numai {$MAX_AFFECTED} au fost modificate.", 'info');
    } else {
        FlashMessage::add("{$count} definiții se potrivesc, maxim {$MAX_AFFECTED} vor fi modificate.");
    }
}
$defs = Model::factory('Definition')->where_raw("status = 0 {$sourceClause} and binary internalRep like '%{$search}%'")->order_by_asc('id')->limit($MAX_AFFECTED)->find_many();
$searchResults = SearchResult::mapDefinitionArray($defs);
foreach ($defs as $def) {
    $def->internalRep = str_replace($search, $replace, $def->internalRep);
    $ambiguousMatches = array();
    $def->internalRep = AdminStringUtil::internalizeDefinition($def->internalRep, $def->sourceId, $ambiguousMatches);
    $def->htmlRep = AdminStringUtil::htmlize($def->internalRep, $def->sourceId);
    // Complete or un-complete the abbreviation review
    if (!count($ambiguousMatches) && $def->abbrevReview == ABBREV_AMBIGUOUS) {
        $def->abbrevReview = ABBREV_REVIEW_COMPLETE;
    } else {
        if (count($ambiguousMatches) && $def->abbrevReview == ABBREV_REVIEW_COMPLETE) {
Beispiel #4
0
<?php

require_once "../phplib/util.php";
// Parse or initialize the GET/POST arguments
$nick = util_getRequestParameter('n');
$medalSaveButton = util_getRequestParameter('medalSaveButton');
$userId = util_getRequestParameter('userId');
$medalsGranted = util_getRequestParameter('medalsGranted');
if ($medalSaveButton) {
    util_assertModerator(PRIV_ADMIN);
    $user = User::get_by_id($userId);
    $user->medalMask = Medal::getCanonicalMask(array_sum($medalsGranted));
    $user->save();
    util_redirect(util_getWwwRoot() . "utilizator/{$user->nick}");
}
$user = User::get_by_nick($nick);
if (!$user) {
    FlashMessage::add('Utilizatorul ' . htmlspecialchars($nick) . ' nu există.');
    util_redirect(util_getWwwRoot());
}
$userData = array();
$user->email = StringUtil::scrambleEmail($user->email);
// Find the rank of this user by number of words and number of characters
$topWords = TopEntry::getTopData(CRIT_WORDS, SORT_DESC, true);
$numUsers = count($topWords);
$rankWords = 0;
while ($rankWords < $numUsers && $topWords[$rankWords]->userNick != $nick) {
    $rankWords++;
}
$userData['rank_words'] = $rankWords + 1;
if ($rankWords < $numUsers) {
<?php

require_once "../../phplib/util.php";
$query = util_getRequestParameter('query');
$field = StringUtil::hasDiacritics($query) ? 'formNoAccent' : 'formUtf8General';
$dbResults = Model::factory('InflectedForm')->table_alias('iff')->select('iff.id')->select('iff.form')->select('l.form', 'baseForm')->select('lm.modelType')->select('lm.modelNumber')->select('lm.restriction')->select('i.description')->join('LexemModel', ['iff.lexemModelId', '=', 'lm.id'], 'lm')->join('Lexem', ['lm.lexemId', '=', 'l.id'], 'l')->join('Inflection', ['iff.inflectionId', '=', 'i.id'], 'i')->where_like("iff.{$field}", "{$query}%")->order_by_asc('iff.formNoAccent')->limit(20)->find_many();
$resp = array('results' => array());
foreach ($dbResults as $rec) {
    $resp['results'][] = ['id' => $rec->id, 'form' => $rec->form, 'baseForm' => $rec->baseForm, 'model' => "{$rec->modelType}{$rec->modelNumber}{$rec->restriction}", 'inflection' => $rec->description];
}
print json_encode($resp);
Beispiel #6
0
<?php

require_once "../../phplib/util.php";
util_assertModerator(PRIV_EDIT);
util_assertNotMirror();
$typoId = util_getRequestParameter('id');
$typo = Typo::get_by_id($typoId);
if ($typo) {
    $typo->delete();
}
<?php

require_once "../phplib/util.php";
setlocale(LC_ALL, "ro_RO.utf8");
DebugInfo::disable();
$locVersion = util_getRequestParameter('locVersion');
$modelType = util_getRequestParameter('modelType');
$modelNumber = util_getRequestParameter('modelNumber');
$locVersions = pref_getLocVersions();
if ($locVersion && $modelType && $modelNumber) {
    smarty_assign('selectedLocVersion', $locVersion);
    smarty_assign('selectedModelType', $modelType);
    smarty_assign('selectedModelNumber', $modelNumber);
    LocVersion::changeDatabase($locVersion);
    if ($modelNumber == -1) {
        $modelsToDisplay = FlexModel::loadByType($modelType);
    } else {
        $modelsToDisplay = array(Model::factory('FlexModel')->where('modelType', $modelType)->where('number', $modelNumber)->find_one());
    }
    $lexems = array();
    $paradigms = array();
    foreach ($modelsToDisplay as $m) {
        // Load by canonical model, so if $modelType is V, look for a lexem with type V or VT.
        $l = Model::factory('Lexem')->select('Lexem.*')->join('ModelType', 'modelType = code')->where('canonical', $modelType)->where('modelNumber', $m->number)->where('form', $m->exponent)->limit(1)->find_one();
        if ($l) {
            $paradigm = getExistingForms($l->id, $locVersion);
        } else {
            $l = Lexem::create($m->exponent, $modelType, $m->number, '');
            $l->isLoc = true;
            $paradigm = getNewForms($l, $locVersion);
        }
Beispiel #8
0
<?php

require_once "../phplib/util.php";
require_once "../phplib/ads/adsModule.php";
$cuv = util_getRequestParameter('cuv');
$lexemId = util_getRequestParameter('lexemId');
$defId = util_getRequestParameter('defId');
$sourceUrlName = util_getRequestParameter('source');
$text = util_getRequestIntParameter('text');
$showParadigm = util_getRequestParameter('showParadigm');
$xml = util_getRequestParameter('xml');
$redirect = session_getWithDefault('redirect', false);
$redirectFrom = session_getWithDefault('init_word', '');
session_unsetVariable('redirect');
session_unsetVariable('init_word');
if ($cuv) {
    $cuv = StringUtil::cleanupQuery($cuv);
}
util_redirectToFriendlyUrl($cuv, $sourceUrlName, $text, $showParadigm, $xml);
$searchType = SEARCH_INFLECTED;
$hasDiacritics = session_user_prefers('FORCE_DIACRITICS');
$exclude_unofficial = session_user_prefers('EXCLUDE_UNOFFICIAL');
$hasRegexp = FALSE;
$isAllDigits = FALSE;
$showParadigm = $showParadigm || session_user_prefers('SHOW_PARADIGM');
$paradigmLink = $_SERVER['REQUEST_URI'] . ($showParadigm ? '' : '/paradigma');
$source = $sourceUrlName ? Source::get_by_urlName($sourceUrlName) : null;
$sourceId = $source ? $source->id : null;
if ($cuv) {
    smarty_assign('cuv', $cuv);
    $arr = StringUtil::analyzeQuery($cuv);
<?php

require_once "../../phplib/util.php";
$lexemId = util_getRequestParameter('lexemId');
$defs = Definition::loadByLexemId($lexemId);
$results = array();
foreach ($defs as $def) {
    $htmlRep = str_replace("\n", ' ', $def->htmlRep);
    $source = Source::get_by_id($def->sourceId);
    $results[] = array('id' => $def->id, 'shortName' => $source->shortName, 'status' => $def->getStatusName(), 'htmlRep' => $htmlRep);
}
SmartyWrap::assign('results', $results);
SmartyWrap::displayWithoutSkin('ajax/getDefinitionsForLexem.tpl');
<?php

require_once "../phplib/util.php";
ini_set('max_execution_time', '3600');
define('DB_QUERY', 'select * from Lexem where isLoc order by formNoAccent');
$locVersion = util_getRequestParameter('locVersion');
$newLocVersion = util_getRequestParameter('newLocVersion');
if ($newLocVersion) {
    if ($locVersion == $newLocVersion) {
        FlashMessage::add('Ați selectat aceeași versiune LOC de două ori');
        util_redirect('scrabble-loc');
    }
    $file1 = tempnam('/tmp', 'loc_diff_');
    $file2 = tempnam('/tmp', 'loc_diff_');
    writeLexems($locVersion, $file1);
    writeLexems($newLocVersion, $file2);
    $diff = OS::executeAndReturnOutput("diff {$file1} {$file2} || true");
    print "<pre>\n";
    foreach ($diff as $line) {
        if (StringUtil::startsWith($line, '< ')) {
            print sprintf("<span style=\"color: red\">%s: %s</span>\n", $locVersion, substr($line, 2));
        } else {
            if (StringUtil::startsWith($line, '> ')) {
                print sprintf("<span style=\"color: green\">%s: %s</span>\n", $newLocVersion, substr($line, 2));
            }
        }
    }
    print "</pre>\n";
    util_deleteFile($file1);
    util_deleteFile($file2);
    exit;
$ifs = $lexem->generateParadigm();
$mdMap = ModelDescription::getByModelIdMapByInflectionIdVariantApplOrder($model->id);
$forms = array();
foreach ($inflections as $infl) {
    $forms[$infl->id] = array();
}
foreach ($ifs as $if) {
    $forms[$if->inflectionId][] = array('form' => $if->form, 'isLoc' => $mdMap[$if->inflectionId][$if->variant][0]->isLoc, 'recommended' => $mdMap[$if->inflectionId][$if->variant][0]->recommended);
}
$participleNumber = $modelType == 'V' ? ParticipleModel::loadByVerbModel($modelNumber)->adjectiveModel : '';
if ($previewButton || $confirmButton) {
    // Load the new forms and exponent;
    $newModelNumber = util_getRequestParameter('newModelNumber');
    $newExponent = util_getRequestParameter('newExponent');
    $newDescription = util_getRequestParameter('newDescription');
    $newParticipleNumber = util_getRequestParameter('newParticipleNumber');
    $newForms = array();
    foreach ($inflections as $infl) {
        $newForms[$infl->id] = array();
    }
    readRequest($newForms);
} else {
    $newModelNumber = $modelNumber;
    $newExponent = $exponent;
    $newDescription = $model->description;
    $newParticipleNumber = $participleNumber;
    $newForms = $forms;
}
$exponentAccentAdded = $exponent != $newExponent && str_replace("'", '', $newExponent) == $exponent;
$exponentChanged = $exponent != $newExponent && !$exponentAccentAdded;
$errorMessage = array();
<?php

require_once "../../phplib/util.php";
util_assertNotMirror();
util_assertNotLoggedIn();
$loginType = util_getRequestParameter('loginType');
$nickOrEmail = util_getRequestParameter('nickOrEmail');
$password = util_getRequestParameter('password');
$nick = util_getRequestParameter('nick');
$randString = util_getRequestParameter('randString');
$data = FileCache::get($randString);
if (!$data) {
    FlashMessage::add('A apărut o eroare la autentificare. Vă rugăm încercați din nou.');
} else {
    if ($loginType == 0) {
        $user = Model::factory('User')->where('password', md5($password))->where_raw("(email = '{$nickOrEmail}' or nick = '{$nickOrEmail}')")->find_one();
        if (!$user) {
            FlashMessage::add('Numele de utilizator sau parola sunt incorecte.');
        } else {
            if ($user->identity) {
                FlashMessage::add('Acest utilizator a fost deja revendicat de un alt OpenID.');
            } else {
                session_login($user, $data);
            }
        }
    } else {
        $openidNick = $loginType == 1 ? $data['fullname'] : ($loginType == 2 ? $data['nickname'] : $nick);
        $user = User::get_by_nick($openidNick);
        if ($user) {
            FlashMessage::add('Acest nume de utilizator este deja luat.');
        } else {
Beispiel #13
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 {
<?php

require_once "../../phplib/util.php";
util_assertModerator(PRIV_EDIT);
util_assertNotMirror();
$submitButton = util_getRequestParameter('submitButton');
if ($submitButton) {
    foreach ($_REQUEST as $name => $position) {
        if (StringUtil::startsWith($name, 'position_')) {
            $parts = preg_split('/_/', $name);
            assert(count($parts) == 2);
            assert($parts[0] == 'position');
            $lexem = Lexem::get_by_id($parts[1]);
            $noAccent = util_getRequestParameter('noAccent_' . $lexem->id);
            if ($noAccent) {
                $lexem->noAccent = 1;
                $lexem->save();
            } else {
                if ($position != -1) {
                    $lexem->form = mb_substr($lexem->form, 0, $position) . "'" . mb_substr($lexem->form, $position);
                    $lexem->save();
                    foreach ($lexem->getLexemModels() as $lm) {
                        $lm->regenerateParadigm();
                    }
                }
            }
        }
    }
    util_redirect("placeAccents.php");
}
$chars = array();
<?php

require_once "../../phplib/util.php";
util_assertNotMirror();
util_assertNotLoggedIn();
$error = util_getRequestParameter('error');
$errorDescription = util_getRequestParameter('error_description');
$code = util_getRequestParameter('code');
$state = util_getRequestParameter('state');
$provider = session_get('openid_connect_provider');
try {
    $oidc = new OpenIDConnect($provider);
    if ($error) {
        throw new OpenIDException($errorDescription);
    }
    if (!$code || !$state || $state != session_get('openid_connect_state')) {
        throw new OpenIDException('Răspuns incorect de la server');
    }
    if (!$provider) {
        throw new OpenIDException('Sesiune coruptă');
    }
    $token = $oidc->requestToken($code);
    $data = $oidc->getUserInfo($token);
    if (!isset($data['sub'])) {
        throw new OpenIDException('Date incorecte de la furnizor');
    }
} catch (OpenIDException $e) {
    FlashMessage::add('Eroare la autentificare: ' . $e->getMessage());
    util_redirect('login.php');
}
// With OpenID connect, the user is uniquely identified by (provider, sub).
<?php

require_once "../phplib/util.php";
require_once "../phplib/userPreferences.php";
util_assertNotLoggedIn();
$sendButton = util_getRequestParameter('send');
if ($sendButton) {
    $userPrefs = util_getRequestCheckboxArray('userPrefs', ',');
    $skin = util_getRequestParameter('skin');
    session_setAnonymousPrefs($userPrefs);
    if (session_isValidSkin($skin)) {
        session_setSkin($skin);
    }
    FlashMessage::add('Preferințele au fost salvate.', 'info');
    util_redirect('preferinte');
} else {
    $userPrefs = session_getAnonymousPrefs();
    $skin = session_getSkin();
}
foreach (preg_split('/,/', $userPrefs) as $pref) {
    if (isset($userPreferencesSet[$pref])) {
        $userPreferencesSet[$pref]['checked'] = true;
    }
}
smarty_assign('userPrefs', $userPreferencesSet);
smarty_assign('skin', $skin);
smarty_assign('availableSkins', pref_getServerPreference('skins'));
smarty_assign('page_title', 'Preferințe');
smarty_displayCommonPageWithSkin('preferinte.ihtml');
<?php

require_once "../../phplib/util.php";
util_assertModerator(PRIV_EDIT);
util_assertNotMirror();
$reportId = util_getRequestParameter('report');
switch ($reportId) {
    case 'unassociatedLexems':
        echo count(Lexem::loadUnassociated());
        break;
    case 'unassociatedDefinitions':
        echo Definition::countUnassociated();
        break;
    case 'definitionsWithTypos':
        echo Model::factory('Typo')->select('definitionId')->distinct()->count();
        break;
    case 'temporaryDefinitions':
        echo Definition::countByStatus(ST_PENDING);
        break;
    case 'temporaryLexems':
        echo Model::factory('Lexem')->where('modelType', 'T')->count();
        break;
    case 'lexemsWithComments':
        echo Model::factory('Lexem')->where_not_equal('comment', '')->count();
        break;
    case 'lexemsWithoutAccents':
        echo Model::factory('Lexem')->where_raw("form not rlike '\\''")->where('noAccent', false)->count();
        break;
    case 'wotd':
        echo Model::factory('WordOfTheDay')->count();
        break;
<?php

require_once "../../phplib/util.php";
$locVersion = util_getRequestParameter('locVersion');
$canonical = util_getRequestParameter('canonical');
LocVersion::changeDatabase($locVersion);
if ($canonical) {
    $modelTypes = ModelType::loadCanonical();
} else {
    $modelTypes = Model::factory('ModelType')->order_by_asc('code')->find_many();
}
$resp = array();
foreach ($modelTypes as $m) {
    $resp[] = array('code' => $m->code, 'description' => $m->description);
}
print json_encode($resp);
Beispiel #19
0
<?php

require_once "../../phplib/util.php";
util_assertModerator(PRIV_EDIT);
util_assertNotMirror();
RecentLink::createOrUpdate('Greșeli de tipar');
$sourceClause = '';
$sourceId = 0;
$sourceUrlName = util_getRequestParameter('source');
if ($sourceUrlName) {
    $source = $sourceUrlName ? Source::get_by_urlName($sourceUrlName) : null;
    $sourceId = $source ? $source->id : 0;
    $sourceClause = $source ? "sourceId = {$sourceId} and " : '';
    SmartyWrap::assign('src_selected', $sourceId);
}
$defs = Model::factory('Definition')->raw_query("select * from Definition where {$sourceClause} id in (select definitionId from Typo) order by lexicon")->find_many();
SmartyWrap::assign('searchResults', SearchResult::mapDefinitionArray($defs));
SmartyWrap::assign('recentLinks', RecentLink::loadForUser());
SmartyWrap::displayAdminPage('admin/viewTypos.tpl');
Beispiel #20
0
<?php

require_once "../../phplib/util.php";
util_assertModerator(PRIV_EDIT);
util_assertNotMirror();
$form = util_getRequestParameter('form');
$sourceId = util_getRequestParameter('source');
$loc = util_getRequestParameter('loc');
$paradigm = util_getRequestParameter('paradigm');
$structStatus = util_getRequestParameter('structStatus');
$nick = util_getRequestParameter('nick');
$searchButton = util_getRequestParameter('searchButton');
if (!$searchButton) {
    util_redirect('index.php');
}
$where = array();
$joins = array();
// Process the $form argument
$form = StringUtil::cleanupQuery($form);
list($hasDiacritics, $hasRegexp, $ignored) = StringUtil::analyzeQuery($form);
$field = $hasDiacritics ? 'formNoAccent' : 'formUtf8General';
if ($hasRegexp) {
    $fieldValue = StringUtil::dexRegexpToMysqlRegexp($form);
} else {
    $fieldValue = "= '{$form}'";
}
$where[] = "{$field} {$fieldValue}";
// Process the $sourceId argument
if ($sourceId) {
    $joins['definition'] = true;
    $where[] = "sourceId = {$sourceId}";
Beispiel #21
0
        if (StringUtil::startsWith($name, 'lexem_')) {
            $parts = preg_split('/_/', $name);
            assert(count($parts) == 2);
            assert($parts[0] == 'lexem');
            $lexem = Lexem::get_by_id($parts[1]);
            if ($modelId) {
                $parts = preg_split('/_/', $modelId);
                assert(count($parts) == 2);
                $lm = $lexem->getFirstLexemModel();
                $lm->modelType = $parts[0];
                $lm->modelNumber = $parts[1];
                $lm->restriction = util_getRequestParameter('restr_' . $lexem->id);
                $lm->save();
                $lm->regenerateParadigm();
            } else {
                $lexem->comment = util_getRequestParameter('comment_' . $lexem->id);
                $lexem->save();
            }
        }
    }
    util_redirect("bulkLabel.php?suffix={$suffix}");
}
$reverseSuffix = StringUtil::reverse($suffix);
RecentLink::createOrUpdate("Etichetare asistată: -{$suffix}");
$numLabeled = Model::factory('Lexem')->table_alias('l')->join('LexemModel', 'lm.lexemId = l.id', 'lm')->where_not_equal('lm.modelType', 'T')->where_like('l.reverse', "{$reverseSuffix}%")->count();
// Collect all the models that appear in at least 5% of the already
// labeled lexems. Always select at least one model, in the unlikely case
// that no model has over 5%.
$models = array();
$hasInvariableModel = false;
$dbResult = db_execute("select canonical, modelNumber, count(*) as c " . "from Lexem " . "join LexemModel on lexemId = Lexem.id " . "join ModelType on modelType = code " . "where modelType != 'T' " . "and reverse like '{$reverseSuffix}%' " . "group by canonical, modelNumber " . "order by c desc", PDO::FETCH_ASSOC);
<?php

require_once "../../phplib/util.php";
ini_set('max_execution_time', '3600');
util_assertModerator(PRIV_LOC);
util_assertNotMirror();
DebugInfo::disable();
$modelType = util_getRequestParameter('modelType');
$modelNumber = util_getRequestParameter('modelNumber');
$deleteButton = util_getRequestParameter('deleteButton');
$model = Model::factory('FlexModel')->where('modelType', $modelType)->where('number', $modelNumber)->find_one();
$lexems = Lexem::loadByCanonicalModel($modelType, $modelNumber);
if ($deleteButton) {
    foreach ($lexems as $lexem) {
        $lexem->modelType = 'T';
        $lexem->modelNumber = '1';
        $lexem->restriction = '';
        $lexem->save();
        $lexem->regenerateParadigm();
    }
    $model->delete();
    util_redirect('../admin/index.php');
    exit;
}
RecentLink::createOrUpdate("Ștergere model: {$model}");
smarty_assign('modelType', $modelType);
smarty_assign('modelNumber', $modelNumber);
smarty_assign('lexems', $lexems);
smarty_assign('recentLinks', RecentLink::loadForUser());
smarty_displayWithoutSkin('flex/deleteModel.ihtml');
Beispiel #23
0
<?php

require_once "../phplib/util.php";
define('TYPE_SHOW_ONLY_VERBS', 'conjugare');
define('TYPE_SHOW_NO_VERBS', 'declinare');
$cuv = util_getRequestParameter('cuv');
$lexemId = util_getRequestParameter('lexemId');
$ajax = util_getRequestParameter('ajax');
$type = util_getRequestParameter('type');
$searchType = SEARCH_INFLECTED;
$arr = StringUtil::analyzeQuery($cuv);
$hasDiacritics = session_user_prefers(Preferences::FORCE_DIACRITICS) || $arr[0];
// LexemId search
if ($lexemId) {
    $searchType = SEARCH_LEXEM_ID;
    SmartyWrap::assign('lexemId', $lexemId);
    if (!StringUtil::validateAlphabet($lexemId, '0123456789')) {
        $lexemId = '';
    }
    $lexem = Lexem::get_by_id($lexemId);
    if ($lexem) {
        $lexems = array($lexem);
        $cuv = $lexem->formNoAccent;
    } else {
        $lexems = array();
        $cuv = NULL;
    }
}
if ($lexemId) {
    SmartyWrap::assign('paradigmLink', util_getWwwRoot() . "lexem/{$cuv}/{$lexemId}/paradigma");
} else {
Beispiel #24
0
<?php

require_once "../../phplib/util.php";
ini_set('max_execution_time', '3600');
ini_set('memory_limit', '256M');
util_assertModerator(PRIV_LOC);
util_assertNotMirror();
DebugInfo::disable();
$modelType = util_getRequestParameter('modelType');
$modelNumber = util_getRequestParameter('modelNumber');
$newModelNumber = util_getRequestParameter('newModelNumber');
$chooseLexems = util_getRequestParameter('chooseLexems');
$lexemModelIds = util_getRequestParameter('lexemModelId');
$cloneButton = util_getRequestParameter('cloneButton');
$errorMessages = array();
if ($cloneButton) {
    // Disallow duplicate model numbers
    $m = FlexModel::loadCanonicalByTypeNumber($modelType, $newModelNumber);
    if ($m) {
        $errorMessages[] = "Modelul {$modelType}{$newModelNumber} există deja.";
    }
    if (!$newModelNumber) {
        $errorMessages[] = "Numărul modelului nu poate fi vid.";
    }
    if (!count($errorMessages)) {
        // Clone the model
        $model = Model::factory('FlexModel')->where('modelType', $modelType)->where('number', $modelNumber)->find_one();
        $cloneModel = FlexModel::create($modelType, $newModelNumber, "Clonat după {$modelType}{$modelNumber}", $model->exponent);
        $cloneModel->save();
        // Clone the model descriptions
        $mds = Model::factory('ModelDescription')->where('modelId', $model->id)->order_by_asc('inflectionId')->order_by_asc('variant')->order_by_asc('applOrder')->find_many();
Beispiel #25
0
require_once '../../phplib/util.php';
util_assertModerator(PRIV_VISUAL);
util_assertNotMirror();
RecentLink::createOrUpdate('Etichetare Imagini Definiții');
$fileName = util_getRequestParameter('fileName');
$id = util_getRequestParameter('id');
$lexemId = util_getRequestParameter('lexemId');
$revised = util_getBoolean('revised');
$saveButton = util_getRequestParameter('saveButton');
$tagLexemId = util_getRequestParameter('tagLexemId');
$tagLabel = util_getRequestParameter('tagLabel');
$textXCoord = util_getRequestParameter('textXCoord');
$textYCoord = util_getRequestParameter('textYCoord');
$imgXCoord = util_getRequestParameter('imgXCoord');
$imgYCoord = util_getRequestParameter('imgYCoord');
$addTagButton = util_getRequestParameter('addTagButton');
// Tag the image specified by $fileName. Create a Visual object if one doesn't exist, then redirect to it.
if ($fileName) {
    $v = Visual::get_by_path($fileName);
    if (!$v) {
        $v = Visual::createFromFile($fileName);
    }
    util_redirect("?id={$v->id}");
}
$v = Visual::get_by_id($id);
if ($saveButton) {
    $v->lexemeId = $lexemId;
    $v->revised = $revised;
    $v->save();
    util_redirect("?id={$v->id}");
}
<?php

require_once "../../phplib/util.php";
util_assertModerator(PRIV_EDIT);
util_assertNotMirror();
$submitButton = util_getRequestParameter('submitButton');
if ($submitButton) {
    $defId = util_getRequestParameter('definitionId');
    $def = Definition::get_by_id($defId);
    // Collect the user choices
    $choices = array();
    foreach ($_REQUEST as $name => $value) {
        if (StringUtil::startsWith($name, 'radio_')) {
            $choices[substr($name, 6)] = $value;
        }
    }
    // Collect the positions of ambiguous abbreviations
    $matches = array();
    AdminStringUtil::markAbbreviations($def->internalRep, $def->sourceId, $matches);
    usort($matches, 'positionCmp');
    $s = $def->internalRep;
    foreach ($matches as $i => $m) {
        if ($choices[count($choices) - 1 - $i] == 'abbrev') {
            $orig = substr($s, $m['position'], $m['length']);
            $replacement = StringUtil::isUppercase(StringUtil::getCharAt($orig, 0)) ? AdminStringUtil::capitalize($m['abbrev']) : $m['abbrev'];
            $s = substr_replace($s, "#{$replacement}#", $m['position'], $m['length']);
        }
    }
    $def->internalRep = $s;
    $def->htmlRep = AdminStringUtil::htmlize($def->internalRep, $def->sourceId);
    $def->abbrevReview = ABBREV_REVIEW_COMPLETE;
<?php

require_once "../phplib/util.php";
util_assertNotMirror();
$lexemNames = util_getRequestParameter('lexemNames');
$sourceId = util_getRequestParameter('source');
$def = util_getRequestParameter('def');
$sendButton = util_getRequestParameter('send');
if ($sendButton) {
    session_setSourceCookie($sourceId);
    $ambiguousMatches = array();
    $def = AdminStringUtil::internalizeDefinition($def, $sourceId, $ambiguousMatches);
    $lexemNames = deleteEmptyElements($lexemNames);
    $errorMessage = '';
    if (!count($lexemNames)) {
        $errorMessage = 'Trebuie să introduceți un cuvânt-titlu.';
    } else {
        if (!$def) {
            $errorMessage = 'Trebuie să introduceți o definiție.';
        } else {
            if (StringUtil::isSpam($def)) {
                $errorMessage = 'Definiția dumneavoastră este spam.';
            }
        }
    }
    if ($errorMessage) {
        smarty_assign('lexemNames', $lexemNames);
        smarty_assign('sourceId', $sourceId);
        smarty_assign('def', $def);
        FlashMessage::add($errorMessage);
        smarty_assign('previewDivContent', AdminStringUtil::htmlize($def, $sourceId));
Beispiel #28
0
<?php

require_once "../../phplib/util.php";
util_assertModerator(PRIV_EDIT);
util_assertNotMirror();
DebugInfo::disable();
$prefix = util_getRequestParameter('prefix');
$submitButton = util_getRequestParameter('submitButton');
if ($submitButton) {
    // Collect all affected lexems beforehand
    $lexemMap = array();
    $errorMap = array();
    $deleteMap = array();
    foreach ($_REQUEST as $name => $value) {
        if ((StringUtil::startsWith($name, 'caps_') || StringUtil::startsWith($name, 'model_') || StringUtil::startsWith($name, 'comment_') || StringUtil::startsWith($name, 'singular_') || StringUtil::startsWith($name, 'plural_') || StringUtil::startsWith($name, 'verifSp_') || StringUtil::startsWith($name, 'delete_') || StringUtil::startsWith($name, 'deleteConfirm_')) && $value) {
            $parts = preg_split('/_/', $name);
            assert(count($parts) == 2);
            $lexemId = $parts[1];
            if (!array_key_exists($lexemId, $lexemMap)) {
                $lexemMap[$lexemId] = Lexem::get_by_id($lexemId);
            }
            $l = $lexemMap[$lexemId];
            $lm = $l->getFirstLexemModel();
            switch ($parts[0]) {
                case 'caps':
                    if (StringUtil::startsWith($l->form, "'")) {
                        $l->form = "'" . AdminStringUtil::capitalize(mb_substr($l->form, 1));
                    } else {
                        $l->form = AdminStringUtil::capitalize($l->form);
                    }
                    $l->formNoAccent = str_replace("'", '', $l->form);
<?php

require_once "../../phplib/util.php";
$modelType = util_getRequestParameter('modelType');
$locVersion = util_getRequestParameter('locVersion');
if ($locVersion) {
    LocVersion::changeDatabase($locVersion);
}
$models = FlexModel::loadByType($modelType);
foreach ($models as $m) {
    print "{$m->id}\n{$m->number}\n{$m->exponent}\n";
}
Beispiel #30
0
<?php

require_once "../phplib/util.php";
$user = session_getUser();
if (!$user) {
    FlashMessage::add('Nu puteți alege o imagine de profil dacă nu sunteți autentificat.');
    util_redirect(util_getWwwRoot());
}
define('AVATAR_RESOLUTION', 48);
define('AVATAR_QUALITY', 100);
$AVATAR_REMOTE_FILE = "/img/user/{$user->id}.jpg";
$AVATAR_RAW_GLOB = util_getRootPath() . "wwwbase/img/generated/{$user->id}_raw.*";
$x0 = util_getRequestParameter('x0');
$y0 = util_getRequestParameter('y0');
$side = util_getRequestParameter('side');
$delete = util_getRequestParameter('delete');
if ($delete) {
    $f = new FtpUtil();
    $f->staticServerDelete($AVATAR_REMOTE_FILE);
    $user->hasAvatar = 0;
    $user->save();
    FlashMessage::add('Imaginea a fost ștearsă.', 'info');
    util_redirect('preferinte');
}
$rawFileList = glob($AVATAR_RAW_GLOB);
if (empty($rawFileList)) {
    FlashMessage::add('Imaginea dumneavoastră de profil nu mai există. Vă rugăm să o reîncărcați.');
    util_redirect(util_getWwwRoot());
}
$rawFileName = $rawFileList[0];
$canvas = imagecreatetruecolor(AVATAR_RESOLUTION, AVATAR_RESOLUTION);