function InsertFieldsFromBaseClass($BaseClassID, $NewClassID) { global $db; $BaseClassID += 0; $NewClassID += 0; $db->query("INSERT INTO `Field` (`Class_ID`, `Field_Name`, `Description`, `TypeOfData_ID`, `Format`, `NotNull`, `Priority`, `DoSearch`, `DefaultState`, `Inheritance`, `System_Table_ID`, `TypeOfEdit_ID`)\n SELECT " . $NewClassID . ", `Field_Name`, `Description`, `TypeOfData_ID`, `Format`, `NotNull`, `Priority`, `DoSearch`, `DefaultState`, `Inheritance`, `System_Table_ID`, `TypeOfEdit_ID`\n FROM `Field`\n WHERE `Class_ID` = '" . $BaseClassID . "'"); $Result = $db->get_results("SELECT `Field_ID` FROM `Field` WHERE `Class_ID` = '" . $NewClassID . "'"); if (!empty($Result)) { foreach ($Result as $Array) { ColumnInMessage($Array->Field_ID, 1, $db); } } }
/** * Delete fields * * @param array $fields * @return int count deleted fields */ function DeleteFields($fields) { global $db, $UI_CONFIG; // start up value $fields_to_delete = array(); // if no array if (empty($fields)) { return 0; } // $fields = array_map('intval', $fields); $fields_data = $db->get_results("SELECT `Field_ID`, `System_Table_ID` FROM `Field`\n WHERE `Field_ID` IN (" . join(", ", $fields) . ")", ARRAY_A); // walk foreach ($fields_data as $field) { if (ColumnInMessage($field['Field_ID'], 3, $db)) { $fields_to_delete[] = intval($field['Field_ID']); $UI_CONFIG->treeChanges['deleteNode'][] = ($field['System_Table_ID'] ? "system" : "") . "field-" . $field['Field_ID']; } } // delete fields from base if (!empty($fields_to_delete)) { // delete fields files DeleteFieldsFiles($fields_to_delete); // delete fields from base $db->query("DELETE FROM `Field` WHERE `Field_ID` IN (" . join(", ", $fields_to_delete) . ")"); return $db->rows_affected; } // return 0 if no fields deleted from base return 0; }