source: trunk/www/ports.php @ 1014

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

Show total count of portfiles.

  • Property svn:eol-style set to native
File size: 3.7 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                                </select>
33                        </td>
34                        <td><input type="text" name="substr" size="40" /></td>
35                        <td><input type="submit" name="Search" /></td>
36                </tr>
37                <tr><td colspan="4"><hr size="1" noshade="noshade" /></td></tr>
38                <tr>
39<?
40                $result = mysql_query("SELECT count(*) from darwinports.portfiles");
41                if ($result) {
42                        $row = mysql_fetch_array($result);
43                        $count = $row[0];
44                } else {
45                        $count = 0;
46                }
47?>
48                        <td colspan="4" align="left"><a href="<?= $PHP_SELF; ?>?by=all">View All Software Titles (<?= $count; ?>)</a></td>
49                </tr>
50                <?
51                        if (!$by || (!$substr && $by != "all")) {
52                ?>
53                <tr><td colspan="4"><hr size="1" noshade="noshade" /></td></tr>
54                <tr><th colspan="4" align="left">View By Category:</th></tr>
55                <?
56                                $query = "SELECT DISTINCT category FROM darwinports.categories ORDER BY category";
57                                $result = mysql_query($query);
58                                if($result) {
59                                        while( $row = mysql_fetch_assoc($result) ) {
60                ?>
61                <tr><td colspan="4"><a href="<?= $PHP_SELF; ?>?by=cat&substr=<?= $row['category']; ?>"><?= $row['category']; ?></a></td></tr>
62                <?
63                                        }
64                                }
65                        }
66                ?>
67        </table>
68        </form>
69
70        <dl>
71<?
72        if ($by && ($substr || $by == "all")) {
73                $query = "SELECT DISTINCT name,path,version,description,maintainer FROM darwinports.portfiles p, darwinports.maintainers m, darwinports.categories c WHERE p.name=m.portfile AND p.name=c.portfile AND m.is_primary=1";
74                if ($by == "name") {
75                        $query = $query . " AND p.name LIKE '%" . addslashes($substr) . "%'";
76                }
77                if ($by == "desc") {
78                        $query = $query . " AND p.description LIKE '%" . addslashes($substr) . "%'";
79                }
80                if ($by == "cat") {
81                        $query = $query . " AND c.category='" . addslashes($substr) . "'";
82                }
83                $query = $query . " ORDER BY name";
84                $result = mysql_query($query);
85                if($result) {
86                        while( $row = mysql_fetch_assoc($result) ) {
87?>
88        <dt><b><a href="http://www.opendarwin.org/projects/darwinports/darwinports/dports/<?= $row['path']; ?>/Portfile"><?= $row['name']; ?></a></b> <?= $row['version']; ?></dt>
89        <dd>
90        <?= $row['description']; ?><br />
91        <i>Maintained by:</i> <a href="mailto:<?= $row['maintainer']; ?>"><?= $row['maintainer']; ?></a><br />
92        <i>Categories:</i>
93        <?
94                                $nquery = "SELECT category FROM darwinports.categories WHERE portfile='" . $row['name'] . "' ORDER BY is_primary DESC, category";
95                                $nresult = mysql_query($nquery);
96                                if ($nresult) {
97                                        $primary = 1;
98                                        while ( $nrow = mysql_fetch_assoc($nresult) ) {
99                                                if ($primary) { echo "<b>"; }
100                                        ?>
101                                                <a href="<?= $PHP_SELF; ?>?by=cat&substr=<?= $nrow['category']; ?>"><?= $nrow['category']; ?></a>
102                                        <?
103                                                if ($primary) { echo "</b>"; }
104                                                $primary = 0;
105                                        }
106                                }
107        ?>
108        <br />
109        </dd>
110        <br />
111<?     
112                        } 
113                } else {
114                        echo "An Error Occurred. (501)";
115                }
116        }
117?>
118        </dl>
119<?
120        od_print_footer("en"); 
121?>
Note: See TracBrowser for help on using the repository browser.