+ case '0.6.5': // SQL queries for v0.6.5
+ addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `css_php` `css_php` ENUM('DIRECT','FILE','INLINE') NOT NULL DEFAULT 'FILE'");
+
+ // Update notes (these will be set as task text!)
+ setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
+ break;
+
+ case '0.6.6': // SQL queries for v0.6.6
+ addAdminMenuSql('setup','config_secure','Sicherheitseinstellungen','Stellen Sie ein, wie lange das Passwort eines Mitgliedes mindestens sein muss uvm.',9);
+ addAdminMenuSql('setup','config_points','{OPEN_CONFIG}POINTS{CLOSE_CONFIG}','Stellen Sie hier die Willkommensgutschrift, Referal-Gutschrift (einmalige) usw. ein.',10);
+ addAdminMenuSql('email','email_archiv','E-Mail Archiv','Sehen Sie sich hier bereits gesendete Mails an.',6);
+
+ // Update notes (these will be set as task text!)
+ setExtensionUpdateNotes("Die Sicherheitseinstellungen, {?POINTS?}-Einstellungen und Email-Archiv funktionieren nur, wenn diese Erweiterung installiert ist.");
+ break;
+
+ case '0.6.7': // SQL queries for v0.6.7
+ addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `index_delay` `index_delay` TINYINT(3) NOT NULL DEFAULT 0");
+ // Update notes (these will be set as task text!)
+ setExtensionUpdateNotes("Die Weiterleitungseinstellung muss auch Werte kleiner Null akzeptieren.");
+ break;
+
+ case '0.6.8': // SQL queries for v0.6.8
+ addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu`
+CHANGE `action` `action` VARCHAR(50) NOT NULL,
+CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
+ addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu`
+CHANGE `action` `action` VARCHAR(50) NOT NULL,
+CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
+ addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu`
+CHANGE `action` `action` VARCHAR(50) NOT NULL,
+CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
+
+ // Update notes (these will be set as task text!)
+ setExtensionUpdateNotes("Spalten verkürzt, damit die Schlüssel passen.");
+ break;
+
+ case '0.6.9': // SQL queries for 0.6.9
+ // Register filter
+ registerFilter('member_login_check', 'RESET_USER_LOGIN_FAILURE', false, true, isExtensionDryRun());
+
+ // Update notes (these will be set as task text!)
+ setExtensionUpdateNotes("Filter zum Zurücksetzens des fehlgeschlagenen Mitgliederlogins hinzugefügt (internes TODO).");
+ break;
+
+ case '0.7.0': // SQL queries for 0.7.0
+ // Table definition
+ addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_dns_cache`');
+ addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_dns_cache` (
+`hostname` VARCHAR(255) NOT NULL,
+`ip` VARCHAR(15) NOT NULL,
+`added` DATETIME NOT NULL,
+PRIMARY KEY (`hostname`),
+INDEX (`ip`)
+) ENGINE={?_TABLE_TYPE?}");
+
+ // Configuration
+ addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `dns_cache_timeout` BIGINT(20) NOT NULL DEFAULT ' . (60*60*24));
+
+ // Register filter
+ registerFilter('reset', 'CLEANUP_DNS_CACHE', false, true, isExtensionDryRun());
+
+ // Update notes (these will be set as task text!)
+ setExtensionUpdateNotes("IP-Resolver-Klasse hinzugefügt, um bei der Erweiterung ext-network DNS-Anfragen einzusparen.");
+ break;
+
+ case '0.7.1': // SQL queries for v0.7.1
+ // This update just depends on ext-timezone to make integration of an essential extension much easier
+ addExtensionDependency('timezone');
+
+ // Update notes (these will be set as task text!)
+ setExtensionUpdateNotes("Zeitzone ist nun mit ext-timezone konfigurierbar.");
+ break;
+
+ case '0.7.2': // SQL queries for v0.7.2
+ addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_task_system` SET `task_type`='MEMBER_SUPPORT' WHERE `task_type`='SUPPORT_MEMBER'");
+
+ // Update notes (these will be set as task text!)
+ setExtensionUpdateNotes("Daten an Namenskonvention angepasst.");
+ break;
+ } // END - switch
+ break;
+
+ case 'modify': // When the extension got modified
+ break;
+
+ case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
+ break;
+
+ case 'init': // Do stuff when extension is initialized
+ // Init key
+ setConfigEntry('secret_key', '');
+
+ // Read key from secret file
+ if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && ((getFileHash() == '') || (getMasterSalt() == '') || (getPassScramble() == ''))) {
+ // Maybe need setup of secret key!
+ loadIncludeOnce('inc/gen_sql_patches.php');
+ } // END - if
+
+ // Test again
+ if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && (getFileHash() != '') && (getMasterSalt() != '') && (getPassScramble() != '')) {
+ // File hash fas generated so we can also file the secret file... hopefully.
+ $hashFile = sprintf("%sinc/cache/.%s.cache", getPath(), getFileHash());
+ if (isFileReadable($hashFile)) {
+ // Read file
+ setConfigEntry('secret_key', readFromFile($hashFile));
+ } else {
+ // Remove it from database
+ updateConfiguration('file_hash', '');
+
+ // Cannot read secret file!
+ debug_report_bug(__FILE__, __LINE__, 'Cannot read secret file! Please try to reload.');
+ }
+ } // END - if
+
+ // Transfer words/numbers to constants if config entry is found
+ if (isExtensionInstalledAndNewer('sql_patches', '0.0.3')) {
+ setConfigEntry('POINTS', getConfig('points_word'));
+ } // END - if
+ break;
+
+ default: // Unknown extension mode
+ logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));
+ break;
+} // END - switch