private function _delete_fields()
{
global $aidlink;
if (isset($_GET['action']) && $_GET['action'] == 'field_delete' && isset($_GET['field_id']) && self::validate_field($_GET['field_id'])) {
$result = dbquery("SELECT field.field_id, field.field_cat, field.field_order, field.field_name, u.field_cat_id, u.field_parent, root.field_cat_db\n\t\t\tFROM " . $this->field_db . " field\n\t\t\tLEFT JOIN " . $this->category_db . " u ON (field.field_cat=u.field_cat_id)\n\t\t\tLEFT JOIN " . $this->category_db . " root on (u.field_parent = root.field_cat_id)\n\t\t\tWHERE field_id='" . intval($_GET['field_id']) . "'\n\t\t\t");
if (dbrows($result) > 0) {
$data = dbarray($result);
$target_database = $data['field_cat_db'] ? DB_PREFIX . $data['field_cat_db'] : DB_USERS;
$field_list = fieldgenerator($target_database);
if (in_array($data['field_name'], $field_list)) {
// drop database
if (!$this->debug && !empty($target_database)) {
$result = dbquery("ALTER TABLE " . $target_database . " DROP " . $data['field_name']);
// reorder the rest of the same cat minus 1
$result = dbquery("UPDATE " . $this->field_db . " SET field_order=field_order-1 WHERE field_order > '" . $data['field_order'] . "' AND field_cat='" . $data['field_cat'] . "'");
$result = dbquery("DELETE FROM " . $this->field_db . " WHERE field_id='" . $data['field_id'] . "'");
}
} else {
// just delete the field
if (!$this->debug) {
$result = dbquery("DELETE FROM " . $this->field_db . " WHERE field_id='" . $data['field_id'] . "'");
} else {
print_p("DELETE " . $data['field_id'] . " FROM " . $this->field_db);
}
}
if (!$this->debug) {
addNotice('success', $this->locale['field_0201']);
redirect(FUSION_SELF . $aidlink);
}
} else {
if (!$this->debug) {
addNotice('warning', $this->locale['field_0202']);
redirect(FUSION_SELF . $aidlink);
} else {
print_p($this->locale['field_0202']);
}
}
}
}