Редакция 157 |
К новейшей редакции |
Авторство |
Сравнить с предыдущей |
Последнее изменение |
Открыть журнал
| RSS
<?php
require_once dirname(__FILE__)."/sign-valid.php";
$mode = abs(intval($_GET["mode"]));
$cat = abs(intval($_GET["cat"]));
$act = abs(intval($_GET["action"]));
$uid = abs(intval($_GET["uid"]));
$err = abs(intval($_GET["error"]));
// Admin file/interface
$admin = "./admin_ng.php";
switch ($err) {
case '1':
$error = "Ошибка ввода пароля: старый пароль неверен!";
break;
case '2':
$error = "Ошибка ввода пароля: новые пароли не совпадают!";
break;
}
$menu = "
<ul>
<li><a href='".$admin."?mode=0'>Управление</a></li>
<br>
<li><a href='".$admin."?mode=1&cat=0'>Источники</a></li>
<li><a href='".$admin."?mode=1&cat=1'>Дистрибутивы</a></li>
<li><a href='".$admin."?mode=1&cat=2'>Версии</a></li>
<li><a href='".$admin."?mode=1&cat=3'>Секции</a></li>
<br>
<li><a href='./signout.php' style='color:red;'>Выход</a></li>
</ul>
";
switch ($mode) {
case '0':
switch ($cat) {
case '0':
// Список всех источников
$display = "<a href='".$admin."?mode=0'>Управление</a><br><br><br>";
$orig =& $db->query("SELECT * FROM origin");
$display .= "<table><tr><td>Источник</td><td>Дистрибутивы</td></tr>";
while ($orig->fetchInto($info, DB_FETCHMODE_ASSOC
)) {
$display .= "<tr><td><a href='".$admin."?mode=0&cat=1&orig=".stripslashes($info["orig_id"])."'>".stripslashes($info["origin"])."</a></td>";
$display .= "<td>";
// --- replace to join
//$dist =& $db->query("SELECT distribution.distname
//FROM distribution, orig2dist
//WHERE '".stripslashes($info["id"])."' = orig2dist.orig_id
//AND orig2dist.dist_id = distribution.dist_id");
// ---
//while ($dist->fetchInto($info2, DB_FETCHMODE_ASSOC)) {
//$display .= stripslashes($info2["distname"])." | ";
//}
$display .=" </td></tr>";
}
$display .= "</table>";
break;
case '1':
//Список дистрибутивов для источника
$orig = abs(intval($_GET["orig"]));
$origname = $db->getOne("SELECT origin FROM origin WHERE origin.orig_id=$orig");
$display = "<a href='".$admin."?mode=0'>Управление</a> - <a href='".$admin."?mode=0&cat=$cat&orig=$orig'>Источник: ".$origname."</a><br><br><br>";
$distr =& $db->query("SELECT * FROM distribution");
$display .= "<table><tr><td></td><td>Дистрибутив</td><td>Версии</td></tr>";
while ($distr->fetchInto($info, DB_FETCHMODE_ASSOC
)) {
$count = $db->getOne("SELECT COUNT(*) FROM orig2dist WHERE orig2dist.orig_id='$orig' AND orig2dist.dist_id='".stripslashes($info["dist_id"])."'");
$display .= "<tr>";
$display .= "<td><input type='checkbox' name='nam1' value='val'";
if ($count>0) { $display .= " checked"; }
$display .= "></td>";
$display .= "<td><a href='".$admin."?mode=0&cat=2&orig=$orig&dist=".stripslashes($info["dist_id"])."'>".stripslashes($info["distname"])."</td>";
$display .= "<td></td></tr>";
}
$display .= "</table>";
$display .= "<form><button>Применить</button></form>";
break;
case '2':
//Список версий для дистрибутива
$orig = abs(intval($_GET["orig"]));
$origname = $db->getOne("SELECT origin FROM origin WHERE origin.orig_id=$orig");
$dist = abs(intval($_GET["dist"]));
$distname = $db->getOne("SELECT distname FROM distribution WHERE dist_id=$dist");
$display = "<a href='".$admin."?mode=0'>Управление</a> - <a href='".$admin."?mode=0&cat=$cat&orig=$orig'>Источник: ".$origname."</a>";
$display .= " - <a href='".$admin."?mode=0&cat=$cat&orig=$orig&dist=$dist'>Дистрибутив: ".$distname."</a><br><br><br>";
$distr =& $db->query("SELECT * FROM version");
$display .= "<table><tr><td></td><td>Версии</td><td>Секции</td></tr>";
while ($distr->fetchInto($info, DB_FETCHMODE_ASSOC
)) {
//$count = $db->getOne("SELECT COUNT(*) FROM orig2dist WHERE orig2dist.orig_id='$uid' AND orig2dist.dist_id='".stripslashes($info["dist_id"])."'");
$display .= "<tr>";
$display .= "<td><input type='checkbox' name='nam1' value='val'";
//if ($count>0) { $display .= " checked"; }
$display .= "></td>";
$display .= "<td><a href='".$admin."?mode=0&cat=2&orig=$orig&dist=".stripslashes($info["ver_id"])."'>".stripslashes($info["vname"])."</td>";
$display .= "<td></td></tr>";
}
$display .= "</table>";
$display .= "<form><button>Применить</button></form>";
break;
}
break;
case '1':
switch ($cat) {
case '0':
switch($act) {
case '0':
// Список источников
$orig =& $db->query("SELECT * FROM origin");
$display = "<h3>Источник - Список</h3>";
$display .= "<table><tr><td>Источник</td><td>Действие</td><td>Описание</td><td>Корень</td><td>Домашняя страница</td><td>Ссылка на ключ</td></tr>";
while ($orig->fetchInto($info, DB_FETCHMODE_ASSOC
)) {
$display .= "<tr><td>".stripslashes($info["origin"])."</td>";
$display .= "<td><a href='".$admin."?mode=1&cat=0&action=2&uid=".$info["id"]."'><img src='img/edit.png' alt='Править'></a><a href='".$admin."?mode=1&cat=0&action=3&uid=".$info["id"]."'><img src='img/delete.png' alt='Удалить'></a></td>";
$display .= "<td>".stripslashes($info["desk"])."</td><td>".stripslashes($info["basedir"])."</td><td>".stripslashes($info["homeurl"])."</td><td>".stripslashes($info["keyurl"])."</td></tr>";
}
$display .= "</table>";
$display .= "<p><a href='".$admin."?mode=1&cat=0&action=1'><img src='img/add.png' alt='Добавить'>Добавить новый источник</a></p>";
break;
case '1':
// Добавление нового источника
$display = "<h3>Источник - Добавление</h3>";
$display .= "<form action='./process_ng.php' method='POST' enctype='multipart/form-data'>\n";
$display .= "<input type='hidden' name='cat' value='$cat'>\n";
$display .= "<input type='hidden' name='act' value='$act'>\n";
$display .= "Название : <input type='text' name='origin'><br>\n";
$display .= "Описание :<br> <textarea name='desk'></textarea><br>\n";
$display .= "Корень: <input type='text' name='basedir'><br>\n";
$display .= "Домашняя страница: <input type='text' name='homeurl'><br>\n";
$display .= "Ссылка на ключ: <input type='text' name='keyurl'><br>\n";
$display .= "<input type='submit' value='Создать'></form>\n";
break;
case '2':
// Правка существующего источника
$orig =& $db->query("SELECT * FROM origin WHERE id='$uid'");
$orig->fetchInto($info, DB_FETCHMODE_ASSOC
);
$type .= "</select>\n";
$display = "<h3>Источник - Правка : <em>'".stripslashes($info["origin"])."'</em></h3>";
$display .= "<form action='./process_ng.php' method='POST' enctype='multipart/form-data'>\n";
$display .= "<input type='hidden' name='cat' value='$cat'>\n";
$display .= "<input type='hidden' name='act' value='$act'>\n";
$display .= "<input type='hidden' name='originID' value='$uid'>\n";
$display .= "Название : <input type='text' name='origin' value='".stripslashes($info["origin"])."'><br>\n";
$display .= "Описание :<br> <textarea name='desk' value='".stripslashes($info["desk"])."'></textarea><br>\n";
$display .= "Корень: <input type='text' name='basedir' value='".stripslashes($info["basedir"])."'><br>\n";
$display .= "Домашняя страница: <input type='text' name='homeurl' value='".stripslashes($info["homeurl"])."'><br>\n";
$display .= "Ссылка на ключ: <input type='text' name='keyurl' value='".stripslashes($info["keyurl"])."'><br>\n";
$display .= "<input type='submit' value='Править'></form>\n";
break;
case '3':
// Удаление существующего источника
$orig =& $db->query("SELECT * FROM origin WHERE id='$uid'");
$orig->fetchInto($info, DB_FETCHMODE_ASSOC
);
$display = "<h3>Удаление источника репозиториев <em>'".stripslashes($info["origin"])."'</em></h3>";
$display .= "<form action='./process_ng.php' method='POST' enctype='multipart/form-data'>\n";
$display .= "<input type='hidden' name='cat' value='$cat'>\n";
$display .= "<input type='hidden' name='act' value='$act'>\n";
$display .= "<input type='hidden' name='originID' value='$uid'>\n";
$display .= "<input type='submit' value='Удалить'></form>\n";
break;
}
break;
case '1':
switch($act) {
case '0':
// Список дистрибутивов
$display = "<h3>Дистрибутив - Список</h3>";
$distr =& $db->query("SELECT * FROM distribution");
$display .= "<table><tr><td>Дистрибутив</td><td>Действие</td><td>Описание</td><td>URL</td><td>Ссылка на ключ</td></tr>";
while ($distr->fetchInto($info, DB_FETCHMODE_ASSOC
)) {
$display .= "<tr><td>".stripslashes($info["distname"])."</td>";
$display .= "<td><a href='".$admin."?mode=1&cat=1&action=2&uid=".$info["dist_id"]."'><img src='img/edit.png' alt='Править'></a><a href='".$admin."?mode=1&cat=1&action=3&uid=".$info["dist_id"]."'><img src='img/delete.png' alt='Удалить'></a></td>";
$display .= "<td>".stripslashes($info["origin"])."</td></tr>";
}
$display .= "</table>";
$display .= "<p><a href='".$admin."?mode=1&cat=1&action=1'><img src='img/add.png' alt='Добавить'>Добавить новый дистрибутив</a></p>";
break;
case '1':
// Добавление нового дистрибутива
$dtype =& $db->query("SELECT * FROM dtype");
$type = "<select name='distType'>";
while ($dtype->fetchInto($dtinfo, DB_FETCHMODE_ASSOC
)) {
$type .= "<option value='".$dtinfo["type_id"]."'>".stripslashes($dtinfo["type"])."</option>";
}
$type .= "</select>\n";
$display = "<h3>Дистрибутив - Добавление</h3>";
$display .= "<form action='./process_ng.php' method='POST' enctype='multipart/form-data'>\n";
$display .= "<input type='hidden' name='cat' value='$cat'>\n";
$display .= "<input type='hidden' name='act' value='$act'>\n";
$display .= "Название дистрибутива: <input type='text' name='distName'><br>\n";
$display .= "Представление в строке User-Agent'а: <input type='text' name='distUA'><br>\n";
$display .= "Тип дистрибутива: ".$type."<br>";
$display .= "Логотип дистрибутива (Прозрачный PNG): <input type='file' name='distLOGO'><br>";
$display .= "<input type='submit' value='Создать'></form>\n";
break;
case '2':
// Правка существующего дистрибутива
$dist =& $db->query("SELECT * FROM distribution WHERE dist_id='$uid'");
$dist->fetchInto($info, DB_FETCHMODE_ASSOC
);
$dtype =& $db->query("SELECT * FROM dtype");
$type = "<select name='distType'>";
while ($dtype->fetchInto($dtinfo, DB_FETCHMODE_ASSOC
)) {
if ($info["disttype"]==$dtinfo["type_id"]) {
$type .= "<option value='".$dtinfo["type_id"]."' selected>".stripslashes($dtinfo["type"])."</option>";
} else {
$type .= "<option value='".$dtinfo["type_id"]."'>".stripslashes($dtinfo["type"])."</option>";
}
}
$type .= "</select>\n";
$display = "<h3>Дистрибутив - Правка: <em class='".stripslashes($info["distua"])."-em'>".stripslashes($info["distname"])."</em></h3>";
$display .= "<form action='./process_ng.php' method='POST' enctype='multipart/form-data'>\n";
$display .= "<input type='hidden' name='cat' value='$cat'>\n";
$display .= "<input type='hidden' name='act' value='$act'>\n";
$display .= "<input type='hidden' name='distID' value='$uid'>\n";
$display .= "Название дистрибутива: <input type='text' name='distName' value='".stripslashes($info["distname"])."'><br>\n";
$display .= "Представление в строке User-Agent'a: <input type='text' name='distUA' value='".stripslashes($info["distua"])."'><br>\n";
$display .= "Тип дистрибутива: ".$type."<br>";
$display .= "Логотип дистрибутива (Прозрачный PNG): <input type='file' name='distLOGO'><br>";
$display .= "<input type='submit' value='Править'></form>\n";
break;
case '3':
// Удаление существующего дистрибутива
$dist =& $db->query("SELECT * FROM distribution WHERE dist_id='$uid'");
$dist->fetchInto($info, DB_FETCHMODE_ASSOC
);
$display = "<h3>Удаление apt-дистрибутива <em class='".stripslashes($info["distua"])."-em'>".stripslashes($info["distname"])."</em></h3>";
$display .= "<form action='./process_ng.php' method='POST'>\n";
$display .= "<input type='hidden' name='cat' value='$cat'>\n";
$display .= "<input type='hidden' name='act' value='$act'>\n";
$display .= "<input type='hidden' name='distID' value='$uid'>\n";
$display .= "<input type='hidden' name='distUA' value='".stripslashes($info["distua"])."'>\n";
$display .= "<input type='submit' value='Удалить'></form>\n";
break;
}
break;
case '2':
break;
case '3':
break;
case '4':
break;
}
break;
}
$smarty->assign('feedaddr',$_SERVER["HTTP_HOST"].dirname($_SERVER["PHP_SELF"]));
$smarty->assign('error',$error);
$smarty->assign('menu',$menu);
$smarty->assign('display',$display);
$smarty->assign('antversion',$core->getSetting('version',$db));
$smarty->assign('title',$core->getSetting('codename',$db));
$smarty->assign('style',$core->getCSSList($db));
$smarty->display('admin_ng.tpl');
?>