}
// Version number
-$EXT_VERSION = "0.4.4";
+$EXT_VERSION = "0.4.7";
// Auto-set extension version
if (!isset($EXT_VER)) $EXT_VER = $EXT_VERSION;
// Version history array (add more with , "0.1" and so on)
-$EXT_VER_HISTORY = array("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", "0.2.6", "0.2.7", "0.2.8", "0.2.9", "0.3.0", "0.3.1", "0.3.2", "0.3.3", "0.3.4", "0.3.5", "0.3.6", "0.3.7", "0.3.8", "0.3.9", "0.4.0", "0.4.1", "0.4.2", "0.4.3", "0.4.4");
+$EXT_VER_HISTORY = array("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", "0.2.6", "0.2.7", "0.2.8", "0.2.9", "0.3.0", "0.3.1", "0.3.2", "0.3.3", "0.3.4", "0.3.5", "0.3.6", "0.3.7", "0.3.8", "0.3.9", "0.4.0", "0.4.1", "0.4.2", "0.4.3", "0.4.4", "0.4.5", "0.4.6", "0.4.7");
switch ($EXT_LOAD_MODE)
{
$SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_admin_menu_las";
$SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_admin_menu_las_data";
$SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_admin_menu_stats";
+
+ // Drop indexes
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_extensions DROP UNIQUE KEY (ext_name)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_themes DROP UNIQUE KEY (theme_path)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_themes DROP INDEX (theme_active)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_admins DROP UNIQUE KEY (login)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data DROP INDEX (status)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_refbanner DROP INDEX (visible)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_refdepths DROP UNIQUE KEY (level)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_refsystem DROP INDEX (level)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_pool DROP INDEX (data_type)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_mod_reg DROP UNIQUE KEY (module)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_admin_menu DROP INDEX (action)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_admin_menu DROP INDEX (what)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_task_system DROP INDEX (task_type)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_task_system DROP INDEX (status)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_task_system DROP INDEX (task_created)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_task_system DROP FULLTEXT (subject)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_task_system DROP INDEX (subject)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_extensions DROP INDEX (ext_active)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data DROP INDEX (status)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data DROP FULLTEXT (family)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data DROP INDEX (max_mails)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data DROP INDEX (password)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_guest_menu DROP INDEX (action)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_guest_menu DROP INDEX (what)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_guest_menu DROP INDEX (sort)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_guest_menu DROP INDEX (visible)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_guest_menu DROP INDEX (locked)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_member_menu DROP INDEX (what)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_member_menu DROP INDEX (sort)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_member_menu DROP INDEX (visible)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_member_menu DROP INDEX (locked)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_cats DROP INDEX (visible)";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_cats DROP INDEX (sort)";
break;
case "activate": // Do stuff when admin activates this extension
break;
case "0.0.2": // SQL queries for v0.0.2
- $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config CHANGE auto_purge auto_purge BIGINT(20) NOT NULL DEFAULT '1209600'";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config CHANGE auto_purge auto_purge BIGINT(20) UNSIGNED NOT NULL DEFAULT '1209600'";
// Update notes (these will be set as task text!)
$UPDATE_NOTES = "In der Tabelle <STRONG>mxchange_config</STRONG> musste die Spalte <STRONG>auto_purge</STRONG> (autom. Löschen von Bestätigungsmails angepasst werden (war auf dem Testsystem auf tiny(4) gesetzt.)";
break;
case "0.0.4": // SQL queries for v0.0.4
- $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD mails_page BIGINT(20) NOT NULL DEFAULT '10'";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD mails_page BIGINT(20) UNSIGNED NOT NULL DEFAULT '10'";
// Update notes (these will be set as task text!)
$UPDATE_NOTES = "Anzahl Mails pro Seite in <STRONG>EMail-Details ansehen</STRONG> und <STRONG>EMail-Archiv</STRONG> hinzugefügt.";
case "0.1.1": // SQL queries for v0.1.1
$SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET title='Home-/Eingangsseite', descr='Stellen Sie hier ein, welcher Menüpunkt (what-welcome ist Standart) als Einstiegspunkt in das Menüsystem genutzt werden soll und wie die automatische Weiterleitung in der Eingangsseite funktionieren soll.' WHERE what='config_home' LIMIT 1";
- $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD index_delay TINYINT(3) NOT NULL DEFAULT '-1'";
- $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD index_cookie BIGINT(20) NOT NULL DEFAULT '31536000'";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD index_delay TINYINT(3) UNSIGNED NOT NULL DEFAULT '-1'";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD index_cookie BIGINT(20) UNSIGNED NOT NULL DEFAULT '31536000'";
// Update notes (these will be set as task text!)
$UPDATE_NOTES = "Sie können nun <A href=\"".URL."/modules.php?module=admin&what=config_home\">hier</A> die Verzögerungszeit in der <A href=\"".URL."/index.php\">Eingangsseite</A> einstellen.";
case "0.1.2": // SQL queries for v0.1.2
$SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('setup', 'config_refid', 'Standart-Ref-ID', 'Stellen Sie hier die User-ID ein, die genommen werden soll, wenn der Gast n icht per Referral-Link Ihren Mailtausch aufgerufen hat.', 7)";
- $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD def_refid BIGINT(20) NOT NULL DEFAULT '0'";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD def_refid BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'";
// Update notes (these will be set as task text!)
$UPDATE_NOTES = "Standart Referral-ID kann per Admin-Bereich eingestellt werden (war vorher nur in modules.php und index.php direkt eingebbar.)";
$SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('themes', NULL, 'Design-Auswahl', 3, 'Y', 'N')";
$SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_themes";
$SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_themes (
-id BIGINT(20) NOT NULL AUTO_INCREMENT,
+id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
theme_path VARCHAR(255) NOT NULL DEFAULT '',
theme_active ENUM('Y', 'N') NOT NULL DEFAULT 'N',
theme_ver VARCHAR(255) NOT NULL DEFAULT '0.0',
case "0.1.8": // SQL queries for v0.1.8
// Update notes (these will be set as task text!)
- $UPDATE_NOTES = "mad_counter und last_mad werden nun aus der Datenbank geladen";
+ $UPDATE_NOTES = "mad_count und last_mad werden nun aus der Datenbank geladen";
break;
case "0.1.9": // SQL queries for v0.1.9
case "0.2.4": // SQL queries for v0.2.4
$auto_type = "png"; // PNG image is the default
- if ((file_exists(PATH."theme/".GET_CURR_THEME()."/images/code_bg.jpg")) && function_exists('imagecreatefromjpeg'))
- {
+ if ((FILE_READABLE(PATH."theme/".GET_CURR_THEME()."/images/code_bg.jpg")) && function_exists('imagecreatefromjpeg')) {
// Switch to JPEG format
$auto_type = "jpg";
}
break;
case "0.2.5": // SQL queries for v0.2.5
- $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data CHANGE receive_mails receive_mails BIGINT(20) NOT NULL DEFAULT '0'";
- $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data CHANGE max_mails max_mails BIGINT(20) NOT NULL DEFAULT '0'";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data CHANGE receive_mails receive_mails BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data CHANGE max_mails max_mails BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'";
// Update notes (these will be set as task text!)
$UPDATE_NOTES = "Spalten <U>max_mails</U> und <U>receive_mails</U> auf BIGINT(20) gesetzt.";
case "0.2.7": // SQL queries for v0.2.7
$SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort) VALUES ('main', 'themes', 'Designs', 6)";
$SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD curr_theme VARCHAR(255) NOT NULL DEFAULT 'default'";
- $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD stats_limit BIGINT(20) NOT NULL DEFAULT '10'";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD stats_limit BIGINT(20) UNSIGNED NOT NULL DEFAULT '10'";
$SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET what='config_stats' WHERE what='stats' LIMIT 1";
// Update notes (these will be set as task text!)
// Connection table between the menu system and the "logical area" system
$SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_admin_menu_las";
$SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_admin_menu_las (
-id BIGINT(20) NOT NULL AUTO_INCREMENT,
+id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
la_id VARCHAR(255) NOT NULL DEFAULT '',
la_action VARCHAR(255) NOT NULL DEFAULT '',
la_what VARCHAR(255) NOT NULL DEFAULT '',
// All "logical areas" together
$SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_admin_menu_las_data";
$SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_admin_menu_las_data (
-id BIGINT(20) NOT NULL AUTO_INCREMENT,
+id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
la_id VARCHAR(255) NOT NULL DEFAULT '',
la_title VARCHAR(255) NOT NULL DEFAULT '',
-la_posx BIGINT(20) NOT NULL DEFAULT '0',
-la_posy BIGINT(20) NOT NULL DEFAULT '0',
+la_posx BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
+la_posy BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
UNIQUE KEY (la_id),
INDEX (la_posx),
INDEX (la_posy),
// The statistics table
$SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_admin_menu_stats";
$SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_admin_menu_stats (
-id BIGINT(20) NOT NULL AUTO_INCREMENT,
-aid BIGINT(20) NOT NULL DEFAULT '0',
+id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
+aid BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
type ENUM('la', 'action', 'what') NOT NULL DEFAULT 'what',
-clicks BIGINT(20) NOT NULL DEFAULT '0',
+clicks BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
INDEX (aid),
PRIMARY KEY (id)
) TYPE=MyISAM";
break;
case "0.3.6": // SQL queries for v0.3.6
- $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD salt_length TINYINT(3) NOT NULL DEFAULT '9'";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD salt_length TINYINT(3) UNSIGNED NOT NULL DEFAULT '9'";
$SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD pass_scramble VARCHAR(255) NOT NULL DEFAULT ''";
$SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data MODIFY password VARCHAR(255) NOT NULL DEFAULT ''";
$SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data MODIFY user_hash VARCHAR(255) NOT NULL DEFAULT ''";
$SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_admins MODIFY password VARCHAR(255) NOT NULL DEFAULT ''";
- $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD rand_no BIGINT(20) NOT NULL DEFAULT '0'";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD rand_no BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'";
$SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD file_hash VARCHAR(255) NOT NULL DEFAULT ''";
$SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD master_salt VARCHAR(255) NOT NULL DEFAULT ''";
$SQLs[] = "UPDATE "._MYSQL_PREFIX."_config SET rand_no=(ROUND(RAND() * 99999) + 100000) WHERE config=0 LIMIT 1";
// Update notes (these will be set as task text!)
$UPDATE_NOTES = "Schlüssel in Admin-, Gast- und Mitgliedsmenü verbessert.";
break;
+
+ case "0.4.5": // SQL queries for v0.4.5
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD last_month CHAR(2) NOT NULL DEFAULT '00'";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD last_week CHAR(2) NOT NULL DEFAULT '00'";
+
+ // Update notes (these will be set as task text!)
+ $UPDATE_NOTES = "Täglichen/wöchentlichen/monatlichen Reset verbessert.";
+ break;
+
+ case "0.4.6": // SQL queries for v0.4.6
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD gender ENUM ('M','F') NOT NULL DEFAULT 'M'";
+ $SQLs[] = "UPDATE "._MYSQL_PREFIX."_user_data SET gender=sex WHERE sex != 'M'";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data DROP sex";
+
+ // Update notes (these will be set as task text!)
+ $UPDATE_NOTES = "Offensives Wort "Sex" gegen "Gender" ausgetauscht.";
+ break;
+
+ case "0.4.7": // SQL queries for v0.4.7
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD login_failtures BIGINT(20) UNSIGNED NOT NULL DEFAULT 0";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD last_failture TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00'";
+
+ // Update notes (these will be set as task text!)
+ $UPDATE_NOTES = "Fehlgeschlagene Login-Versuche werden nun mitgezählt und der letzte vermerkt.";
+ break;
}
break;
default: // Do stuff when extension is loaded
- $dummy = LOAD_CONFIG();
-
// When the sql_patches is not installed we cannot load it's configuration... *sigh*
if (GET_EXT_VERSION("sql_patches") != '') {
$_CONFIG['secret_key'] = "";
- //die("<pre>".print_r($dummy, true)."</pre>");
- $_CONFIG = array_merge($_CONFIG, $dummy);
// Read key from secret file
if ((empty($_CONFIG['file_hash'])) || (empty($_CONFIG['master_salt'])) || (empty($_CONFIG['pass_scramble']))) {
require_once(PATH."inc/extensions/ext-cache.php");
if ($cacheInstance->cache_file("extensions", true)) $cacheInstance->cache_destroy();
if ($cacheInstance->cache_file("mod_reg", true)) $cacheInstance->cache_destroy();
- }
- }
+ } // END - if
+ } // END - if
// Test again
if ((!empty($_CONFIG['file_hash'])) && (!empty($_CONFIG['master_salt'])) && (!empty($_CONFIG['pass_scramble']))) {
// File hash fas generated so we can also file the secret file... hopefully.
- if ((file_exists(PATH."inc/.secret/.".$_CONFIG['file_hash'])) && (is_readable(PATH."inc/.secret/.".$_CONFIG['file_hash']))) {
- $_CONFIG['secret_key'] = implode("", file(PATH."inc/.secret/.".$_CONFIG['file_hash']));
+ $hashFile = sprintf("%sinc/.secret/.%s", PATH, $_CONFIG['file_hash']);
+ if (FILE_READABLE($hashFile)) {
+ // Read file
+ $_CONFIG['secret_key'] = implode("", file($hashFile));
} else {
// Cannot read secret file!
mxchange_die("Cannot read secret file!");
}
- }
+ } // END - if
// Transfer words/numbers to constants
- define('POINTS' , $dummy['points_word']);
- define('MT_WORD' , $dummy['mt_word']);
- define('MT_WORD2', $dummy['mt_word2']);
- define('MT_WORD3', $dummy['mt_word3']);
- define('_MAX' , $dummy['rand_no']);
+ define('POINTS' , $_CONFIG['points_word']);
+ define('MT_WORD' , $_CONFIG['mt_word']);
+ define('MT_WORD2', $_CONFIG['mt_word2']);
+ define('MT_WORD3', $_CONFIG['mt_word3']);
+ define('_MAX' , $_CONFIG['rand_no']);
} else {
// Set some lame ;-) default settings
$_CONFIG['def_refid'] = 0;
define('MT_WORD2', DEFAULT_MT_WORD2);
define('POINTS' , DEFAULT_POINTS);
}
-
- // Remove dummy config array
- unset($dummy);
break;
}