function filelog_ui_filter_form_submit in File Log 6.2
Process result from filelog_ui administration filter form.
File
- ./
filelog_ui.pages.inc, line 265 - Log viewer page callbacks for the filelog_ui module.
Code
function filelog_ui_filter_form_submit($form, &$form_state) {
$op = $form_state['values']['op'];
switch ($op) {
case t('Filter'):
$s =& $_SESSION['filelog_ui_overview_filter'];
$s = array();
$v =& $form_state['values'];
$filters = array(
'type',
'severity',
'date_from',
'date_to',
'hostname',
'referer',
);
foreach ($filters as $name) {
if (isset($v[$name])) {
$s[$name] = $v[$name];
}
}
// Build query
$where = $args = array();
foreach ($s as $key => $filter) {
switch ($key) {
case 'date_from':
$where[] = 'f.timestamp > %d';
$args[] = _filelog_ui_date_to_time($filter);
break;
case 'date_to':
$where[] = 'f.timestamp < %d';
$args[] = _filelog_ui_date_to_time($filter) + 86400;
break;
case 'type':
case 'severity':
$filter_where = array();
foreach ($filter as $value) {
$filter_where[] = 'f.' . $key . " = '%s'";
$args[] = $value;
}
if (!empty($filter_where)) {
$where[] = '(' . implode(' OR ', $filter_where) . ')';
}
break;
default:
if (!empty($filter)) {
$where[] = 'f.' . $key . " LIKE '%s%%'";
$args[] = $filter;
}
break;
}
}
$where = !empty($where) ? implode(' AND ', $where) : '';
$s['filter'] = array(
'where' => $where,
'args' => $args,
);
break;
case t('Reset'):
$_SESSION['filelog_ui_overview_filter'] = array();
break;
}
}