$temp_tokens = array(); foreach ($hidden_database_fields as $token) { $temp_tokens[] = "'" . $token . "'"; } $temp_condition .= 'AND field_token NOT IN (' . implode(',', $temp_tokens) . ') '; } // If additional database filters were provided $temp_condition_unfiltered = $temp_condition; if (isset($mmrpg_database_fields_filter)) { if (!preg_match('/^\\s?(AND|OR)\\s+/i', $mmrpg_database_fields_filter)) { $temp_condition .= 'AND '; } $temp_condition .= $mmrpg_database_fields_filter; } // Collect the database fields $field_fields = rpg_field::get_index_fields(true); $db->query("SET @field_row_number = 0;"); $mmrpg_database_fields = $db->get_array_list("SELECT {$field_fields} FROM mmrpg_index_fields WHERE field_flag_published = 1 AND (field_flag_hidden = 0 OR field_token = '{$this_current_token}') {$temp_condition} ORDER BY field_flag_hidden ASC, field_order ASC;", 'field_token'); $mmrpg_database_fields_count = $db->get_value("SELECT COUNT(field_id) AS field_count FROM mmrpg_index_fields WHERE field_flag_published = 1 AND field_flag_hidden = 0 {$temp_condition_unfiltered};", 'field_count'); $mmrpg_database_fields_numbers = $db->get_array_list("SELECT field_token, (@field_row_number:=@field_row_number + 1) AS field_key FROM mmrpg_index_fields WHERE field_flag_published = 1 {$temp_condition_unfiltered} ORDER BY field_flag_hidden ASC, field_order ASC;", 'field_token'); // Remove unallowed fields from the database foreach ($mmrpg_database_fields as $temp_token => $temp_info) { // Define first field token if not set if (!isset($first_field_token)) { $first_field_token = $temp_token; } // Send this data through the field index parser $temp_info = rpg_field::parse_index_info($temp_info); // Collect this field's key in the index $temp_info['field_key'] = $mmrpg_database_fields_numbers[$temp_token]['field_key']; if (in_array($temp_token, $hidden_database_fields)) {