/** * Convert a tree produced by the tree editor to the format used by loadTree. * We need this in case validation fails and we cannot save the tree, so we need to display it again. **/ static function convertTree($meanings) { $meaningStack = array(); $results = array(); foreach ($meanings as $tuple) { $row = array(); $m = $tuple->id ? self::get_by_id($tuple->id) : Model::factory('Meaning')->create(); $m->internalRep = $tuple->internalRep; $m->htmlRep = AdminStringUtil::htmlize($m->internalRep, 0); $m->internalEtymology = $tuple->internalEtymology; $m->htmlEtymology = AdminStringUtil::htmlize($m->internalEtymology, 0); $m->internalComment = $tuple->internalComment; $m->htmlComment = AdminStringUtil::htmlize($m->internalComment, 0); $row['meaning'] = $m; $row['sources'] = Source::loadByIds(StringUtil::explode(',', $tuple->sourceIds)); $row['tags'] = MeaningTag::loadByIds(StringUtil::explode(',', $tuple->meaningTagIds)); $row['relations'] = Relation::loadRelatedLexems($tuple->relationIds); $row['children'] = array(); if ($tuple->level) { $meaningStack[$tuple->level - 1]['children'][] =& $row; } else { $results[] =& $row; } $meaningStack[$tuple->level] =& $row; unset($row); } return $results; }
$deleteId = util_getRequestParameter('deleteId'); $submitButton = util_getRequestParameter('submitButton'); if ($deleteId) { $mt = MeaningTag::get_by_id($deleteId); $mtms = MeaningTagMap::get_all_by_meaningTagId($mt->id); if (count($mtms)) { FlashMessage::add("Nu pot șterge eticheta «{$mt->value}», deoarece unele sensuri o folosesc.", 'error'); } else { $mt->delete(); FlashMessage::add("Am șters eticheta «{$mt->value}».", 'info'); } util_redirect('etichete-sensuri'); } if ($submitButton) { util_assertModerator(PRIV_ADMIN); $values = explode(',', $value); foreach ($values as $value) { $value = trim($value); if ($value && !MeaningTag::get_by_value($value)) { $mt = Model::factory('MeaningTag')->create(); $mt->value = $value; $mt->save(); } } FlashMessage::add('Etichetele au fost salvate.', 'info'); util_redirect('etichete-sensuri'); } $meaningTags = Model::factory('MeaningTag')->order_by_asc('value')->find_many(); SmartyWrap::assign('meaningTags', $meaningTags); SmartyWrap::assign('page_title', 'Etichete pentru sensuri'); SmartyWrap::display('etichete-sensuri.ihtml');