Example #1
0
    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>';
        }
    }
Example #2
0
 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();
     }
 }