$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>');
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; }