Example #1
0
    $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)) {