]> git.mxchange.org Git - mailer.git/blobdiff - inc/extensions/ext-coupon.php
Wrapper functions introduced for configuration, loaders refactured:
[mailer.git] / inc / extensions / ext-coupon.php
index eba4c347135aaf0699a7394573d30c3826aa6778..8aa964280458325a135e63a26eb3738bda7e37ad 100644 (file)
@@ -53,13 +53,53 @@ enableExtensionProductive(false);
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
-               // SQL commands to run
-               addExtensionSql('');
+               // Coupon data
+               addDropTableSql('coupon_data');
+               addCreateTableSql('coupon_data', "(
+`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
+`timestamp_created` TIMESTAMP NULL DEFAULT NULL,
+`timestamp_expired` TIMESTAMP NULL DEFAULT NULL,
+`coupon_type` ENUM('CODE','API') NOT NULL DEFAULT 'CODE',
+`total_created` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+`total_used` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+`coupon_description` TEXT,
+PRIMARY KEY (`id`)
+) TYPE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Created coupons'");
+
+               // Coupon->user connection table
+               addDropTableSql('user_coupons');
+               addCreateTableSql('user_coupons', "(
+`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
+`coupon_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+`userid` BIGINT(2) UNSIGNED NOT NULL DEFAULT 0,
+`coupon_code` VARCHAR(30) NULL DEFAULT NULL,
+`cashed_on` TIMESTAMP NULL DEFAULT NULL,
+PRIMARY KEY (`id`),
+UNIQUE KEY `coupon_user` (`coupon_id`,`userid`),
+UNIQUE KEY (`coupon_code`)
+) TYPE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Coupon->user connection'");
+
+               // Configuration entries
+               //addConfigAddSql('', "");
+
+               // Menu systems:
+               //  - Admin entries
+               addAdminMenuSql('coupon',NULL,'Gutscheine','Einrichten und Versenden von Code-Gutscheinen, sowie per API (noch in Planung). Bei Code-Gutscheinen wird ein Code pro Mitglied erzeugt, der dann an das Mitglied ausgesandt wird. Löst das Mitglied den Gutschein ein, erhält es die Gutschrift auf sein Konto gutgeschrieben. Ausgangseinstellung ist die Gutschrift auf das Werbeguthaben, was für Paidmailer von Wichtigkeit ist, dass Guthaben aus Gutscheinen nicht auszahlungsfähig ist.',6);
+               addAdminMenuSql('coupon','list_coupon','Auflisten','Listet alle Gutscheine und Einlösungen durch die Mitglieder auf.', 1);
+               addAdminMenuSql('coupon','send_coupon','Versenden/Neuen erstellen','Versendet neue Gutscheine an die Mitglieder. Wenn Sie auf "Absenden" klicken, warten Sie bitte die Folgeseite ab, da der Versand der Gutscheine derzeit nicht gepoolt ist.',2);
+               addAdminMenuSql('coupon','config_coupon','Einstellungen','Allgemeine Einstellungen zu Code-Gutscheinen und Gutscheinen von Sponsoren (z.B. per API) können hier vorgenommen werden.', 3);
+               //  - Member entries
+               addMemberMenuSql('coupon',NULL,'Gutscheine','N','Y',3);
+               addMemberMenuSql('coupon','cash_coupon','Gutschein einlösen','N','Y',1);
+               addMemberMenuSql('coupon','list_coupon','Eingelöste auflisten','N','Y',2);
                break;
 
        case 'remove': // Do stuff when removing extension
                // SQL commands to run
                break;
 
        case 'remove': // Do stuff when removing extension
                // SQL commands to run
-               addExtensionSql('');
+               addDropTableSql('coupon_data');
+               addDropTableSql('user_coupons');
+               addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='coupon' LIMIT 4");
+               addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `action`='coupon' LIMIT 3");
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension