X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fextensions%2Fext-doubler.php;h=43a732d7293c45a4ac34373cfefc49ba70150141;hp=66eadecfcb1b5b26278c2c3d8aff58c5f27f3c10;hb=be39a7fb887473487fd2c5f8d550aa03b720cb73;hpb=8ba389b59f6d41f88752cae896143135e575f34a diff --git a/inc/extensions/ext-doubler.php b/inc/extensions/ext-doubler.php index 66eadecfcb..43a732d729 100644 --- a/inc/extensions/ext-doubler.php +++ b/inc/extensions/ext-doubler.php @@ -1,7 +1,7 @@ none) - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_uid BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'"; - // Total payed out points from your doublers - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_points DOUBLE(20,5) UNSIGNED NOT NULL DEFAULT '0.00000'"; - // Sending mode of mails (immediately/daily reset) - // --> This also means who fast the doubled points will be payed out! - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_send_mode ENUM('DIRECT','RESET') NOT NULL DEFAULT 'DIRECT'"; - // Timeout for entries to be purged (default: one week) - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_timeout BIGINT(20) UNSIGNED NOT NULL DEFAULT '".(60*60*24*7)."'"; - // Number of newest entries to display - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_display_new TINYINT(3) UNSIGNED NOT NULL DEFAULT '10'"; - // Number of entries which will be payed out soon - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_display_pay TINYINT(3) UNSIGNED NOT NULL DEFAULT '10'"; - // Number of entries which are already payed out - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_display_old TINYINT(3) UNSIGNED NOT NULL DEFAULT '10'"; - // Points used by every member - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD doubler_points DOUBLE(20,5) UNSIGNED NOT NULL DEFAULT '0.00000'"; - // Counter for usage of the doubler - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_counter BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'"; - - // - // --- MENU SYSTEMS --- - // - // Admin menu - $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('doubler', NULL, '{!POINTS!}-Verdoppler','Einstellungen und Einträge auflisten.', 4)"; - $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('doubler','list_doubler','Auflisten','Einträge aus der Verdiensttabelle auflisten', 1)"; - $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('doubler','config_doubler','Einstellungen','Prozentuale Gebühr usw. einstellen.', 2)"; - - // Guest menu (informations / default doubler link) - $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_guest_menu (action, what, title, sort, visible, locked) VALUES ('main','doubler','Verdoppeln!', 3, 'Y','Y')"; - - // Member menu - $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, visible, locked, sort) VALUES ('main','doubler','Verdoppeln!','Y','Y', 7)"; - break; - -case "remove": // Do stuff when removing extension - // SQL commands to run - $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_doubler"; - $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='doubler' LIMIT 3"; - $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_guest_menu WHERE what='doubler' LIMIT 1"; - $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE what='doubler' LIMIT 1"; - break; - -case "activate": // Do stuff when admin activates this extension - // SQL commands to run - $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='N' WHERE what='doubler' LIMIT 1"; - $SQLs[] = "UPDATE "._MYSQL_PREFIX."_guest_menu SET visible='Y', locked='N' WHERE what='doubler' LIMIT 1"; - $SQLs[] = "UPDATE "._MYSQL_PREFIX."_mod_reg SET locked='N', hidden='N', admin_only='N', mem_only='N' WHERE module='doubler' LIMIT 1"; - break; - -case "deactivate": // Do stuff when admin deactivates this extension - // SQL commands to run - $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='Y' WHERE what='doubler' LIMIT 1"; - $SQLs[] = "UPDATE "._MYSQL_PREFIX."_guest_menu SET visible='Y', locked='Y' WHERE what='doubler' LIMIT 1"; - $SQLs[] = "UPDATE "._MYSQL_PREFIX."_mod_reg SET locked='Y' WHERE module='doubler' LIMIT 1"; - break; - -case "update": // Update an extension - switch ($EXT_VER) - { - case "0.0.1": // SQL queries for v0.0.1 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Problem mit User-ID behoben!"; - break; - - case "0.0.2": // SQL queries for v0.0.2 - // Total used points - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_used DOUBLE(20,5) UNSIGNED NOT NULL DEFAULT '0.00000'"; - - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Gebühr wird vom Verdoppler-Pott abgezogen."; - break; - - case "0.0.3": // SQL queries for v0.0.3 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Drei SQL-Fehler beseitigt."; - break; - - case "0.0.4": // SQL queries for v0.0.4 - // Shall I use the doubler's account to take points from? (Y/N, default=Y) - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_own ENUM('Y','N') NOT NULL DEFAULT 'Y'"; - - // Update notes (these will be set as task text!) - $UPDATE_NOTES = POINTS."-Guthaben des Verdopplers kann optional nicht mit einbezogen werden."; - break; - - case "0.0.5": // SQL queries for v0.0.5 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Counter-Stand und noch zum Verdoppeln übrige {!POINTS!} in Templates eingebunden. Auflistung in Admin-Bereich komplettiert."; +setThisExtensionVersion('0.1.7'); + +// Version history array (add more with , '0.1.0' and so on) +setExtensionVersionHistory(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')); + +switch (getExtensionMode()) { + case 'register': // Do stuff when installation is running (modules.php?module=admin is called) + // Doubler table + addDropTableSql('doubler'); + addCreateTableSql('doubler', "( +`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`refid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000, +`remote_ip` VARCHAR(15) NOT NULL DEFAULT '0.0.0.0', +`timemark` BIGINT(10) NOT NULL DEFAULT 0, +`completed` ENUM('Y','N') NOT NULL DEFAULT 'N', +`is_ref` ENUM('Y','N') NOT NULL DEFAULT 'N', +KEY (`refid`), +KEY (`userid`), +PRIMARY KEY (`id`) +) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'User doubler data'"); + + // + // --- SETTINGS --- + // + // Minimum points to double + addConfigAddSql('doubler_min', "FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 100.00000"); + // Maximum points to double + addConfigAddSql('doubler_max', "FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 10000.00000"); + // Points left on users account after doubling + addConfigAddSql('doubler_left', "BIGINT(20) UNSIGNED NOT NULL DEFAULT 1000"); + // Charge for doubling points which goes to the webmaster (shreddered in fact!) + addConfigAddSql('doubler_charge', "FLOAT(7,5) UNSIGNED NOT NULL DEFAULT 0.03000"); + // Referal percents + addConfigAddSql('doubler_ref', "FLOAT(7,5) UNSIGNED NOT NULL DEFAULT 0.02000"); + // Shall I use the jackpot to take points from? (Y/N, default=Y) + addConfigAddSql('doubler_jackpot', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); + // A user account to take points from (default: 0->none) + addConfigAddSql('doubler_userid', "BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"); + // Total payed out points from your doublers + addConfigAddSql('doubler_points', "FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000"); + // Sending mode of mails (immediately/daily reset) + // --> This also means who fast the doubled points will be payed out! + addConfigAddSql('doubler_send_mode', "ENUM('DIRECT','RESET') NOT NULL DEFAULT 'DIRECT'"); + // Timeout for entries to be purged (default: one week) + addConfigAddSql('doubler_timeout', "BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getOneDay()*7).""); + // Number of newest entries to display + addConfigAddSql('doubler_display_new', "TINYINT(3) UNSIGNED NOT NULL DEFAULT 10"); + // Number of entries which will be payed out soon + addConfigAddSql('doubler_display_pay', "TINYINT(3) UNSIGNED NOT NULL DEFAULT 10"); + // Number of entries which are already payed out + addConfigAddSql('doubler_display_old', "TINYINT(3) UNSIGNED NOT NULL DEFAULT 10"); + // Points used by every member + addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `doubler_points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000"); + // Counter for usage of the doubler + addConfigAddSql('doubler_counter', "BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"); + + // + // --- MENU SYSTEMS --- + // + // Admin menu + addAdminMenuSql('doubler', NULL, '{OPEN_CONFIG}POINTS{CLOSE_CONFIG}-Verdoppler','Einstellungen und Einträge auflisten.', 4); + addAdminMenuSql('doubler','list_doubler','Auflisten','Einträge aus der Verdiensttabelle auflisten', 1); + addAdminMenuSql('doubler','config_doubler','Einstellungen','Prozentuale Gebühr usw. einstellen.', 2); + + // Guest menu (informations / default doubler link) + addGuestMenuSql('main','doubler','Verdoppeln!','N','Y',3); + + // Member menu + addMemberMenuSql('main','doubler','Verdoppeln!','N','Y',7); break; - case "0.0.6": // SQL queries for v0.0.6 - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_max_sent TINYINT(3) UNSIGNED NOT NULL DEFAULT '1'"; - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_group_sent TINYINT(3) UNSIGNED NOT NULL DEFAULT '1'"; - $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD doubler_sent_all ENUM('Y','N') NOT NULL DEFAULT 'Y'"; - - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Gebührenabzug wird beim Einzahlen abgezogen (wurde von Auszahlung abgezogen) und maximal bei Auszahlung zu kontrollierende Accounts einstellbar.
Template admin_config_doubler_pro.tpl ist überflüssig geworden. Bitte löschen Sie dies!"; - break; - - case "0.0.7": // SQL queries for v0.0.7 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Wörter Mailtausch, Mailtausches und Mailtauscher sind austauschbar.

Minus-Guthaben des Verdoppler-Accounts repariert und Mitgliedsmail erweitert mit Transaktionsummer und IP-Nummer."; + case 'remove': // Do stuff when removing extension + // SQL commands to run + addDropTableSql('doubler'); + addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='doubler'"); + addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `what`='doubler'"); + addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='doubler'"); break; - case "0.0.8": // SQL queries for v0.0.8 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Bitte verschieben Sie die doubler-Templates (Ordner: ".PATH."/templates/".GET_LANGUAGE()."/html/) in den neuen Order doubler!"; + case 'activate': // Do stuff when admin activates this extension + // SQL commands to run + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y', `locked`='N' WHERE `what`='doubler' LIMIT 1"); + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='Y', `locked`='N' WHERE `what`='doubler' LIMIT 1"); + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='N', `hidden`='N', `admin_only`='N', `mem_only`='N' WHERE `module`='doubler' LIMIT 1"); break; - case "0.0.9": // SQL queries for v0.0.9 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Abspeichern von Einstellungen repariert."; + case 'deactivate': // Do stuff when admin deactivates this extension + // SQL commands to run + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='N', `locked`='Y' WHERE `what`='doubler' LIMIT 1"); + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='N', `locked`='Y' WHERE `what`='doubler' LIMIT 1"); + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='Y' WHERE `module`='doubler' LIMIT 1"); break; - case "0.1.0": // SQL queries for v0.2.1 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Vorbereitung auf die neue Mediendaten v0.0.4."; + case 'update': // Update an extension + switch (getCurrentExtensionVersion()) { + case '0.0.1': // SQL queries for v0.0.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Problem mit Mitglieder-Id behoben."); + break; + + case '0.0.2': // SQL queries for v0.0.2 + // Total used points + addConfigAddSql('doubler_user', "FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Gebühr wird vom Verdoppler-Pott abgezogen."); + break; + + case '0.0.3': // SQL queries for v0.0.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Drei SQL-Fehler beseitigt."); + break; + + case '0.0.4': // SQL queries for v0.0.4 + // Shall I use the doubler's account to take points from? (Y/N, default=Y) + addConfigAddSql('doubler_own', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("{?POINTS?}-Guthaben des Verdopplers kann optional nicht mit einbezogen werden."); + break; + + case '0.0.5': // SQL queries for v0.0.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Counter-Stand und noch zum Verdoppeln übrige {?POINTS?} in Templates eingebunden. Auflistung in Admin-Bereich komplettiert."); + break; + + case '0.0.6': // SQL queries for v0.0.6 + addConfigAddSql('doubler_max_sent', "TINYINT(3) UNSIGNED NOT NULL DEFAULT 1"); + addConfigAddSql('doubler_group_sent', "TINYINT(3) UNSIGNED NOT NULL DEFAULT 1"); + addConfigAddSql('doubler_sent_all', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Gebührenabzug wird beim Einzahlen abgezogen (wurde von Auszahlung abgezogen) und maximal bei Auszahlung zu kontrollierende Accounts einstellbar.
Template admin_config_doubler_pro.tpl ist überflüssig geworden. Bitte löschen Sie dies!"); + break; + + case '0.0.7': // SQL queries for v0.0.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Wörter {?mt_word?}, {?mt_word2?} und {?mt_word3?} sind austauschbar.

