class filter { public function sort_results($method,$order,$final_results) { $normalised_results = array(); if(is_array($final_results)) foreach($final_results AS $key => $value) { if(empty($value[$method])) $value[$method] = "-"; $normalised_results[$key] = strtolower($value[$method]); } if($order == "DESC") arsort($normalised_results); else if($order == "ASC") asort($normalised_results); return $normalised_results; } public function filter_results($method,$filter_by,$final_results) { $normalised_results = array(); if(is_array($final_results)) { foreach($final_results AS $key => $value) { if($value[$method] == $filter_by) { $normalised_results[$key] = strtolower($value[$method]); } } } return $normalised_results; } public function normalise_get($order) { if(is_array($_GET)) { $append_get = "?page=".$_GET['page'].'&order='.$order; foreach($_GET AS $get_key => $get_value) { if(($get_key != "method") && ($get_key != "page") && ($get_key != "order") && ($get_key != "start")) $append_get .= "&".$get_key."=".$get_value; } } return $append_get; } public function pagination($normalised_results,$normalise_get) { $total_results = count($normalised_results); $start = $_GET['start']; $size = $_GET['size']; $start = (empty($start)) ? 0 : $start; $size = (empty($size) || ($size == 'all')) ? $total_results : $size; if($size > 0) { $num_page = $total_results / $size; $diff = $total_results % $size; $num_page = ($diff != 0) ? $num_page : $num_page + 1; $split_page = explode(".",$num_page); $num_page = $split_page[0]; $pagination = ""; $previous = $start - $size; $next = $start + $size; $position = ($start / $size); if($total_results > $size) { if($start > 0) $pagination .= '« Previous · '; else $pagination .= '« Previous · '; for($i = 0; $i <= $total_results; $i += $size) { $i_display = ($i == 0) ? 1 : (($i + $size) / $size); $current_position = ($i_display - 1) * $size; if($current_position == $start) $pagination .= $i_display." "; else $pagination .= ''.$i_display.' '; } if($position != $num_page) $pagination .= ' · Next »'; else $pagination .= ' · Next »'; } } $max_size = (empty($start)) ? $size : $size + $start; $max_size = ($total_results <= $max_size) ? $total_results : $max_size; $size = ($size == $total_results) ? 'all' : $size; $pagination = '