source: trunk/www/en/ports.php @ 1575

Last change on this file since 1575 was 1163, checked in by kevin, 18 years ago

Fixed portfile select statement.

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