Пример #1
0
 $sql_tables = "(\n" . $tables_linked['USERS']['sql_join'] . ")";
 // prepare the table processed
 $tables_processed = array();
 $tables_processed[] = 'USERS';
 $done = false;
 while (!$done) {
     @ksort($tables_used);
     @reset($tables_used);
     while (list($table_name, $used) = @each($tables_used)) {
         if (!in_array($table_name, $tables_processed)) {
             $tables_processed[] = $table_name;
             $sql_tables = sprintf("(%s\n" . $tables_linked[$table_name]['sql_join'] . ")", $sql_tables);
         }
     }
     // parse the result
     $sql_tables = pcp_parse_def($sql_tables, $view_userdata, $tables_used);
     // check if any unprocessed table remains
     $done = true;
     @reset($tables_used);
     while (list($table_name, $used) = @each($tables_used)) {
         $done = in_array($table_name, $tables_processed);
         if (!$done) {
             break;
         }
     }
 }
 // sql request
 $sql = "SELECT DISTINCT\n\t\t\t\t{$sql_fields}\n\t\t\t\t{$sql_classes_fields}\n\t\t\tFROM {$sql_tables}\n\t\t\tWHERE {$sql_where}\n\t\t\tORDER BY {$sql_order_by}";
 // read the number of row
 if (!($result = $db->sql_query($sql))) {
     message_die(GENERAL_ERROR, "Could not read user informations", '', __LINE__, __FILE__, '<table><tr><td><span class="genmed"><pre>' . $sql . '</pre></span></td></tr></table>');
Пример #2
0
function pcp_get_field($field_cfg, $map_name = '', $field_name = '')
{
    global $values_list, $tables_linked, $classes_fields, $user_maps, $user_fields;
    $res = array();
    $found = false;
    if (empty($field_name)) {
        @reset($user_fields);
        while (list($field_name, $field_data) = @each($user_fields)) {
            $found = $field_data[$field_name]['input_id'] == $field_cfg;
            if ($found) {
                break;
            }
        }
        if (!$found) {
            $field_name = $field_cfg;
        }
    }
    // get the field definition
    $field_data = $user_fields[$field_name];
    // overwrite by the map definition
    @reset($user_maps[$map_name]['fields'][$field_name]);
    while (list($key, $value) = @each($user_maps[$map_name]['fields'][$field_name])) {
        $field_data[$key] = $value;
    }
    // parse the default value
    if (!empty($field_data['default']) || $field_data['default'] == "0") {
        $tables_used = array();
        $field_data['default'] = pcp_parse_def($field_data['default'], $userdata, $tables_used);
    }
    // solve values list
    if (!empty($field_data['values']) && is_string($field_data['values'])) {
        // if list drop force the img/txt set
        if ($field_data['get_mode'] == 'LIST_DROP' && $field_data['img']) {
            $field_data['img'] = false;
            $field_data['txt'] = true;
        }
        $field_data['values'] = pcp_get_values_list($field_name, $field_data, $map_name);
        if (empty($field_data['values'])) {
            $field_data['default'] = '';
        } else {
            // check if the default value is in the values list
            @reset($field_data['values']);
            $found = false;
            while (list($value, $key) = @each($field_data['values'])) {
                $found = $field_data['default'] == $key;
                if ($found) {
                    break;
                }
            }
            if (!$found) {
                $first_key = '';
                @reset($field_data['values']);
                list($first_value, $first_key) = @each($field_data['values']);
                $field_data['default'] = $first_key;
            }
        }
    }
    // get back values
    $res = $field_data;
    // fill the necessary entries for mods_settings
    $res['user'] = $field_name;
    if (!empty($res['get_mode'])) {
        $res['type'] = $res['get_mode'];
    } else {
        if (!empty($res['get_func']) || !empty($res['chk_func'])) {
            $res['type'] = '';
        }
    }
    return $res;
}