X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fextensions%2Fext-cache.php;h=ee324dcf1c81c2b85ba52ae715c474f8e4c831b7;hp=dc2bd99f7db2c7f21cc063cdc9e25414cf53048c;hb=8f37a3b2708cfc4b4ef266f4be813a84511daa8f;hpb=e1653405d28923c78b2e292125306ccf61138f24 diff --git a/inc/extensions/ext-cache.php b/inc/extensions/ext-cache.php index dc2bd99f7d..ee324dcf1c 100644 --- a/inc/extensions/ext-cache.php +++ b/inc/extensions/ext-cache.php @@ -1,7 +1,7 @@ cache_file("extensions", true)) $CACHE->cache_destroy(); - } - $UPDATE_NOTES = "Spalte "keep_active" ist hinzugefügt. Cache wurde reinitialisiert."; - break; +setThisExtensionVersion('0.2.5'); - case "0.0.5": // SQL queries for v0.0.5 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Registrierung der Cache-Erweiterung repariert"; - break; - - case "0.0.6": // SQL queries for v0.0.6 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Validierung der Cache-Datei admins.cache integriert."; - break; - - case "0.0.7": // SQL queries for v0.0.7 - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD db_hits bigint(20) not null default '0'"; - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD cache_hits bigint(20) not null default '0'"; - $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('stats', 'cache_stats', 'DB-Cache', 'Auf Cache und gesamte Datenbank registrierte Anfragen anzeigen.', 4)"; - - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Hits auf den Cache werden gezählt."; - break; +// Version history array (add more with , '0.0.1' and so on) +setExtensionVersionHistory(array('0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.0.5', '0.0.6', '0.0.7', '0.0.8', '0.0.9', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6', '0.1.7', '0.1.8', '0.1.9', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5')); - case "0.0.8": // SQL queries for v0.0.8 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Das Umschreiben der Cache-Daten hat eine Fehlermeldung Falsches Passwort! im Admin-Bereich verursacht."; - break; +// Keep this extension always active! +setExtensionAlwaysActive('Y'); - case "0.0.9": // SQL queries for v0.0.9 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Interne Datenfeld-Management korregiert und Cache-Statistiken korregiert."; +// Which load mode? +switch (getExtensionMode()) { + case 'register': // Do stuff when installation is running break; - case "0.1.0": // SQL queries for v0.1.0 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Problem mit fehlender admins-Erweiterung beseitigt."; + case 'remove': // Do stuff when removing extension + // SQL commands to run + addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN('cache_stats','config_config')"); + + // Unregister all filters + unregisterFilter(__FUNCTION__, __LINE__, 'extension_update', 'CACHE_DESTROY_ON_EXT_CHANGE', true, isExtensionDryRun()); + unregisterFilter(__FUNCTION__, __LINE__, 'post_extension_installed', 'CACHE_DESTROY_ON_EXT_CHANGE', true, isExtensionDryRun()); + unregisterFilter(__FUNCTION__, __LINE__, 'post_extension_run_sql', 'CACHE_DESTROY_ON_EXT_CHANGE', true, isExtensionDryRun()); + unregisterFilter(__FUNCTION__, __LINE__, 'post_admin_added', 'CACHE_DESTROY_ON_ADMIN_CHANGE', true, isExtensionDryRun()); + unregisterFilter(__FUNCTION__, __LINE__, 'post_form_submited', 'CACHE_DESTROY_ON_ADMIN_CHANGE', true, isExtensionDryRun()); + unregisterFilter(__FUNCTION__, __LINE__, 'post_form_deleted', 'CACHE_DESTROY_ON_ADMIN_CHANGE', true, isExtensionDryRun()); + unregisterFilter(__FUNCTION__, __LINE__, 'post_form_reset_pass', 'CACHE_DESTROY_ON_ADMIN_CHANGE', true, isExtensionDryRun()); + unregisterFilter(__FUNCTION__, __LINE__, 'extension_remove', 'CACHE_DESTROY_ALL', true, isExtensionDryRun()); + unregisterFilter(__FUNCTION__, __LINE__, 'shutdown', 'CACHE_DESTROY_FILTER', true, isExtensionDryRun()); break; - case "0.1.1": // SQL queries for v0.1.1 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Fehler Division durch 0 repariert in den DB-Cache Statistiken."; + case 'activate': // Do stuff when admin activates this extension + // SQL commands to run + addExtensionSql(''); break; - case "0.1.2": // SQL queries for v0.1.2 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Die Tabelen "._MYSQL_PREFIX."_config, "._MYSQL_PREFIX."_refsystem, "._MYSQL_PREFIX."_refdepths und "._MYSQL_PREFIX."_mod_reg werden nun auch ausgelagert."; + case 'deactivate': // Do stuff when admin deactivates this extension + // SQL commands to run + addExtensionSql(''); break; - case "0.1.3": // SQL queries for v0.1.3 - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD cache_admins enum('Y', 'N') not null default 'Y'"; - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD cache_acls enum('Y', 'N') not null default 'Y'"; - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD cache_exts enum('Y', 'N') not null default 'Y'"; - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD cache_config enum('Y', 'N') not null default 'Y'"; - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD cache_modreg enum('Y', 'N') not null default 'Y'"; - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD cache_refdepth enum('Y', 'N') not null default 'Y'"; - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD cache_refsys enum('Y', 'N') not null default 'Y'"; - - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Alle cache-baren Tabellen sind nun einzelnt ein- bzw. ausschaltbar. Falls die eine oder andere ausgelagerte Tabelle also Fehler verursachen sollte, so können Sie diese hier abschalten. Beachten Sie aber bitte, dass dann mehr Abfragen an die Datenbank gestellt wird und dies bedeutend mehr Zeit braucht, als nur die Daten aus einem Datenfeld zu laden, das sich im Speicher aufhält."; + case 'update': // Update an extension + // Which version? + switch (getCurrentExtensionVersion()) { + case '0.0.1': // SQL queries for v0.0.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Es wurde die Zeitmarke der Cache-Datei extensions.cache mit berücksichtigt. Dies hatte die Folge, dass wenn bei einem Gast die Datei aktualisiert wurde, nur aktivierte und nicht die deaktivierten mit geladen wurden. Folglich fiehlen einfach ein paar Erweiterungen aus."); + break; + + case '0.0.2': // SQL queries for v0.0.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); + break; + + case '0.0.3': // SQL queries for v0.0.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Cache-Update repariert."); + break; + + case '0.0.4': // SQL queries for v0.0.4 + // Is the cache extension itself there? + if (isExtensionActive('cache')) { + // Check for cache when extension is already installed + if ($GLOBALS['cache_instance']->loadCacheFile('extension')) $GLOBALS['cache_instance']->removeCacheFile(); + } // END - if + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Spalte "keep_active" ist hinzugefügt. Cache wurde reinitialisiert."); + break; + + case '0.0.5': // SQL queries for v0.0.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Registrierung der Cache-Erweiterung repariert"); + break; + + case '0.0.6': // SQL queries for v0.0.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Validierung der Cache-Datei admins.cache integriert."); + break; + + case '0.0.7': // SQL queries for v0.0.7 + addConfigAddSql('db_hits', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); + addConfigAddSql('cache_hits', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); + addAdminMenuSql('stats','cache_stats','DB-Cache','Auf Cache und gesamte Datenbank registrierte Anfragen anzeigen.', 4); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Hits auf den Cache werden gezählt."); + break; + + case '0.0.8': // SQL queries for v0.0.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Das Umschreiben der Cache-Daten hat eine Fehlermeldung Falsches Passwort! im Admin-Bereich verursacht."); + break; + + case '0.0.9': // SQL queries for v0.0.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Interne Datenfeld-Management korregiert und Cache-Statistiken korregiert."); + break; + + case '0.1.0': // SQL queries for v0.2.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Problem mit fehlender admins-Erweiterung beseitigt."); + break; + + case '0.1.1': // SQL queries for v0.1.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler Division durch 0 repariert in den DB-Cache Statistiken."); + break; + + case '0.1.2': // SQL queries for v0.1.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Die Tabelen {?_MYSQL_PREFIX?}_config, {?_MYSQL_PREFIX?}_refsystem, {?_MYSQL_PREFIX?}_refdepths und {?_MYSQL_PREFIX?}_mod_reg werden nun auch ausgelagert."); + break; + + case '0.1.3': // SQL queries for v0.1.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Ungültiges Update."); + break; + + case '0.1.4': // SQL queries for v0.1.4 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler Division durch 0 repariert in inc/load_cache.php."); + break; + + case '0.1.5': // SQL queries for v0.1.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Weitere Fehler im System beseitigt."); + break; + + case '0.1.6': // SQL queries for v0.1.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Probleme während des Installationsvorganges beseitigt."); + break; + + case '0.1.7': // SQL queries for v0.1.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("CSS-Klassenname gefixt in Templates."); + break; + + case '0.1.8': // SQL queries for v0.1.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Daten von installierten Themes werden nun gecacht."); + break; + + case '0.1.9': // SQL queries for v0.1.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Update nicht mehr gültig."); + break; + + case '0.2.0': // SQL queries for v0.2.0 + // This update depends on sql_patches + addExtensionDependency('sql_patches'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Die Erweiterung hängt nun von der sql_patches ab."); + break; + + case '0.2.1': // SQL queries for v0.2.1 + // Register the new filter + registerFilter('extension_update', 'CACHE_DESTROY_ON_EXT_CHANGE', false, true, isExtensionDryRun()); + registerFilter('post_extension_installed', 'CACHE_DESTROY_ON_EXT_CHANGE', false, true, isExtensionDryRun()); + registerFilter('post_extension_run_sql', 'CACHE_DESTROY_ON_EXT_CHANGE', false, true, isExtensionDryRun()); + registerFilter('post_admin_added', 'CACHE_DESTROY_ON_ADMIN_CHANGE', false, true, isExtensionDryRun()); + registerFilter('post_form_submited', 'CACHE_DESTROY_ON_ADMIN_CHANGE', false, true, isExtensionDryRun()); + registerFilter('post_form_deleted', 'CACHE_DESTROY_ON_ADMIN_CHANGE', false, true, isExtensionDryRun()); + registerFilter('post_form_reset_pass', 'CACHE_DESTROY_ON_ADMIN_CHANGE', false, true, isExtensionDryRun()); + registerFilter('extension_remove', 'CACHE_DESTROY_ALL', false, true, isExtensionDryRun()); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Filter für Erweiterungsmanagement hinzugefügt."); + break; + + case '0.2.2': // SQL queries for v0.2.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Update nicht mehr gültig."); + break; + + case '0.2.3': // SQL queries for v0.2.3 + addConfigAddSql('cache_filter', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Cachen von Filtern hinzugefügt."); + + // Register a new filter + registerFilter('shutdown', 'CACHE_DESTROY_FILTER', false, true, isExtensionDryRun()); + break; + + case '0.2.4': // SQL queries for v0.2.4 + // SQL commands to run + addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='config_cache' LIMIT 1"); + + // Remove config entries + addConfigDropSql('cache_themes'); + addConfigDropSql('cache_admins'); + addConfigDropSql('cache_acls'); + addConfigDropSql('cache_exts'); + addConfigDropSql('cache_config'); + addConfigDropSql('cache_modreg'); + addConfigDropSql('cache_refdepth'); + addConfigDropSql('cache_refsys'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Der Cache hat keine Konfiguration mehr."); + break; + + case '0.2.5': // SQL queries for v0.2.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Daten von gefundenen Sprachdateien werden zu den Erweiterungen gecacht."); + break; + } break; - case "0.1.4": // SQL queries for v0.1.4 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Fehler Division durch 0 repariert in inc/load_cache.php."; + case 'modify': // When the extension got modified break; - case "0.1.5": // SQL queries for v0.1.5 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Weitere Fehler im System beseitigt."; + case 'test': // For testing purposes break; - case "0.1.6": // SQL queries for v0.1.6 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Probleme w&auuml;hrend des Installationsvorganges beseitigt."; + case 'init': // Do stuff when extension is initialized break; - case "0.1.7": // SQL queries for v0.1.7 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "CSS-Klassenname gefixt in Templates."; + default: // Unknown extension mode + logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName())); break; - } - break; - -default: // Do stuff when extension is loaded - $DUMMY = LOAD_CONFIG("0"); - - // Load config and destroy dummy array - $CONFIG['cache_update'] = $DUMMY['cache_update']; // Last time the cache files are been re-created - $CONFIG['cache_path'] = $DUMMY['cache_path']; // Relative path for the cache files to 'inc/' - $CONFIG['cache_tested'] = $DUMMY['cache_tested']; // Says if cache path is tested or not - $CONFIG['db_hits'] = $DUMMY['db_hits']; // Counted hits on the database (all!) - $CONFIG['cache_hits'] = $DUMMY['cache_hits']; // Counted hits on the cache arrays in memory - $CONFIG['cache_admins'] = $DUMMY['cache_admins']; // Is the table '_admins' cacheable? - $CONFIG['cache_acls'] = $DUMMY['cache_acls']; // Is the table '_admins_acls' cacheable? - $CONFIG['cache_exts'] = $DUMMY['cache_exts']; // Is the table '_extensions' cacheable? - $CONFIG['cache_config'] = $DUMMY['cache_config']; // Is the table '_config' cacheable? - $CONFIG['cache_modreg'] = $DUMMY['cache_modreg']; // Is the table '_mod_reg' cacheable? - $CONFIG['cache_refdepth'] = $DUMMY['cache_refdepth']; // Is the table '_refdepths' cacheable? - $CONFIG['cache_refsys'] = $DUMMY['cache_refsys']; // Is the table '_refsystem' cacheable? - unset($DUMMY); - - // Create instance on class - if ($CACHE_FILE != "init") - { - // Initialize cache system only when it's needed - $CACHE = new mxchange_cache($CONFIG['cache_update'], PATH."inc/".$CONFIG['cache_path'], $CONFIG['cache_tested']); - if ($CACHE->ret != "done") - { - // Failed to initialize cache sustem - ADD_FATAL(__FILE__."(".__LINE__."): ".CACHE_CANNOT_INITIALIZE); - } - } - break; } -// Language file prefix -$EXT_LANG_PREFIX = "cache"; - -// Extension is always active? -$EXT_ALWAYS_ACTIVE = 'N'; -// +// [EOF] ?>