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