function fn_stat_build_query($params, $override) { $params = fn_array_merge($params, $override); unset($params['selected_section']); return fn_build_query($params); }
/** * Init search view * * @param string $object object to init view for * @param array $params request parameters * @return array filtered params */ function fn_init_view($object, $params) { if (!empty($params['skip_view']) || AREA != 'A') { return $params; } $auth =& $_SESSION['auth']; // Save view if (ACTION == 'save_view' && !empty($params['new_view'])) { $name = $params['new_view']; $update_view_id = empty($params['update_view_id']) ? 0 : $params['update_view_id']; unset($params['dispatch'], $params['page'], $params['new_view'], $params['update_view_id']); $data = array('object' => $object, 'name' => $name, 'params' => serialize($params), 'user_id' => $auth['user_id']); if ($update_view_id) { db_query("UPDATE ?:views SET ?u WHERE view_id = ?i", $data, $update_view_id); $params['view_id'] = $update_view_id; } else { $params['view_id'] = db_query("REPLACE INTO ?:views ?e", $data); } $params['dispatch'] = CONTROLLER . '.' . MODE; fn_redirect(INDEX_SCRIPT . '?' . fn_build_query($params)); } elseif (ACTION == 'delete_view' && !empty($params['view_id'])) { db_query("DELETE FROM ?:views WHERE view_id = ?i", $params['view_id']); } elseif (ACTION == 'reset_view') { db_query("UPDATE ?:views SET active = 'N' WHERE user_id = ?i AND object = ?s", $auth['user_id'], $object); } // Save search filter in session $condition = !empty($params['view_id']) ? db_quote("view_id = ?i", $params['view_id']) : db_quote("user_id = ?i AND object = ?s AND active = 'Y'", $auth['user_id'], $object); $data = db_get_row("SELECT params, view_id FROM ?:views WHERE ?p", $condition); if (!empty($data)) { $params['view_id'] = $data['view_id']; $params = fn_array_merge($params, unserialize($data['params'])); db_query("UPDATE ?:views SET active = IF(view_id = ?i, 'Y', 'N') WHERE user_id = ?i AND object = ?s", $data['view_id'], $auth['user_id'], $object); } return $params; }
/** * Build query from the array * * @param array $array data to build query from * @param string $query part of query to attach new data * @param string $prefix prefix * @return string well-formed query */ function fn_build_query($array, $query = '', $prefix = '') { if (!is_array($array)) { return false; } foreach ($array as $k => $v) { if (is_array($v)) { $query = fn_build_query($v, $query, rawurlencode(empty($prefix) ? "{$k}" : $prefix . "[{$k}]")); } else { $query .= (!empty($query) ? '&' : '') . (empty($prefix) ? $k : $prefix . rawurlencode("[{$k}]")) . '=' . rawurlencode($v); } } return $query; }