source: trunk/www/ports.php @ 15495

Last change on this file since 15495 was 15413, checked in by yeled, 15 years ago

o make port:foo dependencies display like the lib:foo:bar ones do. o therefore fix the linking
o and then modify the linking so the _exact_ match is found (only) when clicking on a dependency link.

Bug: 2022
Submitted by:
Reviewed by:
Approved by:
Obtained from:

  • Property svn:eol-style set to native
File size: 6.4 KB
Line 
1<?
2    $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
3    include_once("$DOCUMENT_ROOT/includes/common.inc");
4    include_once("$DOCUMENT_ROOT/includes/db_portslisting.inc");
5    include_once("$DOCUMENT_ROOT/includes/email.inc");
6    print_header('Available Ports', 'iso-8859-1');
7?>
8        <center>
9        <h1>DarwinPorts Portfiles</h1>
10        </center>
11
12        <p>
13        This form allows you to search the current index of DarwinPorts software. <br />
14        <i>Index last updated: </i>
15        <?
16                $sql = "SELECT UNIX_TIMESTAMP(activity_time) FROM darwinports.log ORDER BY UNIX_TIMESTAMP(activity_time) DESC";
17                $result = mysql_query($sql);
18                if($result && $row = mysql_fetch_row($result)) {
19                                echo date("d-M-Y H:i:s", $row[0]);
20                }
21        ?>
22        </p>
23       
24        <form action="<?= $PHP_SELF; ?>">
25        <table>
26                <tr>
27                        <th>Search by:</th>
28                        <td>
29                                <select name="by">
30                                <option value="name"<? if ($by == "name") { echo " selected=\"selected\""; } ?>>Software Title</option>
31                                <option value="desc"<? if ($by == "desc") { echo " selected=\"selected\""; } ?>>Description</option>
32                                <option value="cat"<? if ($by == "cat") { echo " selected=\"selected\""; } ?>>Category</option>
33                                <option value="maintainer"<? if ($by == "maintainer") { echo " selected=\"selected\""; } ?>>Maintainer</option>
34                                </select>
35                        </td>
36                        <td><input type="text" name="substr" size="40" /></td>
37                        <td><input type="submit" name="Search" /></td>
38                </tr>
39                <tr><td colspan="4"><hr size="1" noshade="noshade" /></td></tr>
40                <tr>
41<?
42                $result = mysql_query("SELECT count(*) from darwinports.portfiles");
43                if ($result) {
44                        $row = mysql_fetch_array($result);
45                        $count = $row[0];
46                } else {
47                        $count = 0;
48                }
49?>
50                        <td colspan="4" align="left"><a href="<?= $PHP_SELF; ?>?by=all">View All Software Titles (<?= $count; ?>)</a></td>
51                </tr>
52                <?
53                        if (!$by || (!$substr && $by != "all")) {
54                ?>
55                <tr><td colspan="4"><hr size="1" noshade="noshade" /></td></tr>
56                <tr><th colspan="4" align="left">View By Category:</th></tr>
57                <?
58                                $query = "SELECT DISTINCT category FROM darwinports.categories ORDER BY category";
59                                $result = mysql_query($query);
60                                if($result) {
61                                        while( $row = mysql_fetch_assoc($result) ) {
62                ?>
63                <tr><td colspan="4"><a href="<?= $PHP_SELF; ?>?by=cat&substr=<?= $row['category']; ?>"><?= $row['category']; ?></a></td></tr>
64                <?
65                                        }
66                                }
67                        }
68                ?>
69        </table>
70        </form>
71
72<?
73        if ($by && ($substr || $by == "all")) {
74                $fields = "name, path, version, description";
75                $query = "1";
76                $tables = "darwinports.portfiles p";
77                if ($by == "name") {
78                        $query = $query . " AND p.name LIKE '%" . addslashes($substr) . "%'";
79                }
80                if ($by == "library") {
81                        $query = $query . " AND p.name='" . addslashes($substr) . "'";
82                }
83                if ($by == "desc") {
84                        $query = $query . " AND p.description LIKE '%" . addslashes($substr) . "%'";
85                }
86                if ($by == "cat") {
87                        $tables = $tables . ", darwinports.categories c";
88                        $query = $query . " AND c.portfile=p.name AND c.category='" . addslashes($substr) . "'";
89                }
90                if ($by == "variant") {
91                        $tables = $tables . ", darwinports.variants v";
92                        $query = $query . " AND v.portfile=p.name AND v.variant='" . addslashes($substr) . "'";
93                }
94                if ($by == "platform") {
95                        $tables = $tables . ", darwinports.platforms pl";
96                        $query = $query . " AND pl.portfile=p.name AND pl.platform ='" . addslashes($substr) . "'";
97                }
98                if ($by == "maintainer") {
99                        $tables = $tables . ", darwinports.maintainers m";
100                        $query = $query . " AND m.portfile=p.name AND m.maintainer LIKE '%" . addslashes($substr) . "%'";
101                }
102                $query = "SELECT DISTINCT $fields FROM $tables WHERE $query ORDER BY name";
103                $result = mysql_query($query);
104                if($result) {
105?>
106        <p>
107        <i><?= mysql_num_rows($result); ?> Portfile<? if (mysql_num_rows($result) != 1) { echo "s"; } ?> Selected</i>
108        </p>
109        <dl>
110<?             
111                        while( $row = mysql_fetch_assoc($result) ) {
112?>
113        <dt><b><a href="http://www.darwinports.org/darwinports/dports/<?= $row['path']; ?>/Portfile"><?= $row['name']; ?></a></b> <?= $row['version']; ?></dt>
114        <dd>
115        <?= $row['description']; ?><br />
116        <?
117// MAINTAINERS
118                                $nquery = "SELECT maintainer FROM darwinports.maintainers WHERE portfile='" . $row['name'] . "' ORDER BY is_primary DESC, maintainer";
119                                $nresult = mysql_query($nquery);
120                                if ($nresult) {
121?>
122        <i>Maintained by:</i>
123<?
124                                        $primary = 1;
125                                        while ( $nrow = mysql_fetch_array($nresult) ) {
126                                                if ($primary) { echo "<b>"; }
127                                                $addr = obfuscate_email($nrow[0]);
128                                                print $addr;
129                                                if ($primary) { echo "</b>"; }
130                                                $primary = 0;
131                                        }
132                                }
133
134// CATEGORIES
135                                $nquery = "SELECT category FROM darwinports.categories WHERE portfile='" . $row['name'] . "' ORDER BY is_primary DESC, category";
136                                $nresult = mysql_query($nquery);
137                                if ($nresult) {
138?>
139        <br />
140        <i>Categories:</i>
141<?
142                                        $primary = 1;
143                                        while ( $nrow = mysql_fetch_assoc($nresult) ) {
144                                                if ($primary) { echo "<b>"; }
145                                        ?>
146                                                <a href="<?= $PHP_SELF; ?>?by=cat&substr=<?= $nrow['category']; ?>"><?= $nrow['category']; ?></a>
147                                        <?
148                                                if ($primary) { echo "</b>"; }
149                                                $primary = 0;
150                                        }
151                                }
152
153// PLATFORMS
154                                $nquery = "SELECT platform FROM darwinports.platforms WHERE portfile='" . $row['name'] . "' ORDER BY platform";
155                                $nresult = mysql_query($nquery);
156                                if ($nresult && mysql_num_rows($nresult) > 0) {
157?>
158        <br />
159        <i>Platforms:</i>
160<?
161                                        while ( $nrow = mysql_fetch_array($nresult) ) {
162                                                $platform = $nrow[0];
163                                        ?>
164                                                <a href="<?= $PHP_SELF; ?>?by=platform&substr=<?= $platform; ?>"><?= $platform; ?></a>
165                                        <?
166                                        }
167                                }
168
169// DEPENDENCIES
170                                $nquery = "SELECT library FROM darwinports.dependencies WHERE portfile='" . $row['name'] . "' ORDER BY library";
171                                $nresult = mysql_query($nquery);
172                                if ($nresult && mysql_num_rows($nresult) > 0) {
173?>
174        <br />
175        <i>Dependencies:</i>
176<?
177                                        while ( $nrow = mysql_fetch_array($nresult) ) {
178                                                // lib:libpng.3:libpng -> libpng
179                                                $library = eregi_replace("^([^:]*:[^:]*:|[^:]*:)", "", $nrow[0]);
180                                        ?>
181                                                <a href="<?= $PHP_SELF; ?>?by=library&substr=<?= $library; ?>"><?= $library; ?></a>
182                                        <?
183                                        }
184                                }
185/*
186// VARIANTS
187                                $nquery = "SELECT variant FROM darwinports.variants WHERE portfile='" . $row['name'] . "' ORDER BY variant";
188                                $nresult = mysql_query($nquery);
189                                if ($nresult && mysql_num_rows($nresult) > 0) {
190?>
191        <br />
192        <i>Variants:</i>
193<?
194                                        while ( $nrow = mysql_fetch_array($nresult) ) {
195                                                $variant = $nrow[0];
196                                        ?>
197                                                <a href="<?= $PHP_SELF; ?>?by=variant&substr=<?= $variant; ?>"><?= $variant; ?></a>
198                                        <?
199                                        }
200                                }
201*/
202        ?>
203        <br />
204        </dd>
205        <br />
206<?     
207                        } 
208                } else {
209                        echo "An Error Occurred. (501)";
210                }
211        }
212?>
213        </dl>
214        </div>
215<?php
216  print_footer();
217?>
Note: See TracBrowser for help on using the repository browser.