Subversion-Projekte lars-tiefland.content-management

Revision

Blame | Letzte Änderung | Log anzeigen | RSS feed

<?php

    //$Id: artikelstamm.php 3931 2011-09-16 08:17:57Z tiefland $
    /**
     * @author Patirck Lautsch <lautsch@weban.de>
     * @copyright 2008 Webagentur Niewerth
     * @package Content-management
     * @version $Rev: 3931 $
     * @license propietary
     * @filesource
     * 
     */

    /**
     * 
     * @author Patirck Lautsch <lautsch@weban.de>
     * @copyright 2008 Webagentur Niewerth
     * @package Content-management
     */

    require_once  "../Online-Shop/connect2.php";
    require_once 'HTML_TreeMenu/TreeMenu.php';

    // Smarty Initalisierung
    define( "SMARTY_DIR", "/usr/share/php/smarty/libs/" );
    require_once  "Weban_Smarty.class.php";

    $GLOBALS["ui"] = new Weban_Smarty();
    $GLOBALS["ui"]->conifg_dir = SMARTY_DIR;
    $GLOBALS["ui"]->template_dir = "templates/";
    $GLOBALS["ui"]->compile_dir = "templates_c";
    $GLOBALS["ui"]->compile_check = true;
    // erlaubten Speicher hochsetzen, da sonst das TreeMenu nicht angezeigt wird
    ini_set("memory_limit","32M");
    
    //// ARTIKELSTAMM
    // Der Artikelstamm soll es den Benutzer ermöglichen,
    // durch einen Klick auf einen Artikel, diesen in den Warenkorb
    // der manuellen Bestellerfassung aufzunehmen.
    //
    // AUFBAU UND SCHNITTSTELLEN
    // - Mit jedem Link muss $_GET[action] auf „step3“ gesetzt sein
    // - Eingefügt wird ein Artikel in dem $artikel_loop
    //      für die spätere Ausgabe im Warenkorb.
    //      ACHTUNG! Anzahl der Elemente von $artikel_loop vorher auslesen,
    //      da vier Elemente mit der selben Loop ID angelegt werden müssen.
    //- Die ID des jeweiligen Shops ist unter $_SESSION['shop'] gespeichert

    // Hole Daten aus der Datenbank
    // Überrpüfe ob der 'database' Eintrag des Shops
    $sql = "SELECT * FROM pieper_freizeit_de.shops WHERE ID = '" . $_GET['shop'] .
        "'";
    $result = mysql_query( $sql ) or die( mysql_errno() . ': ' . mysql_error() .
        '<hr />' . $sql );
    $row = mysql_fetch_assoc( $result );
    $database = $row['database'];
    // Wenn $database nicht gesetzt ist, übernehme als Wert 'pieper_freizeit_de'
    if ( empty($database) )
    {
        $database = $webs["database"];
    }
    //// Hole alle Einträge aus der ausgewählten Shop-DB Tabelle 'directory' und
    // lege sie nach folgendem Muster ab: $artikelstamm['directory'][loop_zähler]
    //      $artikelstamm['directory'][loop_zähler][id],
    //      $artikelstamm['directory'][loop_zähler][father],
    //      $artikelstamm['directory'][loop_zähler][name]
    //

    $sql = "SELECT ID, Father, Name, Artikelstamm 
                    FROM $database.directory 
                WHERE sichtbar = 1
                ORDER BY Father ASC";
    $result = mysql_query( $sql ) or die( mysql_errno() . ': ' . mysql_error() .
        '<hr />' . $sql );

    for ( $i = 0; $row = mysql_fetch_assoc($result); $i++ )
    {
        $artikelstamm['directory'][$i]['id'] = $row['ID'];
        $artikelstamm['directory'][$i]['father'] = $row['Father'];
        $artikelstamm['directory'][$i]['name'] = $row['Name'];
        $artikelstamm['directory'][$i]['stamm'] = $row['Artikelstamm'];
    }

    //// Hole alle Einträge aus der ausgewählten Shop-DB Tabelle 'artikel' und
    // lege sie nach folgendem Muster ab: $artikelstamm['artikel'][loop_zähler]
    //      $artikelstamm['artikel'][loop_zähler][id],
    //      $artikelstamm['artikel'][loop_zähler][father],
    //      $artikelstamm['artikel'][loop_zähler][kurzbezeichnung]
    //

    $sql = "SELECT ID, Father, kurzbezeichnung, preis1 
                    FROM $database.artikel
                WHERE Father != -3 
                ORDER BY Father ASC";
    
    $result = mysql_query( $sql ) or die( mysql_errno() . ': ' . mysql_error() .
        '<hr />' . $sql );
    for ( $i = 0; $row = mysql_fetch_assoc($result); $i++ )
    {
        $artikelstamm['artikel'][$i]['id'] = $row['ID'];
        $artikelstamm['artikel'][$i]['father'] = $row['Father'];
        $artikelstamm['artikel'][$i]['kurzbezeichnung'] = $row['kurzbezeichnung'];
        $artikelstamm['artikel'][$i]['preis'] = $row['preis1'];
    }

    /** Erstelle Ordnerstruktur für die spätere Ausgabe im PEAR-Modul 'HTML_TreeMenu'
     * Gehe alle Einträge von $artikelstamm['directory'] durch.
     * Wenn Father gleich -1 ist,
     * dann erstelle $ordner[id_aus_directory] = new HTML_TreeNode;
     * Wenn Father ungleich -1 ist,
     * dann erstelle $ordner[id_aus_directory] = $ordner[father_aus_directory]->addItem;
     *
     * Erstelle das Objekt '$menu' aus der Klasse 'HTML_TreeMenu'
     **/
    $menu = new HTML_TreeMenu();
    // Icons definieren
    $art_icon = 'file_000.gif';

    for ( $i = 0; $i < count($artikelstamm['directory']); $i++ )
    {
        $ordner_id = $artikelstamm['directory'][$i]['id'];
        $ordner_father = $artikelstamm['directory'][$i]['father'];
        $text = $artikelstamm['directory'][$i]['name'];

        /** Sollte $artikelstamm['directory'][$i]['stamm'] auf '1' gesetzt sein,
         so zeige als Bild einen Artikelstamm an
        **/
        if ( $artikelstamm['directory'][$i]['stamm'] == 1 )
        {
            $icon = 'artikelstamm.png';
            $expandedIcon = $icon;
        }
        else
        {
            $icon = 'ordner_000.gif';
            $expandedIcon = 'folder-expanded.gif';
        }

        if ( $artikelstamm['directory'][$i]['father'] == -1 )
        {
            $ordner[$ordner_id] = new HTML_TreeNode( array('text' => $text, 'link' => '',
                'icon' => $icon, 'expandedIcon' => $expandedIcon) );
        }
        else
        {
            if ( isset($ordner) )
            {
                if ( array_key_exists($ordner_father, $ordner) )
                {
                    $ordner[$ordner_id] = $ordner[$ordner_father]->addItem( new HTML_TreeNode(array
                        ('text' => $text, 'link' => '', 'icon' => $icon, 'expandedIcon' => $expandedIcon)) );
                }
            }
        }

    }

    for ( $i = 0; $i < count($artikelstamm['artikel']); $i++ )
    {
        $artikel_id         = $artikelstamm['artikel'][$i]['id'];
        $artikel_preis      = $artikelstamm['artikel'][$i]['preis'];
        $artikel_father     = $artikelstamm['artikel'][$i]['father'];
        $text               = $artikelstamm['artikel'][$i]['kurzbezeichnung'];
        $text = str_replace( '®', '&reg;', $text );
        $text = str_replace( '\'', '&prime;', $text );
        $text = str_replace( '\"', '', $text ); 

        if ( array_key_exists($artikel_father, $ordner) )
        {
            
            $artikel[$artikel_id] = $ordner[$artikel_father]->addItem( new HTML_TreeNode
                (array('text' => "<span class=\"artikel\" onclick=\"addInput('" . $text . "', '" . $artikel_preis .
                "', '" . $artikel_id . "')\">" . $text . "</span>", 'link' => '', 'icon' =>
                $art_icon, 'expandedIcon' => $expandedIcon)) );
        }
        
    }

    foreach ( array_keys($ordner) as $key )
    {
        $sql = "SELECT ID FROM $database.directory WHERE Father = -1 AND ID = $key";
        $result = mysql_query( $sql ) or die( mysql_errno() . ': ' . mysql_error() .
            '<hr />' . $sql );
        $row = mysql_fetch_assoc( $result );
        if ( isset($row['ID']) )
            $menu->addItem( $ordner[$key] );
    }
    $tree = new HTML_TreeMenu_DHTML( $menu, array('images' =>
        '../images/Online-Shop/directory', 'defaultClass' => 'menuDefault') );
    
    $GLOBALS["ui"]->register_object("tree", $tree);
    
    $GLOBALS["ui"]->display('artikelstamm.tpl');
    
?>