
          ,,_
        o"   )~
         '' ''
        +----------------------------------------------------------------------+
          adresSQL
        +----------------------------------------------------------------------+
          Copyright (c) 2009 Matthias Nitzschke (mn-portal.at)
          Version: see vars/version.var
          Web: http://www.mn-portal.at
        +----------------------------------------------------------------------+
          Author: Matthias Nitzschke <office@mn-portal.at>
        +----------------------------------------------------------------------+

    ##########################################################################################################################################


       Wichtige Einstellungen in der conf.php
	--------------------------------------------


       Die conf.php stellt Grundlegende Einstellungen zur Funktionsweise und dem Aussehen des Scripts zur Verfügung. Was das
       Aussehen angeht kann fröhlich herum experimentiert werden, anders sieht es mit Funktionen aus. Falsche Einstellungen können
       Fehler und/oder defekte Daten produzieren.

       Die wichtigsten Parameter sind:

       a. PDF-Thumbnail erstellen
      ----------------------------

       $config['make_pdf_thumb'] (Voreinstllung 1=ja)

          Legt fest, ob überhaupt ein Thumbnail für PDF-Dateien erstellt werden soll


       $config['use_pdf_user_thumb'] (Voreinstellung 0=Script-Verzeichnis)

          Legt fest, ob alle User ein gemeinsames Thumb-Verzeichnis für PDF-Vorschaubilder nutzen (Einstellung 0) oder jeder User sein
          eigenes Verzeichnis bekommt.
          Generell ist es normaler Weise nicht notwendig je User eine eigene Vorschau zu generieren, allerdings landen im gemeinsamen
          Verzeichnis ALLE Vorschaubilder, auch jene, die eventuell von geperrten Daten stammen. Möchten Sie das verhindern, setzen
          Sie diesen Parameter auf 1.
          Steht dieser Parameter auf 1, kann es beim ersten Klick auf die Downloads eines Datensatzes, etwas dauern, bis alle Vorschau-
          bilder erstellt wurden. Weiters wird wesentlich mehr Platz benötigt, da jedes Bild je User generiert werden muss.


       $config['use_imagick_func'] (Voreinstllung 0=shell)

          Es gibt 2 Möglichkeiten Thumbnails zu erstellen.

             1. das imagick PHP-Modul ($config['use_imagick_func'] wird auf 1 (Eins) gestellt)
             Dieses Modul wird von PHP zur Verfügung gestellt und benötigt keinen Zugriff auf Shell-Command Ebene. Das Modul erlaubt es
             eine Klasse aufzurufen, die aus PDF-Dateien ein Thumbnail erstellt. Bei mehrseitigen Dokumenten wird die Erste Seite
             als Vorschaubild generiert.

             2.
             Der Shell-Befehl "convert" oder "gm convert" ($config['use_imagick_func'] wird auf 0 (NULL) gestellt).
             Steht das PHP-Modul imagick nicht zur Verfügung, ist aber das Tool ImageMagick auf dem Server installiert, kann über
             einen Shellbefehl eine Konvertierung erfolgen.

             Auf Shell Ebene werden für mehrseiteige Dokumente mehrere Bilder (für jede Seite ein Bild) erzeugt und mit einer
             Nummerierung versehen. Das Adressen-Script benennt die erste Seite automatisch um und lässt die erste Seite als
             Vorschaubild anzeigen. Alle weiteren Seiten werden NICHT angezeigt, liegen aber als Bilder im Usertemp-Verzeichnis.


       $config['konvert_only_firstpage'] (Voreinstellung 1=ja)

          Kann auch den Shell-Befehl dazu veranlassen nur die erste Seite zu konvertieren und alle weiteren ausser Acht zu lassen.
          Das spart Platz und bringt Geschwindigkeit.


       $config['imagick_make_outputfile'] (Voreinstllung '.jpg' )

          Endung der Datei, die mit imagick erstellt werden soll. Wird der Shellaufruf von imagick verwendet und ist die Endung
          .gif, wird u.U. eine animierte Datei erzeugt, die alle Seiten eines Dokuments anzeigt und wie einen Film abspielen lässt.
          Allerdings ist die Animation sehr schnell.


       $config['remove_temp_pdf_files'] (Voreinstllung 0=nein)

          Da die Erstellung von Vorschaubildern ein rechenintensiver Vorgang ist, kann mit diesem Parameter festgelegt werden, ob
          bei jedem Aufruf der Uploads die Vorschau neu erstellt werden soll oder ob auf bereits erstellte Vorschaubilder zurück-
          gegriffen werden soll.
          Das Adressenscript speichert alle erstellten Vorschaubilder Je Anwender im verzeichnis /temp/userhash und kann bereits
          erstellte Bilder nach Bedarf aus diesem Verzeichnis verwenden.
          Da bei jedem Adressdatensatz unterschiedliche Dokumente hinterlegt werden können, kann dieser Parameter zu falschen An-
          zeigen führen.

          Bsp.

             Adresse A hat einen Vertrag mit dem Namen vertrag.pdf hinterlegt, ein Vorschaubild mit dem Namen vertrag.jpg wird
             erzeugt.

             Adresse B bekommt einen anderen Vertrag ebenfalls mit dem Namen vertrag.pdf hinterlegt. Das Script sucht nun die Datei
             vertrag.jpg und lässt sie als Vorschaubild anzeigen. Das Bild zum Vertrag A wird nun als Vorschaubild zum Vertrag B
             wiedergegeben.

          Um diesen Fehler zu vermeiden kann der Parameter auf 1 gesetzt werden. Nun werden, vor der Anzeige von Vorschaubildern,
          alle Bilder neu erstellt, was allerdings (je nach Datenmenge und Server) einige Zeit in Anspruch nehmen kann.
          Wer den shell-Befehl verwendet und nicht nur die erste Seite zu einem Vorschaubild macht, sollte sich darüber klar sein,
          dass bei einem 200 Seiten Dokument 200 Bilder generiert werden.
          Bei 50 Dateien a 200 Seiten macht das.......

          Auch wenn das Vorschaubild nicht korrekt sein sollte, so wird bei einem Klick doch der Download der korrekten Datei gestartet.

        !!! ACHTUNG !!!

        Wird ein User neu angelegt und befinden sich sehr viele Uploads in den Adressdateien, wird der ERSTE Aufruf der Kartei Datei-
        Upload sicher einige Zeit benötigen, die entsprechenden Vorschaubilder für den User zu erstellen. Dieser Vorgang ist in der Vor-
        einstellung nur einmalig je Datensatz und danach reagiert die Upload-Kartei recht schnell. Man beachte, dass viele User bei
        vielen Dokumenten auch einiges an Platz für die Vorschau verbrauchen.


      b. Konvertieren ins PDF-Format
         Um Abiword verwenden zu können muss Abiword auf dem Server installiert sein. Für Openoffice ist OpenOffice/LibreOffice notwendig.

         HINWEIS !!
         Wenn Sie Open/LibreOffice einsetzen wollen lesen Sie auch die kurze Anleitung unter docs/some_help. Dort steht, wie man den
         Dienst startet. Das Dokument beinhaltet nur ein paar Zeilen.
      --------------------------------

       $config['konvert_to_pdf'] (Voreinstllung 1=ja)

          Dieser Parameter erlaubt es, zu definieren, ob Uploads ins PDF-Format konvertiert werden sollen. Das verwendete Programm ist
          dabei unerheblich, ich setze Openoffice ein, alle Einstellungen sind auch mit abiword getestet. Dazu muss allerdings abiword
          installiert und lauffähig sein. Dateien werden nach dem Upload ins PDF-Format konvertiert und die original-Datei wird gelöscht!

          Stellen Sie den Parameter $config['del_non_pdffile'] auf 0, bleiben die Orginale erhalten.
          Abiword erstellt ein verstecktes Verzeichnis mit dem Namen .AbiSuite im root-Verzeichnis.


       $config['konverter_to_use'] (Voreinstllung openoffice)

          Legt den verwendeten Dienst fest, mit dem Konvertierungen durchgeführt werden sollen. Verwendet man OpenOffice, ist zu be-
          achten, dass auf dem Server, auf dem OpenOffice als Dienst läuft, die Grafische Oberfläche von OpenOffie nicht mehr gestartet
          werden kann. Der Einsatz von adressql mit laufendem Konverter auf localhost ist also nicht zu empfehlen, wenn man mit Openoffice
          arbeiten möchte.
          Der Vorteil von OpenOffice/LibreOffice ist, dass OpenOffice auch andere Dateien als Textdokumente konvertieren kann. So können
          z.B. auch HTML, *.xls, *.ppt, Postscript oder XML Dateien konvertiert werden.


       $config['konvert_endung'] (Voreinstllung array(html,htm,ps,txt,sxw,rtf,doc,odt,xls,ods))

          Legt fest, welche Dateiendungen ins PDF-Format konvertiert werden sollen. Prinzipiell sind alle Dateiendungen
          möglich, die von abiword oder OpenOffice konvertierbar sind (wo also der PDF-Button aktiv ist) bzw. wo das PDF-Format als
          Speicherformat möglich ist.


       $config['konvert_command'] (Voreinstllung 'abiword --to=pdf ') Man beachte den Abstand am Ende

          Dieser Parameter wirkt nur, wenn man abiword als Konverter eingetragen hat.
          Abiword kann mit einer Vielzahl an Schaltern versehen werden. über diesen Parameter können Befehle direkt an abiword über-
          geben werden.
          Setzt man Openoffice ein, muss man an dem Befehl nichts anpassen, diese Einstellung ist exclusiv für abiword reserviert.

             Abiword nutzt folgende Syntax:

                abiword --to=pdf Dateiname.Endung.

             Das Script setzt also den Befehl folgendermassen ab:

                $config['konvert_command'] Dateiname.endung

          abiword konvertiert die Datei dann ins PDF-Format und benennt die Datei Dateiname.pdf

       Dieser Shellbefehl kann durchaus dazu verwendet werden um andere Programme als abiword einzusetzen, sofern sie die selbe Syntax
       wie abiword verwenden.

       c. Pflichtfelder
       ----------------

       $config['must_be_set'] (Voreinstllung array("1", "2", "3", "4", "5", "6"))

          Legt fest, welche Felder bei einem Datensatz ausgefüllt werden müssen. Das Script zählt alle angezeigten Felder und ver-
          weigert die Anlage eines Datensatzes, wenn die Pflichfelder nicht ausgefüllt sind.
          (PHP beginnt bei 0 (NULL) zu zählen, NULL ist aber der automatisch vergebene Index eines neuen Datensatzes in der Datenbank).

          Damit eine Adresse auch vollständig ist, muss sie über Mindestinformationen verfügen. Hier also z.B.

          1 = Anrede
          2 = Vorname
          3 = Nachname
          4 = Plz
          5 = Ort
          6 = Straße

       Um Ihnen die Angabe der Pflichtfelder zu erleichtern, habe ich Ihnen in der Detailansicht eines beliebigen Datensatzes die Feld-
       nummer als Tooltip eingeblendet, wenn Sie mit der Maus über die Feldbezeichnung (Anrede, Vorname etc.) fahren.


       $config['check_double_data'] (1=Ja 0=Nein) Voreinstellung 1=Ja

          Prüft Mussfelder auf doppelte Einträge. Wenn ein Datensatz gefunden wird, der die Inhalte der Mussfelder bereits enthält, dann
          wird ein Hinweis "Datensatz existiert bereits" angezeigt. So können doppelte Einträge verhindert werden.

          Ich gehe davon aus, dass Adressdaten immer korrekt gleichartig angegeben werden. Unterschiede z.B. beim Strassen namen (z.B. einmal
          Blagasse 12 und einmal Blag. 12) werden als unterschiedlich gewertet. Gross/Kleinschreibung ist bei der Prüfung egal.


       d. Protokoll Logdatei
       ---------------------

       $config['protolog'] (Voreinstellung 0=aus)

          Die Einstellung ermöglicht es jedes SQL-Statement, das einen der folgenden Befehle beinhaltet, chronologisch zu loggen.

            delete
            update
            alter
            drop
            insert
            create
            replace

          Die Befehle können dann ausgelesen und der Reihe nach erneut ausgeführt werden, was eine komplette Rekonstruktion
          der Datenbank ermöglicht.
          Gedacht ist diese Funktion, um Datenanlagen von einer Zentrale an z.B Filialen zu senden und somit eine Art Datentransfer zu
          ermöglichen, die einen einheitlichen Datenbestand sicherstellen.

          Die Befehle, die ein Logging auslösen, sind in der Datei vars/.htprotokoll abgelegt und können dort erweitert werden.
          Die Protokolldatei ermöglicht das "triggern" von Anweisungen auf PHP-Ebene. Beachten Sie, daß ein aktiviertes Logging die
          Datenbank schnell anwachsen läßt und wesentlich mehr Platz braucht.

          Für Programmierer, die selbst Hand anlegen und das Script erweitern ist es ratsam statt der Funktion mysql_query() oder
          mysqli_query()die Script eigene Funktion dbquery() zu verwenden um ein logging auszulösen.

       Seit Version 1.211 ist es möglich eine Zentral und Filial-Datenbank zu führen. Zu diesem Zweck MUSS der Parameter auf 1
       gestellt sein.


       e. Verschlüsselung des Passworts
       --------------------------------

       $config['use_crypt_method'] (Voreinstllung md5)

          Legt die Methode fest, mit der ein Passwort verschlüsselt wird. Eine Methode ist eine Art Funktionsaufruf und benötigt
          je nach Art einen, oder mehrere Parameter. MD5 benötigt z.B. nur das Passwort ( md5(PASSWORT) ), andere Methoden benötigen
          noch einen weiteren Parameter um das Passwort zu erstellen.


       $config['use_crypt_option'] (Voreinstellung '')

          Erlaubt es je nach Verschlüsselungsmethode einen weieren Parameter zur Verschlüsselung zu übergeben. Dieser Parameter legt
          in den meisten Fällen die Höhe der Verschlüsselung fest. Als Beispiel habe ich in der conf.php noch BLOWFISH als Methode
          eingetragen (allerdings sind die Einstellungen inaktiv mit einem REM versehen).

          BLOWFISH wird folgendermassen aufgerufen: crypt(PASWWORT, OPTION).

          Um Blowfish zu nutzen, wird als Methode crypt eingetragen und als OPTION der Passende Eintrag der z.B. bei php.net nach-
          gelesen werden kann. Die Option muss genauen Vorgaben entsprechen, damit die Methode crypt "weiss" was sie zu machen hat.


       $config['use_asccii_strict'] (Voreinstellung 0=aus)

          Stellt für den Upload eine Funktion zur Verfügung, die den Dateinamen des Uploads testet und nur Punkte, Unterstriche,
          Ascii-Buchstaben und Ziffern im Dateinamen zulässt.

          Die Funktion stellt sicher dass hochgeladene Dateien auch vom System angezeigt werden können. Es werden z.B. Umlaute
          in Dateinamen als nicht konform abgelehnt und die Datei muss umbenannt werden.

    ***********************************************************************************************************************************
