diff --git a/e107_admin/userclass2.php b/e107_admin/userclass2.php index 4f9821c96..5957e7cdb 100644 --- a/e107_admin/userclass2.php +++ b/e107_admin/userclass2.php @@ -11,8 +11,8 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_admin/userclass2.php,v $ -| $Revision: 1.6 $ -| $Date: 2008-01-09 22:44:05 $ +| $Revision: 1.7 $ +| $Date: 2008-01-13 17:47:27 $ | $Author: e107steved $ +----------------------------------------------------------------------------+ */ @@ -100,7 +100,7 @@ if (isset($_POST['delete'])) } elseif ($_POST['confirm']) { - if ($e_userclass->delete_class($class_id)) + if ($e_userclass->delete_class($class_id) !== FALSE) { // $sql->db_Delete('userclass_classes', "userclass_id='".$class_id."' "); userclass2_adminlog("AL_UC_LAN_02","ID:{$class_id} (".$e_userclass->uc_get_classname($class_id).")",2); @@ -121,7 +121,7 @@ if (isset($_POST['delete'])) } else { - $message = UCSLAN_4; + $message = UCSLAN_10; } } else diff --git a/e107_handlers/userclass_class.php b/e107_handlers/userclass_class.php index c60964861..635eb5296 100644 --- a/e107_handlers/userclass_class.php +++ b/e107_handlers/userclass_class.php @@ -11,8 +11,8 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_handlers/userclass_class.php,v $ -| $Revision: 1.10 $ -| $Date: 2008-01-09 22:44:05 $ +| $Revision: 1.11 $ +| $Date: 2008-01-13 17:47:27 $ | $Author: e107steved $ +----------------------------------------------------------------------------+ */ @@ -932,8 +932,16 @@ class user_class_admin extends user_class function delete_class($class_id) { if (in_array($class_id, $this->fixed_list)) return FALSE; // Some classes can't be deleted - if (isset($this->class_list[$class_id]) && count($this->class_list[$class_id]['class_children'])) return FALSE; // Can't delete class with descendants - return $this->sql_r->db_Delete('userclass_classes', "`userclass_id`='{$class_id}'"); + if (!isset($this->class_tree[$class_id])) return FALSE; + if (count($this->class_tree[$class_id]['class_children'])) return FALSE; // Can't delete class with descendants + foreach ($this->class_tree as $c) + { + if ($c['userclass_editclass'] == $class_id) return FALSE; + if ($c['userclass_visibility'] == $class_id) return FALSE; + } + if (!$this->sql_r->db_Delete('userclass_classes', "`userclass_id`='{$class_id}'")) return FALSE; + $this->read_tree(TRUE); // Re-read the class tree + return TRUE; } diff --git a/e107_languages/English/admin/lan_userclass2.php b/e107_languages/English/admin/lan_userclass2.php index 352e22cd7..2c0a835bb 100644 --- a/e107_languages/English/admin/lan_userclass2.php +++ b/e107_languages/English/admin/lan_userclass2.php @@ -4,8 +4,8 @@ | e107 website system - Language File. | | $Source: /cvs_backup/e107_0.8/e107_languages/English/admin/lan_userclass2.php,v $ -| $Revision: 1.2 $ -| $Date: 2007-12-22 12:39:24 $ +| $Revision: 1.3 $ +| $Date: 2008-01-13 17:47:35 $ | $Author: e107steved $ +----------------------------------------------------------------------------+ */ @@ -18,7 +18,7 @@ define("UCSLAN_6", "Class saved to database."); define("UCSLAN_7", "No user classes yet."); define("UCSLAN_8", "Existing Classes"); define("UCSLAN_9", "No Icon"); -// define("UCSLAN_10", "Delete"); +define('UCSLAN_10', 'Class not deleted - it is a core class, or is used in the definition of another class, as either parent or edit class'); define("UCSLAN_11", "tick to confirm"); define("UCSLAN_12", "Class Name"); define("UCSLAN_13", "Class Description");