Редакция 280 | К новейшей редакции | Только различия | Учитывать пробелы | Содержимое файла | Авторство | Последнее изменение | Открыть журнал | RSS
Редакция 280 | Редакция 281 | ||
---|---|---|---|
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 | $status = $secure->wrapInt($_GET["step"]); |
25 | $status = $secure->wrapInt($_GET["step"]); |
26 | $dist = $secure->wrapInt($_GET["d"]); |
26 | $dist = $secure->wrapInt($_GET["d"]); |
27 | $vers = $secure->wrapInt($_GET["v"]); |
27 | $vers = $secure->wrapInt($_GET["v"]); |
28 | $mirror = $secure->wrapInt($_GET["m"]); |
28 | $mirror = $secure->wrapInt($_GET["m"]); |
29 | $reps = $_GET["r"]; |
29 | $reps = $_GET["r"]; |
30 | $ID = $_GET["id"]; |
30 | $ID = $_GET["id"]; |
31 | if(isset($ID)){ |
31 | if(isset($ID)){ |
32 | list($mirror,$dist,$vers,$repstring) = split(",",$ID); |
32 | list($mirror,$dist,$vers,$repstring) = split(",",$ID); |
- | 33 | if(!empty($mirror)){$status=1;}; |
|
- | 34 | if(!empty($dist)){$status=2;}; |
|
- | 35 | if(!empty($vers)){$status=3;}; |
|
33 | if(isset($repstring)){ |
36 | if(!empty($repstring)){ |
34 | $status=4; |
37 | $status=4; |
35 | $reps = split("-",$repstring); |
38 | $reps = split("-",$repstring); |
- | 39 | }; |
|
- | 40 | }elseif(!empty($mirror)){ |
|
- | 41 | $location="./classic.php?id=".$mirror; |
|
- | 42 | if(!empty($dist)){$location.=",".$dist;} |
|
- | 43 | if(!empty($vers)){$location.=",".$vers;} |
|
- | 44 | if(!empty($reps)){ |
|
- | 45 | for ($i=0;$i<count($reps);$i++) { |
|
- | 46 | $shortreps .= $reps[$i]; |
|
- | 47 | if ($i<count($reps)-1) { |
|
- | 48 | $shortreps .= "-"; |
|
- | 49 | }
|
|
- | 50 | }
|
|
- | 51 | $location.=",".$shortreps; |
|
36 | }
|
52 | }
|
- | 53 | header("Location: ".$location); |
|
- | 54 | exit; |
|
37 | }
|
55 | }
|
38 | $infomsg = array( _("Step"), _("Next step"), _("Mirror selection"), _("Choosing a distribution"), _("Choosing a version of distribution"), _("Selection of repositories"), _("Get sources.list") ); |
56 | $infomsg = array( _("Step"), _("Next step"), _("Mirror selection"), _("Choosing a distribution"), _("Choosing a version of distribution"), _("Selection of repositories"), _("Get sources.list") ); |
39 | 57 | ||
40 | if (!isset($status)) { $status = 0; }; |
58 | if (!isset($status)) { $status = 0; }; |
41 | 59 | ||
42 | switch ($status) { |
60 | switch ($status) { |
43 | case 0: |
61 | case 0: |
44 | //Выбор зеркала
|
62 | //Выбор зеркала
|
45 | $query =& $db->query("SELECT * FROM mirror"); |
63 | $query =& $db->query("SELECT * FROM mirror"); |
46 | while ($query->fetchInto($data, DB_FETCHMODE_ASSOC)) { |
64 | while ($query->fetchInto($data, DB_FETCHMODE_ASSOC)) { |
47 | $mirrors .= "<p><input type='radio' name='m' value='".$data["mirror_id"]."'>".$secure->stripStr($data["mname"])." (".$secure->stripStr($data["murl"]).")</p>\n"; |
65 | $mirrors .= "<p><input type='radio' name='m' value='".$data["mirror_id"]."'>".$secure->stripStr($data["mname"])." (".$secure->stripStr($data["murl"]).")</p>\n"; |
48 | }
|
66 | }
|
49 | break; |
67 | break; |
50 | case 1: |
68 | case 1: |
51 | // Выбор дистрибутива
|
69 | // Выбор дистрибутива
|
52 | $query =& $db->query("SELECT * FROM distribution"); |
70 | $query =& $db->query("SELECT * FROM distribution"); |
53 | $linux .= "<input type='hidden' name='m' value='".$mirror."'>"; |
71 | $linux .= "<input type='hidden' name='m' value='".$mirror."'>"; |
54 | while ($query->fetchInto($data, DB_FETCHMODE_ASSOC)) { |
72 | while ($query->fetchInto($data, DB_FETCHMODE_ASSOC)) { |
55 | $linux .= "<p><input type='radio' name='d' value='".$data["dist_id"]."'><span class='".$secure->stripStr($data["distua"])."'>".$secure->stripStr($data["distname"])."</span></p>\n"; |
73 | $linux .= "<p><input type='radio' name='d' value='".$data["dist_id"]."'><span class='".$secure->stripStr($data["distua"])."'>".$secure->stripStr($data["distname"])."</span></p>\n"; |
56 | }
|
74 | }
|
57 | break; |
75 | break; |
58 | case 2: |
76 | case 2: |
59 | // Выбор версии
|
77 | // Выбор версии
|
60 | $query =& $db->query("SELECT * FROM version v JOIN distribution d ON d.dist_id=v.dist_id WHERE v.dist_id='$dist'"); |
78 | $query =& $db->query("SELECT * FROM version v JOIN distribution d ON d.dist_id=v.dist_id WHERE v.dist_id='$dist'"); |
61 | $distvers = "<input type='hidden' name='m' value='".$mirror."'>"; |
79 | $distvers = "<input type='hidden' name='m' value='".$mirror."'>"; |
62 | $distvers .= "<p><input type='hidden' name='d' value='".$dist."'></p>\n"; |
80 | $distvers .= "<p><input type='hidden' name='d' value='".$dist."'></p>\n"; |
63 | while ($query->fetchInto($version, DB_FETCHMODE_ASSOC)) { |
81 | while ($query->fetchInto($version, DB_FETCHMODE_ASSOC)) { |
64 | if ($version["vname"]!="") { |
82 | if ($version["vname"]!="") { |
65 | $distname = "“".$secure->stripStr($version["vname"])."”"; |
83 | $distname = "“".$secure->stripStr($version["vname"])."”"; |
66 | } else { |
84 | } else { |
67 | $distname = ""; |
85 | $distname = ""; |
68 | }
|
86 | }
|
69 | $distvers .= "<p><input type='radio' name='v' value='".$version["version_id"]."' /><span class='".$secure->stripStr($version["distua"])."'>".$secure->stripStr($version["distname"])." ".$secure->stripStr($version["version"])." ".$distname."</span></p>\n"; |
87 | $distvers .= "<p><input type='radio' name='v' value='".$version["version_id"]."' /><span class='".$secure->stripStr($version["distua"])."'>".$secure->stripStr($version["distname"])." ".$secure->stripStr($version["version"])." ".$distname."</span></p>\n"; |
70 | } break; |
88 | } break; |
71 | case 3; |
89 | case 3; |
72 | // Выбор репозиториев
|
90 | // Выбор репозиториев
|
73 | $repos = "<input type='hidden' name='m' value='".$mirror."'>"; |
91 | $repos = "<input type='hidden' name='m' value='".$mirror."'>"; |
74 | $repodata=$core->getRepList($dist,$vers,$db); |
92 | $repodata=$core->getRepList($dist,$vers,$db); |
75 | $repos.="<input type='hidden' name='d' value='".$dist."'><input type='hidden' name='v' value='".$vers."'>"; |
93 | $repos.="<input type='hidden' name='d' value='".$dist."'><input type='hidden' name='v' value='".$vers."'>"; |
76 | for($i=0;$i<count($repodata[0]);$i++) { |
94 | for($i=0;$i<count($repodata[0]);$i++) { |
77 | if ($repodata[3][$i]==true){$ch="checked";} else{$ch="";} |
95 | if ($repodata[3][$i]==true){$ch="checked";} else{$ch="";} |
78 | $repos.="<input type='checkbox' name='r[]' ".$ch." value='".$repodata[0][$i]."'>".$repodata[1][$i]." <em>(".$repodata[2][$i].")</em><br>"; |
96 | $repos.="<input type='checkbox' name='r[]' ".$ch." value='".$repodata[0][$i]."'>".$repodata[1][$i]." <em>(".$repodata[2][$i].")</em><br>"; |
79 | }; |
97 | }; |
80 | $steps .= "<a href='classic.php?step='".$status."'&d='".$dist."'> ".$info[0]." ".$status."</a> ::"; |
98 | $steps .= "<a href='classic.php?step='".$status."'&d='".$dist."'> ".$info[0]." ".$status."</a> ::"; |
81 | break; |
99 | break; |
82 | case 4; |
100 | case 4; |
83 | // Получение sources.list
|
101 | // Получение sources.list
|
84 | $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'"); |
102 | $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'"); |
85 | $query->fetchInto($infodist, DB_FETCHMODE_ASSOC); |
103 | $query->fetchInto($infodist, DB_FETCHMODE_ASSOC); |
86 | 104 | ||
87 | $distname = ""; |
105 | $distname = ""; |
88 | if ($infodist["vname"]!="") { |
106 | if ($infodist["vname"]!="") { |
89 | $distname = "“".$secure->stripStr($infodist["vname"])."”"; |
107 | $distname = "“".$secure->stripStr($infodist["vname"])."”"; |
90 | }
|
108 | }
|
91 | $info = "<h2>"._("Repositories for")." <em class='".$secure->stripStr($infodist["distua"])."-em'>".$secure->stripStr($infodist["distname"])." ".$secure->stripStr($infodist["version"])." ".$distname."</em></h2>"; |
109 | $info = "<h2>"._("Repositories for")." <em class='".$secure->stripStr($infodist["distua"])."-em'>".$secure->stripStr($infodist["distname"])." ".$secure->stripStr($infodist["version"])." ".$distname."</em></h2>"; |
92 | $result = "<p>"._("Copy this strings into file")." <span id='sourceslist'>/etc/apt/sources.list</span>:</p><pre>"; |
110 | $result = "<p>"._("Copy this strings into file")." <span id='sourceslist'>/etc/apt/sources.list</span>:</p><pre>"; |
93 | $result .= $core->getSourceList($dist,$vers,$reps,$db); |
111 | $result .= $core->getSourceList($dist,$vers,$reps,$db); |
94 | $result .= "</pre>"; |
112 | $result .= "</pre>"; |
95 | for ($i=0;$i<count($reps);$i++) { |
- | |
96 | $getreps .= $reps[$i]; |
- | |
97 | if ($i<count($reps)-1) { |
- | |
98 | $getreps .= "-"; |
- | |
99 | }
|
- | |
100 | }
|
- | |
101 | $result = $info.$result."<p><a href='./get.php?id=".$dist.",".$vers.",".$getreps."'>".$infomsg[6]."</a></p>"; |
113 | $result = $info.$result."<p><a href='./get.php?id=".$dist.",".$vers.",".$repstring."'>".$infomsg[6]."</a></p>"; |
102 | 114 | ||
103 | $link="<div class='sllink'><a title='"._("Link to this sources.list")."' href=./classic.php?id=".$mirror.",".$dist.",".$vers.",".$getreps.">#</a></div>"; |
115 | $link="<div class='sllink'><a title='"._("Link to this sources.list")."' href=./classic.php?id=".$mirror.",".$dist.",".$vers.",".$repstring.">#</a></div>"; |
104 | break; |
116 | break; |
105 | }
|
117 | }
|
106 | 118 | ||
107 | if ($status==3){$link='<div class="sllink"><a title="Ссылка на этот source.list" href=./classic.php?id='.$dist.",".$vers.",".$getreps.'>#</a></div>';} |
119 | if ($status==3){$link='<div class="sllink"><a title="Ссылка на этот source.list" href=./classic.php?id='.$dist.",".$vers.",".$repstring.'>#</a></div>';} |
108 | $steps="<a href='classic.php'>".$infomsg[0]." 0</a> ::"; |
120 | $steps="<a href='classic.php'>".$infomsg[0]." 0</a> ::"; |
109 | if ($status>0){ $steps .= "<a href='classic.php?step=1&m=".$mirr."'> ".$infomsg[0]." 1</a> ::"; } else { $steps.=" ".$infomsg[0]." 1 ::"; } |
121 | if ($status>0){ $steps .= "<a href='classic.php?id=".$mirror."'> ".$infomsg[0]." 1</a> ::"; } else { $steps.=" ".$infomsg[0]." 1 ::"; } |
110 | if ($status>1){ $steps .= "<a href='classic.php?step=2&m=".$mirr."&d=".$dist."'> ".$infomsg[0]." 2</a> ::"; } else{ $steps.=" ".$infomsg[0]." 2 ::"; } |
122 | if ($status>1){ $steps .= "<a href='classic.php?id=".$mirror.",".$dist."'> ".$infomsg[0]." 2</a> ::"; } else{ $steps.=" ".$infomsg[0]." 2 ::"; } |
111 | if ($status>2){ $steps .= "<a href='classic.php?step=3&m=".$mirr."&d=".$dist."&v=".$vers."'> ".$infomsg[0]." 3</a> ::"; } else { $steps.=" ".$infomsg[0]." 3 ::"; } |
123 | if ($status>2){ $steps .= "<a href='classic.php?id=".$mirror.",".$dist.",".$vers."'> ".$infomsg[0]." 3</a> ::"; } else { $steps.=" ".$infomsg[0]." 3 ::"; } |
112 | if ($status>3){ $steps .= '<a href=./classic.php?id='.$mirror.','.$dist.','.$vers.','.$getreps.'>'.$infomsg[0].' 4</a>'; } else { $steps.=" ".$infomsg[0]." 4"; } |
124 | if ($status>3){ $steps .= '<a href=./classic.php?id='.$mirror.','.$dist.','.$vers.','.$repstring.'>'.$infomsg[0].' 4</a>'; } else { $steps.=" ".$infomsg[0]." 4"; } |
113 | 125 | ||
114 | $smarty->assign('feedaddr',$_SERVER["HTTP_HOST"].dirname($_SERVER["PHP_SELF"])); |
126 | $smarty->assign('feedaddr',$_SERVER["HTTP_HOST"].dirname($_SERVER["PHP_SELF"])); |
115 | $smarty->assign('stepinfo',$infomsg[0]); |
127 | $smarty->assign('stepinfo',$infomsg[0]); |
116 | $smarty->assign('nextstep',$infomsg[1]); |
128 | $smarty->assign('nextstep',$infomsg[1]); |
117 | $smarty->assign('mirrorselect',$infomsg[2]); |
129 | $smarty->assign('mirrorselect',$infomsg[2]); |
118 | $smarty->assign('distrochoose',$infomsg[3]); |
130 | $smarty->assign('distrochoose',$infomsg[3]); |
119 | $smarty->assign('distrovchoose',$infomsg[4]); |
131 | $smarty->assign('distrovchoose',$infomsg[4]); |
120 | $smarty->assign('repselect',$infomsg[5]); |
132 | $smarty->assign('repselect',$infomsg[5]); |
121 | $smarty->assign('getsourceslist',$infomsg[6]); |
133 | $smarty->assign('getsourceslist',$infomsg[6]); |
122 | $smarty->assign('link',$link); |
134 | $smarty->assign('link',$link); |
123 | $smarty->assign('status',$status); |
135 | $smarty->assign('status',$status); |
124 | $smarty->assign('linux',$linux); |
136 | $smarty->assign('linux',$linux); |
125 | $smarty->assign('mirrors',$mirrors); |
137 | $smarty->assign('mirrors',$mirrors); |
126 | $smarty->assign('steps',$steps); |
138 | $smarty->assign('steps',$steps); |
127 | $smarty->assign('repos',$repos); |
139 | $smarty->assign('repos',$repos); |
128 | $smarty->assign('version',$distvers); |
140 | $smarty->assign('version',$distvers); |
129 | $smarty->assign('result',$result); |
141 | $smarty->assign('result',$result); |
130 | $smarty->assign('antversion',$core->getSetting('version',$db)); |
142 | $smarty->assign('antversion',$core->getSetting('version',$db)); |
131 | $smarty->assign('title',$core->getSetting('codename',$db)); |
143 | $smarty->assign('title',$core->getSetting('codename',$db)); |
132 | $smarty->assign('interface'," • <a href='./changelog.php'>"._("Changes")."</a> • ".$core->getInterfacesList($_SERVER["REQUEST_URI"],$db)); |
144 | $smarty->assign('interface'," • <a href='./changelog.php'>"._("Changes")."</a> • ".$core->getInterfacesList($_SERVER["REQUEST_URI"],$db)); |
133 | $smarty->assign('style',$core->getCSSList($db)); |
145 | $smarty->assign('style',$core->getCSSList($db)); |
134 | $smarty->assign('theme',$theme->getThemeName($core,$db)); |
146 | $smarty->assign('theme',$theme->getThemeName($core,$db)); |
135 | 147 | ||
136 | $smarty->display('classic.tpl'); |
148 | $smarty->display('classic.tpl'); |
137 | 149 | ||
138 | ?>
|
150 | ?>
|
139 | 151 |