X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fextensions%2Fext-transfer.php;h=a1f480f7e1aed84e88cec3b102e797d60a4e2f79;hp=55dec050cf3ef79ad16299a5a89f250713d440bc;hb=1d22c70e65e858422ee0d17a7612f4b5c0757a42;hpb=fb7120ffa230b62b54895bcf95952e1cf30f8594 diff --git a/inc/extensions/ext-transfer.php b/inc/extensions/ext-transfer.php index 55dec050cf..a1f480f7e1 100644 --- a/inc/extensions/ext-transfer.php +++ b/inc/extensions/ext-transfer.php @@ -1,7 +1,7 @@ Warning: Missing argument 2 for create_timestamp_from_selections() in {!PATH!}inc/libs/pro_functions.php on line 227 behoben."); +setThisExtensionVersion('0.3.0'); + +// 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', '0.2.6', '0.2.7', '0.2.8', '0.2.9', '0.3.0')); + +switch (getExtensionMode()) { + case 'register': // Do stuff when installation is running + // Transfer from a member + addDropTableSql('user_transfers_in'); + addCreateTableSql('user_transfers_in', " +`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`from_userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`points` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`reason` VARCHAR(255) NOT NULL DEFAULT '', +`time_trans` VARCHAR(14) NOT NULL DEFAULT 0, +`trans_id` VARCHAR(12) NOT NULL DEFAULT '', +PRIMARY KEY (`id`), +INDEX (`userid`), +INDEX (`from_userid`)", + 'Ingoing points transfers'); + + // Transfers to a member + addDropTableSql('user_transfers_out'); + addCreateTableSql('user_transfers_out', " +`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`to_userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`points` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`reason` VARCHAR(255) NOT NULL DEFAULT '', +`time_trans` VARCHAR(14) NOT NULL DEFAULT 0, +`trans_id` VARCHAR(12) NOT NULL DEFAULT '', +PRIMARY KEY (`id`), +INDEX (`userid`), +INDEX (`to_userid`)", + 'Outgoing points transfers'); + + // Admin menu + addAdminMenuSql('transfer', NULL, '{OPEN_CONFIG}POINTS{CLOSE_CONFIG}-Transfer','Verwalten Sie hier die {OPEN_CONFIG}POINTS{CLOSE_CONFIG}-Transaktionen zwischen Ihren Mitgliedern.', 7); + addAdminMenuSql('transfer','list_transfer','Auflisten','Hier bekommen Sie alle ein- und ausgehende Transaktionen aufgelistet.', 1); + addAdminMenuSql('transfer','config_transfer','Einstellungen','Stellen Sie ein, wie viele Transaktionen aufgelistet werden sollen und wie alt diese werden dürfen. Die evtl. installierte autopurge-Erweiterung kann dann automatisch die veralteten Transktionen löschen.', 2); + addAdminMenuSql('transfer','del_transfer','Manuell löschen','Hier können Sie - abgesehen von der automatischen Löschung - Transaktionen selber löschen. Bitte beachten Sie, dass immer aus- und eingehende Transaktionen gleichzeitig gelöscht werden.', 3); + + // Member menu + addMemberMenuSql('extras', 'transfer', '{OPEN_CONFIG}POINTS{CLOSE_CONFIG}-Transfer', 5); + + // Add config values + addConfigAddSql('transfer_max', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 50'); + addConfigAddSql('transfer_age', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 28)); + addConfigAddSql('transfer_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT {?ONE_DAY?}'); + addConfigAddSql('transfer_balance', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 100'); + addConfigAddSql('transfer_code', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 5'); + + // Add row(s) to user's data + addExtensionAddTableColumnSql('user_data', 'opt_in', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); break; - case "0.0.3": // SQL queries for v0.0.3 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Überflüssige unset()-Anweisungen aus der what-config_transfer.php entfernt. Dies wird bereits von der eigenen Funktion ADMIN_SAVE_SETTINGS() erledigt."); - break; - - case "0.0.3": // SQL queries for v0.0.3 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Fehlende Abfrage im Mitlieder-Modul, on Erweiterung auch aktiviert ist."); - break; - - case "0.0.5": // SQL queries for v0.0.5 - ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD ap_transfer ENUM('Y','N') NOT NULL DEFAULT 'Y'"); - - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Link Auflisten im Admin-Bereich hatte das eingeloggte Mitglied und nicht den eingeloggten Admin abgefragt. Automatisches Löschen von veraltete Einträgen kann unabhängig von der autopurge-Erweiterung de-/aktiviert werden. Bitte aktualisieren Sie auch die beiden Admin-Templates!"); - break; - - case "0.0.6": // SQL queries for v0.0.6 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Wegen des Theme-Supportes hat sich die URL zur CSS-Datei geändert."); - break; - - case "0.0.7": // SQL queries for v0.0.7 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); - break; - - case "0.0.8": // SQL queries for v0.0.8 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Problem mit E in Transaktionsnummer beseitigt."); - break; - - case "0.0.9": // SQL queries for v0.0.9 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Problem mit Speicherung der Einstellungen beseitigt."); - break; - - case "0.1.0": // SQL queries for v0.2.1 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Menüpunkte im Gast-/Mitgliedsbereich können nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist."); - break; - - case "0.1.1": // SQL queries for v0.1.1 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Design "Solid-Business" eingebaut."); - break; - - case "0.1.2": // SQL queries for v0.1.2 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Seit Patch 340 überflüssige HTML-Tags entfernt."); - break; - - case "0.1.3": // SQL queries for v0.1.3 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("IP-Nummer und Browserbezeichnung wird in Admin-Mails eingesetzt."); - break; + case 'remove': // Do stuff when removing extension + // SQL commands to run + addDropTableSql('user_transfers_in'); + addDropTableSql('user_transfers_out'); + addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='transfer'"); + addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='transfer' LIMIT 1"); + addExtensionDropTableColumnSql('user_data', 'opt_in'); - case "0.1.4": // SQL queries for v0.1.4 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Link zum Mitgliedsprofil in Funktion ADMIN_USER_PROFILE_LINK() ausgelagert."); + // Unregister points data + unregisterExtensionPointsData('transfer'); break; - case "0.1.5": // SQL queries for v0.1.5 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Template admin_config_transfer_pro.tpl ist überflüssig geworden. Bitte löschen Sie dies!"); + 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`='transfer' LIMIT 1"); break; - case "0.1.6": // SQL queries for v0.1.6 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Wörter Mailtausch, Mailtausches und Mailtauscher sind austauschbar."); + case 'deactivate': // Do stuff when admin deactivates this extension + // SQL commands to run + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y',`locked`='N' WHERE `what`='transfer' LIMIT 1"); break; - case "0.1.7": // SQL queries for v0.1.7 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Wort Punkte dynamisiert."); + case 'update': // Update an extension + switch (getCurrentExtensionVersion()) { + case '0.0.2': // SQL queries for v0.0.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler
Warning: Missing argument 2 for create_timestamp_from_selections() in {?PATH?}inc/libs/pro_functions.php on line 227
behoben."); + break; + + case '0.0.3': // SQL queries for v0.0.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Überflüssige unset()-Anweisungen aus der what-config_transfer.php entfernt. Dies wird bereits von der eigenen Funktion adminSaveSettings() erledigt."); + break; + + case '0.0.3': // SQL queries for v0.0.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehlende Abfrage im Mitlieder-Modul, on Erweiterung auch aktiviert ist."); + break; + + case '0.0.5': // SQL queries for v0.0.5 + addConfigAddSql('ap_transfer', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Link Auflisten im Admin-Bereich hatte das eingeloggte Mitglied und nicht den eingeloggten Admin abgefragt. Automatisches Löschen von veraltete Einträgen kann unabhängig von der autopurge-Erweiterung de-/aktiviert werden. Bitte aktualisieren Sie auch die beiden Admin-Templates!"); + break; + + case '0.0.6': // SQL queries for v0.0.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Wegen des Theme-Supportes hat sich die URL zur CSS-Datei geändert."); + break; + + case '0.0.7': // SQL queries for v0.0.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); + break; + + case '0.0.8': // SQL queries for v0.0.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Problem mit E in Transaktionsnummer beseitigt."); + break; + + case '0.0.9': // SQL queries for v0.0.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt."); + break; + + case '0.1.0': // SQL queries for v0.2.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Menüpunkte im Gast-/Mitgliedsbereich können nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist."); + break; + + case '0.1.1': // SQL queries for v0.1.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Design "Solid-Business" eingebaut."); + break; + + case '0.1.2': // SQL queries for v0.1.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Seit Patch 340 überflüssige HTML-Tags entfernt."); + break; + + case '0.1.3': // SQL queries for v0.1.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("IP-Nummer und Browserbezeichnung wird in Admin-Mails eingesetzt."); + break; + + case '0.1.4': // SQL queries for v0.1.4 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion generateUserProfileLink() ausgelagert."); + break; + + case '0.1.5': // SQL queries for v0.1.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Template admin_config_transfer_pro.tpl ist überflüssig geworden. Bitte löschen Sie dies!"); + break; + + case '0.1.6': // SQL queries for v0.1.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Wörter {?mt_word?}, {?mt_word2?} und {?mt_word3?} sind austauschbar."); + break; + + case '0.1.7': // SQL queries for v0.1.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Wort Punkte dynamisiert."); + break; + + case '0.1.8': // SQL queries for v0.1.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert."); + break; + + case '0.1.9': // SQL queries for v0.1.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Parser-Error im Mitgliedsbereich beseitigt."); + break; + + case '0.2.0': // SQL queries for v0.2.0 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); + break; + + case '0.2.1': // SQL queries for v0.2.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Durchführung des Transfers korregiert."); + break; + + case '0.2.2': // SQL queries for v0.2.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Sicherheitsupdate für die Include-Befehle."); + break; + + case '0.2.3': // SQL queries for v0.2.3 + addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu_las` (`la_id`, `la_action`, `la_what`) VALUES ('member', '', 'list_transfer')"); + addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu_las` (`la_id`, `la_action`, `la_what`) VALUES ('member', '', 'del_transfer')"); + addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu_las` (`la_id`, `la_action`, `la_what`) VALUES ('config', '', 'config_transfer')"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Erweiterung in's neue Menüsystem integriert."); + break; + + case '0.2.4': // SQL queries for v0.2.4 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Touring-Code wiederholen nach Touring-Code eingeben hin geändert."); + break; + + case '0.2.5': // SQL queries for v0.2.5 + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='extras',`sort`=5 WHERE `what`='transfer' LIMIT 1"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Eintrag im Mitgliedsmenü verschoben."); + break; + + case '0.2.6': // SQL queries for v0.2.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Hash-Erstellung von md5() auf bessere Funktion generateHash() umgestellt."); + break; + + case '0.2.7': // SQL queries for v0.2.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Die {?POINTS?} können nun wieder wie gewohnt transferiert werden. Der Grund für {--MEMBER_TRANSFER_INVALID_PASSWORD--} war, dass der Cookie-Hash ein anderer ist, als der in der Datenbank... :-/"); + break; + + case '0.2.8': // SQL queries for v0.2.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehlermeldung Notice: Undefined index: to_userid in {?PATH?}/inc/modules/member/what-transfer.php on line 301 gefixt. Danke an Piter01."); + break; + + case '0.2.9': // SQL queries for v0.2.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert."); + break; + + case '0.3.0': // SQL queries for v0.3.0 + // Register points data + registerExtensionPointsData('transfer', 'points', 'LOCKED', 'DIRECT'); + + // Update notes + setExtensionUpdateNotes("Ünerweisungen anderer Mitglieder werden nun über die Tabelle {OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data verwaltet."); + break; + } // END - switch break; - case "0.1.8": // SQL queries for v0.1.8 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert."); + case 'modify': // When the extension got modified break; - case "0.1.9": // SQL queries for v0.1.9 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Parser-Error im Mitgliedsbereich beseitigt."); + case 'test': // For testing purposes break; - case "0.2.0": // SQL queries for v0.2.0 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Abspeichern von Einstellungen repariert."); + case 'init': // When extension is initialized + if ((isResetModeEnabled()) && (getConfig('ap_transfer') == 'Y')) { + // Automatically remove outdated or not displayed transactions + autoPurgeTransfers(getConfig('transfer_max'), getConfig('transfer_age')); + } // END - if break; - case "0.2.1": // SQL queries for v0.2.1 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Durchführung des Transfers korregiert."); + default: // Unknown extension mode + logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName())); break; +} // END - switch - case "0.2.2": // SQL queries for v0.2.2 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Sicherheitsupdate für die Include-Befehle."); - break; - - case "0.2.3": // SQL queries for v0.2.3 - ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu_las` (la_id, la_action, la_what) VALUES ('member', '', 'list_transfer')"); - ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu_las` (la_id, la_action, la_what) VALUES ('member', '', 'del_transfer')"); - ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu_las` (la_id, la_action, la_what) VALUES ('config', '', 'config_transfer')"); - - // Depends on sql_patches (or you have to execute these both SQL statements by phpMyAdmin - EXT_SET_UPDATE_DEPENDS("sql_patches"); - - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Erweiterung in's neue Menüsystem integriert."); - break; - - case "0.2.4": // SQL queries for v0.2.4 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Touring-Code wiederholen nach Touring-Code eingeben hin geändert."); - break; - - case "0.2.5": // SQL queries for v0.2.5 - ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `action`='extras', `sort`='5' WHERE `what`='transfer' LIMIT 1"); - - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Mitgliedsmenü komplett geändert."); - break; - - case "0.2.6": // SQL queries for v0.2.6 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Hash-Erstellung von md5() auf bessere Funktion generateHash() umgestellt."); - break; - - case "0.2.7": // SQL queries for v0.2.7 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Die {!POINTS!} können nun wieder wie gewohnt transferiert werden. Der Grund für {--TRANSFER_INVALID_PASSWORD--} war, dass der Cookie-Hash ein anderer ist, als der in der Datenbank... :-/"); - break; - - case "0.2.8": // SQL queries for v0.2.8 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Fehlermeldung Notice: Undefined index: to_uid in {!PATH!}/inc/modules/member/what-transfer.php on line 301 gefixt. Danke an Piter01."); - break; - - case "0.2.9": // SQL queries for v0.2.9 - // Update notes (these will be set as task text!) - EXT_SET_UPDATE_NOTES("Fehlerhinweis bei deaktivierter Erweiterung verbessert."); - break; - } - 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; - -default: // Do stuff when extension is loaded - if ((isResetModeEnabled()) && (getConfig('ap_transfer') == "Y")) { - // Automatically remove outdated or not displayed transactions - TRANSFER_AUTPPURGE(getConfig('transfer_max'), getConfig('transfer_age')); - } - break; -} - -// +// [EOF] ?>