[COMMENT] /* +-------------------------------------------------------------------------- | Invision Board v1.3 | ======================================== | > Mod_Installer | > Module written by Peter(Pit) | > Peter member at ibforen.de, Pit member at invisionize.com | > email: Peter@ibforen.de | | > Mod_Installer Version Number: 1.3.2 (2007-01-08) | > 2003 - 2007 by Peter | | > This is the CodeChange.php for Mod The ModInstaller by Peter +-------------------------------------------------------------------------- */ [COMMENT_END] [INTERFACE] 'title' => 'The ModInstaller', 'sub_title' => 'Automatische Installation von standardisierten Mods für das ipb 1.3. Dieser Mod muss nicht manuell installiert werden. Verwende stattdessen das Script Mod_Installer.php im Root-Verzeichnis deines Boards.', 'category' => 'ACP Mod', 'compatible' => 'Invision Power Board 1.3', 'version' => '1.3.2', 'author' => 'Peter', 'email' => 'Peter@ibforen.de', 'mod_token' => 'mod_installer', [INTERFACE_END] [HISTORY] [b]Version 1.3.2 2007-01-08[/b] [LIST][*]Bug beim Ausführen der sql-Abschnitte Update: [LIST][*]mod_installer_func.php austauschen [*]Wegen Versionsnummer mit ModInstaller installieren [/LIST] [/LIST] [b]Version 1.3.1 2006-12-09[/b] [LIST][*]Feedback nach Timeout bei großen Installationen Update: [LIST][*]Neue Datei standby.gif in html/sys-img (kann durch eigene Grafik ausgetauscht werden) [*]Sprachdateien austauschen [*]mod_installer_func.php austauschen [*]Wegen Versionsnummer mit ModInstaller installieren [/LIST] [/LIST] [b]Version 1.3 2006-12-09[/b] [LIST][*]Fix für Timeout-Problem Die Überschreitung der maximalen Ausführungszeit für Scripte (max_execution_time) wird erkannt und Mod können zuverlässig installiert werden. Hierzu werden die Aktionen geloggt und nach erneutem Aufruf wird die Installation nach der letzten Aktion fortgesetzt. [/LIST] [HISTORY_END] [SQL] [QUERY] CREATE TABLE IF NOT EXISTS ibf_mods ( ID int(10) NOT NULL auto_increment, title varchar(255) default '', sub_title text, category VARCHAR(30) default 'Minor Mod', compatible VARCHAR(30) default 'ipb 1.3', author varchar(255) default '', email varchar(255) default '', version varchar(10) default '', mod_token varchar(32) default '', mod_dir varchar(255) default '', install_date varchar(10) default '', howto varchar(255) default '', codechange longtext, PRIMARY KEY (ID) ) [QUERY] ALTER TABLE ibf_mods CHANGE codechange codechange longtext [QUERY] ALTER TABLE ibf_mods ADD category VARCHAR(30) default 'Minor Mod' AFTER sub_title [QUERY] ALTER TABLE ibf_mods ADD compatible VARCHAR(30) default 'ipb 1.3' AFTER category [QUERY] ALTER TABLE ibf_mods ADD codechange text default '' AFTER howto [QUERY] CREATE TABLE IF NOT EXISTS ibf_mod_changes ( ID int(10) NOT NULL auto_increment, mid int(10) default '0', mod_name varchar(255) default '', file_name varchar(255) default '', func_name text, PRIMARY KEY (ID) ) [QUERY] ALTER TABLE ibf_mod_changes CHANGE func_name func_name text [QUERY] ALTER TABLE ibf_mod_changes ADD mod_name varchar(255) default NULL AFTER mid [QUERY] CREATE TABLE IF NOT EXISTS ibf_mod_collisions ( ID int(10) NOT NULL auto_increment, query_id int(10) default '0', mid int(10) default '0', mod_name varchar(255) default '', file_name varchar(255) default '', func_name text, running_time int(10) default '0', PRIMARY KEY (ID) ) [QUERY] ALTER TABLE ibf_mod_collisions CHANGE func_name func_name text [QUERY] DELETE FROM ibf_mod_changes WHERE mod_name='The ModInstaller' [QUERY] DELETE FROM ibf_mods WHERE title='The ModInstaller' [SQL_END] [CODE] [MOD_TOKEN] mod_installer [FNAME] admin.php [STEP] [SEARCH] // Check to make sure the array key exits.. if (! isset($choice[$IN['act']]) ) [INSERT] //-- mod_installer begin if ($MEMBER['mgroup'] != $INFO['admin_group']) { global $CATS; unset($CATS['installer']); } if ($IN['act'] == "install") { if (file_exists(ROOT_PATH."sources/mods/installer/mod_installer_func.php")) { require ROOT_PATH."sources/lib/post_parser.php"; require ROOT_PATH."sources/mods/installer/mod_installer_func.php"; } else { die("Could not call required function from file 'sources/mods/installer/mod_installer_func.php'. Does it exist?"); } } //-- mod_installer end [MODE] insert_above [STEP] [SEARCH] $IN = $std->parse_incoming(); [INSERT] //-- mod_installer begin $std->allow_unicode = 0; //-- mod_installer end [MODE] insert_above [FNAME_END] [MOD_TOKEN] mod_installer [FNAME] sources/Admin/admin_pages.php [STEP] [SEARCH] ?> [INSERT] //-- mod_installer begin $PAGES['installer'] = array( 1 => array( 'View Installed Mods', 'act=install' ), 2 => array( 'Install A Mod' , 'act=install&code=install' ), 3 => array( 'Collision Test' , 'act=install&code=collision' ), ); $CATS['installer'] = "MOD Installation"; $DESC['installer'] = "Autoinstallation Of Mods Made By The Modders At ibforen.de And invisionize.com"; //-- mod_installer end [MODE] insert_above [FNAME_END] [CODE_END] [COPY] Das Archive ist bereits vorstrukturiert. Kopiere die entpackten Dateien und Verzeichnisse in das Rootverzeichnis deines Boards. [LIST][*]Enthält das lang-Verzeichnis dieses Archives mehr als als die englische Sprache in lang/en, dann muss die mod_installer_lang.php der anderen Sprachen in die betreffenden Verzeichnisse deines Boards kopiert werden.. Beispiel: Die deutsche Sprachdatei befindet sich in lang/de. Wenn deine deutsche Sprachdateien in lang/2 liegen, dann muss lang/de nach lang/2 kopiert werden. [*]In ähnlicher Weise kopiere die Dateien im Ordner Skin\s1 in die Ordner deiner Skins. Vergiss nicht, die Templates in der Datenbank mit den PHP-Dateien zu resynchronisieren über ACP [arrow] Skins & Templates [arrow] Manage html templates [/LIST] [COPY_END] [CUSTOMIZE] Dieser Mod muss nicht manuell installiert werden. Verwende stattdessen das Script Mod_Installer.php im Root-Verzeichnis deines Boards. [CUSTOMIZE_END] [COMMENT_MOD] [size=5]Dies ist die Edition für Entwickler[/size] [List][*]Bei erstmaliger Verwendung von The ModInstallers installiere diesen Mod auf ein frisches Board im Originalzustand. [*]Wenn du The ModInstaller vertrauen willst und ein verlässliches Board erhalten willst, dann ändere nicht mehr von Hand irgendwelche Dateien. [*]Falls du doch einmal gezwungen sein solltest, das Board manuell zu modifizieren, achte auf Kollisionen mit anderen Mods. Dazu kann die Funktion Collision Test verwendet werden. Sie erzeugt umfangreiche Ergebnisse.. Ich kann jedoch manuelle Modifikationen nicht empfehlen. [*]In den Dateien CodeChange.php der Mods, die sich mit The ModInstaller installieren lassen , sind detaillierte ANgaben zu finden, welche Textstellen in den Codedateien zum Einfügen gesucht werden.. [*]Nach der automatischen Installation eines Mods lies die Html-Dokumentation, die jedem Mod beigefügt ist. Beachte eventuell durchzuführende Schritte, die den Mod oft erst lauffähig machen. Beispielsweise müssen im ACP oft erst einige Einstellungen vorgenommen werden. [/LIST] [COMMENT_MOD_END] [HISTORY_OLD] [b]Version 1.2g 2006-11-13[/b] [LIST][*]Bugfixes [/LIST] [b]Version 1.2f 2006-01-29[/b] [LIST][*]Bugfixes [*]Korrekte Anzeige von Datum und Version der letzten Installation [/LIST] [b]Version 1.2e 2005-09-04[/b] [LIST][*]Bugfixes [/LIST] [b]Version 1.2d 2005-03-04[/b] [LIST][*]Bugfixes [*]Kompatibel mit dem Zend Accelerator [/LIST] [b]Version 1.2c 2004-01-07[/b] [LIST][*]Bugfixes [/LIST] [b]Version 1.2 2003-11-04[/b] [LIST][*]Option hinzugefügt zur Entfernung der Änderungen an der Datenbank [*]Neue Modi hinzugefügt: [list][*]Präfix reg_ bewirkt eine Suche mit Hilfe eines regulären Ausdrucks reg_insert_below_eol, reg_insert_above_bol, reg_insert_below, reg_insert_above, reg_exclude [/list] [/LIST] [b]Version 1.1 2003-10-08[/b] [LIST][*]Quelldateien mit hardcoded Texten, wie z.B. im ACP, werden nun auch korrekt behandelt, auch wenn die Texte sprachabhängig sind. [*]Neue Ersetungsmodi hinzugefügt: [list][*]insert_above_bol : Fügt den neuen Code vor dem Beginn der ersten Zeile der Suchstelle ein [*]insert_below_eol : Fügt den neuen Code nach dem Ende der letzten Zeile der Suchstelle ein [/list] [/LIST] [b]Version 1.0 2003-07-03[/b] [LIST][*]Installation von Mods [*]Dokumentationsverwaltung und Entfernen von Mods [*]Test eines Mods auf Kollision mit anderen Mods [/LIST] [HISTORY_OLD_END]