Хранилища Subversion ant

Редакция

Авторство | Последнее изменение | Открыть журнал | RSS

<?php

/**
 * Project:     Ant: sources.list generator
 * File:        process.php
 *
 * This application is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This application is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 */



require_once dirname(__FILE__)."/sign-valid.php";

$cat = abs(intval($_POST["cat"]));
$act = abs(intval($_POST["act"]));

$go = "./admin_ng.php";

switch ($cat) {
    case '0':
        switch ($act) {
            case '0':
            break;
            case '1':
                // Добавление нового источника
                $origin = mysql_real_escape_string($_POST["origin"]);
                $desk = mysql_real_escape_string($_POST["desk"]);
                $basedir = mysql_real_escape_string($_POST["basedir"]);
                $homeurl = mysql_real_escape_string($_POST["homeurl"]);
                $keyurl = mysql_real_escape_string($_POST["keyurl"]);
                $res =& $db->query("INSERT INTO origin SET origin='$origin', desk='$desk', basedir='$basedir', homeurl='$homeurl', keyurl='$keyurl'");
                $go .= "?mode=1&cat=$cat";
                break;
            case '2':
                // Правка существующего источника
                $origin = mysql_real_escape_string($_POST["origin"]);
                $desk = mysql_real_escape_string($_POST["desk"]);
                $basedir = mysql_real_escape_string($_POST["basedir"]);
                $homeurl = mysql_real_escape_string($_POST["homeurl"]);
                $keyurl = mysql_real_escape_string($_POST["keyurl"]);
                $id = abs(intval($_POST["originID"]));
                $res =& $db->query("UPDATE origin SET origin='$origin', desk='$desk', basedir='$basedir', homeurl='$homeurl', keyurl='$keyurl' WHERE id='$id'");
                $go .= "?mode=1&cat=$cat";
            break;
            case '3':
                // Удаление существующего источника
                $id = abs(intval($_POST["originID"]));
                $res =& $db->query("DELETE FROM origin WHERE id='$id'");
                $go .= "?mode=1&cat=$cat";
            break;
        }
    break;
    case '1':
        switch ($act) {
            case '0':
            break;
            case '1':
                // Добавление нового дистрибутива
                $distname = mysql_real_escape_string($_POST["distName"]);
                $distua   = mysql_real_escape_string($_POST["distUA"]);
                $disttype = abs(intval($_POST["distType"]));

                $distlogo = 0;
                if ($_FILES["distLOGO"]["type"]!=0) {
                    $folder   = dirname(__FILE__)."/img/logo/".stripslashes($distua)."-orig.png";
                    $folderN  = dirname(__FILE__)."/img/logo/".stripslashes($distua).".png";
                    $folderEM = dirname(__FILE__)."/img/logo/".stripslashes($distua)."-em.png";
                    if (move_uploaded_file($_FILES["distLOGO"]["tmp_name"],$folder)) {
                        chmod($folder, 0644);
                        list($width, $height) = GetImageSize($folder);
                        $percent = 32/$height;
                        $newwidth = $width * $percent;
                        $newheight = $height * $percent;
                       
                        $output = ImageCreateTrueColor($newwidth, $newheight);
                        $source = ImageCreateFromPNG($folder);

                        ImageCopyResampled($output, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
                        ImagePNG($output, $folderEM);

                        $percent = 15/$height;
                        $newwidth = $width * $percent;
                        $newheight = $height * $percent;

                        $output = ImageCreateTrueColor($newwidth, $newheight);

                        ImageCopyResized($output, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
                        ImagePNG($output, $folderN);

                        unlink($folder);
                        $distlogo = 1;
                    }
                }

                $res =& $db->query("INSERT INTO distribution SET distname='$distname', distua='$distua', disttype='$disttype', distlogo='$distlogo'");
                // ChangeLog recording
                $res =& $db->query("SELECT * FROM dtype WHERE type_id='$disttype'");
                $res->fetchInto($log, DB_FETCHMODE_ASSOC);
                $title = "Добавлен новый дистрибутив";
                $dinfo = "В Ant добавлена поддержка основанного на ".stripslashes($log["type"])."-пакетах дистрибутива ".$distname.".";
                $res =& $db->query("INSERT INTO changelog SET log_record=NOW(), log_title='$title', log_desc='$dinfo'");

                $go .= "?mode=1&cat=$cat";
            break;
            case '2':
                // Правка существующего дистрибутива
                $distname = mysql_real_escape_string($_POST["distName"]);
                $distua   = mysql_real_escape_string($_POST["distUA"]);
                $disttype = abs(intval($_POST["distType"]));
                $distID = abs(intval($_POST["distID"]));

                if ($_FILES["distLOGO"]["type"]!='') {
                    $folder   = dirname(__FILE__)."/img/logo/".$distua."-orig.png";
                    $folderN  = dirname(__FILE__)."/img/logo/".$distua.".png";
                    $folderEM = dirname(__FILE__)."/img/logo/".$distua."-em.png";
                    if (move_uploaded_file($_FILES["distLOGO"]["tmp_name"],$folder)) {
                        chmod ($folder, 0644);
                        list($width, $height) = GetImageSize($folder);
                        $percent = 32/$height;
                        $newwidth = $width * $percent;
                        $newheight = $height * $percent;

                        $output = ImageCreateTrueColor($newwidth, $newheight);
                        $black  = ImageColorAllocate($output, 0, 0, 0);
                        $source = ImageCreateFromPNG($folder);

                        ImageCopyResampled($output, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
                        ImageColorTransparent($output, $black);
                        ImagePNG($output, $folderEM);

                        $percent = 15/$height;
                        $newwidth = $width * $percent;
                        $newheight = $height * $percent;

                        $output = ImageCreateTrueColor($newwidth, $newheight);
                        $black  = ImageColorAllocate($output, 0, 0, 0);

                        ImageCopyResized($output, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
                        ImageColorTransparent($output, $black);
                        ImagePNG($output, $folderN);

                        unlink($folder);

                        $res =& $db->query("UPDATE distribution SET distlogo='1' WHERE dist_id='$distID'");

                    }
                }

                $res =& $db->query("UPDATE distribution SET distname='$distname', distua='$distua', disttype='$disttype', WHERE dist_id='$distID'");

                $go .= "?mode=1&cat=$cat";
            break;
            case '3':
                // Удаление существующего дистрибутива
                $distID = abs(intval($_POST["distID"]));
                $distUA = $_POST["distUA"];

                $folder1 = dirname(__FILE__)."/img/logo/".$distUA."-em.png";
                $folder2 = dirname(__FILE__)."/img/logo/".$distUA.".png";

                if (file_exists($folder1)) { unlink($folder1); }
                if (file_exists($folder2)) { unlink($folder2); }

                $res =& $db->query("SELECT * FROM distribution d JOIN dtype t ON d.disttype=t.type_id WHERE d.dist_id='$distID'");
                $res->fetchInto($log, DB_FETCHMODE_ASSOC);

                $res =& $db->query("DELETE FROM distribution WHERE dist_id='$distID'");
                $res =& $db->query("DELETE FROM sect2dist WHERE dist_id='$distID'");
                $res =& $db->query("DELETE FROM version WHERE dist_id='$distID'");

                // ChangeLog recording
                $title = "Удаление поддержки дистрибутива";
                $dinfo = "Из Ant удалена поддержка основанного на ".stripslashes($log["type"])."-пакетах дистрибутива ".stripslashes($log["distname"]).".";
                $res =& $db->query("INSERT INTO changelog SET log_record=NOW(), log_title='$title', log_desc='$dinfo'");

                $go .= "?mode=1&cat=$cat";
            break;
        }
    break;
    case '2':
    break;
    case '3':
    break;
}

header("Location: $go\n\n");

?>