summaryrefslogtreecommitdiff
path: root/packages/index.php
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2019-02-18 14:44:42 +0100
committerErich Eckner <git@eckner.net>2019-02-18 14:44:42 +0100
commit4376c50ded25fff8ab6c59c045522091b3eb038b (patch)
tree256027697af65501d4b605b3edba9c0f8cee9b07 /packages/index.php
parente5c0107d8c0dca4bdbbfa6fa26c2ef4d8997be6a (diff)
downloadarchweb32-4376c50ded25fff8ab6c59c045522091b3eb038b.tar.xz
lib/style.php,packages/index.php: move querying part of package listing to a separate function in a separate file
Diffstat (limited to 'packages/index.php')
-rw-r--r--packages/index.php81
1 files changed, 26 insertions, 55 deletions
diff --git a/packages/index.php b/packages/index.php
index d38cffa..d20d2e7 100644
--- a/packages/index.php
+++ b/packages/index.php
@@ -120,40 +120,14 @@ require_once BASE . "/lib/format.php";
$fuzzy_filter = "";
}
- $query = " FROM `binary_packages`" .
- mysql_join_binary_packages_architectures() .
- mysql_join_binary_packages_binary_packages_in_repositories() .
- mysql_join_binary_packages_in_repositories_repositories() .
- " AND `repositories`.`is_on_master_mirror`" .
- mysql_join_repositories_architectures("","r_a") .
- mysql_join_binary_packages_build_assignments() .
- mysql_join_build_assignments_package_sources() .
+ $exact_matches = query_package_listing(
$extra_joins .
$filter . $exact_filter .
- " ORDER BY ";
-
- $query .= "`binary_packages`.`pkgname`,`repositories`.`stability`,`repositories`.`name`,`architectures`.`name`";
-
- $result = mysql_run_query(
- "SELECT DISTINCT " .
- "`binary_packages`.`pkgname`," .
- "`package_sources`.`pkgbase`," .
- "CONCAT(`r_a`.`name`,\"/\",`repositories`.`name`) AS `repo`," .
- "`architectures`.`name` AS `arch`," .
- mysql_query_package_version("binary_packages") .
- " AS `version`," .
- "IF(`binary_packages`.`has_issues`,1,0) AS `has_issues`," .
- "`build_assignments`.`return_date` AS `build_date`," .
- "`binary_packages_in_repositories`.`last_moved` AS `move_date`," .
- "IF(`binary_packages_in_repositories`.`is_to_be_deleted`,1,0) AS `is_to_be_deleted`" .
- $query
+ " ORDER BY " .
+ "`binary_packages`.`pkgname`,`repositories`.`stability`,`repositories`.`name`,`architectures`.`name`",
+ $float_columns,
+ false
);
- $exact_matches = array();
- while ($row = $result -> fetch_assoc()) {
- foreach ($float_columns as $float_column)
- $row[$float_column] = floatval($row[$float_column]);
- $exact_matches[] = $row;
- }
$sorts = array(
"arch" => array(
@@ -198,6 +172,23 @@ require_once BASE . "/lib/format.php";
)
);
+ $q_f = $extra_joins . $filter . $fuzzy_filter . " ORDER BY ";
+
+ if (isset($_GET["sort"])) {
+ if (isset($sorts[$_GET["sort"]]["mysql"]))
+ $q_f .= $sorts[$_GET["sort"]]["mysql"] . ",";
+ elseif (isset($sorts[substr($_GET["sort"],1)]["mysql"]))
+ $q_f .= $sorts[substr($_GET["sort"],1)]["mysql"] . " DESC,";
+ }
+
+ $q_f .= "`binary_packages`.`pkgname`,`repositories`.`stability`,`repositories`.`name`,`architectures`.`name`";
+
+ $num_results = query_package_listing(
+ $q_f,
+ array(),
+ true
+ );
+
$query = " FROM `binary_packages`" .
mysql_join_binary_packages_architectures() .
mysql_join_binary_packages_binary_packages_in_repositories() .
@@ -219,10 +210,6 @@ require_once BASE . "/lib/format.php";
$query .= "`binary_packages`.`pkgname`,`repositories`.`stability`,`repositories`.`name`,`architectures`.`name`";
- $result = mysql_run_query(
- "SELECT COUNT(DISTINCT `binary_packages`.`id`)" . $query
- );
- $num_results = implode($result -> fetch_assoc());
$pages = max(ceil($num_results / 100), 1);
if (isset($_GET["page"]))
@@ -230,27 +217,11 @@ require_once BASE . "/lib/format.php";
else
$page = 1;
- $result = mysql_run_query(
- "SELECT DISTINCT " .
- "`binary_packages`.`pkgname`," .
- "`package_sources`.`pkgbase`," .
- "CONCAT(`r_a`.`name`,\"/\",`repositories`.`name`) AS `repo`," .
- "`architectures`.`name` AS `arch`," .
- mysql_query_package_version("binary_packages") .
- " AS `version`," .
- "IF(`binary_packages`.`has_issues`,1,0) AS `has_issues`," .
- "`build_assignments`.`return_date` AS `build_date`," .
- "`binary_packages_in_repositories`.`last_moved` AS `move_date`," .
- "IF(`binary_packages_in_repositories`.`is_to_be_deleted`,1,0) AS `is_to_be_deleted`" .
- $query .
- " LIMIT " . (($page-1)*100) . ", 100"
+ $fuzzy_matches = query_package_listing(
+ $q_f . " LIMIT " . (($page-1)*100) . ", 100",
+ $float_columns,
+ false
);
- $fuzzy_matches = array();
- while ($row = $result -> fetch_assoc()) {
- foreach ($float_columns as $float_column)
- $row[$float_column] = floatval($row[$float_column]);
- $fuzzy_matches[] = $row;
- }
function header_and_footer() {