function delete($mode, $mode_params = 0, $content_removed = 0, $cats_removed = 0) { // deletes the categorie assigned with this object from the database global $db, $config_vars, $userdata; if (isset($this->id)) { $keep = false; // check if user has permission to do that $parent_cat = new categorie(); $parent_cat->generate_from_id($this->parent_id); if (check_cat_action_allowed($parent_cat->get_catgroup_id(), $userdata['user_id'], 'cat_remove')) { if ($mode == CDM_MOVE_CONTENT) { // check if user has right to edit all content in this categorie // move content in this categorie to the cat with id $mode_params // wie genau soll man hier mit den perms umgehen ?? } else { // check if there is content to be removed $content = get_content_of_cat($this->id); if (is_array($content)) { // check is user is allowed to do that if (check_cat_action_allowed($this->catgroup_id, $userdata['user_id'], 'content_remove')) { // there is content to be removed for ($i = 0; $i < sizeof($content); $i++) { if ($content[$i]->remove_from_cat($this->id) == OP_SUCCESSFUL and $content[$i]->commit()) { $content_removed++; } else { // not all content was removed do not delete this cat $keep = true; } } } else { $keep = true; } } // check if user is allowed th remove cats from this cat $cats = get_cats_of_cat($this->id); if (is_array($cats)) { // there are cats to be removed if (check_cat_action_allowed($this->catgroup_id, $userdata['user_id'], 'cat_remove')) { for ($i = 0; $i < sizeof($cats); $i++) { if ($cats[$i]->delete($mode, $mode_params, $content_removed, $cats_removed) == OP_SUCCESSFUL) { $cats_removed++; } else { // not all cats were removed do not delete this cat } } } else { $keep = true; } } // delete content of the cat } if (!$keep) { $sql = 'DELETE FROM ' . $config_vars['table_prefix'] . "cats where id like {$this->id}"; if (!($result = $db->sql_query($sql))) { $error = new phreak_error(E_WARNING, SQL_ERROR, __LINE__, __FILE__, 'delete', $this->id, 0, 0, $sql); $error->commit(); // error_report(SQL_ERROR, 'delete' , __LINE__, __FILE__,$sql); } unset($this->id); return OP_SUCCESSFUL; } return OP_PARTLY_SUCCESSFUL; } else { return OP_NP_MISSING_DELETE; } } else { return OP_NOT_IN_DB; } }
function delete() { global $db, $config_vars, $userdata; // remove from content table // check is user is allowed $cat = new categorie(); $cat->generate_from_id($this->owner_id); if ($userdata['user_id'] == $this->user_id or check_cat_action_allowed($cat->get_catgroup_id(), $userdata['user_id'], 'content_edit')) { $sql = "DELETE FROM " . $config_vars['table_prefix'] . "cat_comments WHERE id = " . $this->id; if (!($result = $db->sql_query($sql))) { error_report(SQL_ERROR, 'delete', __LINE__, __FILE__, $sql); } $cat->dec_child_comments_amount(); $cat->commit(); unset($this->id); } }
$child_cat_infos[$i]['id'] = $child_cats[$i]->get_id(); $child_cat_infos[$i]['parent_id'] = $child_cats[$i]->get_parent_id(); $child_cat_infos[$i]['name'] = htmlspecialchars($child_cats[$i]->get_name()); $child_cat_infos[$i]['description'] = htmlspecialchars($child_cats[$i]->get_description()); $child_cat_infos[$i]['content_amount'] = $child_cats[$i]->get_content_amount(); $child_cat_infos[$i]['content_child_amount'] = $child_cats[$i]->get_child_content_amount() - $child_cat_infos[$i]['content_amount']; $child_cat_infos[$i]['current_rating'] = $child_cats[$i]->get_current_rating(); $child_cat_infos[$i]['remove_from_group'] = $child_cats[$i]->check_perm('remove_from_group'); $child_cat_infos[$i]['delete'] = $child_cats[$i]->check_perm('delete'); $child_cat_infos[$i]['edit'] = $child_cats[$i]->check_perm('edit'); $child_cat_infos[$i]['catgroup_id'] = $child_cats[$i]->get_catgroup_id(); $child_cat_infos[$i]['comments_amount'] = $child_cats[$i]->get_child_comments_amount(); } // in edit mode check on which cats user has rights to remove cat if ($HTTP_GET_VARS['mode'] == 'edit') { $smarty->assign('allow_cat_remove', check_cat_action_allowed($category->get_catgroup_id(), $userdata['user_id'], 'cat_remove')); $add_to_cats_unparsed = get_cats_data_where_perm('id,name', 'cat_add'); $add_to_cats = get_cats_string($add_to_cats_unparsed); $smarty->assign('add_to_cats', $add_to_cats); } $smarty->assign('child_cat_infos', $child_cat_infos); $smarty->assign('number_of_child_cats', $i); } else { //no child cats $smarty->assign('number_of_child_cats', 0); } // check is user is allowed to add a child cat $smarty->assign('allow_cat_add', check_cat_action_allowed($category->get_catgroup_id(), $userdata['user_id'], 'cat_add')); if ($HTTP_GET_VARS['mode'] == 'edit') { $smarty->assign('mode', 'edit'); $add_to_catgroups = get_catgroups_data_where_perm('id,name', 'add_to_group');
} // Check if the user has remove_from_group right for this content if ($content->check_perm('remove_from_group')) { // get the groups where the user has add_to_group rights $add_to_contentgroups = get_contentgroups_data_where_perm('id,name', 'add_to_group'); if (is_array($add_to_contentgroups)) { $smarty->assign('add_to_contentgroups', $add_to_contentgroups); $smarty->assign('contentgroup', $content->get_contentgroup_id()); } } } $smarty->assign('edit_info', $edit_info); // Check if user has content_remove rights on this categorie $cat_obj = new categorie(); $cat_obj->generate_from_id($HTTP_GET_VARS['cat_id']); if (check_cat_action_allowed($cat_obj->get_catgroup_id(), $userdata['user_id'], 'content_remove')) { $smarty->assign('allow_content_remove', 1); } if ($redirect_to_cat) { $header_location = @preg_match("/Microsoft|WebSTAR|Xitami/", getenv("SERVER_SOFTWARE")) ? "Refresh: 0; URL=" : "Location: "; header($header_location . append_sid("view_cat.php?cat_id={$HTTP_GET_VARS['cat_id']}", true)); } //Show comments $root_comments = get_comments_of_content($HTTP_GET_VARS['content_id']); for ($i = 0; $i < sizeof($root_comments); $i++) { make_comments($root_comments[$i], 0, $content->check_perm('comment_edit')); } $smarty->assign('comments', $comments); if (check_content_action_allowed($content->get_contentgroup_id(), $userdata['user_id'], 'comment_edit')) { $smarty->assign('allow_comment_edit', true); }