source: trunk/www/ports.php @ 1026

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

Use new index features.

  • Property svn:eol-style set to native
File size: 5.8 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                $query = "SELECT DISTINCT name,path,version,description,maintainer FROM darwinports.portfiles p, ".
74                "darwinports.maintainers m, darwinports.categories c, darwinports.variants v, darwinports.platforms pl ".
75                "WHERE p.name=m.portfile AND p.name=v.portfile AND p.name=pl.portfile AND p.name=c.portfile AND m.is_primary=1";
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                        $query = $query . " AND c.category='" . addslashes($substr) . "'";
84                }
85                if ($by == "variant") {
86                        $query = $query . " AND v.variant='" . addslashes($substr) . "'";
87                }
88                if ($by == "platform") {
89                        $query = $query . " AND pl.platform ='" . addslashes($substr) . "'";
90                }
91                if ($by == "maintainer") {
92                        $query = $query . " AND m.maintainer LIKE '%" . addslashes($substr) . "%'";
93                }
94                $query = $query . " ORDER BY name";
95                $result = mysql_query($query);
96                if($result) {
97?>
98        <p>
99        <i><?= mysql_num_rows($result); ?> Portfile<? if (mysql_num_rows($result) != 1) { echo "s"; } ?> Selected</i>
100        </p>
101        <dl>
102<?             
103                        while( $row = mysql_fetch_assoc($result) ) {
104?>
105        <dt><b><a href="http://www.opendarwin.org/projects/darwinports/darwinports/dports/<?= $row['path']; ?>/Portfile"><?= $row['name']; ?></a></b> <?= $row['version']; ?></dt>
106        <dd>
107        <?= $row['description']; ?><br />
108        <i>Maintained by:</i> <a href="mailto:<?= $row['maintainer']; ?>"><?= $row['maintainer']; ?></a><br />
109        <?
110// CATEGORIES
111                                $nquery = "SELECT category FROM darwinports.categories WHERE portfile='" . $row['name'] . "' ORDER BY is_primary DESC, category";
112                                $nresult = mysql_query($nquery);
113                                if ($nresult) {
114?>
115        <i>Categories:</i>
116<?
117                                        $primary = 1;
118                                        while ( $nrow = mysql_fetch_assoc($nresult) ) {
119                                                if ($primary) { echo "<b>"; }
120                                        ?>
121                                                <a href="<?= $PHP_SELF; ?>?by=cat&substr=<?= $nrow['category']; ?>"><?= $nrow['category']; ?></a>
122                                        <?
123                                                if ($primary) { echo "</b>"; }
124                                                $primary = 0;
125                                        }
126                                }
127
128// PLATFORMS
129                                $nquery = "SELECT platform FROM darwinports.platforms WHERE portfile='" . $row['name'] . "' ORDER BY platform";
130                                $nresult = mysql_query($nquery);
131                                if ($nresult && mysql_num_rows($nresult) > 0) {
132?>
133        <br />
134        <i>Platforms:</i>
135<?
136                                        while ( $nrow = mysql_fetch_array($nresult) ) {
137                                                $platform = $nrow[0];
138                                        ?>
139                                                <a href="<?= $PHP_SELF; ?>?by=platform&substr=<?= $platform; ?>"><?= $platform; ?></a>
140                                        <?
141                                        }
142                                }
143
144// DEPENDENCIES
145                                $nquery = "SELECT library FROM darwinports.dependencies WHERE portfile='" . $row['name'] . "' ORDER BY library";
146                                $nresult = mysql_query($nquery);
147                                if ($nresult && mysql_num_rows($nresult) > 0) {
148?>
149        <br />
150        <i>Dependencies:</i>
151<?
152                                        while ( $nrow = mysql_fetch_array($nresult) ) {
153                                                // lib:libpng.3:libpng -> libpng
154                                                $library = eregi_replace("^[^:]*:[^:]*:", "", $nrow[0]);
155                                        ?>
156                                                <a href="<?= $PHP_SELF; ?>?by=name&substr=<?= $library; ?>"><?= $library; ?></a>
157                                        <?
158                                        }
159                                }
160/*
161// VARIANTS
162                                $nquery = "SELECT variant FROM darwinports.variants WHERE portfile='" . $row['name'] . "' ORDER BY variant";
163                                $nresult = mysql_query($nquery);
164                                if ($nresult && mysql_num_rows($nresult) > 0) {
165?>
166        <br />
167        <i>Variants:</i>
168<?
169                                        while ( $nrow = mysql_fetch_array($nresult) ) {
170                                                $variant = $nrow[0];
171                                        ?>
172                                                <a href="<?= $PHP_SELF; ?>?by=variant&substr=<?= $variant; ?>"><?= $variant; ?></a>
173                                        <?
174                                        }
175                                }
176*/
177        ?>
178        <br />
179        </dd>
180        <br />
181<?     
182                        } 
183                } else {
184                        echo "An Error Occurred. (501)";
185                }
186        }
187?>
188        </dl>
189<?
190        od_print_footer("en"); 
191?>
Note: See TracBrowser for help on using the repository browser.