Subversion-Projekte lars-tiefland.content-management

Revision

Blame | Letzte Änderung | Log anzeigen | RSS feed

<?php

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

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

    /**
     * 
     * @author Lars Tiefland <tiefland@weban.de>
     * @copyright 2008 Webagentur Niewerth
     */

    setlocale( LC_ALL, "de_DE" );
    //Datenbankverbindung
    require_once  "../Online-Shop/connect2.php";

    //Klassen
    require_once  "classes/projekt.class.php";
    require_once  "classes/login.class.php";
    require_once  "classes/projekt_benutzer.class.php";
    require_once  "classes/projekt_ort.class.php";

    //Smarty
    require_once  "Weban_Smarty.class.php";

    //Funktionen
    require_once  "functions.php";

    define( "Range", 100 );
    define( "modul_name", "projektverwaltung" );
    define( "tool_name", "projekte" );
    define( "propertie", "dokument" );
    $GLOBALS["ui"] = new Weban_Smarty();

    $projekt_recht = check_tables();

    function check_tables()
    {
        global $web_rechte;
        if ( isset($web_rechte["projektverwaltung"]["projekte"]["projekt"]) )
        {
            $sql = "DESCRIBE projekte";
            $res = mysql_query( $sql );
            if ( mysql_errno() == 1146 )
            {
                //Tabelle existiert nicht!
                $t_sql[] = "
                    CREATE TABLE `projekte` 
                    (
                        `p_id` mediumint(8) unsigned NOT NULL auto_increment,
                        `p_von` date NOT NULL,
                        `p_bis` date NOT NULL,
                        `p_name` varchar(255) NOT NULL,
                        `p_ort` mediumint(8) unsigned NOT NULL,
                        `p_leiter` mediumint(8) unsigned NOT NULL,
                        `p_beschreibung` mediumtext NOT NULL,
                        `erstellt_am` datetime NOT NULL,
                        `erstellt_von` varchar(255) NOT NULL,
                        `letzte_Aenderung_am` timestamp NOT NULL,
                        `letzte_Aenderung_von` varchar(255) NOT NULL,
                        PRIMARY KEY  (`p_id`),
                        KEY `p_ort` (`p_ort`),
                        KEY `p_leiter` (`p_leiter`)
                    )
                    ENGINE=InnoDB;

                ";
            }
            $sql = "DESCRIBE dokumente";
            $res = mysql_query( $sql );
            if ( mysql_errno() == 1146 )
            {
                //Tabelle existiert nicht!
                $t_sql[] = "
                    CREATE TABLE `dokumente` 
                    (
                        `id` int(11) NOT NULL auto_increment,
                        `table_foreign` varchar(50) NOT NULL,
                        `row_foreign` varchar(100) NOT NULL,
                        `data_foreign` varchar(255) NOT NULL,
                        `document` varchar(255) NOT NULL,
                        `letzte_aenderung_am` datetime NOT NULL,
                        `letzte_aenderung_von` varchar(255) NOT NULL,
                        `status` enum('intern','extern','beides') NOT NULL,
                        PRIMARY KEY  (`id`),
                        UNIQUE KEY `uid` (`table_foreign`,`row_foreign`,`data_foreign`,`document`)
                    )
                    ENGINE=InnoDB;

                ";
            }
            $sql = "DESCRIBE Logins";
            $res = mysql_query( $sql );
            if ( mysql_errno() == 1146 )
            {
                //Tabelle existiert nicht!
                $t_sql[] = "
                    CREATE TABLE `Logins` (
                        `ID` mediumint(8) unsigned NOT NULL auto_increment,
                        `Status` varchar(255) default NULL,
                        `user` varchar(255) default NULL,
                        `passwd` varchar(255) default NULL,
                        `Anrede` enum('','Herr','Frau','Firma') NOT NULL default '',
                        `Vorname` varchar(255) NOT NULL default '',
                        `Name1` varchar(255) default NULL,
                        `Name2` varchar(255) default NULL,
                        `Strasse` varchar(255) default NULL,
                        `Hausnummer` varchar(10) NOT NULL default '',
                        `PLZ` varchar(10) default NULL,
                        `ORT` varchar(255) default NULL,
                        `liefer_Anrede` enum('','Herr','Frau','Firma') NOT NULL default '',
                        `liefer_Firma` varchar(255) NOT NULL default '',
                        `liefer_Name` varchar(255) NOT NULL default '',
                        `liefer_Strasse` varchar(255) default NULL,
                        `liefer_Str_Nr` varchar(10) NOT NULL default '',
                        `liefer_PLZ` varchar(10) default NULL,
                        `liefer_Ort` varchar(255) default NULL,
                        `liefer_Land` varchar(255) NOT NULL default '',
                        `Telefon` varchar(255) default NULL,
                        `Fax` varchar(255) default NULL,
                        `E_Mail` varchar(255) NOT NULL default '',
                        `URL` varchar(255) default NULL,
                        `AP_Name` varchar(255) default NULL,
                        `AP_Handy` varchar(255) default NULL,
                        `AP_Bemerkung` text,
                        `erstellt_am` datetime default NULL,
                        `erstellt_von` varchar(255) default NULL,
                        `letzte_Aenderung_am` datetime default NULL,
                        `letzte_Aenderung_von` varchar(255) default NULL,
                        `Land` varchar(255) default NULL,
                        `Eigenschaft_1 TINYINT(1),
                        `Eigenschaft_2 TINYINT(1),
                        `Eigenschaft_3 TINYINT(1),
                        `Eigenschaft_4 TINYINT(1),
                         PRIMARY KEY  (`ID`)
                    )
                    ENGINE=InnoDB
                ";
            }
            $sql = "DESCRIBE projekt_ort";
            $res = mysql_query( $sql );
            if ( mysql_errno() == 1146 )
            {
                //Tabelle existiert nicht!
                $t_sql[] = "
                    CREATE TABLE `projekt_ort` (
                        `po_id` mediumint(8) unsigned NOT NULL auto_increment,
                        `po_name` varchar(255) NOT NULL,
                        `erstellt_am` datetime NOT NULL,
                        `erstellt_von` varchar(255) NOT NULL,
                        `letzte_Aenderung_am` timestamp NOT NULL,
                        `letzte_Aenderung_von` varchar(255) NOT NULL,
                        PRIMARY KEY  (`po_id`)
                    )
                    TYPE=InnoDB;
                ";
            }
            $sql="DESCRIBE projekt_benutzer";
            $res=mysql_query($sql);
            if(mysql_errno()==1146)
            {
                $t_sql[]="
                    CREATE TABLE `projekt_benutzer` (
                        `id` int(10) unsigned NOT NULL auto_increment,
                        `p_id` mediumint(8) unsigned NOT NULL,
                        `l_id` mediumint(8) unsigned NOT NULL,
                        `intern` tinyint(1),
                        `status` tinyint(1),
                        `erstellt_am` datetime default NULL,
                        `erstellt_von` varchar(255) default NULL,
                        `letzte_Aenderung_am` datetime default NULL,
                        `letzte_Aenderung_von` varchar(255) default NULL,
                        PRIMARY KEY  (`id`),
                        UNIQUE KEY `p_id_2` (`p_id`,`l_id`),
                        KEY `p_id` (`p_id`),
                        KEY `l_id` (`l_id`)
                        ) 
                        TYPE=InnoDB;
                ";
            }
            $t_sql[] = "
                ALTER TABLE `projekte`
                    ADD 
                        CONSTRAINT `projekte_ibfk_1` 
                            FOREIGN KEY (`p_leiter`) 
                            REFERENCES `Logins` (`ID`) 
                            ON UPDATE CASCADE,
                    ADD 
                        CONSTRAINT `projekte_ibfk_2` 
                            FOREIGN KEY (`p_ort`) 
                            REFERENCES `projekt_ort` (`po_id`)
                            ON UPDATE CASCADE;
                ";
            $t_sql[] = "
                ALTER TABLE `projekt_dokumente`
                    ADD 
                        CONSTRAINT `projekt_dokumente_ibfk_1` 
                            FOREIGN KEY (`p_id`) 
                            REFERENCES `projekte` (`p_id`) 
                            ON UPDATE CASCADE;
                ";
            $t_sql[]="
                ALTER TABLE `projekt_benutzer`
                    ADD 
                        CONSTRAINT `projekt_benutzer_ibfk_1` 
                            FOREIGN KEY (`p_id`) 
                            REFERENCES `projekte` (`p_id`) 
                            ON DELETE CASCADE 
                            ON UPDATE CASCADE,
                    ADD 
                        CONSTRAINT `projekt_benutzer_ibfk_2` 
                            FOREIGN KEY (`l_id`) 
                            REFERENCES `Logins` (`ID`) 
                            ON DELETE CASCADE 
                            ON UPDATE CASCADE;
            ";
            foreach ( $t_sql as $sql )
            {
                $res = mysql_query( $sql );
            }
            return true;
        }
        else
        {
            return false;
        }
    }

?>