Редакция 209 | К новейшей редакции | Только различия | Не учитывать пробелы | Содержимое файла | Авторство | Последнее изменение | Открыть журнал | RSS
Редакция 209 | Редакция 221 | ||
---|---|---|---|
1 | <?php
|
1 | <?php
|
2 | 2 | ||
3 | /**
|
3 | /**
|
4 | * Project: Ant: sources.list generator
|
4 | * Project: Ant: sources.list generator
|
5 | * File: classic.php
|
5 | * File: classic.php
|
6 | *
|
6 | *
|
7 | * This application is free software; you can redistribute it and/or
|
7 | * This application is free software; you can redistribute it and/or
|
8 | * modify it under the terms of the GNU Lesser General Public
|
8 | * modify it under the terms of the GNU Lesser General Public
|
9 | * License as published by the Free Software Foundation; either
|
9 | * License as published by the Free Software Foundation; either
|
10 | * version 2.1 of the License, or (at your option) any later version.
|
10 | * version 2.1 of the License, or (at your option) any later version.
|
11 | *
|
11 | *
|
12 | * This application is distributed in the hope that it will be useful,
|
12 | * This application is distributed in the hope that it will be useful,
|
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
15 | * Lesser General Public License for more details.
|
15 | * Lesser General Public License for more details.
|
16 | *
|
16 | *
|
17 | * You should have received a copy of the GNU Lesser General Public
|
17 | * You should have received a copy of the GNU Lesser General Public
|
18 | * License along with this library; if not, write to the Free Software
|
18 | * License along with this library; if not, write to the Free Software
|
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
20 | *
|
20 | *
|
21 | */
|
21 | */
|
22 | 22 | ||
23 | 23 | ||
24 | require_once dirname(__FILE__)."/lib/init.php"; |
24 | require_once dirname(__FILE__)."/lib/init.php"; |
25 | $ID = $_GET["id"]; |
25 | $ID = $_GET["id"]; |
26 | 26 | ||
27 | list($dist,$vers) = split(",",$ID); |
27 | list($dist,$vers) = split(",",$ID); |
28 | 28 | ||
29 | if ($ID!='') { |
29 | if ($ID!='') { |
30 | 30 | ||
31 | $query =& $db->query("SELECT * FROM settings"); |
31 | $query =& $db->query("SELECT * FROM settings"); |
32 | $settings = array(); |
32 | $settings = array(); |
33 | while ($query->fetchInto($setting, DB_FETCHMODE_ASSOC)) { |
33 | while ($query->fetchInto($setting, DB_FETCHMODE_ASSOC)) { |
34 | $settings[$secure->stripStr($setting["opt"])] = $secure->stripStr($setting["optvalue"]); |
34 | $settings[$secure->stripStr($setting["opt"])] = $secure->stripStr($setting["optvalue"]); |
35 | }; |
35 | }; |
36 | 36 | ||
37 | $query =& $db->query("SELECT * FROM version v JOIN distribution d ON d.dist_id=v.dist_id JOIN dtype p ON d.disttype=p.type_id WHERE v.dist_id='$dist' AND v.version_id='$vers'"); |
37 | $query =& $db->query("SELECT * FROM version v JOIN distribution d ON d.dist_id=v.dist_id JOIN dtype p ON d.disttype=p.type_id WHERE v.dist_id='$dist' AND v.version_id='$vers'"); |
38 | $query->fetchInto($infodist, DB_FETCHMODE_ASSOC); |
38 | $query->fetchInto($infodist, DB_FETCHMODE_ASSOC); |
39 | 39 | ||
40 | $query =& $db->query("SELECT * FROM repository r JOIN ver2rep v ON r.rep_id=v.rep_id JOIN version v2 ON v.ver_id=v2.version_id JOIN scheme s ON s.scheme_id=r.scheme_id WHERE v.ver_id='$vers' ORDER BY r.rtype_id, r.scheme_id ASC"); |
40 | $query =& $db->query("SELECT * FROM repository r JOIN ver2rep v ON r.rep_id=v.rep_id JOIN version v2 ON v.ver_id=v2.version_id JOIN scheme s ON s.scheme_id=r.scheme_id WHERE v.ver_id='$vers' ORDER BY r.rtype_id, r.scheme_id ASC"); |
41 | 41 | ||
42 | $result = "# Ant: sources.list generator :: http://track.altlug.ru/project/show/ant\n\n"; |
42 | $result = "# Ant: sources.list generator :: http://track.altlug.ru/project/show/ant\n\n"; |
43 | 43 | ||
44 | while ($query->fetchInto($resinfo, DB_FETCHMODE_ASSOC)) { |
44 | while ($query->fetchInto($resinfo, DB_FETCHMODE_ASSOC)) { |
45 | $repscheme = $secure->stripStr($resinfo["scheme"]); |
45 | $repscheme = $secure->stripStr($resinfo["scheme"]); |
46 | 46 | ||
47 | $querysect =& $db->query("SELECT * FROM section s JOIN sect2rep r ON s.sect_id=r.sect_id WHERE |
47 | $querysect =& $db->query("SELECT * FROM section s JOIN sect2rep r ON s.sect_id=r.sect_id WHERE |
48 | r.rep_id='$resinfo[rep_id]'"); |
48 | r.rep_id='$resinfo[rep_id]'"); |
49 | $sections = ""; |
49 | $sections = ""; |
50 | while ($querysect->fetchInto($section,DB_FETCHMODE_ASSOC)) { |
50 | while ($querysect->fetchInto($section,DB_FETCHMODE_ASSOC)) { |
51 | $sections .= $secure->stripStr($section["sectname"])." "; |
51 | $sections .= $secure->stripStr($section["sectname"])." "; |
52 | }
|
52 | }
|
53 | 53 | ||
54 | $repscheme = str_replace("{TYPE}",$secure->stripStr($infodist["type"]),$repscheme); |
54 | $repscheme = str_replace("{TYPE}",$secure->stripStr($infodist["type"]),$repscheme); |
55 | $repscheme = str_replace("{PROTO}",$settings["proto"],$repscheme); |
55 | $repscheme = str_replace("{PROTO}",$settings["proto"],$repscheme); |
- | 56 | $repscheme = str_replace("{ROOT}",$secure->stripStr($resinfo["root_folder"]),$repscheme); |
|
56 | $repscheme = str_replace("{URL}",$settings["url"],$repscheme); |
57 | $repscheme = str_replace("{URL}",$settings["url"],$repscheme); |
57 | $repscheme = str_replace("{REP}",$secure->stripStr($resinfo["repname"]),$repscheme); |
58 | $repscheme = str_replace("{REP}",$secure->stripStr($resinfo["repname"]),$repscheme); |
58 | $repscheme = str_replace("{DIST}",$secure->stripStr($infodist["vcodename"]),$repscheme); |
59 | $repscheme = str_replace("{DIST}",$secure->stripStr($infodist["vcodename"]),$repscheme); |
59 | $repscheme = str_replace("{SECT}",$sections,$repscheme); |
60 | $repscheme = str_replace("{SECT}",$sections,$repscheme); |
60 | 61 | ||
61 | $result .= "# ".$secure->stripStr($resinfo["repdescribe"])."\n".$repscheme."\n\n"; |
62 | $result .= "# ".$secure->stripStr($resinfo["repdescribe"])."\n".$repscheme."\n\n"; |
62 | }
|
63 | }
|
63 | 64 | ||
64 | $HTTPHeader1 = "Content-type: text/plain"; |
65 | $HTTPHeader1 = "Content-type: text/plain"; |
65 | $HTTPHeader2 = "Content-length: ".strlen($result); |
66 | $HTTPHeader2 = "Content-length: ".strlen($result); |
66 | $HTTPHeader3 = "Content-disposition: attachment; filename=sources.list\n\n"; |
67 | $HTTPHeader3 = "Content-disposition: attachment; filename=sources.list\n\n"; |
67 | 68 | ||
68 | header($HTTPHeader1); |
69 | header($HTTPHeader1); |
69 | header($HTTPHeader2); |
70 | header($HTTPHeader2); |
70 | header($HTTPHeader3); |
71 | header($HTTPHeader3); |
71 | print $result; |
72 | print $result; |
72 | 73 | ||
73 | } else { |
74 | } else { |
74 | 75 | ||
75 | header("Location: ./"); |
76 | header("Location: ./"); |
76 | 77 | ||
77 | }
|
78 | }
|
78 | 79 | ||
79 | ?>
|
80 | ?>
|
80 | 81 |