function show_filters() { global $CFG; if ($this->inset_id > 0 || $CFG->is_form_inset) { return false; } if (is_array($this->filters) || $this->mode == 'graph' || $this->mode == 'graph_line' || $this->mode == 'graph_pie') { $form_filters = new Form('form_filters' . $this->i, false, 'GET', 'form_filters', false); $form_filters->show_errors(); $filter_results = $this->filter_results ? $this->filter_results : array(); $form_filters_info = $form_filters->info ? $form_filters->info : array(); $form_filters->info = array_merge($filter_results, $form_filters_info); if (is_array($this->filters)) { foreach ($this->filters as $filter) { $name = $filter['field_name']; $caption = !empty($filter['caption']) ? $caption : $name; $value = $this->filter_results[$name] ? $this->filter_results[$name] : $filter['value']; if ($filter['type'] != 'radio' && $filter['type'] != 'start_date' && $filter['type'] != 'end_date' && $group) { $form_filters->endGroup(); $group = false; } switch ($filter['type']) { case 'per_page': $options_array = is_array($filter['options_array']) ? $filter['options_array'] : array(10 => 10, 30 => 30, 50 => 50); $caption = !empty($filter['caption']) ? $filter['caption'] : $CFG->results_per_page_text; $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterPerPage'; $form_filters->selectInput('per_page', $caption, false, $this->rows_per_page, $options_array, false, false, false, false, $filter['class']); break; case 'search': $search_i = $search_i > 0 ? $search_i + 1 : 1; $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterSearch'; $form_filters->textInput('search' . '|' . $search_i, $filter['caption'], false, $value, false, false, $filter['class']); foreach ($filter['subtable_fields'] as $s_field => $s_subtable) { $s_subtable = $s_subtable && $s_subtable != $s_field ? $s_subtable : $this->table; $CFG->o_method_suppress = true; $form_filters->HTML('<input type="hidden" name="search_fields' . $this->i . '[' . $s_field . '|' . $search_i . ']" value="' . $s_subtable . '" />'); $CFG->o_method_suppress = false; } break; case 'autocomplete': $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterAutocomplete'; $form_filters->autoComplete($name, $filter['caption'], false, $value, false, $filter['options_array'], $filter['subtable'], $filter['subtable_fields'], false, false, $filter['class']); break; case 'tokenizer': $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterTokenizer'; $form_filters->autoComplete($name, $filter['caption'], false, $value, false, $filter['options_array'], $filter['subtable'], $filter['subtable_fields'], false, false, $filter['class'], false, false, false, false, false, false, false, false, false, false, false, 1); break; case 'cats': $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterCats'; //$form_filters->fauxSelect('catsel',$filter['caption'],0,false,false,false,$filter['subtable'],$filter['subtable_fields'],false,$filter['class'],false,false,false,false,false,false,false,false,false,false,false,$filter['concat_char'],1); $form_filters->catSelect($filter['subtable'], $filter['caption'], 0, $filter['class'], false, false, false, $filter['subtable_fields'], $filter['concat_char'], false, false, 1); break; case 'first_letter': $range = range('A', 'Z'); $HTML = ''; foreach ($range as $l) { $HTML .= Link::url($this->link_url, $l, 'fl' . $this->i . '=' . $l . '&fl_field' . $this->i . '=' . $name . '&fl_subtable' . $this->i . '=' . $filter['subtable'] . '&is_tab=' . $this->is_tab, false, false, 'content'); } $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterFirstLetter'; $form_filters->HTML($HTML); break; case 'select': $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterSelect'; $form_filters->selectInput($name, $filter['caption'], false, $value, $filter['options_array'], $filter['use_enum_values'] && !$filter['subtable'] ? $this->table : $filter['subtable'], $filter['subtable_fields'], $filter['f_id'], false, $filter['class'], false, false, $filter['f_id_field'], false, $filter['depends_on'], false, false, false, false, false, $filter['level'], $filter['use_enum_values']); break; case 'checkbox': $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterCheckbox'; $form_filters->checkBox($name, $filter['caption'], false, false, $filter['class'], false, false, $value); break; case 'radio': if (!$group) { $CFG->o_method_suppress = true; $form_filters->startGroup(); } $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterRadio'; $form_filters->radioInput($name, $filter['caption'], false, $value, false, $filter['class'], false, false, $filter['checked']); if (!$group) { $group = true; } else { $CFG->o_method_suppress = true; $form_filters->endGroup(); $group = false; } break; case 'start_date': $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterDateStart'; $form_filters->dateWidget($name, $filter['caption'], false, $filter['time'], $filter['ampm'], $filter['req_start'], $filter['req_end'], $value, false, false, $filter['class'], $filter['format']); $form_filters->dateWidget($name, $CFG->grid_until_label, false, $filter['time'], $filter['ampm'], $filter['req_start'], $filter['req_end'], $value, $filter['link_to'], false, $filter['class'], $filter['format'], false, false, true); break; case 'month': $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterMonth'; $form_filters->selectInput($name . '_month', $filter['caption'], false, $value, String::getMonthNames($filter['language'])); $CFG->o_method_suppress = true; $form_filters->HTML('<input type="hidden" name="month_fields[]" value="' . $name . '_month" />'); break; case 'year': $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterYear'; $back_to = $filter['back_to'] ? $filter['back_to'] : 1975; $years = range(date('Y'), $back_to); $years = array_combine($years, $years); $form_filters->selectInput($name . '_year', $filter['caption'], false, $value, $years); $CFG->o_method_suppress = true; $form_filters->HTML('<input type="hidden" name="year_fields[]" value="' . $name . '_year" />'); break; } } } if ($this->mode == 'graph' || $this->mode == 'graph_line' || $this->mode == 'graph_pie') { $CFG->o_method_suppress = true; $form_filters->selectInput('graph_value_column', $CFG->value_column_label, false, false, $this->value_columns); $CFG->o_method_suppress = true; $form_filters->selectInput('graph_name_column', $CFG->name_column_label, false, false, $this->name_columns); if ($this->mode != 'graph_pie') { $CFG->o_method_suppress = true; $form_filters->selectInput('graph_x_axis', $CFG->x_axis, false, false, $this->x_columns); $CFG->o_method_suppress = true; $form_filters->checkBox('graph_combine', $CFG->combine_label, false); } } if ($group) { $form_filters->endGroup(); } $CFG->o_method_suppress = true; $form_filters->HTML('<input type="hidden" name="mode" value="' . $this->mode . '" />'); $CFG->o_method_suppress = true; $form_filters->HTML('<div class="clear"></div>'); $CFG->o_method_suppress = true; $form_filters->submitButton('submit', $CFG->filter_submit_text, false, 'not_method'); $CFG->o_method_suppress = true; $form_filters->resetButton($CFG->grid_default_reset, false, 'not_method'); echo ' <div class="grid_filters area"> <div class="box_tl"></div> <div class="box_tr"></div> <div class="box_bl"></div> <div class="box_br"></div> <div class="t_shadow"></div> <div class="r_shadow"></div> <div class="b_shadow"></div> <div class="l_shadow"></div> <div class="box_b"></div> <div class="box_t"></div> <div class="contain">'; $form_filters->display(); echo '</div></div>'; } }
function show_filters() { global $CFG; if ($this->inset_id > 0) { return false; } if (is_array($this->filters)) { $form_filters = new Form('form_filters', false, 'GET', 'form_filters', false); $form_filters->show_errors(); $form_filters->info = $form_filters->info ? $form_filters->info : $this->filter_results; foreach ($this->filters as $filter) { $name = $filter['field_name']; $caption = !empty($filter['caption']) ? $caption : $name; if ($filter['type'] != 'radio' && $filter['type'] != 'start_date' && $filter['type'] != 'end_date' && $group) { $form_filters->endGroup(); $group = false; } switch ($filter['type']) { case 'per_page': $options_array = is_array($filter['options_array']) ? $filter['options_array'] : array(10 => 10, 30 => 30, 50 => 50); $caption = !empty($filter['caption']) ? $filter['caption'] : $CFG->results_per_page_text; $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterPerPage'; $form_filters->selectInput('per_page', $caption, false, $this->rows_per_page, $options_array, false, false, false, false, $filter['class']); break; case 'search': $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterSearch'; $form_filters->textInput('search', $filter['caption'], false, false, false, false, $filter['class']); foreach ($filter['subtable_fields'] as $s_field => $s_subtable) { $s_subtable = $s_subtable && $s_subtable != $s_field ? $s_subtable : $this->table; $CFG->o_method_suppress = true; $form_filters->HTML('<input type="hidden" name="search_fields[' . $s_field . ']" value="' . $s_subtable . '" />'); } break; case 'autocomplete': $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterAutocomplete'; $form_filters->autoComplete($name, $filter['caption'], false, $filter['value'], false, $filter['options_array'], $filter['subtable'], $filter['subtable_fields'], false, false, $filter['class']); $CFG->o_method_suppress = true; $form_filters->HTML('<input type="hidden" name="subtables[' . $name . '][subtable]" value="' . $filter['subtable'] . '" />'); $CFG->o_method_suppress = true; $form_filters->HTML('<input type="hidden" name="subtables[' . $name . '][subtable_fields]" value="' . implode('|', $filter['subtable_fields']) . '" />'); $CFG->o_method_suppress = true; $form_filters->HTML('<input type="hidden" name="subtables[' . $name . '][f_id_field]" value="' . $filter['f_id_field'] . '" />'); break; case 'tokenizer': $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterTokenizer'; $form_filters->autoComplete($name, $filter['caption'], false, $filter['value'], false, $filter['options_array'], $filter['subtable'], $filter['subtable_fields'], false, false, $filter['class'], false, false, false, false, false, false, false, false, false, false, false, 1); break; case 'cats': $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterCats'; $form_filters->catSelect($filter['subtable'], $filter['caption'], 0, $filter['class'], false, false, false, $filter['subtable_fields'], $filter['concat_char']); break; case 'first_letter': $range = range('A', 'Z'); $HTML = ''; foreach ($range as $l) { $HTML .= Link::url($this->link_url, $l, 'fl=' . $l . '&fl_field=' . $name . '&fl_subtable=' . $filter['subtable'] . '&is_tab=' . $this->is_tab, false, false, 'content'); } $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterFirstLetter'; $form_filters->HTML($HTML); break; case 'select': $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterSelect'; $form_filters->selectInput($name, $filter['caption'], false, false, $filter['options_array'], $filter['subtable'], $filter['subtable_fields'], false, false, $filter['class'], false, false, $filter['f_id_field'], false, $filter['depends_on']); $CFG->o_method_suppress = true; $form_filters->HTML('<input type="hidden" name="subtables[' . $name . '][subtable]" value="' . $filter['subtable'] . '" />'); $CFG->o_method_suppress = true; $form_filters->HTML('<input type="hidden" name="subtables[' . $name . '][subtable_fields]" value="' . implode('|', $filter['subtable_fields']) . '" />'); $CFG->o_method_suppress = true; $form_filters->HTML('<input type="hidden" name="subtables[' . $name . '][f_id_field]" value="' . $filter['f_id_field'] . '" />'); break; case 'checkbox': $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterCheckbox'; $form_filters->checkBox($name, $filter['caption'], false, false, $filter['class'], false, false, $filter['checked']); break; case 'radio': if (!$group) { $CFG->o_method_suppress = true; $form_filters->startGroup(); } $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterRadio'; $form_filters->radioInput($name, $filter['caption'], false, $filter['value'], false, $filter['class'], false, false, $filter['checked']); if (!$group) { $group = true; } else { $CFG->o_method_suppress = true; $form_filters->endGroup(); $group = false; } break; case 'start_date': $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterDateStart'; $form_filters->dateWidget($name, $filter['caption'], false, $filter['time'], $filter['ampm'], $filter['req_start'], $filter['req_end'], $filter['value'], false, false, $filter['class'], $filter['format']); break; case 'end_date': $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterDateEnd'; $form_filters->dateWidget($name, $filter['caption'], false, $filter['time'], $filter['ampm'], $filter['req_start'], $filter['req_end'], $filter['value'], $filter['link_to'], false, $filter['class'], $filter['format'], false, false, true); break; case 'month': $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterMonth'; $form_filters->selectInput($name . '_month', $filter['caption'], false, false, String::getMonthNames($filter['language'])); $CFG->o_method_suppress = true; $form_filters->HTML('<input type="hidden" name="month_fields[]" value="' . $name . '_month" />'); break; case 'year': $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterYear'; $back_to = $filter['back_to'] ? $filter['back_to'] : 1975; $years = range(date('Y'), $back_to); $years = array_combine($years, $years); $form_filters->selectInput($name . '_year', $filter['caption'], false, false, $years); $CFG->o_method_suppress = true; $form_filters->HTML('<input type="hidden" name="year_fields[]" value="' . $name . '_year" />'); break; } } if ($group) { $form_filters->endGroup(); } $CFG->o_method_suppress = true; $form_filters->HTML('<input type="hidden" name="mode" value="' . $this->mode . '" />'); $CFG->o_method_suppress = true; $form_filters->submitButton('submit', $CFG->filter_submit_text, false, 'not_method'); $CFG->o_method_suppress = true; $form_filters->resetButton('Reset', false, 'not_method'); $form_filters->display(); } }