+<?php
+/************************************************************************
+ * Mailer v0.2.1-FINAL Start: 11/24/2009 *
+ * =================== Last change: 11/24/2009 *
+ * *
+ * -------------------------------------------------------------------- *
+ * File : ext-grade.php *
+ * -------------------------------------------------------------------- *
+ * Short description : Grades for your members *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung : Accountstufen Ihrer Mitglieder *
+ * -------------------------------------------------------------------- *
+ * $Revision:: $ *
+ * $Date:: $ *
+ * $Tag:: 0.2.1-FINAL $ *
+ * $Author:: $ *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2009 by Roland Haeder *
+ * Copyright (c) 2009 - 2013 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 *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the Free Software *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
+ * MA 02110-1301 USA *
+ ************************************************************************/
+
+// Some security stuff...
+if (!defined('__SECURITY')) {
+ die();
+} // END - if
+
+// @TODO Remove double tabs from all lines
+ // 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');
+
+ // Add example grade
+ addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_grade_data` (`grade_name`,`grade_description`) VALUES ('Metall','Einfache Metallstufe.')");
+ addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_grade_cash_data` (`grade_cash_name`,`grade_cash_type`,`reached_points`) VALUES('Metallbonus','BONUS',1000)");
+ addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_grade_cash_connect` (`grade_id`,`grade_cash_id`) VALUES (1,1)");
+
+ // 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', 'Mitgliedaccountsstufen', '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);
+
+// [EOF]
+?>