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

Last change on this file since 15479 was 15413, checked in by yeled, 15 years ago

o make port:foo dependencies display like the lib:foo:bar ones do. o therefore fix the linking
o and then modify the linking so the _exact_ match is found (only) when clicking on a dependency link.

Bug: 2022
Submitted by:
Reviewed by:
Approved by:
Obtained from:

  • Property svn:eol-style set to native
File size: 6.8 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 == "library") {
80                        $query = $query . " AND p.name='" . addslashes($substr) . "'";
81                }
82                if ($by == "desc") {
83                        $query = $query . " AND p.description LIKE '%" . addslashes($substr) . "%'";
84                }
85                if ($by == "cat") {
86                        $tables = $tables . ", darwinports.categories c";
87                        $query = $query . " AND c.portfile=p.name AND c.category='" . addslashes($substr) . "'";
88                }
89                if ($by == "variant") {
90                        $tables = $tables . ", darwinports.variants v";
91                        $query = $query . " AND v.portfile=p.name AND v.variant='" . addslashes($substr) . "'";
92                }
93                if ($by == "platform") {
94                        $tables = $tables . ", darwinports.platforms pl";
95                        $query = $query . " AND pl.portfile=p.name AND pl.platform ='" . addslashes($substr) . "'";
96                }
97                if ($by == "maintainer") {
98                        $tables = $tables . ", darwinports.maintainers m";
99                        $query = $query . " AND m.portfile=p.name AND m.maintainer LIKE '%" . addslashes($substr) . "%'";
100                }
101                $query = "SELECT DISTINCT $fields FROM $tables WHERE $query ORDER BY name";
102                $result = mysql_query($query);
103                if($result) {
104?>
105        <p>
106        <i><?= mysql_num_rows($result); ?> Portfile<? if (mysql_num_rows($result) != 1) { echo "s"; } ?> Selected</i>
107        </p>
108        <dl>
109<?             
110                        while( $row = mysql_fetch_assoc($result) ) {
111?>
112        <dt><b><a href="http://www.darwinports.org/darwinports/dports/<?= $row['path']; ?>/Portfile"><?= $row['name']; ?></a></b> <?= $row['version']; ?></dt>
113        <dd>
114        <?= $row['description']; ?><br />
115        <?
116// MAINTAINERS
117                                $nquery = "SELECT maintainer FROM darwinports.maintainers WHERE portfile='" . $row['name'] . "' ORDER BY is_primary DESC, maintainer";
118                                $nresult = mysql_query($nquery);
119                                if ($nresult) {
120?>
121        <i>Разработчик:</i>
122<?
123                                        $primary = 1;
124                                        while ( $nrow = mysql_fetch_array($nresult) ) {
125                                                if ($primary) { echo "<b>"; }
126                                                $addr = obfuscate_email($nrow[0]);
127                                                print $addr;
128                                                if ($primary) { echo "</b>"; }
129                                                $primary = 0;
130                                        }
131                                }
132
133// CATEGORIES
134                                $nquery = "SELECT category FROM darwinports.categories WHERE portfile='" . $row['name'] . "' ORDER BY is_primary DESC, category";
135                                $nresult = mysql_query($nquery);
136                                if ($nresult) {
137?>
138        <br />
139        <i>Категории:</i>
140<?
141                                        $primary = 1;
142                                        while ( $nrow = mysql_fetch_assoc($nresult) ) {
143                                                if ($primary) { echo "<b>"; }
144                                        ?>
145                                                <a href="<?= $PHP_SELF; ?>?by=cat&substr=<?= $nrow['category']; ?>"><?= $nrow['category']; ?></a>
146                                        <?
147                                                if ($primary) { echo "</b>"; }
148                                                $primary = 0;
149                                        }
150                                }
151
152// PLATFORMS
153                                $nquery = "SELECT platform FROM darwinports.platforms WHERE portfile='" . $row['name'] . "' ORDER BY platform";
154                                $nresult = mysql_query($nquery);
155                                if ($nresult && mysql_num_rows($nresult) > 0) {
156?>
157        <br />
158        <i>Платформы:</i>
159<?
160                                        while ( $nrow = mysql_fetch_array($nresult) ) {
161                                                $platform = $nrow[0];
162                                        ?>
163                                                <a href="<?= $PHP_SELF; ?>?by=platform&substr=<?= $platform; ?>"><?= $platform; ?></a>
164                                        <?
165                                        }
166                                }
167
168// DEPENDENCIES
169                                $nquery = "SELECT library FROM darwinports.dependencies WHERE portfile='" . $row['name'] . "' ORDER BY library";
170                                $nresult = mysql_query($nquery);
171                                if ($nresult && mysql_num_rows($nresult) > 0) {
172?>
173        <br />
174        <i>Зависимости:</i>
175<?
176                                        while ( $nrow = mysql_fetch_array($nresult) ) {
177                                                // lib:libpng.3:libpng -> libpng
178                                                $library = eregi_replace("^([^:]*:[^:]*:|[^:]*:)", "", $nrow[0]);
179                                        ?>
180                                                <a href="<?= $PHP_SELF; ?>?by=library&substr=<?= $library; ?>"><?= $library; ?></a>
181                                        <?
182                                        }
183                                }
184/*
185// VARIANTS
186                                $nquery = "SELECT variant FROM darwinports.variants WHERE portfile='" . $row['name'] . "' ORDER BY variant";
187                                $nresult = mysql_query($nquery);
188                                if ($nresult && mysql_num_rows($nresult) > 0) {
189?>
190        <br />
191        <i>Варианты:</i>
192<?
193                                        while ( $nrow = mysql_fetch_array($nresult) ) {
194                                                $variant = $nrow[0];
195                                        ?>
196                                                <a href="<?= $PHP_SELF; ?>?by=variant&substr=<?= $variant; ?>"><?= $variant; ?></a>
197                                        <?
198                                        }
199                                }
200*/
201        ?>
202        <br />
203        </dd>
204        <br />
205<?     
206                        } 
207                } else {
208                        echo "В ходе работы произошла ошибка. (501)";
209                }
210        }
211?>
212        </dl>
213        </div>
214<?php
215  print_footer();
216?>
Note: See TracBrowser for help on using the repository browser.