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>'; } }
/** * this method is the underpinning of the front end form - it checks the state and displays either the input or the result (if form is submitted) * @param string $name - the name of this element, also it's ID. We need ID for the label click to transfer focus to the input, and a name for JS. * @param string $value - Optional. The default value attribute for the element. Default: "" * @param string $attributes - writes HTML attributes. Optional. Defaults to null * @param string $selected - Optional - This should be set to the key that will be selected by default (If null then the first element is selected). Default: null */ public function getElementState($name, $type, $value = "", $attributes = null, $selcted = null) { $type = strtolower(trim($type)); if ($this->defaultState()) { switch ($type) { case "text": parent::textInput($name, $value, $attributes); break; case "textarea": parent::textArea($name, $value, $attributes); break; case "hidden": parent::hiddenInput($name, $value, $attributes); break; case "file": parent::fileInput($name, $value, $attributes); break; case "select": parent::select($name, $value, $selected, $attributes); break; case "reset": parent::resetButton($name, $value, $attributes); break; case "button": parent::button($name, $value, $attributes); break; default: parent::input($name, $type, $value, $attributes); break; } } else { if ($this->outputOnStateChange($type)) { echo $this->getConfirmationElement($this->selectedValueOf($name)); } } }
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(); } }
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 cal', false); $form_filters->show_errors(); 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 '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']); break; case 'tokenizer': $CFG->o_method_id = $filter['method_id']; $CFG->o_method_name = 'filterTokenizer'; $row = DB::getRecord($filter['subtable'], $this->record_id, 0, 1); if (is_array($filter['subtable_fields'])) { foreach ($filter['subtable_fields'] as $field) { $row1[] = $row[$field]; } $show = implode(' ', $row1); } else { $show = implode(' ', $row); } $filter['value'] = !empty($filter['value']) && $this->mode == 'day' ? $filter['value'] : array($this->record_id => $show); $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 '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']); 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; } } if ($group) { $form_filters->endGroup(); } $CFG->o_method_suppress = true; $form_filters->HTML(' <input type="hidden" id="cal_mode" name="mode" value="' . $this->mode . '" /> <input type="hidden" id="cal_y" name="' . 'cal_' . $this->i . '_y' . '" value="' . $this->y . '" /> <input type="hidden" id="cal_m" name="' . 'cal_' . $this->i . '_m' . '" value="' . $this->m . '" /> <input type="hidden" id="cal_d" name="' . 'cal_' . $this->i . '_d' . '" value="' . $this->d . '" /> '); $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(); } }