Редакция 44 | К новейшей редакции | Только различия | Учитывать пробелы | Содержимое файла | Авторство | Последнее изменение | Открыть журнал | RSS
Редакция 44 | Редакция 45 | ||
---|---|---|---|
1 | <?php
|
1 | <?php
|
2 | 2 | ||
3 | /**
|
3 | /**
|
4 | * Project: Ant: sources.list generator
|
4 | * Project: Ant: sources.list generator
|
5 | * File: index.php
|
5 | * File: modern.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 | include "lib/init.php"; |
24 | include "lib/init.php"; |
25 | $status = abs(intval($_GET["step"])); |
- | |
26 | $dist = abs(intval($_GET["d"])); |
- | |
27 | $vers = abs(intval($_GET["v"])); |
- | |
28 | 25 | ||
29 | $query =& $db->query("SELECT * FROM settings WHERE opt LIKE 'version'"); |
26 | $query =& $db->query("SELECT * FROM settings WHERE opt LIKE 'version'"); |
30 | $query->fetchInto($antv, DB_FETCHMODE_ASSOC); |
27 | $query->fetchInto($antv, DB_FETCHMODE_ASSOC); |
31 | $antversion = $antv["optvalue"]; |
28 | $antversion = $antv["optvalue"]; |
32 | 29 | ||
- | 30 | $scripts = " |
|
- | 31 | (function($){
|
|
- | 32 | // очищаем select
|
|
- | 33 | $.fn.clearSelect = function() {
|
|
- | 34 | return this.each(function(){
|
|
- | 35 | if(this.tagName=='SELECT') {
|
|
- | 36 | this.options.length = 0;
|
|
33 | $query =& $db->query("SELECT * FROM distribution"); |
37 | $(this).attr('disabled','disabled');
|
- | 38 | }
|
|
- | 39 | });
|
|
- | 40 | }
|
|
- | 41 | // заполняем select
|
|
- | 42 | $.fn.fillSelect = function(dataArray) {
|
|
- | 43 | return this.clearSelect().each(function(){
|
|
- | 44 | if(this.tagName=='SELECT') {
|
|
- | 45 | var currentSelect = this;
|
|
34 | while ($query->fetchInto($data, DB_FETCHMODE_ASSOC)) { |
46 | $.each(dataArray,function(index,data){
|
35 | $linux .= "<p><input type='radio' name='d' value='".$data["dist_id"]."' />".stripslashes($data["distname"])."</p>\n"; |
47 | var option = new Option(data.text,data.value);
|
- | 48 | if($.support.cssFloat) {
|
|
- | 49 | currentSelect.add(option,null);
|
|
- | 50 | } else {
|
|
- | 51 | currentSelect.add(option);
|
|
36 | }
|
52 | }
|
- | 53 | });
|
|
- | 54 | }
|
|
- | 55 | });
|
|
37 | 56 | }
|
|
- | 57 | })(jQuery);
|
|
- | 58 | </script>
|
|
38 | if (!isset($status)) { $status = 0; }; |
59 | <script type='text/javascript'>
|
39 | - | ||
- | 60 | $(document).ready(function(){
|
|
- | 61 | // выбор дистрибутива
|
|
40 | if (isset($dist)) { |
62 | function adjustDistro(){
|
41 | $query =& $db->query("SELECT * FROM version v JOIN distribution d ON d.dist_id=v.dist_id WHERE v.dist_id='$dist'"); |
63 | var distroValue = $('#distro').val();
|
42 | $distvers = "<p><input type='hidden' name='d' value='".$dist."' /></p>\n"; |
64 | var tmpSelect = $('#distver');
|
- | 65 | if(distroValue.length == 0) {
|
|
43 | while ($query->fetchInto($version, DB_FETCHMODE_ASSOC)) { |
66 | tmpSelect.attr('disabled','disabled');
|
44 | if ($version["vname"]!="") { |
67 | tmpSelect.clearSelect();
|
- | 68 | adjustReps();
|
|
45 | $distname = "“".stripslashes($version["vname"])."”"; |
69 | $('#replist').css('display','none');
|
46 | } else { |
70 | } else {
|
- | 71 | $.getJSON('m-process.php',{d:distroValue,status:1},function(data) { tmpSelect.fillSelect(data).attr('disabled',''); adjustReps(); });
|
|
47 | $distname = ""; |
72 | $('#replist').css('display','none');
|
48 | }
|
73 | }
|
- | 74 | };
|
|
- | 75 | // Выбор версии дистрибутива
|
|
- | 76 | function adjustReps(){
|
|
- | 77 | var distroValue = $('#distro').val();
|
|
- | 78 | var versionValue = $('#distver').val();
|
|
- | 79 | if (distroValue != 0 && versionValue != 0) {
|
|
49 | $distvers .= "<p><input type='radio' name='v' value='".$version["version_id"]."' />".stripslashes($version["distname"])." ".stripslashes($version["version"])." ".$distname."</p>\n"; |
80 | $.get('m-process.php',{d:distroValue,v:versionValue,status:2},function(data){ $('#replist').css('display','block'); $('#replist').html(data); },'html');
|
50 | }
|
81 | }
|
51 | }
|
82 | }
|
52 | 83 | ||
53 | if (isset($vers)) { |
- | |
54 | $query =& $db->query("SELECT * FROM settings"); |
84 | $('#distro').change(adjustDistro);
|
55 | $settings = array(); |
85 | $('#distver').change(adjustReps);
|
56 | while ($query->fetchInto($setting, DB_FETCHMODE_ASSOC)) { |
- | |
57 | $settings[stripslashes($setting["opt"])] = stripslashes($setting["optvalue"]); |
- | |
- | 86 | ||
58 | }; |
87 | });
|
59 | $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'"); |
- | |
60 | $query->fetchInto($infodist, DB_FETCHMODE_ASSOC); |
- | |
61 | $distname = ""; |
- | |
62 | if ($infodist["vname"]!="") { |
- | |
63 | $distname = "“".stripslashes($infodist["vname"])."”"; |
- | |
64 | }
|
88 | "; |
65 | $info = "<h2>Доступные репозитории для <em>".stripslashes($infodist["distname"])." ".stripslashes($infodist["version"])." ".$distname."</em></h2>"; |
- | |
66 | $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"); |
- | |
67 | $result = "<p>Скопируйте эти строки в файл <span id='sourceslist'>/etc/apt/sources.list</span>:</p><pre>"; |
- | |
68 | while ($query->fetchInto($resinfo, DB_FETCHMODE_ASSOC)) { |
- | |
69 | $repscheme = stripslashes($resinfo["scheme"]); |
- | |
70 | 89 | ||
71 | $querysect =& $db->query("SELECT * FROM section s JOIN sect2rep r ON s.sect_id=r.sect_id WHERE |
90 | $query =& $db->query("SELECT * FROM distribution"); |
72 | r.rep_id='$resinfo[rep_id]'"); |
- | |
73 | $sections = ""; |
- | |
74 | while ($querysect->fetchInto($section,DB_FETCHMODE_ASSOC)) { |
91 | while ($query->fetchInto($data, DB_FETCHMODE_ASSOC)) { |
75 | $sections .= stripslashes($section["sectname"])." "; |
92 | $linux .= "<option value='".$data["dist_id"]."'>".stripslashes($data["distname"])."</option>\n"; |
76 | }
|
93 | }
|
77 | 94 | ||
78 | $repscheme = str_replace("{TYPE}",stripslashes($infodist["type"]),$repscheme); |
95 | $modern .= "<h2>Генератор sources.list</h2>"; |
79 | $repscheme = str_replace("{PROTO}",$settings["proto"],$repscheme); |
96 | $modern .= "<div class='border'>"; |
80 | $repscheme = str_replace("{URL}",$settings["url"],$repscheme); |
97 | $modern .= "<label>Дистрибутив</label><br />"; |
81 | $repscheme = str_replace("{REP}",stripslashes($resinfo["repname"]),$repscheme); |
98 | $modern .= "<select id='distro'>\n<option value=''>Выбрать дистрибутив</option>\n"; |
- | 99 | $modern .= $linux."</select>"; |
|
82 | $repscheme = str_replace("{DIST}",stripslashes($infodist["vcodename"]),$repscheme); |
100 | $modern .= "</div><div class='border'>"; |
83 | $repscheme = str_replace("{SECT}",$sections,$repscheme); |
101 | $modern .= "<label>Версия дистрибутива</label><br />"; |
84 | - | ||
85 | $result .= $repscheme."\n"; |
102 | $modern .= "<select id='distver' disabled='disabled'>\n"; |
86 | }
|
- | |
87 | $result .= "</pre>"; |
103 | $modern .= "</select></div>"; |
88 | $result = $info.$result; |
104 | $modern .= "<pre id='replist'></pre></div>"; |
89 | }
|
- | |
90 | 105 | ||
91 | $smarty->assign('status',$status); |
- | |
92 | $smarty->assign('linux',$linux); |
- | |
93 | $smarty->assign('version',$distvers); |
106 | $smarty->assign('modern',$modern); |
94 | $smarty->assign('result',$result); |
107 | $smarty->assign('scripts',$scripts); |
95 | $smarty->assign('antversion',$antversion); |
108 | $smarty->assign('antversion',$antversion." • <a href='./classic.php'>Классический интерфейс</a>"); |
96 | 109 | ||
97 | $smarty->display('index.tpl'); |
110 | $smarty->display('modern.tpl'); |
98 | 111 | ||
99 | ?>
|
112 | ?>
|
100 | 113 |