X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fextensions%2Fext-grade.php;h=c946a5c272f292fc754843d795b9618a2eac9d09;hb=dcef6adecbcb4da06de4118258e67308b341e47f;hp=124a9abbdbf591fc72ef0bdc3c126642a9a12cb9;hpb=68c6a7e8c29743abf17d7b3dd09b32acf300481a;p=mailer.git diff --git a/inc/extensions/ext-grade.php b/inc/extensions/ext-grade.php index 124a9abbdb..c946a5c272 100644 --- a/inc/extensions/ext-grade.php +++ b/inc/extensions/ext-grade.php @@ -8,17 +8,16 @@ * -------------------------------------------------------------------- * * Short description : Grades for your members * * -------------------------------------------------------------------- * - * Kurzbeschreibung : Einstufungen Ihrer Mitglieder * + * Kurzbeschreibung : Accountstufen Ihrer Mitglieder * * -------------------------------------------------------------------- * * $Revision:: $ * * $Date:: $ * * $Tag:: 0.2.1-FINAL $ * * $Author:: $ * - * Needs to be in all Files and every File needs "svn propset * - * svn:keywords Date Revision" (autoprobset!) at least!!!!!! * * -------------------------------------------------------------------- * * Copyright (c) 2003 - 2009 by Roland Haeder * - * For more information visit: http://www.mxchange.org * + * Copyright (c) 2009 - 2012 by Mailer Developer Team * + * For more information visit: http://mxchange.org * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -42,26 +41,101 @@ if (!defined('__SECURITY')) { } // END - if // Version number -setThisExtensionVersion('0.0'); +setThisExtensionVersion('0.0.0'); -// Version history array (add more with , '0.1.0' and so on) -setExtensionVersionHistory(array('0.0')); +// Version history array (add more with , '0.0.1' and so on) +setExtensionVersionHistory(array('0.0.0')); + +// This extension is in development (non-productive) +enableExtensionProductive(FALSE); switch (getExtensionMode()) { - case 'register': // Do stuff when installation is running (modules.php?module=admin is called) - // SQL commands to run + case 'register': // Do stuff when installation is running + // General and grade level data + addDropTableSql('grade_data'); + addCreateTableSql('grade_data', " +`grade_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`grade_name` VARCHAR(255) NOT NULL DEFAULT '', +`grade_description` TINYTEXT NOT NULL, +`grade_parent_id` BIGINT(20) UNSIGNED NULL DEFAULT NULL, +UNIQUE INDEX (`grade_name`), +INDEX (`grade_parent_id`), +PRIMARY KEY (`grade_id`)", + 'Grade data'); + + // Data for if a grade level has been reached + addDropTableSql('grade_cash_data'); + addCreateTableSql('grade_cash_data', " +`cash_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`grade_cash_name` VARCHAR(255) NOT NULL DEFAULT '', +`grade_cash_type` ENUM('DISCOUNT','BONUS') NOT NULL DEFAULT 'DISCOUNT', +`reached_points` FLOAT(20,5) UNSIGNED NULL DEFAULT NULL, +`reached_mails` BIGINT(20) UNSIGNED NULL DEFAULT NULL, +`time_valid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +UNIQUE INDEX (`grade_cash_name`), +PRIMARY KEY (`cash_id`)", + 'Data for "cashed" grades'); + + // Connection grade<->cash data + addDropTableSql('grade_cash_connect'); + addCreateTableSql('grade_cash_connect', " +`connect_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`grade_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`grade_cash_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +UNIQUE INDEX `grade_cash` (`grade_id`, `grade_cash_id`), +INDEX (`grade_cash_id`), +PRIMARY KEY (`connect_id`)", + 'Grade<->cash data connection'); + + // Connection grade<->user data + addDropTableSql('grade_user_connect'); + addCreateTableSql('grade_user_connect', " +`connect_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`grade_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`grade_expired` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', +UNIQUE INDEX (`userid`, `grade_id`), +INDEX (`grade_id`), +PRIMARY KEY (`connect_id`)", + 'Grade<->user connection'); + + // Admin menu entries + addAdminMenuSql('grade', NULL, 'Accountstufen', 'Stufen Sie Ihre Mitglieder ein, die sie ab einer einstellbaren Anzahl an {OPEN_CONFIG}POINTS{CLOSE_CONFIG} oder bestätigten Mails usw. erhalten und durch die Accountstufe Ermäßigungen oder Sonderboni erhalten können.', 6); + addAdminMenuSql('grade', 'list_grade_data', 'Auflisten...', 'Listet alle Accountstufen auf, auch sind diese hier editierbar, neue hinzufügbar und löschbar.', 1); + addAdminMenuSql('grade', 'list_cash_grade', 'Ermäßigungen/Sonderboni', 'Listet alle Ermäßigungen/Sonderboni auf, auch sind diese hier editierbar, neue hinzufügbar und löschbar.', 2); + addAdminMenuSql('grade', 'list_current_grades', 'Mitglieder-Accountstufen', 'Liste alle durch die Mitglieder aktuell erreichten Einstungen auf. Diese sind nicht editierbar (wir wollen ja nicht schummeln und bestimmten Mitgliedern bessere Accountstufen geben, oder? ;-) ).', 3); + addAdminMenuSql('grade', 'config_grade', 'Einstellungen ...', 'Diverse Einstellungen zu den Accountstufen.', 4); + + // Member menu + addMemberMenuSql('account', 'grade', 'Erreichte Stufe', 2); + + // Guest menu + addGuestMenuSql('members', 'grade', 'Accountstufen', 4); break; case 'remove': // Do stuff when removing extension // SQL commands to run + addDropTableSql('grade_data'); + addDropTableSql('grade_cash_data'); + addDropTableSql('grade_cash_connect'); + addDropTableSql('grade_user_connect'); + + // Menu entries + addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='grade' LIMIT 5"); + addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='grade' LIMIT 1"); + addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `what`='grade' LIMIT 1"); break; case 'activate': // Do stuff when admin activates this extension // SQL commands to run + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `locked`='N',`visible`='Y' WHERE `what`='grade' LIMIT 1"); + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `locked`='N',`visible`='Y' WHERE `what`='grade' LIMIT 1"); break; case 'deactivate': // Do stuff when admin deactivates this extension // SQL commands to run + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `locked`='Y',`visible`='N' WHERE `what`='grade' LIMIT 1"); + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `locked`='Y',`visible`='N' WHERE `what`='grade' LIMIT 1"); break; case 'update': // Update an extension @@ -78,14 +152,14 @@ switch (getExtensionMode()) { 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. + case 'test': // For testing purposes break; case 'init': // Do stuff when extension is initialized break; default: // Unknown extension mode - logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s detected.", getExtensionMode())); + reportBug(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName())); break; } // END - switch