Minus-Guthaben des Verdoppler-Accounts repariert und Mitgliedsmail erweitert mit Transaktionsummer und IP-Nummer."); + break; + + case '0.0.8': // SQL queries for v0.0.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Bitte verschieben Sie die doubler-Templates (Ordner: {?PATH?}/templates/".getLanguage()."/html/) in den neuen Order doubler!"); + break; + + case '0.0.9': // SQL queries for v0.0.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); + break; + + case '0.1.0': // SQL queries for v0.2.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4."); + break; + + case '0.1.1': // SQL queries for v0.1.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Zwei SQL-Fehler in inc/doubler_send.php beseitigt."); + break; + + case '0.1.2': // SQL queries for v0.1.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Sicherheitsupdate für die Include-Befehle."); + break; + + case '0.1.3': // SQL queries for v0.1.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("De-/Aktivieren des mit dieser Erweiterung verknüpften Modules eingebunden."); + break; + + case '0.1.4': // SQL queries for v0.1.4 + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='extras', `sort`=4 WHERE `what`='doubler' LIMIT 1"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut."); + break; + + case '0.1.5': // SQL queries for v0.1.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Hash-Erstellung von md5() auf bessere Funktion generateHash() umgestellt."); + break; + + case '0.1.6': // SQL queries for v0.1.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert."); + break; + + case '0.1.7': // SQL queries for v0.1.7 + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_config` SET `doubler_charge`=`doubler_charge`*100"); + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_config` SET `doubler_ref`=`doubler_ref`*100"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert."); + break; + } // END - switch break; - case "0.1.1": // SQL queries for v0.1.1 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Zwei SQL-Fehler in inc/doubler_send.php beseitigt."; + case 'modify': // When the extension got modified break; - case "0.1.2": // SQL queries for v0.1.2 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Sicherheitsupdate für die Include-Befehle."; + case 'test': // For testing purposes break; - case "0.1.3": // SQL queries for v0.1.3 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "De-/Aktivieren des mit dieser Erweiterung verknüpften Modules eingebunden."; - break; - - case "0.1.4": // SQL queries for v0.1.4 - $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET action='extras', sort='4' WHERE what='doubler' LIMIT 1"; - - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Mitgliedsmenü komplett umgebaut."; + case 'init': // Do stuff when extension is initialized break; - case "0.1.5": // SQL queries for v0.1.5 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Hash-Erstellung von md5() auf bessere Funktion generateHash() umgestellt."; + default: // Unknown extension mode + logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName())); break; +} // END - switch - case "0.1.6": // SQL queries for v0.1.6 - // Update notes (these will be set as task text!) - $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert."; - break; - } - break; - -default: // Do stuff when extension is loaded - if ((isBooleanConstantAndTrue('__DAILY_RESET')) && ($_CONFIG['doubler_send_mode'] == "RESET")) { - // So let's check for points - $INC_POOL[] = sprintf("%sinc/doubler_send.php", PATH); - } - break; -} - -// Language file prefix -$EXT_LANG_PREFIX = "doubler"; - -// Extension is always active? -$EXT_ALWAYS_ACTIVE = "N"; - -// +// [EOF] ?>