<?php $lexemIds = db_getArray('select distinct lexemId from Meaning'); foreach ($lexemIds as $lexemId) { $t = Meaning::loadTree($lexemId); renumber($t, ''); } /**************************************************************************/ function renumber($t, $prefix) { if (empty($t)) { return; } if ($prefix) { $prefix .= '.'; } foreach ($t as $i => $tuple) { $m = $tuple['meaning']; $m->breadcrumb = $prefix . ($i + 1); $m->save(); renumber($tuple['children'], $m->breadcrumb); } }
log_userLog("Edited lexem {$lexem->id} ({$lexem->form})"); util_redirect("lexemEdit.php?lexemId={$lexem->id}"); } } else { // Case 2: Validation failed } // Case 1-2: Page was submitted SmartyWrap::assign('variantIds', $variantIds); SmartyWrap::assign('meanings', Meaning::convertTree($meanings)); } else { // Case 3: First time loading this page foreach ($lexem->getLexemModels() as $lm) { $lm->loadInflectedFormMap(); } SmartyWrap::assign('variantIds', $lexem->getVariantIds()); SmartyWrap::assign('meanings', Meaning::loadTree($lexem->id)); } $definitions = Definition::loadByLexemId($lexem->id); foreach ($definitions as $def) { $def->internalRepAbbrev = AdminStringUtil::expandAbbreviations($def->internalRep, $def->sourceId); $def->htmlRepAbbrev = AdminStringUtil::htmlize($def->internalRepAbbrev, $def->sourceId); } $searchResults = SearchResult::mapDefinitionArray($definitions); $definitionLexem = mb_strtoupper(AdminStringUtil::internalize($lexem->form, false)); $meaningTags = Model::factory('MeaningTag')->order_by_asc('value')->find_many(); $ss = $lexem->structStatus; $oss = $original->structStatus; // syntactic sugar $canEdit = array('general' => util_isModerator(PRIV_EDIT), 'defStructured' => util_isModerator(PRIV_EDIT), 'description' => util_isModerator(PRIV_EDIT), 'form' => !$lexem->isLoc() || util_isModerator(PRIV_LOC), 'hyphenations' => $ss == Lexem::STRUCT_STATUS_IN_PROGRESS || util_isModerator(PRIV_EDIT), 'loc' => (int) util_isModerator(PRIV_LOC), 'meanings' => $ss == Lexem::STRUCT_STATUS_IN_PROGRESS || util_isModerator(PRIV_EDIT), 'paradigm' => util_isModerator(PRIV_EDIT), 'pronunciations' => $ss == Lexem::STRUCT_STATUS_IN_PROGRESS || util_isModerator(PRIV_EDIT), 'sources' => util_isModerator(PRIV_LOC | PRIV_EDIT), 'structStatus' => $oss == Lexem::STRUCT_STATUS_NEW || $oss == Lexem::STRUCT_STATUS_IN_PROGRESS || util_isModerator(PRIV_EDIT), 'tags' => util_isModerator(PRIV_LOC | PRIV_EDIT), 'variants' => $ss == Lexem::STRUCT_STATUS_IN_PROGRESS || util_isModerator(PRIV_EDIT)); // Prepare a list of models for each LexemModel, to be used in the paradigm drop-down. $models = array();