Редакция 55 | К новейшей редакции | Только различия | Не учитывать пробелы | Содержимое файла | Авторство | Последнее изменение | Открыть журнал | RSS
Редакция 55 | Редакция 65 | ||
---|---|---|---|
1 | <?php
|
1 | <?php
|
2 | 2 | ||
3 | /**
|
3 | /**
|
4 | * Project: Ant: sources.list generator
|
4 | * Project: Ant: sources.list generator
|
5 | * File: modern.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 | 25 | ||
26 | $query =& $db->query("SELECT * FROM settings WHERE opt LIKE 'version'"); |
26 | $query =& $db->query("SELECT * FROM settings WHERE opt LIKE 'version'"); |
27 | $query->fetchInto($antv, DB_FETCHMODE_ASSOC); |
27 | $query->fetchInto($antv, DB_FETCHMODE_ASSOC); |
28 | $antversion = $antv["optvalue"]; |
28 | $antversion = $antv["optvalue"]; |
29 | 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;
|
- | |
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;
|
- | |
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();
|
30 | $info = array(); |
69 | $('#replist').css('display','none');
|
- | |
70 | $('#getfile').css('display','none');
|
- | |
71 | } else {
|
- | |
72 | $.getJSON('m-process.php',{d:distroValue,status:1},function(data) { tmpSelect.fillSelect(data).attr('disabled',''); adjustReps(); });
|
- | |
73 | $('#replist').css('display','none');
|
- | |
74 | $('#getfile').css('display','none');
|
- | |
75 | }
|
- | |
76 | };
|
- | |
77 | // Выбор версии дистрибутива
|
- | |
78 | function adjustReps(){
|
- | |
79 | var distroValue = $('#distro').val();
|
- | |
80 | var versionValue = $('#distver').val();
|
- | |
81 | if (distroValue != 0 && versionValue != 0) {
|
- | |
82 | $.get('m-process.php',{d:distroValue,v:versionValue,status:2},function(data){ $('#replist').css('display','block'); $('#replist').html(data); });
|
- | |
83 | $.get('m-process.php',{d:distroValue,v:versionValue,status:3},function(data){ $('#getfile').css('display','block'); $('#getfile').html(data); });
|
- | |
84 | } else {
|
- | |
85 | $('#replist').css('display','none');
|
- | |
86 | $('#getfile').css('display','none');
|
- | |
87 | }
|
- | |
88 | }
|
- | |
89 | 31 | ||
90 | $('#distro').change(adjustDistro);
|
32 | $info = $core->getInfo($_SERVER["HTTP_USER_AGENT"],$db); |
91 | $('#distver').change(adjustReps);
|
- | |
92 | 33 | ||
93 | });
|
- | |
94 | "; |
- | |
- | 34 | $telepathy = "<h2>Генератор sources.list</h2><p>".$info[1]; |
|
95 | 35 | ||
- | 36 | if ($info[0]!="unknown") { |
|
96 | $query =& $db->query("SELECT * FROM distribution"); |
37 | $cnt = count($info); |
97 | while ($query->fetchInto($data, DB_FETCHMODE_ASSOC)) { |
38 | switch ($cnt) { |
- | 39 | case '2': |
|
98 | $linux .= "<option value='".$data["dist_id"]."'>".stripslashes($data["distname"])."</option>\n"; |
40 | $telepathy .= "GNU/Linux, но явно не та, которую мы поддерживаем или дистрибутив и его версия тчательно замаскированы. Если это маскировка, то можно попробовать сгенерировать sources.list “<a href='./modern.php'>вручную</a>”.</p>"; |
99 | }
|
41 | break; |
100 | 42 | case '4': |
|
101 | $modern .= "<h2>Генератор sources.list</h2>"; |
43 | $telepathy .= "<em>".$info[3]."</em>, а что за версия не могу разобрать. Попробуем создать sources.list “<a href='./modern.php'>вручную</a>”?</p>"; |
- | 44 | break; |
|
102 | $modern .= "<div class='border'>"; |
45 | case '6': |
103 | $modern .= "<label>Дистрибутив</label><br>"; |
46 | $telepathy .= "<em>".$info[3]." ".$info[5]."</em>. Если это не так, то выберите дистрибутив и версию <a href='./modern.php'>вручную</a>.</p>"; |
104 | $modern .= "<select id='distro'>\n<option value=''>Выбрать дистрибутив</option>\n"; |
47 | $telepathy .= "<p>Для этой версии у нас есть следующие репозитории (список нужно скопировать в файл <span id='sourceslist'>/etc/apt/sources.list</span>):</p>"; |
105 | $modern .= $linux."</select>"; |
- | |
106 | $modern .= "</div><div class='border'>"; |
- | |
107 | $modern .= "<label>Версия дистрибутива</label><br>"; |
48 | $telepathy .= "<pre># Ant: sources.list generator :: http://track.altlug.ru/projects/show/ant\n\n".$core->getRepList($info[2],$info[4],$db)."</pre>"; |
108 | $modern .= "<select id='distver' disabled='disabled'><option></option>"; |
49 | $telepathy .= "<p><a href='./get.php?id=".$info[2].",".$info[4]."'>Получить sources.list файлом</a></p>"; |
109 | $modern .= "</select></div>"; |
50 | break; |
- | 51 | }
|
|
110 | $modern .= "<pre id='replist'></pre>"; |
52 | } else { |
111 | $modern .= "<p id='getfile'></p>"; |
53 | $telepathy .= "</p>"; |
- | 54 | }; |
|
112 | 55 | ||
113 | $smarty->assign('modern',$modern); |
56 | $smarty->assign('modern',$telepathy); |
114 | $smarty->assign('scripts',$scripts); |
- | |
115 | $smarty->assign('antversion',$antversion); |
57 | $smarty->assign('antversion',$antversion); |
116 | $smarty->assign('interface'," • <a href='./classic.php'>Классический интерфейс</a>"); |
58 | $smarty->assign('interface'," • <a href='./classic.php'>Классический интерфейс</a> • <a href='./modern.php'>Современный интерфейс</a>"); |
117 | 59 | ||
118 | $smarty->display('modern.tpl'); |
60 | $smarty->display('modern.tpl'); |
119 | 61 | ||
120 | ?>
|
62 | ?>
|
121 | 63 |