Subversion-Projekte lars-tiefland.content-management

Revision

Blame | Letzte Änderung | Log anzeigen | RSS feed

<?php

    //$Id: dokuadmin.php 3931 2011-09-16 08:17:57Z tiefland $

    /**
     * @author Lars Tiefland <tiefland@weban.de>
     * @copyright 2009 Webagentur Niewerth
     * @package Content-management
     * @version $Rev: 3931 $
     * @license propietary
     * @filesource
     * 
     */

    /**
     * listet alle Dokumente auf und gibt die Möglichkeit Dokumente auch zu löschen (Dateien werden verschoben; die entsprechenden Datensätze werden versteckt)
     * @author Lars Tiefland <tiefland@weban.de>
     * @copyright 2009 Webagentur Niewerth
     * @package Content-management
     */
    define( "MAX_PER_PAGE", 100 );
    require_once  "../Online-Shop/connect2.php";
    require_once  "Weban_Smarty.class.php";
    $GLOBALS["ui"] = new Weban_Smarty();
    $GLOBALS["ui"]->compile_dir = $_SERVER["DOCUMENT_ROOT"] . "/templates_c/";
    $GLOBALS["ui"]->compile_id = "Warenwirtschaft|dokuadmin";
    $GLOBALS["ui"]->use_sub_dirs = true;
    $GLOBALS["ui"]->template_dir = "templates/dokuadmin";
    $del_recht = isset( $user_rechte["Warenwirtschaft"]["dokuadmin"]["dokudel"] );
    $GLOBALS["ui"]->assign( "del_recht", $del_recht );
    $valid_sorts = array( "document", "letzte_aenderung_am",
        "letzte_aenderung_von" );
    $valid_dirs = array( "DESC", "ASC" );
    if ( isset( $user_rechte["Warenwirtschaft"]["dokuadmin"]["dokulist"] ) )
    {
        switch ( $_GET["mode"] )
        {
            case "del":
                if ( $del_recht )
                {
                    echo "Datensatz gelöscht!";
                    if ( is_numeric( $_GET["ID"] ) )
                    {
                        $id = intval( $_GET["ID"] );

                        $sql = "
                            SELECT 
                                * 
                            FROM
                                dokumente
                            WHERE
                                ID = $id
                        ";
                        $res = mysql_fetch_assoc( $sql );
                        if ( $res )
                        {
                            $row = mysql_fetch_assoc( $res );
                            $name = $row["document"];
                            if ( !file_exists( $webs["verzeichnis"] .
                                "/images/dokumente/trash" ) )
                            {
                                mkdir( $webs["verzeichnis"] .
                                    "/images/dokumente/trash" );
                            }
                            rename( $webs["verzeichnis"] .
                                "/images/dokumente/$name", $webs["verzeichnis"] .
                                "/images/dokumente/trash/$name" );
                            $sql2 = "
                                UPDATE
                                    dokumente
                                SET
                                    hidden=1
                                WHERE
                                    ID=$id
                            ";
                            $res2 = mysql_query( $sql2 );
                        }
                    }
                }
            default:
                $sql = "
                SELECT
                    *
                FROM
                    dokumente
                WHERE
                    hidden=0
                AND
                    table_foreign='Bestellung'
                ";
                if ( $_GET["sort"] )
                {
                    if ( !isset( $_GET["dir"] ) || $_GET["dir"] == "" || !
                        in_array( $_GET["dir"], $valid_dirs ) )
                    {
                        $dir = "ASC";
                    } elseif ( in_array( $_GET["dir"], $valid_dirs ) )
                    {
                        $dir = $_GET["dir"];
                    }
                    if ( in_array( $_GET["sort"], $valid_sorts ) )
                    {
                        $sql .= "
                            ORDER BY $sort $dir
                        ";
                    } elseif ( $_GET["sort"] == "doktype" )
                    {
                        $sql .= "
                            ORDER BY substr(document,1,1) $dir
                        ";
                    }
                    else
                    {
                        $sort = "letzte_aenderung_am";
                        $dir = "DESC";
                        $sql .= "
                            ORDER BY letzte_aenderung_am DESC
                        ";
                    }
                }
                else
                {
                    $sort = "letzte_aenderung_am";
                    $dir = "DESC";
                    $sql .= "
                            ORDER BY letzte_aenderung_am DESC
                        ";
                }
                $res = mysql_query( $sql );
                $d_anz = mysql_num_rows( $res );
                $p_anz = ceil( $d_anz / MAX_PER_PAGE );
                if ( !$_GET["p_id"] || $_GET["p_id"] == 0 )
                {
                    $cur_page = 1;
                } elseif ( abs( $_GET["p_id"] ) > $p_anz )
                {
                    $cur_page = $p_anz;
                } elseif ( is_numeric( $_GET["p_id"] ) )
                {
                    $cur_page = intval( $_GET["p_id"] );
                }
                $start = ( $cur_page - 1 ) * MAX_PER_PAGE;
                $GLOBALS["ui"]->assign( "cur_page", $cur_page );

                $GLOBALS["ui"]->assign( "p_anz", $p_anz );
                for ( $page_id = 1; $page_id <= $p_anz; $page_id++ )
                {
                    $pages[$page_id] = $page_id;
                }
                $GLOBALS["ui"]->assign( "pages", $pages );
                if ( $d_anz > MAX_PER_PAGE )
                {
                    $sql .= "
                        LIMIT $start, " . MAX_PER_PAGE . "
                    ";
                    $res = mysql_query( $sql );
                }
                while ( $row = mysql_fetch_assoc( $res ) )
                {
                    switch ( $row["document"][0] )
                    {
                        case "A":
                            $row["docu_type"] = "Auftrag";
                            $row["deletable"] = false;
                            break;
                        case "L":
                            $row["docu_type"] = "Lieferschein";
                            $row["deletable"] = false;
                            break;
                        case "R":
                            $row["docu_type"] = "Rechnung";
                            $row["deletable"] = false;
                            break;
                        case "G":
                            $row["docu_type"] = "Gutschein";
                            $row["deletable"] = true;
                            break;
                        default:
                            $row["docu_type"] = "E-Mail";
                            $row["deletable"] = true;
                            break;
                    }
                    $row["letzte_aenderung_am"] = datetime2human( $row["letzte_aenderung_am"] );
                    $row["valid"] = true;
                    $sql2 = "
                        SELECT 
                    " . $row["row_foreign"] . " 
                        FROM " . $row["table_foreign"] . "
                        WHERE 
                    " . $row["row_foreign"] . " = 
                    " . $row["data_foreign"] . "
                    ";
                    $res2 = mysql_query( $sql2 );
                    if ( !mysql_num_rows( $res2 ) )
                    {
                        $row["valid"] = false;
                    }
                    $daten[] = $row;
                }
                foreach ( $valid_sorts as $sort_v )
                {
                    if ( $sort == $sort_v )
                    {
                        $sorts[$sort_v]["dir"] = ( $dir == "ASC" ) ? "DESC" :
                            "ASC";
                    }
                    else
                    {
                        $sorts[$sort_v]["dir"] = "ASC";
                    }
                }
                $GLOBALS["ui"]->assign( "cur_sort", $sort );
                $GLOBALS["ui"]->assign( "cur_dir", $dir );
                $GLOBALS["ui"]->assign( "sort", $sorts );
                $GLOBALS["ui"]->assign( "daten", $daten );
                $GLOBALS["ui"]->assign( "title", "Dokumentenliste" );
                $GLOBALS["ui"]->assign( "tpl", "list.tpl" );
                break;
        }
        $GLOBALS["ui"]->assign( "webs", $webs );
    }
    else
    {
        $GLOBALS["ui"]->assign( "meld",
            "Sie sind nicht berechtigt diese Funktion zu nutzen!" );
        $GLOBALS["ui"]->assign( "error", true );
        $GLOBALS["ui"]->assign( "tpl", "meld.tpl" );
    }
    $GLOBALS["ui"]->display( "dokuadmin.tpl" );
?>