Хранилища Subversion ant

Редакция

Редакция 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');

?>