def preview_page( self ):
        "Preview einer editierten Seite"
        #~ self.CGIdata.debug()

        # CGI-Daten holen und leere Form-Felder "einfügen"
        edit_page_data = self.set_default( self.CGIdata )

        # CGI daten sind immer vom type str, die parent ID muß allerdings eine Zahl sein.
        # Ansonsten wird in MyOptionMaker.build_html_option() kein 'selected'-Eintrag gesetzt :(
        edit_page_data["parent"] = int( edit_page_data["parent"] )

        # Preview der Seite erstellen
        content = "\n<h3>edit preview:</h3>\n"
        content += '<div id="page_edit_preview">\n'
        from PyLucid_system import pagerender
        pagerender = pagerender.pagerender( self.PyLucid )
        content += pagerender.apply_markup( edit_page_data["content"], edit_page_data["markup"] )
        content += "\n</div>\n"

        # Formular der Seite zum ändern wieder dranhängen
        content += self.editor_page( edit_page_data )

        return content
    def __init__( self ):
        # Alle Objekte/Klassen, die für Module/Plugins nötig sein könnten, werden
        # in dem Dict PyLucid_objects abgelegt. Dieses erlaubt ein vereinheitliche
        # Instanzierung von Modulen
        self.PyLucid = {}

        # PyLucid's Konfiguration
        self.config         = config
        self.PyLucid["config"] = self.config

        if self.config.system.poormans_modrewrite == True:
            # Frühzeite überprüfung der URL
            self.check_request()

        # Speichert Nachrichten die in der Seite angezeigt werden sollen
        self.page_msg       = sessiondata.page_msg()
        self.PyLucid["page_msg"] = self.page_msg

        # CGI Post/Get Daten
        self.CGIdata        = sessiondata.CGIdata( self.PyLucid )
        #~ self.CGIdata.debug()
        self.PyLucid["CGIdata"] = self.CGIdata

        # Anbindung an die SQL-Datenbank, mit speziellen PyLucid Methoden
        self.db             = SQL.db()
        self.PyLucid["db"] = self.db

        # Verwaltung für Einstellungen aus der Datenbank
        self.preferences    = preferences.preferences( self.PyLucid )
        self.PyLucid["preferences"] = self.preferences

        tools.PyLucid = self.PyLucid
        self.PyLucid["tools"] = tools

        # Log-Ausgaben in SQL-DB
        self.log            = SQL_logging.log( self.PyLucid )
        self.PyLucid["log"] = self.log

        # Allgemeiner CGI Sessionhandler auf mySQL-Basis
        self.session        = sessionhandling.sessionhandler(
            self.db.cursor,
            "%ssession_data" % self.config.dbconf["dbTablePrefix"],
            self.log,
            CookieName="PyLucid_id",
            #~ verbose_log = True
        )
        self.session.page_msg = self.page_msg
        #~ self.session.debug()
        self.PyLucid["session"] = self.session

        # Für die Log-Einträge Informationen festhalten
        self.log.client_sID         = self.session.ID
        if self.session.has_key("user"):
            self.log.client_user_name   = self.session["user"]

        # Aktuelle Seite ermitteln und festlegen
        self.detect_page()
        # Überprüfe Rechte der Seite
        self.verify_page()

        # Verwaltung von erweiterungs Modulen/Plugins
        self.module_manager = module_manager.module_manager( self.PyLucid )
        # Alle Module, die für den Modul-Manager vorbereitet wurden einlesen
        self.module_manager.read_module_info( "PyLucid_modules" )
        #~ self.module_manager.debug()
        self.PyLucid["module_manager"] = self.module_manager

        # Zum Zusammenbau der HTML-Seiten
        self.pagerender     = pagerender.pagerender( self.PyLucid )