function get_missing_columns($config_columns, $table, $xhprofModelObj)
{
    $table_columns = get_table_columns($table, $xhprofModelObj);
    if (empty($table_columns)) {
        echo "table columns are empty!!";
    }
    $config_missing_columns = array_diff(array_keys($config_columns), $table_columns);
    $missing_columns = array();
    foreach ($config_missing_columns as $col) {
        $missing_columns[$col] = $config_columns[$col];
    }
    return $missing_columns;
}
function runquery_altertable($sql)
{
    global $db;
    $tablepre = UC_DBTABLEPRE;
    $dbcharset = UC_DBCHARSET;
    $updatesqls = parse_alter_table_sql($sql);
    foreach ($updatesqls as $updatesql) {
        $successed = TRUE;
        if (is_array($updatesql) && !empty($updatesql[0])) {
            list($table, $action, $field, $sql) = $updatesql;
            if (empty($field) && !empty($sql)) {
                $query = "ALTER TABLE {$tablepre}{$table} ";
                if ($action == 'INDEX') {
                    $successed = $db->query("{$query} {$sql}", "SILENT");
                } elseif ($action == 'UPDATE') {
                    $successed = $db->query("UPDATE {$tablepre}{$table} SET {$sql}", 'SILENT');
                }
            } elseif ($tableinfo = get_table_columns($tablepre . $table)) {
                $fieldexist = isset($tableinfo[$field]) ? 1 : 0;
                $query = "ALTER TABLE {$tablepre}{$table} ";
                if ($action == 'MODIFY') {
                    $query .= $fieldexist ? "MODIFY {$field} {$sql}" : "ADD {$field} {$sql}";
                    $successed = $db->query($query, 'SILENT');
                } elseif ($action == 'CHANGE') {
                    $field2 = trim(substr($sql, 0, strpos($sql, ' ')));
                    $field2exist = isset($tableinfo[$field2]);
                    if ($fieldexist && ($field == $field2 || !$field2exist)) {
                        $query .= "CHANGE {$field} {$sql}";
                    } elseif ($fieldexist && $field2exist) {
                        $db->query("ALTER TABLE {$tablepre}{$table} DROP {$field2}", 'SILENT');
                        $query .= "CHANGE {$field} {$sql}";
                    } elseif (!$fieldexist && $fieldexist2) {
                        $db->query("ALTER TABLE {$tablepre}{$table} DROP {$field2}", 'SILENT');
                        $query .= "ADD {$sql}";
                    } elseif (!$fieldexist && !$field2exist) {
                        $query .= "ADD {$sql}";
                    }
                    $successed = $db->query($query);
                } elseif ($action == 'ADD') {
                    $query .= $fieldexist ? "CHANGE {$field} {$field} {$sql}" : "ADD {$field} {$sql}";
                    $successed = $db->query($query);
                } elseif ($action == 'DROP') {
                    if ($fieldexist) {
                        $successed = $db->query("{$query} DROP {$field}", "SILENT");
                    }
                    $successed = TRUE;
                }
            } else {
                $successed = 'TABLE NOT EXISTS';
            }
        }
    }
    return $successed;
}
Example #3
0
function core_dimensions_update_8_9()
{
    $mail_ot = ObjectTypes::findByName('mail');
    $users = Contacts::getAllUsers();
    foreach ($users as $user) {
        /* @var $user Contact */
        if ($user->isAdminGroup()) {
            continue;
        }
        $role_id = $user->getUserType();
        $sys_perm = SystemPermissions::findOne(array('conditions' => 'permission_group_id=' . $user->getPermissionGroupId()));
        // check max system permissions
        $max_role_system_permissions = MaxSystemPermissions::findOne(array('conditions' => 'permission_group_id = ' . $role_id));
        if ($max_role_system_permissions instanceof MaxSystemPermission) {
            $sys_perm_cols = get_table_columns(TABLE_PREFIX . "system_permissions");
            foreach ($sys_perm_cols as $col) {
                $max_val = $max_role_system_permissions->getColumnValue($col);
                if (!$max_val) {
                    $sys_perm->setColumnValue($col, 0);
                }
            }
            $sys_perm->save();
        }
        // don't allow to write emails for collaborators and guests
        $user_type_name = $user->getUserTypeName();
        if (!in_array($user_type_name, array('Super Administrator', 'Administrator', 'Manager', 'Executive'))) {
            if ($mail_ot instanceof ObjectType) {
                DB::executeAll("UPDATE " . TABLE_PREFIX . "contact_member_permissions SET can_write=0, can_delete=0 WHERE object_type_id=" . $mail_ot->getId() . " AND permission_group_id=" . $user->getPermissionGroupId());
            }
        }
    }
}
 /**
  * Return array of object columns
  *
  * @access public
  * @param void
  * @return array
  */
 function getColumns()
 {
     return get_table_columns(self::instance()->getTableName());
 }
 $languages = xtc_get_languages();
 if ($action == 'insert') {
     if (!xtc_not_null($customers_status_id)) {
         $next_id_query = xtc_db_query("SELECT MAX(customers_status_id) AS customers_status_id FROM " . TABLE_CUSTOMERS_STATUS . "");
         $next_id = xtc_db_fetch_array($next_id_query);
         $customers_status_id = $next_id['customers_status_id'] + 1;
         // Check if table exists and delete it first
         xtc_db_query("DROP TABLE IF EXISTS personal_offers_by_customers_status_" . $customers_status_id);
         // We want to create a personal offer table corresponding to each customers_status
         xtc_db_query("CREATE TABLE personal_offers_by_customers_status_" . $customers_status_id . " (price_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, products_id int NOT NULL, quantity int, personal_offer decimal(15,4))");
         //Check if table column exists
         if (!get_table_columns(TABLE_PRODUCTS, 'group_permission_' . $customers_status_id)) {
             xtc_db_query("ALTER TABLE " . TABLE_PRODUCTS . " ADD  group_permission_" . $customers_status_id . " TINYINT( 1 ) NOT NULL");
         }
         //Check if table column exists
         if (!get_table_columns(TABLE_CATEGORIES, 'group_permission_' . $customers_status_id)) {
             xtc_db_query("ALTER TABLE  " . TABLE_CATEGORIES . " ADD  group_permission_" . $customers_status_id . " TINYINT( 1 ) NOT NULL");
         }
         $products_query = xtc_db_query("SELECT price_id, products_id, quantity, personal_offer FROM personal_offers_by_customers_status_" . $customers_base_status . "");
         while ($products = xtc_db_fetch_array($products_query)) {
             $product_data_array = array('price_id' => xtc_db_prepare_input($products['price_id']), 'products_id' => xtc_db_prepare_input($products['products_id']), 'quantity' => xtc_db_prepare_input($products['quantity']), 'personal_offer' => xtc_db_prepare_input($products['personal_offer']));
             xtc_db_perform('personal_offers_by_customers_status_' . $customers_status_id, $product_data_array);
         }
     }
     for ($i = 0; $i < sizeof($languages); $i++) {
         $customers_status_name_array = $_POST['customers_status_name'];
         $language_id = $languages[$i]['id'];
         $insert_sql_data = array('customers_status_id' => xtc_db_prepare_input($customers_status_id), 'customers_status_name' => xtc_db_prepare_input($customers_status_name_array[$language_id]), 'language_id' => xtc_db_prepare_input($language_id));
         $sql_array = xtc_array_merge($sql_data_array, $insert_sql_data);
         xtc_db_perform(TABLE_CUSTOMERS_STATUS, $sql_array);
     }
Example #6
0
 } else {
     if ($action == "create_min_url") {
         $url = $_GET['url'];
         $type = $_GET['type'];
         create_min_url($url, $type);
     } else {
         if ($action == "get_table") {
             $key = $_GET['key'];
             $id_cloud = $_GET['id_cloud'];
             get_table($key, $id_cloud);
         } else {
             if ($action == "get_table_columns") {
                 $key = $_GET['key'];
                 $id_cloud = $_GET['id_cloud'];
                 $name_table = $_GET['name_table'];
                 get_table_columns($key, $id_cloud, $name_table);
             } else {
                 if ($action == "get_elements_table") {
                     $key = $_GET['key'];
                     $id_cloud = $_GET['id_cloud'];
                     $name_table = $_GET['name_table'];
                     get_table_elements($key, $id_cloud, $name_table);
                 } else {
                     if ($action == "create_table") {
                         $key = $_GET['key'];
                         $id_cloud = $_GET['id_cloud'];
                         $json = $_POST['content'];
                         create_table($key, $id_cloud, $json);
                     } else {
                         if ($action == "direct_download") {
                             $uid = $_GET['uid'];