source: trunk/www/ports.php @ 20434

Last change on this file since 20434 was 19376, checked in by yeled@…, 14 years ago

add svn:keywords Id

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