# Written and Designed by James Hunt # # This file is part of Exponent # # Exponent is free software; you can redistribute # it and/or modify it under the terms of the GNU # General Public License as published by the Free # Software Foundation; either version 2 of the # License, or (at your option) any later version. # # GPL: http://www.gnu.org/licenses/gpl.txt # ################################################## if (!defined('EXPONENT')) { exit(''); } if ($user->is_admin == 1 || $user->is_acting_admin == 1) { $section = $db->selectObject('section', 'id=' . intval($_GET['id'])); if ($section) { navigationmodule::deleteLevel($section->id); $db->delete('section', 'id=' . $section->id); $db->decrement('section', 'rank', 1, 'rank > ' . $section->rank . ' AND parent=' . $section->parent); expSession::clearAllUsersSessionCache('navigationmodule'); expHistory::back(); // redirect_to($_SERVER['HTTP_REFERER'].'#tab=1'); } else { echo SITE_403_HTML; } } else { echo SITE_404_HTML; }
function deleteLevel($parent) { global $db; $kids = $db->selectObjects('section', 'parent=$parent'); foreach ($kids as $kid) { navigationmodule::deleteLevel($kid->id); } $secrefs = $db->selectObjects('sectionref', 'section=' . $parent); foreach ($secrefs as $secref) { $loc = pathos_core_makeLocation($secref->module, $secref->source, $secref->internal); pathos_core_decrementLocationReference($loc, $parent); foreach ($db->selectObjects('locationref', "module='" . $secref->module . "' AND source='" . $secref->source . "' AND internal='" . $secref->internal . "' AND refcount = 0") as $locref) { if (class_exists($locref->module)) { $modclass = $locref->module; $mod = new $modclass(); $mod->deleteIn(pathos_core_makeLocation($locref->module, $locref->source, $locref->internal)); } } $db->delete('locationref', "module='" . $secref->module . "' AND source='" . $secref->source . "' AND internal='" . $secref->internal . "' AND refcount = 0"); } $db->delete('sectionref', 'section=' . $parent); $db->delete('section', 'parent=$parent'); }
static function deleteLevel($parent) { global $db; $kids = $db->selectObjects('section', 'parent=' . $parent); foreach ($kids as $kid) { navigationmodule::deleteLevel($kid->id); } $secrefs = $db->selectObjects('sectionref', 'section=' . $parent); foreach ($secrefs as $secref) { $loc = expCore::makeLocation($secref->module, $secref->source, $secref->internal); expCore::decrementLocationReference($loc, $parent); if (class_exists($secref->module)) { $modclass = $secref->module; //FIXME: more module/controller glue code if (expModules::controllerExists($modclass)) { $mod = new $modclass($iloc->src); $mod->delete_instance(); } else { $mod = new $modclass(); $mod->deleteIn($loc); } } } $db->delete('sectionref', 'section=' . $parent); $db->delete('section', 'parent=' . $parent); }