$node = Database::get()->querySingle("SELECT lft, rgt from hierarchy WHERE id = ?d", $id); if ($node !== false) { // locate the subtree of the node we want to delete. the subtree contains the node itself $subres = Database::get()->queryArray("SELECT id FROM hierarchy WHERE lft BETWEEN ?d AND ?d", intval($node->lft), intval($node->rgt)); $c = 0; // for each subtree node, check if it has belonging children (courses, users) foreach ($subres as $subnode) { $c += Database::get()->querySingle("SELECT COUNT(*) AS count FROM course_department WHERE department = ?d", intval($subnode->id))->count; $c += Database::get()->querySingle("SELECT COUNT(*) AS count FROM user_department WHERE department = ?d", intval($subnode->id))->count; } if ($c > 0) { // The node cannot be deleted $tool_content .= "<div class='alert alert-danger'>{$langNodeProErase}<br >{$langNodeNoErase}</div>"; } else { // The node can be deleted $tree->deleteNode($id); $tool_content .= "<div class='alert alert-success'>{$langNodeErase}</div>"; } } } elseif (isset($_GET['action']) and $_GET['action'] == 'edit') { $id = intval($_REQUEST['id']); validateNode($id, isDepartmentAdmin()); if (isset($_POST['edit'])) { // Check for empty fields $names = array(); foreach ($session->active_ui_languages as $key => $langcode) { $n = isset($_POST['name-' . $langcode]) ? $_POST['name-' . $langcode] : null; if (!empty($n)) { $names[$langcode] = $n; } }