source: trunk/www/localized/ru/ports.php @ 108736

Last change on this file since 108736 was 100018, checked in by ryandesign@…, 8 years ago

remove use of deprecated POSIX regex (ereg*) functions in favor of PCRE regex (preg*) functions (#22281)

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