2 // Filename: initialize_module.php
 
   4 // Modul: Externes PhPepperShopmodul: log_viewer
 
   6 // Autoren: José Fontanil & Reto Glanzmann
 
   8 // Zweck: Definition des Log-Viewer Moduls
 
  10 // Sicherheitsstatus:                     *** ADMIN ***
 
  14 // CVS-Version / Datum: $Id: initialize_module.php,v 1.1 2004/06/29 08:47:16 hli Exp $ $Dl: 26.05.04 11:20:43$
 
  16 // -----------------------------------------------------------------------
 
  17 // PhPepperShop Shopsystem
 
  18 // Copyright (C) 2001-2004  Jose Fontanil, Reto Glanzmann
 
  23 // Die verbindliche PhPepperShop Lizenz ist in folgender 
 
  24 // Datei definiert: PhPepperShop_license.txt
 
  25 // -----------------------------------------------------------------------
 
  26 // API Version der hier verwendeten PhPepperShop Modulschnittstelle:
 
  27 $pps_module_api = '1.0';
 
  29 // Informationen zu externen PhPepperShop Modulen:
 
  30 // ===============================================
 
  31 // Module bestehen meistens aus zwei Verzeichnissen: {shopdir}/shop/module/modul_name
 
  32 // und {shopdir}/shop/Admin/module/modul_name. Im Admin-Modulverzeichnis muss mindestens
 
  33 // diese Datei (initialize_module.php) vorhanden sein. Es gibt auch reine Administrations-
 
  34 // module, welche nur Dateien im Admin-Unterverzeichnis haben und keine Dateien im kunden-
 
  35 // seitigen Verzeichnis benoetigen.
 
  36 // - Ein Modul kann aber ohne weiteres auch eigene Unterverzeichnisse besitzen, sowie auch
 
  38 // - Damit Module Daten persistent speichern koennen, duerfen sie waehrend der Installation
 
  39 //   eigene Tabellen erstellen und bestehende um eigene Attribute erweitern. Bei einer De-
 
  40 //   installation werden diese Datenbankerweiterungen wieder entfernt.
 
  41 // - User-Security Scripte befinden sich in {shopdir}/shop/module/modul_name,
 
  42 //   die Admin-Security-Scripts befinden sich im Admin-Pendant.
 
  43 // - Module koenne (zumindest im Moment) noch keine eigenen Interfaces haben.
 
  44 // - Module koennen weitere Module als Voraussetzung angeben.
 
  46 // Definition der Variablen:
 
  47 // =========================
 
  48 // Die weiter unten definierten Variablen dienen der Beschreibung des Moduls. Diese muss
 
  49 // sehr ausfuehrlich sein, damit das automatisierte Installations- und Deinstallationsscript
 
  50 // durchlaufen kann. Nomenklatur:
 
  51 // x.) Bezeichnung    : Leitet eine weitere Definition ein. x ist eine Laufnummer
 
  52 // ! Beschreibung     : Beschreibung umschreibt Hinweise zum Thema der Bezeichnung
 
  53 // --> Einschraenkung : Mit --> werden ZWINGEND ZU BEFOLGENDE Einschraenkungen der Bezeichnung genannt
 
  55 // --------------------------------------------------------------------------------------
 
  56 // ******************************* DEFINITION DES MODULS *******************************
 
  57 // --------------------------------------------------------------------------------------
 
  59 //  1.) Name des Moduls (entspricht dem Verzeichnisname des Moduls)
 
  60 //      --> Der Name eines externen PhPepperShop Moduls darf hoechstens 40 Zeichen lang sein.
 
  61 //      --> Der Name muss mindestens 3 Zeichen lang sein.
 
  62 //      --> Er darf NUR aus alphanummerischen Zeichen und dem Underscore Zeichen (_) bestehen.
 
  63 //      --> Dieser Name ist gleichzeitig auch der Name des Verzeichnisses des Moduls.
 
  64 $moduldef['modulname'] = 'export_to_erp';
 
  66 // 2.) Bezeichnung des Moduls
 
  67 //      ! Dies ist die Bezeichnung des Moduls und unterliegt somit weniger Restriktionen als der Modulname
 
  68 //      --> Der Name darf hoechstens 40 Zeichen lang sein
 
  69 //      --> Der Name muss mindestens 3 Zeichen lang sein.
 
  70 $moduldef['modulbezeichnung'] = 'ERP Export';
 
  72 // 3.) Versionschecknummern
 
  73 //      ! Diese Nummern definieren die zu verwendende PhPepperShop Versionen. Die Versionisierung
 
  74 //        ist wie folgt: Die erste und zweite Nummer (durch Punkt getrennt) ergeben ein Release.
 
  75 //        Jedes unterstuetzte Release muss explizit angegeben werden. Die dritte (durch einen
 
  76 //        Punkt getrennte Nummer (eigentlich ein String), definiert Versionen des Releases. Alle
 
  77 //        Versionen eines Releases sind kompatibel, es sei denn man definiert auch die Versions-
 
  78 //        Nummer, dann sind alle aelteren Versionen des angegebenen Releases inkompatibel.
 
  79 //        Bsp. 1.4;1.5     = Das Modul ist kompatibel zu den Releases 1.4 und 1.5. Dies schliesst auch
 
  80 //                           alle Versionen der beiden Releases mit ein: 1.4.003, 1.4.004, 1.5.1, ...
 
  81 //        Bsp. 1.4.005;1.5 = Hier sind alle Versionen von 1.4 mit und nach 1.4.005 kompatibel und
 
  82 //                           alle Versionen von 1.5.
 
  83 //      ! Achtung: Man sollte keine zukuenftigen Releases angeben!
 
  84 //      --> Einzelne Versionen via Strichpunkt getrennt eingeben.
 
  85 $moduldef['versionschecknummern'] = '1.4.008;1.5';
 
  87 //  4.) Kurzbeschreibung
 
  88 //      ! Formatierungen sollen via HTML-Tags eingegeben werden.
 
  89 $moduldef['kurzbeschreibung'] = 'Eportiert Kundendaten und Bestellungen für Lx-Office ERP.
 
  90                                  Neukunden werden in der ERP angelegt und die ERP-KdNr in Kundendaten eingepflegt,
 
  91                                  bei Bestandskunden werden die Kundendaten abgeglichen.
 
  92                                  Das Feld "Bestellung_bezahlt" ist der Merker für neue Bestellungen.
 
  95 //  5.) Weiterfuehrender Link
 
  96 //      ! Wenn dieser (optionale) Link angegeben ist, so kann der Shopadmin hier weitere Infos zum Modul holen.
 
  97 //      --> Das Schema muss vor der URL angegeben werden (Schema = http:// oder https://, ...)
 
  98 $moduldef['weitere_infos_link'] = 'http://www.lx-office.org/';
 
 100 //  6.) Version dieses Moduls
 
 101 $moduldef['modulversion'] = '0.3';
 
 103 //  7.) Releasedatum dieser Modulversion
 
 104 //      --> Format: TT.MM.JJJJ
 
 105 $moduldef['releasedatum'] = '17.12.2004';
 
 107 //  8.) Informationen zu den Entwicklern
 
 108 //      ! Beispiel: José Fontanil <fontajos@phpeppershop.com>. Strings in <> werden als E-Mail angezeigt.
 
 109 $moduldef['entwickler_infos'] = 'Holger Lindemann, Lx-System';
 
 111 //  9.) Ist Submodul von
 
 112 //      ! Hier kann man den Modulnamen (nicht die Modulbezeichnung!) des Hauptmoduls angeben, falls dieses
 
 113 //        Modul hier ein Submodul des Hauptmoduls ist.
 
 114 //      --> Der Name eines externen PhPepperShop Moduls darf hoechstens 40 Zeichen lang sein.
 
 115 //      --> Der Name muss mindestens 3 Zeichen lang sein.
 
 116 //      --> Er darf nur aus alphanummerischen Zeichen und dem Underscore Zeichen (_) bestehen.
 
 117 //      --> Dieser Name ist gleichzeitig auch der Name des Verzeichnisses des HAUPTmoduls.
 
 118 $moduldef['submodule_of'] = '';
 
 121 //      ! Im Moment noch nicht benutzt - Spaeter wird hier ein MD5 Digest hinterlegbar sein, welcher dem
 
 122 //        Shopadministrator erlaubt die Integritaet eines Moduls zu ueberpruefen.
 
 123 //      --> MD5 Digest (32 Chars Laenge, Hexadezimales Alphabet)
 
 124 $moduldef['fingerprint'] = '32fedef6229faab095a47718bac5d666';
 
 126 // 11.) Unterstuetzte Locales (Sprachen und optional Laender) - dient (vorerst) nur zur Anzeige fuer den Shopadmin
 
 127 //      --> Format: ISO-639-1 fuer alleinstehende Sprachen (Bsp. de;en;fr;sp;...)
 
 128 //      --> Format: ISO-639-2 fuer Sprachen inkl. Laender (Bsp. de_CH;de_DE;en_GB;en_US)
 
 129 //      --> Wenn das Modul weder Sprach-, noch Laenderabhaengig ist kann all angegeben werden.
 
 130 //      --> Die einzelnen Angaben koennen Strichpunkt separiert eingegeben werden. ISO-639-1 und -2 koennen gemixt werden.
 
 131 $moduldef['locales'] = 'all';
 
 133 // 12.) Interfaces, bei welchen sich das Modul registrieren soll
 
 134 //      ! Dies ist ein etwas komplexerer Eingabetyp - es ist ein mehrdimensionaler Array - mehr nicht.
 
 135 //      ! Pro Interface, bei welchem sich das Modul registrieren will, sind vier Angaben noetig:
 
 136 //        (1) Interface_ID, (2) Datei, worin sich die auszufuehrende Funktion befindet,
 
 137 //        (3) Name der auszufuehrenden Funktion, (4) Filtertyp
 
 138 //      --> Format: array('i_id'=>'w','file'=>'x','func'=>'y','filter'=>'z')
 
 139 //          --> w = Interface_ID, Format: positive Integerzahl (max. Digits == 11)
 
 140 //          --> x = Dateiname, Format: Dateiname.Extension (kein Pfad)
 
 141 //          --> y = Funktionsname, Format: Name der Funktion ohne Klammern mit Argumenten
 
 142 //          --> z = Filtertyp, Format: one_way oder filter
 
 143 // Registrierung beim ersten Interface:
 
 144 $moduldef['interfaces'] = array();
 
 146 // 13.) Eigene Tabellen, welche angelegt werden sollen
 
 147 //      ! Hier werden die eigens fuer dieses Modul zu erstellenden Tabellen angegeben
 
 148 //      ! Wenn keine Tabellen erstellt werden muessen, einfach leerer Array definieren
 
 149 //      --> Achtung: Eine Tabelle muss mindestens EIN Attribut besitzen, sonst wird sie nicht angelegt.
 
 150 //      --> Format: array('table_name'=>'x','table_beschreibung'=>'y','attribute'=>z)
 
 151 //          --> x = Name der Tabelle: MySQL Restriktionen (max. 64 Zeichen, keine Sonderzeichen, ...)
 
 152 //          --> y = Beschreibung der Tabelle: Alphanummerische Zeichen, Kurzbeschrieb des Zwecks
 
 153 //          --> z = Die Attribute der Tabelle, Format:
 
 154 //                  array('name'=>a,'typ'=>b,'laenge'=>c,'zusatz'=>d,'null'=>e,'default'=>f,'extra'=>g,
 
 155 //                        'primary'=>h,'index'=>i,'unique'=>j,'volltext'=>k,'beschreibung'=>l)
 
 156 //                  --> a = Name des Attributs: (Alphanummerische Zeichen, siehe reservierte Woerter von MySQL)
 
 157 //                  --> b = Typ: Datentyp dieses Tabellenattributs (z.B. int, varchar, text, ...)
 
 158 //                  --> c = Laenge: Positive Integerzahl oder leer lassen (manchmal auch als maxlength interpretiert)
 
 159 //                  --> d = Zusatz: '' | 'BINARY' | 'UNSIGNED' | 'UNSIGNED ZEROFILL'
 
 160 //                  --> e = Null Setting: 'NULL | 'NOT NULL'
 
 161 //                  --> f = Default: Defaultwert bei Neuerstellung in einer Zeile (max. Zeichenlaenge = 255)
 
 162 //                  --> g = Extra: '' | 'auto_increment'
 
 163 //                  --> h = Primary: '0' = ist NICHT Primary Key | '1' = IST Primary Key
 
 164 //                  --> i = Index: '0' = Nein | '1' = Ja
 
 165 //                  --> j = Unique: '0' = Nein | '1' = Ja
 
 166 //                  --> k = Volltext Index: '0' = Nein | '1' = Ja (nicht bei allen Typen moeglich)
 
 167 //                  --> l = Beschreibung: Wird nur hier und im Modulprozess verwendet (max. Chars = 255)
 
 168 // Beschreibung der ersten eigenen Tabelle:
 
 169 $moduldef['eigene_tabellen'] = array();
 
 171 // 14.) Zu erweiternde, schon bestehende Tabellen
 
 172 //      ! Hier werden die Tabellen beschrieben, welche schon existieren und durch weitere Attribute
 
 173 //        erweitert werden sollen.
 
 174 //      ! Wenn keine Tabellen erweitert werden sollen, einfach leerer Array definieren
 
 175 //      --> Format: Dasselbe Format wie bei $moduldef['eigene_tabellen']. Die Beschreibung
 
 176 //                  einer schon bestehenden Tabelle wird ignoriert, der Name muss aber stimmen.
 
 177 $moduldef['erweiterte_tabellen'] = array();
 
 180 //      ! Wenn dieses Modul aus mehreren weiteren Modulen besteht, so koennen diese hier angegeben werden.
 
 181 //      ! Wenn keine Submodule existieren, einfach einen leeren String angeben.  (Strichpunkt getrennte Liste)
 
 182 //      --> Format: 'submodul_name_1;submodul_name2;...;submodul_namex'
 
 183 $moduldef['submodule'] = '';
 
 185 // 16.) Vorausgesetzte Module
 
 186 //      ! Hier werden Module angegeben, welche korrekt installiert vorhanden sein muessen, damit dieses
 
 187 //        Modul ueberhaupt erst installiert wird. (Strichpunkt getrennte Liste)
 
 188 //      ! Wenn keine solchen Module gibt, einfach einen leeren String uebergeben
 
 189 //      --> Format: 'required_modul_name_1;required_modul_name2;...;required_modul_namex'
 
 190 $moduldef['required_modules'] = '';
 
 193 //      ! Mit der Security_ID kann man dem Modul den Zugang zu verschiedenen Interfaces sperren.
 
 194 //        Auf diese Weise kann ein kompromittiertes Modul nur begrenzt Schaden anrichten.
 
 195 //      ! Die niedrigste Stufe der Security_ID ist = 1, die höchste Stufe = 32768. Je hoeher die
 
 196 //        angegebene Security_ID ist, desto höher ist auch die Zahl der erlaubten Interfaces
 
 197 //      ! Welches Interface, welche minimale Security_ID erfordert um benutzt werden zu koennen,
 
 198 //        ist in der Tabelle module_interfaces mit den Interfaceeintraegen ersichtlich.
 
 199 //      --> Format: 'required_modul_name_1;required_modul_name2;...;required_modul_namex'
 
 200 $moduldef['security_id'] = '1';
 
 203 //      ! Erweiterte Security wird es in der naechsten API-Version noch mit der valid_hosts Angabe geben.
 
 204 //        Die Datenbank ist dafuer schon vorbereitet. (all = Alle Hosts, im Moment die Standardeinstellung)
 
 205 //        Ausgewertet wird die Angabe aber noch nicht.
 
 206 //      --> Format: all = Alle hosts | localhost = nur dieser Rechner | mehrere Rechner via ; getrennt angeben
 
 207 $moduldef['valid_hosts'] = 'all';
 
 209 // 19.) Name des Administrationsmenus
 
 210 //      ! Im Administrationstool hat das Verwaltungsmenu dieses Moduls einen Namen, hier kann man
 
 211 //        einen Namen definieren, wenn man keinen angibt, wird einfach die Modulbezeichnung verwendet
 
 212 //      --> Format: Maximale Laenge 40 Zeichen, moeglichst keine Sonderzeichen verwenden
 
 213 $moduldef['admin_menu_name'] = 'ERP Export';
 
 215 // 20.) URL zur Datei, wo das Admin-Verwaltungsmenu liegt
 
 216 //      ! Diese URL ist entweder absolut oder (besser) relativ zum {shopdir}/shop/Admin/module/modul_name Verzeichnis
 
 217 //        Die hier angegebene Datei wird 'verlinkt' und mit dem in 'admin_menu_name' Namen versehen.
 
 218 //        Info: Achtung: Jeder Link in dieser Datei muss folgende GET-Parameter mitgeben:
 
 219 //        - darstellen=".$HTTP_GET_VARS['darstellen']
 
 220 //        - installed_selection=".$HTTP_GET_VARS['installed_selection']
 
 221 //        - backlink=".$HTTP_GET_VARS['backlink']
 
 223 //$moduldef['admin_menu_link'] = 'show_log_viewer.php';
 
 224 $moduldef['admin_menu_link'] = 'export_to_erp.php';
 
 226 // 21.) URL zum Icon des Adminmenus
 
 227 //      ! Diese URL ist relativ zum {shopdir}/shop/Admin/ Verzeichnis (sonst gibt es einen include-Fehler
 
 228 //        Die hier angegebene Datei wird 'verlinkt' und mit dem in 'admin_menu_name' Namen versehen.
 
 230 //      --> Format Icon: 48px x 48px, GIF oder PNG oder JPG.
 
 231 $moduldef['admin_menu_img'] = 'modul_admin_img.gif';
 
 233 // --------------------------------------------------------------------------------------
 
 234 // ***************************** ENDE DEFINITION DES MODULS *****************************
 
 235 // --------------------------------------------------------------------------------------
 
 238 // Bitte unterhalb dieser Zeile keine Aenderungen mehr vornehmen.
 
 241 // -----------------------------------------------------------------------
 
 242 // Damit jedes andere Modul ueberpruefen kann ob dieses hier schon "included" ist
 
 243 // wird folgende Vairable auf true gesetzt (Name = Ext. Modulname + Dateiname ohne .php)
 
 244 $module_name_inkl_prefix = $module_modulname.'_initialize_module';
 
 245 $$module_name_inkl_prefix = true;
 
 247 // 'Mitsenden' der hier verwendeten API-Version
 
 248 $moduldef['pps_module_api'] = $pps_module_api;
 
 250 // Moduldefinitionsarray loeschen und somit den Speicher wieder freigeben
 
 252 // End of file -----------------------------------------------------------