source: trunk/www/ru/ports.php @ 15399

Last change on this file since 15399 was 15399, checked in by matt, 15 years ago

Normalize the use of darwinports.org

  • Property svn:eol-style set to native
File size: 6.7 KB
Line 
1<?
2    $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
3    include_once("$DOCUMENT_ROOT/ru/includes/common.inc");
4    include_once("$DOCUMENT_ROOT/includes/db_portslisting.inc");
5    include_once("$DOCUMENT_ROOT/includes/email.inc");
6    print_header('Текущая база портов', 'utf-8');
7?>
8        <center>
9        <h1>Текущая база портов DarwinPorts</h1>
10        </center>
11
12        <p>С помощью этой формы Вы можете осуществлять поиск по текущей базе данных проекта DarwinPorts<br />
13        <i>Последний раз данные обновлены: </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>Искать по:</th>
27                        <td>
28                                <select name="by">
29                                <option value="name"<? if ($by == "name") { echo " selected=\"selected\""; } ?>>Названию</option>
30                                <option value="desc"<? if ($by == "desc") { echo " selected=\"selected\""; } ?>>Описанию</option>
31                                <option value="cat"<? if ($by == "cat") { echo " selected=\"selected\""; } ?>>Категориям</option>
32                                <option value="maintainer"<? if ($by == "maintainer") { echo " selected=\"selected\""; } ?>>Разработчику</option>
33                                </select>
34                        </td>
35                        <td><input type="text" name="substr" size="40" /></td>
36                        <td><input type="submit" name="Search" value="Поиск" /></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">Посмотреть все названия (<?= $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">Просмотр по категориям:</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.darwinports.org/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>Разработчик:</i>
119<?
120                                        $primary = 1;
121                                        while ( $nrow = mysql_fetch_array($nresult) ) {
122                                                if ($primary) { echo "<b>"; }
123                                                $addr = obfuscate_email($nrow[0]);
124                                                print $addr;
125                                                if ($primary) { echo "</b>"; }
126                                                $primary = 0;
127                                        }
128                                }
129
130// CATEGORIES
131                                $nquery = "SELECT category FROM darwinports.categories WHERE portfile='" . $row['name'] . "' ORDER BY is_primary DESC, category";
132                                $nresult = mysql_query($nquery);
133                                if ($nresult) {
134?>
135        <br />
136        <i>Категории:</i>
137<?
138                                        $primary = 1;
139                                        while ( $nrow = mysql_fetch_assoc($nresult) ) {
140                                                if ($primary) { echo "<b>"; }
141                                        ?>
142                                                <a href="<?= $PHP_SELF; ?>?by=cat&substr=<?= $nrow['category']; ?>"><?= $nrow['category']; ?></a>
143                                        <?
144                                                if ($primary) { echo "</b>"; }
145                                                $primary = 0;
146                                        }
147                                }
148
149// PLATFORMS
150                                $nquery = "SELECT platform FROM darwinports.platforms WHERE portfile='" . $row['name'] . "' ORDER BY platform";
151                                $nresult = mysql_query($nquery);
152                                if ($nresult && mysql_num_rows($nresult) > 0) {
153?>
154        <br />
155        <i>Платформы:</i>
156<?
157                                        while ( $nrow = mysql_fetch_array($nresult) ) {
158                                                $platform = $nrow[0];
159                                        ?>
160                                                <a href="<?= $PHP_SELF; ?>?by=platform&substr=<?= $platform; ?>"><?= $platform; ?></a>
161                                        <?
162                                        }
163                                }
164
165// DEPENDENCIES
166                                $nquery = "SELECT library FROM darwinports.dependencies WHERE portfile='" . $row['name'] . "' ORDER BY library";
167                                $nresult = mysql_query($nquery);
168                                if ($nresult && mysql_num_rows($nresult) > 0) {
169?>
170        <br />
171        <i>Зависимости:</i>
172<?
173                                        while ( $nrow = mysql_fetch_array($nresult) ) {
174                                                // lib:libpng.3:libpng -> libpng
175                                                $library = eregi_replace("^[^:]*:[^:]*:", "", $nrow[0]);
176                                        ?>
177                                                <a href="<?= $PHP_SELF; ?>?by=name&substr=<?= $library; ?>"><?= $library; ?></a>
178                                        <?
179                                        }
180                                }
181/*
182// VARIANTS
183                                $nquery = "SELECT variant FROM darwinports.variants WHERE portfile='" . $row['name'] . "' ORDER BY variant";
184                                $nresult = mysql_query($nquery);
185                                if ($nresult && mysql_num_rows($nresult) > 0) {
186?>
187        <br />
188        <i>Варианты:</i>
189<?
190                                        while ( $nrow = mysql_fetch_array($nresult) ) {
191                                                $variant = $nrow[0];
192                                        ?>
193                                                <a href="<?= $PHP_SELF; ?>?by=variant&substr=<?= $variant; ?>"><?= $variant; ?></a>
194                                        <?
195                                        }
196                                }
197*/
198        ?>
199        <br />
200        </dd>
201        <br />
202<?     
203                        } 
204                } else {
205                        echo "В ходе работы произошла ошибка. (501)";
206                }
207        }
208?>
209        </dl>
210        </div>
211<?php
212  print_footer();
213?>
Note: See TracBrowser for help on using the repository browser.