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); }