Esempio n. 1
0
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);
        }
    }
}
Esempio n. 2
0
/**
 * 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;
}