2 /************************************************************************
3 * MXChange v0.2.1 Start: 02/26/2005 *
4 * ================ Last change: 02/26/2005 *
6 * -------------------------------------------------------------------- *
7 * File : ext-newsletter.php *
8 * -------------------------------------------------------------------- *
9 * Short description : Extension for sending newsletters *
10 * -------------------------------------------------------------------- *
11 * Kurzbeschreibung : Erweiterung zum Versenden von Newslettern *
12 * -------------------------------------------------------------------- *
15 * $Tag:: 0.2.1-FINAL $ *
17 * Needs to be in all Files and every File needs "svn propset *
18 * svn:keywords Date Revision" (autoprobset!) at least!!!!!! *
19 * -------------------------------------------------------------------- *
20 * Copyright (c) 2003 - 2008 by Roland Haeder *
21 * For more information visit: http://www.mxchange.org *
23 * This program is free software; you can redistribute it and/or modify *
24 * it under the terms of the GNU General Public License as published by *
25 * the Free Software Foundation; either version 2 of the License, or *
26 * (at your option) any later version. *
28 * This program is distributed in the hope that it will be useful, *
29 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
30 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
31 * GNU General Public License for more details. *
33 * You should have received a copy of the GNU General Public License *
34 * along with this program; if not, write to the Free Software *
35 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
37 ************************************************************************/
39 // Some security stuff...
40 if (!defined('__SECURITY')) {
41 $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
46 EXT_SET_VERSION("0.1.2");
48 // Version history array (add more with , "0.1" and so on)
49 EXT_SET_VER_HISTORY(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"));
51 switch ($EXT_LOAD_MODE)
53 case "register": // Do stuff when installation is running (modules.php?module=admin&action=login is called)
54 // SQL commands to run
58 case "remove": // Do stuff when removing extension
59 // SQL commands to run
60 ADD_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_admin_menu` WHERE `action`='newsletter' AND what != 'send_newsletter'");
61 ADD_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_member_menu` WHERE `what`='newsletter'");
64 case "activate": // Do stuff when admin activates this extension
65 // SQL commands to run
66 ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `locked`='N', `visible`='Y' WHERE `what`='newsletter' LIMIT 1");
69 case "deactivate": // Do stuff when admin deactivates this extension
70 // SQL commands to run
71 ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `locked`='Y', `visible`='N' WHERE `what`='newsletter' LIMIT 1");
74 case "update": // Update an extension
77 case "0.0.1": // SQL queries for v0.0.1
78 ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('newsletter', NULL, 'Newsletter','Einstellungen am Newsletter, Newsletter versenden, Abbestellungen auflisten usw.', 3)");
79 ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('newsletter','list_newsletter','Abbestellungen','Alle Abbestellungen auflisten und bearbeiten.', 2)");
80 ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('newsletter','config_newsletter','Einstellungen','Gebühr zum Abbestellen des Newsletters usw. sind hier einstellbar.', 3)");
81 ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_admin_menu` SET `action`='newsletter', `what`='send_newsletter', `title`='Versenden', `sort`='1' WHERE `what`='newsletter' LIMIT 1");
82 ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_member_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES ('main','newsletter','Newsletter-Empfang','N','Y', 10)");
83 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD nl_charge FLOAT(10,2) UNSIGNED NOT NULL DEFAULT '5.00'");
84 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD nl_receive ENUM('Y','N') NOT NULL DEFAULT 'Y'");
85 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD nl_until VARCHAR(10) NOT NULL DEFAULT 0");
86 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD nl_timespan VARCHAR(10) NOT NULL DEFAULT 0");
88 // Update notes (these will be set as task text!)
89 EXT_SET_UPDATE_NOTES("Vor der eigentlichen Freigabe dieser Erweiterungen habe ich sie versehendlich im Archiv mit auf den Server hochgeladen. Diese Version fügt die bereits angekündigte Funktionalitäten, wie zum Beispiel das Einstellen der Abschaltgebühr.");
92 case "0.0.2": // SQL queries for v0.0.2
93 // Update notes (these will be set as task text!)
94 EXT_SET_UPDATE_NOTES("URL im Versendeformular und Option <em>Immer aktiv</em> für diese Erweiterung deaktiviert.");
97 case "0.0.3": // SQL queries for v0.0.3
98 // Update notes (these will be set as task text!)
99 EXT_SET_UPDATE_NOTES("Wörter <strong>Mailtausch</strong>, <strong>Mailtausches</strong> und <strong>Mailtauscher</strong> sind austauschbar.");
102 case "0.0.4": // SQL queries for v0.0.4
103 // Update notes (these will be set as task text!)
104 EXT_SET_UPDATE_NOTES("HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert.");
107 case "0.0.5": // SQL queries for v0.0.5
108 // Update notes (these will be set as task text!)
109 EXT_SET_UPDATE_NOTES("Abspeichern von Einstellungen repariert.");
112 case "0.0.6": // SQL queries for v0.0.6
113 // Update notes (these will be set as task text!)
114 EXT_SET_UPDATE_NOTES("Bitte Script inc/monthly_newsletter.php löschen!");
117 case "0.0.7": // SQL queries for v0.0.7
118 // Update notes (these will be set as task text!)
119 EXT_SET_UPDATE_NOTES("Script <strong>inc/monthly/monthly_newsletter.php</strong> wird nicht mehr ausgeführt, wenn die Erweiterung nicht aktiviert ist.");
122 case "0.0.8": // SQL queries for v0.0.8
123 // Update notes (these will be set as task text!)
124 EXT_SET_UPDATE_NOTES("Sicherheitsupdate für die Include-Befehle.");
127 case "0.0.9": // SQL queries for v0.0.9
128 // Update notes (these will be set as task text!)
129 EXT_SET_UPDATE_NOTES("Nur bei installierter Erweiterung <strong>html_mail</strong> können Sie auch HTML-Mails versenden.");
132 case "0.1.0": // SQL queries for v0.2.1
133 // Update notes (these will be set as task text!)
134 EXT_SET_UPDATE_NOTES("Nur bei installierter Erweiterung <strong>html_mail</strong> können Sie auch HTML-Mails versenden.");
137 case "0.1.1": // SQL queries for v0.1.1
139 // Update notes (these will be set as task text!)
140 EXT_SET_UPDATE_NOTES("Währung auf die Erweiterung <a href=\"#\"><strong>ext-other.zip</strong></a> verlagert. Bitte auch diese aktualisieren.");
143 case "0.1.2": // SQL queries for v0.1.2
144 // Update notes (these will be set as task text!)
145 EXT_SET_UPDATE_NOTES("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
150 case "modify": // When the extension got modified
153 case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
156 default: // Do stuff when extension is loaded
157 // URL ends which are used to indentify the end of an URL or email link
158 // Don't use these chars in links... ;-)
160 $GLOBALS['url_ends'] = array(
167 // Valid email chars (without @, or do you want to have another @ inside your email addy?)
168 $GLOBALS['valid_email_chars'] = array(
169 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s',
170 't','u','v','w','x','y','z','a','B','C','D','E','F','G','H','I','J','K','L',
171 'M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','-','.','_','0','1',
172 '2','3','4','5','6','7','8','9'
175 if (isResetModeEnabled() && (!isDebugModeEnabled()) && ($GLOBALS['output_mode'] != 1)) {
176 // Daily reset was run so let's check out for expired newsletter orders
177 $INC_POOL[] = sprintf("%sinc/monthly/monthly_newsletter.php", constant('PATH'));