index : website | |
Archlinux32 website - obsolete | gitolite user |
summaryrefslogtreecommitdiff |
author | Erich Eckner <git@eckner.net> | 2019-02-18 22:08:31 +0100 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2019-02-18 22:08:31 +0100 |
commit | d03b6d89fa151b0f486938565f53f8c1f751db6a (patch) | |
tree | 1de7042567e970402d234cd3d6d9aa7cf6d2f0bd /lib | |
parent | 28f074140370a8c2a11b995271e4c135b2cc1c7f (diff) |
-rw-r--r-- | lib/style.php | 46 |
diff --git a/lib/style.php b/lib/style.php index 99d9840..cc7b47d 100644 --- a/lib/style.php +++ b/lib/style.php @@ -124,31 +124,27 @@ $pkglist_sorts = array( ) ); -function package_listing_query_order_by() { +function query_package_listing($filter, $limit, $float_columns, $count_only, $extract_order_by_from_get) { global $pkglist_sorts; - if (!array_key_exists('sort', $_GET)) - return; - $criterium = $_GET['sort']; - if ( - array_key_exists($criterium, $pkglist_sorts) && - array_key_exists('mysql', $pkglist_sorts[$criterium]) - ) - return $pkglist_sorts[$criterium]['mysql'] . ','; - - if (substr($criterium, 0, 1) != '-') - return; - $criterium = substr($criterium, 1); - - if ( - array_key_exists($criterium, $pkglist_sorts) && - array_key_exists('mysql', $pkglist_sorts[$criterium]) - ) - return $pkglist_sorts[$criterium]['mysql'] . ' DESC,'; - return; -} + $sort = ''; + if ($extract_order_by_from_get && array_key_exists('sort', $_GET)) { + $criterium = $_GET['sort']; + if ( + array_key_exists($criterium, $pkglist_sorts) && + array_key_exists('mysql', $pkglist_sorts[$criterium]) + ) + $sort = $pkglist_sorts[$criterium]['mysql'] . ','; + elseif (substr($criterium, 0, 1) == '-') { + $criterium = substr($criterium, 1); + if ( + array_key_exists($criterium, $pkglist_sorts) && + array_key_exists('mysql', $pkglist_sorts[$criterium]) + ) + $sort = $pkglist_sorts[$criterium]['mysql'] . ' DESC,'; + } + } -function query_package_listing($filter_and_order, $float_columns, $count_only) { if ($count_only) $columns = "COUNT(DISTINCT `binary_packages`.`id`)"; else @@ -176,7 +172,11 @@ function query_package_listing($filter_and_order, $float_columns, $count_only) { mysql_join_repositories_architectures("","r_a") . mysql_join_binary_packages_build_assignments() . mysql_join_build_assignments_package_sources() . - $filter_and_order + $filter . + " ORDER BY " . + $sort . + "`binary_packages`.`pkgname`,`repositories`.`stability`,`repositories`.`name`,`architectures`.`name`" . + $limit ); if ($count_only) return implode($result -> fetch_assoc()); |