<pre style='margin:0'>
Rainer Müller (raimue) pushed a commit to branch master
in repository macports-www.
</pre>
<p><a href="https://github.com/macports/macports-www/commit/dfd296a87c93a8d1093283245d0113999439544a">https://github.com/macports/macports-www/commit/dfd296a87c93a8d1093283245d0113999439544a</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new dfd296a Drop ports.php, remove database connectivity
</span>dfd296a is described below
<span style='display:block; white-space:pre;color:#808000;'>commit dfd296a87c93a8d1093283245d0113999439544a
</span>Author: Clemens Lang <cal@macports.org>
AuthorDate: Thu Jun 11 17:48:38 2020 +0200
<span style='display:block; white-space:pre;color:#404040;'> Drop ports.php, remove database connectivity
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> The benefits of not having to provide connectivity to PostgreSQL for PHP
</span><span style='display:block; white-space:pre;color:#404040;'> outweigh the downsides of not having two rather meaningless numbers
</span><span style='display:block; white-space:pre;color:#404040;'> disabled on our home page.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> ports.php was replaced by the webapp a while ago anyway.
</span>---
includes/common.inc | 78 --------------
index.php | 6 +-
ports.php | 293 ----------------------------------------------------
3 files changed, 2 insertions(+), 375 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/includes/common.inc b/includes/common.inc
</span><span style='display:block; white-space:pre;color:#808080;'>index 783642a..74a380f 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/includes/common.inc
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/includes/common.inc
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -69,84 +69,6 @@ function print_warnings() {
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-######################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Connect to the portsdb and gather miscellaneous information:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-function portsdb_gather_information() {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $script = basename($_SERVER['PHP_SELF']);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $portsdb_connection = FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (function_exists('pg_connect')) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $portsdb_connection = pg_connect("");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($portsdb_connection === FALSE) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- switch ($script) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- case "index.php":
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $portsdb_info = array(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 'connection_handler' => FALSE,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 'num_ports' => 'a lot of',
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 'num_categories' => 'many'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- );
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- case "ports.php":
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print_header("The MacPorts Project", "utf-8");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print '
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- <div id="content">
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- <h2 class="hdr">MacPorts Portfiles</h2>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- <p>Our database is currently unavailable. We hope to have it back soon!</p>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- </div>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print_footer();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- die();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- default:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print_footer();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- die();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $portsdb_info = array(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 'connection_handler' => $portsdb_connection,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 'num_ports' => ports_count(),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 'num_categories' => categories_count()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- );
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return $portsdb_info;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-######################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Total count of currently available ports:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-function ports_count() {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $result = pg_query("SELECT COUNT(DISTINCT name) FROM portfiles");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($result) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $row = pg_fetch_array($result);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $count = $row[0];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $count = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return $count;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-######################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Total count of port categories:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-function categories_count() {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $result = pg_query("SELECT COUNT(DISTINCT category) FROM categories");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($result) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $row = pg_fetch_array($result);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $count = $row[0];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $count = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return $count;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> ######################################################################
# Obfuscate e-mail addresses:
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/index.php b/index.php
</span><span style='display:block; white-space:pre;color:#808080;'>index 9655937..8287843 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/index.php
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/index.php
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3,7 +3,6 @@
</span> /* Copyright (c) 2007, 2014, The MacPorts Project. */
include_once("includes/common.inc");
print_header('The MacPorts Project -- Home', 'utf-8');
<span style='display:block; white-space:pre;background:#ffe0e0;'>- $portsdb_info = portsdb_gather_information();
</span> ?>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -21,9 +20,8 @@
</span> <p>We provide a single software tree that attempts to track the latest release of every software title (port) we distribute,
without splitting them into “stable” Vs. “unstable” branches, targeting mainly macOS Sierra v10.12 and later
(including macOS Catalina v10.15).
<span style='display:block; white-space:pre;background:#ffe0e0;'>- There are currently <a href="<?php print $portdb_url; ?>">
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- <b><?php print $portsdb_info['num_ports']; ?></b> ports</a> in our tree, distributed among <?php print $portsdb_info['num_categories']; ?>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- different categories, and more are being added on a regular basis.</p>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ There are <a href="<?php print $portdb_url; ?>">
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <b>thousands</b> of ports</a> in our tree, distributed among different categories, and more are being added on a regular basis.</p>
</span>
<h3 class="subhdr">Getting started</h3>
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/ports.php b/ports.php
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 78c5f23..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/ports.php
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,293 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-<?php
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* -*- coding: utf-8; mode: php; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:set fenc=utf-8 filetype=php et sw=4 ts=4 sts=4: */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Web client to the PortIndex2MySQL script located in 'jobs' directory of git repository macports-infrastructure . */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Copyright (c) 2004, OpenDarwin. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Copyright (c) 2004-2007, The MacPorts Project. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- include_once("includes/common.inc");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $portsdb_info = portsdb_gather_information();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $sql = "SELECT ceil(extract( epoch from activity_time)) as tim FROM log ORDER BY tim DESC";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $result = pg_query($sql);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($result && $row = pg_fetch_row($result)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $date = date('Y-m-d', $row[0]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $time = date('H:i:s e', $row[0]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $date = '(unknown)';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $time = '(unknown)';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $by = isset($_GET['by']) ? $_GET['by'] : '';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $substr = isset($_GET['substr']) ? $_GET['substr'] : '';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $page = isset($_GET['page']) ? max(intval($_GET['page']), 1) : '1';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $pagesize = isset($_GET['pagesize']) ? max(intval($_GET['pagesize']), 1) : 50; # arbitrary setting
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # protect against XSS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $phpself = htmlspecialchars($_SERVER['PHP_SELF']);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print_header('The MacPorts Project -- Available Ports', 'utf-8');
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-?>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-<div id="content">
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- <h2 class="hdr">MacPorts Portfiles</h2>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- <p>The MacPorts Project currently distributes <b><?php print $portsdb_info['num_ports']; ?></b> ports, organized across
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- <?php print $portsdb_info['num_categories']; ?> different categories and available below for viewing. This form allows
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- you to search the MacPorts software index, last updated on <?php print '<b>' . $date . '</b> at <b>' . $time . '</b>'; ?>.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- </p>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- <br />
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- <form action="<?php print $phpself; ?>" method="get">
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- <p>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- <label for="by">Search by:</label>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- <select name="by" id="by">
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- <option value="name"<?php if ($by == 'name') { print ' selected="selected"'; } ?>>Software Title</option>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- <option value="category"<?php if ($by == 'category') { print ' selected="selected"'; } ?>>Category</option>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- <option value="maintainer"<?php if ($by == 'maintainer') { print ' selected="selected"'; } ?>>Maintainer</option>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-<!-- <option value="library"<?php if ($by == 'dependency') { print ' selected="selected"'; } ?>>Dependency</option> -->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- <option value="variant"<?php if ($by == 'variant') { print ' selected="selected"'; } ?>>Variant</option>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- <option value="platform"<?php if ($by == 'platform') { print ' selected="selected"'; } ?>>Platform</option>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-<!-- <option value="license"<?php if ($by == 'license') { print ' selected="selected"'; } ?>>License</option> -->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- </select>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- <input type="text" name="substr" value="<?php print htmlspecialchars($substr); ?>" size="40" />
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- <input type="submit" value="Search" />
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- </p>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- </form>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- <p>Or view the complete <a href="<?php print $phpself; ?>?by=all">ports list (<?php print $portsdb_info['num_ports']; ?>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ports)</a>.</p>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- <br />
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-<?php
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* If no valid search criteria is specified (by set and not equal to all and a valid substring) we output port categories
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- as possible searches */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (!$by || ($by != 'all' && !$substr)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $query = "SELECT DISTINCT category FROM categories ORDER BY category";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $result = pg_query($query);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($result) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $max_entries_per_column = floor($portsdb_info['num_categories']/4);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $columns = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print '<h3>Port Categories</h3><div id="categories"><ul>';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- while ($columns < 4) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $entries_per_column = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print '<li><ul>';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- while ($row = pg_fetch_assoc($result)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print "<li><a href=\"$phpself?by=category&substr=" . urlencode($row['category']) . '">'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- . htmlspecialchars($row['category']) . '</a></li>';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($entries_per_column == $max_entries_per_column) break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $entries_per_column++;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print '</ul></li>';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $columns++;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print '</ul></div>';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* If valid criteria is specified (by set and a valid substring, or by set to all) we poll the db and display the results */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($by && ($substr || $by == 'all')) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $fields = 'name, path, version, description';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $tables = "portfiles AS p";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- switch ($by) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- case 'name':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #TODO: was pg_escape_string. Current charset taken into account ?
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $criteria = "p.name ILIKE '%" . pg_escape_string($substr) . "%'";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- case 'category':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $tables .= ", categories AS c";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $criteria = "c.portfile = p.name AND c.category ILIKE '" . pg_escape_string($substr) . "'";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- case 'maintainer':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $tables .= ", maintainers AS m";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $criteria = "m.portfile = p.name AND m.maintainer ILIKE '%" . pg_escape_string($substr) . "%'";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- case 'library':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $criteria = "p.name = '" . pg_escape_string($substr) . "'";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- case 'variant':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $tables .= ", variants AS v";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $criteria = "v.portfile = p.name AND v.variant ILIKE '" . pg_escape_string($substr) . "'";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- case 'platform':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $tables .= ", platforms AS pl";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $criteria = "pl.portfile = p.name AND pl.platform ILIKE '" . pg_escape_string($substr) . "'";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-/*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- case 'license':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $tables .= ", $portsdb_name.licenses AS lc";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $criteria = "lc.portfile = p.name AND lc.license ILIKE '" . pg_escape_string($substr) . "'";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- case 'all':
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $criteria = '';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- default:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $criteria = 'FALSE';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $where = ($criteria == '' ? '' : "WHERE $criteria");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $query = "SELECT DISTINCT $fields FROM $tables $where ORDER BY name";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $result = pg_query($query);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Main query sent to the DB */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($result) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $paging = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $numrows = pg_num_rows($result);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($numrows > $pagesize) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $paging = true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $pagecount = ceil($numrows / $pagesize);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $page = min($page, $pagecount);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $offset = $pagesize * ($page-1);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $curpagesize = min($pagesize, $numrows - $offset);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # generate a paging control and cache it so we can show it twice
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $pagecontrol = "<p>Page ";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- for ($i = 1; $i <= $pagecount; $i++) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($i != 1) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $pagecontrol .= " | ";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($i == $page) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $pagecontrol .= "<b>$i</b>";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $pagecontrol .= "<a href=\"$phpself?by=$by&substr=" . urlencode($substr) . "&page=$i&pagesize=$pagesize\">$i</a>";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $pagecontrol .= "</p>";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # seek the data pointer by fetching the row before the interesting one
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # FIXME: maybe should be offset - 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if($offset > 0){
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pg_fetch_row($result, $offset);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print '<h3>Query Results</h3>';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($paging) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print $pagecontrol;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $numrowtext = ($offset+1) . "-" . ($offset + $curpagesize) . " of $numrows Portfile" . ($curpagesize == 1 ? '' : 's');
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $numrowtext = "$numrows Portfile" . ($numrows == 1 ? '' : 's');
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print "<p><i>$numrowtext Selected</i></p>";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print '<dl>';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Iterate over the entire set of returned ports */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- for ($row = pg_fetch_assoc($result), $i = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $row && (!$paging || $i < $curpagesize);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $row = pg_fetch_assoc($result), $i++) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Port name and Portfile URL */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print '<dt><b>' . htmlspecialchars($row['name']) . '</b> ' . htmlspecialchars($row['version'])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- . ' <i>(<a href="' . htmlspecialchars($github_url . 'macports-ports/blob/master/' . $row['path'] . '/Portfile')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- . '">source</a>)</i></dt>';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print '<dd>';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Port short description */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print htmlspecialchars($row['description']) . '<br />';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Licenses */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $nquery = "SELECT license FROM licenses WHERE portfile='" . pg_escape_string($row['name']) .
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "' ORDER BY license";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $nresult = pg_query($nquery);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($nresult && pg_num_rows($nresult) > 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print '<i>Licenses:</i> ';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- while ($nrow = pg_fetch_row($nresult)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print "<a href=\"$phpself?by=license&substr=" . urlencode($nrow[0]) . '">'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- . htmlspecialchars($nrow[0]) . '</a> ';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print "<br />";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Maintainers */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $nquery = "SELECT maintainer FROM maintainers WHERE portfile='" . pg_escape_string($row['name']) .
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "' ORDER BY is_primary DESC, maintainer";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $nresult = pg_query($nquery);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($nresult) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $primary = 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print '<i>Maintained by:</i>';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- while ($nrow = pg_fetch_row($nresult)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($primary) { print ' <b>'; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else { print ' '; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print obfuscate_email($nrow[0]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($primary) { print '</b>'; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $primary = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Categories */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $nquery = "SELECT category FROM categories WHERE portfile='" . pg_escape_string($row['name']) .
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "' ORDER BY is_primary DESC, category";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $nresult = pg_query($nquery);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($nresult) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $primary = 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print '<br /><i>Categories:</i>';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- while ($nrow = pg_fetch_row($nresult)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($primary) { print ' <b>'; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else { print ' '; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print "<a href=\"$phpself?by=category&substr=" . urlencode($nrow[0]) . '">'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- . htmlspecialchars($nrow[0]) . '</a>';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($primary) { print '</b>'; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $primary = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Platforms */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $nquery = "SELECT platform FROM platforms WHERE portfile='" . pg_escape_string($row['name']) .
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "' ORDER BY platform";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $nresult = pg_query($nquery);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($nresult) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print '<br /><i>Platforms:</i> ';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- while ($nrow = pg_fetch_row($nresult)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print "<a href=\"$phpself?by=platform&substr=" . urlencode($nrow[0]) . '">'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- . htmlspecialchars($nrow[0]) . '</a> ';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Dependencies */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $nquery = "SELECT library FROM dependencies WHERE portfile='" . pg_escape_string($row['name']) .
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "' ORDER BY library";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $nresult = pg_query($nquery);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($nresult && pg_num_rows($nresult) > 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print '<br /><i>Dependencies:</i> ';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- while ($nrow = pg_fetch_row($nresult)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $library = preg_replace('/^(?:[^:]*:){1,2}/', '', $nrow[0]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print "<a href=\"$phpself?by=library&substr=" . urlencode($library) . '">'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- . htmlspecialchars($library) . '</a> ';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Variants */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $nquery = "SELECT variant FROM variants WHERE portfile='" . pg_escape_string($row['name']) .
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "' ORDER BY variant";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $nresult = pg_query($nquery);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($nresult && pg_num_rows($nresult) > 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print '<br /><i>Variants:</i> ';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- while ($nrow = pg_fetch_row($nresult)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print "<a href=\"$phpself?by=variant&substr=" . urlencode($nrow[0]) . '">'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- . htmlspecialchars($nrow[0]) . '</a> ';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print '<br /><br /></dd>';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } /* while (listing of matching ports) */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print '</dl>';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ($paging) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print $pagecontrol;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* When we hit this else, the query failed for some reason */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print '<p>An Error Occurred: '. pg_last_error($portsdb_info['connection_handler']) . '</p>';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } /* if (main query sent to the DB) */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-?>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-</div>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-<?php
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- print_footer();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pg_close($portsdb_info['connection_handler']);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-?>
</span></pre><pre style='margin:0'>
</pre>