summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2019-02-18 22:08:31 +0100
committerErich Eckner <git@eckner.net>2019-02-18 22:08:31 +0100
commitd03b6d89fa151b0f486938565f53f8c1f751db6a (patch)
tree1de7042567e970402d234cd3d6d9aa7cf6d2f0bd
parent28f074140370a8c2a11b995271e4c135b2cc1c7f (diff)
downloadwebsite-d03b6d89fa151b0f486938565f53f8c1f751db6a.tar.xz
lib/style.php: package_listing_query_order_by() is now integrated in query_package_listing()
-rw-r--r--lib/style.php46
-rw-r--r--packages/index.php19
2 files changed, 32 insertions, 33 deletions
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());
diff --git a/packages/index.php b/packages/index.php
index 35f0d26..b36142f 100644
--- a/packages/index.php
+++ b/packages/index.php
@@ -122,19 +122,19 @@ require_once BASE . "/lib/format.php";
$exact_matches = query_package_listing(
$extra_joins .
- $filter . $exact_filter .
- " ORDER BY " .
- "`binary_packages`.`pkgname`,`repositories`.`stability`,`repositories`.`name`,`architectures`.`name`",
+ $filter . $exact_filter,
+ '',
$float_columns,
+ false,
false
);
$num_results = query_package_listing(
- $extra_joins . $filter . $fuzzy_filter .
- " ORDER BY " . package_listing_query_order_by() .
- "`binary_packages`.`pkgname`,`repositories`.`stability`,`repositories`.`name`,`architectures`.`name`",
+ $extra_joins . $filter . $fuzzy_filter,
+ '',
array(),
+ true,
true
);
@@ -145,12 +145,11 @@ require_once BASE . "/lib/format.php";
$page = 1;
$fuzzy_matches = query_package_listing(
- $extra_joins . $filter . $fuzzy_filter .
- " ORDER BY " . package_listing_query_order_by() .
- "`binary_packages`.`pkgname`,`repositories`.`stability`,`repositories`.`name`,`architectures`.`name`" .
+ $extra_joins . $filter . $fuzzy_filter,
" LIMIT " . (($page-1)*100) . ", 100",
$float_columns,
- false
+ false,
+ true
);
function header_and_footer() {