04ab4c2c39b9105164d70b23ed8744e822ec9209
[mailer.git] / inc / extensions / ext-newsletter.php
1 <?php
2 /************************************************************************
3  * MXChange v0.2.1                                    Start: 02/26/2005 *
4  * ================                             Last change: 02/26/2005 *
5  *                                                                      *
6  * -------------------------------------------------------------------- *
7  * File              : ext-newsletter.php                               *
8  * -------------------------------------------------------------------- *
9  * Short description : Extension for sending newsletters                *
10  * -------------------------------------------------------------------- *
11  * Kurzbeschreibung  : Erweiterung zum Versenden von Newslettern        *
12  * -------------------------------------------------------------------- *
13  *                                                                      *
14  * -------------------------------------------------------------------- *
15  * Copyright (c) 2003 - 2008 by Roland Haeder                           *
16  * For more information visit: http://www.mxchange.org                  *
17  *                                                                      *
18  * This program is free software; you can redistribute it and/or modify *
19  * it under the terms of the GNU General Public License as published by *
20  * the Free Software Foundation; either version 2 of the License, or    *
21  * (at your option) any later version.                                  *
22  *                                                                      *
23  * This program is distributed in the hope that it will be useful,      *
24  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
25  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
26  * GNU General Public License for more details.                         *
27  *                                                                      *
28  * You should have received a copy of the GNU General Public License    *
29  * along with this program; if not, write to the Free Software          *
30  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
31  * MA  02110-1301  USA                                                  *
32  ************************************************************************/
33
34 // Some security stuff...
35 if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
36 {
37         $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
38         require($INC);
39 }
40
41 // Version number
42 $EXT_VERSION = "0.1.2";
43
44 // Auto-set extension version
45 if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
46
47 // Version history array (add more with , "0.1" and so on)
48 $EXT_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");
49
50 switch ($EXT_LOAD_MODE)
51 {
52 case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
53         // SQL commands to run
54         $SQLs[] = "";
55         break;
56
57 case "remove": // Do stuff when removing extension
58         // SQL commands to run
59         $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='newsletter' AND what != 'send_newsletter' LIMIT 3";
60         $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE what='newsletter' LIMIT 1";
61         break;
62
63 case "activate": // Do stuff when admin activates this extension
64         // SQL commands to run
65         $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET locked='N', visible='Y' WHERE what='newsletter' LIMIT 1";
66         break;
67
68 case "deactivate": // Do stuff when admin deactivates this extension
69         // SQL commands to run
70         $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET locked='Y', visible='N' WHERE what='newsletter' LIMIT 1";
71         break;
72
73 case "update": // Update an extension
74         switch ($EXT_VER)
75         {
76         case "0.0.1": // SQL queries for v0.0.1
77                 $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('newsletter', NULL, 'Newsletter', 'Einstellungen am Newsletter, Newsletter versenden, Abbestellungen auflisten usw.', 3)";
78                 $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('newsletter', 'list_newsletter', 'Abbestellungen', 'Alle Abbestellungen auflisten und bearbeiten.', 2)";
79                 $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('newsletter', 'config_newsletter', 'Einstellungen', 'Geb&uuml;hr zum Abbestellen des Newsletters usw. sind hier einstellbar.', 3)";
80                 $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET action='newsletter', what='send_newsletter', title='Versenden', sort='1' WHERE what='newsletter' LIMIT 1";
81                 $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, visible, locked, sort) VALUES ('main', 'newsletter', 'Newsletter-Empfang', 'N', 'Y', 10)";
82                 $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD nl_charge FLOAT(10,2) UNSIGNED NOT NULL DEFAULT '5.00'";
83                 $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD nl_receive ENUM('Y', 'N') NOT NULL DEFAULT 'Y'";
84                 $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD nl_until VARCHAR(10) NOT NULL DEFAULT '0'";
85                 $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD nl_timespan VARCHAR(10) NOT NULL DEFAULT '0'";
86
87                 // Update notes (these will be set as task text!)
88                 $UPDATE_NOTES = "Vor der eigentlichen Freigabe dieser Erweiterungen habe ich sie versehendlich im Archiv mit auf den Server hochgeladen. Diese Version f&uuml;gt die bereits angek&uuml;ndigte Funktionalit&auml;ten, wie zum Beispiel das Einstellen der Abschaltgeb&uuml;hr.";
89                 break;
90
91         case "0.0.2": // SQL queries for v0.0.2
92                 // Update notes (these will be set as task text!)
93                 $UPDATE_NOTES = "URL im Versendeformular und Option <I>Immer aktiv</I> f&uuml;r diese Erweiterung deaktiviert.";
94                 break;
95
96         case "0.0.3": // SQL queries for v0.0.3
97                 // Update notes (these will be set as task text!)
98                 $UPDATE_NOTES = "W&ouml;rter <STRONG>Mailtausch</STRONG>, <STRONG>Mailtausches</STRONG> und <STRONG>Mailtauscher</STRONG> sind austauschbar.";
99                 break;
100
101         case "0.0.4": // SQL queries for v0.0.4
102                 // Update notes (these will be set as task text!)
103                 $UPDATE_NOTES = "HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert.";
104                 break;
105
106         case "0.0.5": // SQL queries for v0.0.5
107                 // Update notes (these will be set as task text!)
108                 $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
109                 break;
110
111         case "0.0.6": // SQL queries for v0.0.6
112                 // Update notes (these will be set as task text!)
113                 $UPDATE_NOTES = "Bitte Script inc/monthly_newsletter.php l&ouml;schen!";
114                 break;
115
116         case "0.0.7": // SQL queries for v0.0.7
117                 // Update notes (these will be set as task text!)
118                 $UPDATE_NOTES = "Script <STRONG>inc/monthly/monthly_newsletter.php</STRONG> wird nicht mehr ausgef&uuml;hrt, wenn die Erweiterung nicht aktiviert ist.";
119                 break;
120
121         case "0.0.8": // SQL queries for v0.0.8
122                 // Update notes (these will be set as task text!)
123                 $UPDATE_NOTES = "Sicherheitsupdate f&uuml;r die Include-Befehle.";
124                 break;
125
126         case "0.0.9": // SQL queries for v0.0.9
127                 // Update notes (these will be set as task text!)
128                 $UPDATE_NOTES = "Nur bei installierter Erweiterung <STRONG>html_mail</STRONG> k&ouml;nnen Sie auch HTML-Mails versenden.";
129                 break;
130
131         case "0.1.0": // SQL queries for v0.2.1
132                 // Update notes (these will be set as task text!)
133                 $UPDATE_NOTES = "Nur bei installierter Erweiterung <STRONG>html_mail</STRONG> k&ouml;nnen Sie auch HTML-Mails versenden.";
134                 break;
135
136         case "0.1.1": // SQL queries for v0.1.1
137                 $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config DROP nl_currency";
138
139                 // Update notes (these will be set as task text!)
140                 $UPDATE_NOTES = "W&auml;hrung auf die Erweiterung <A href=\"#\"><STRONG>ext-other.zip</STRONG></A> verlagert. Bitte auch diese aktualisieren.";
141                 break;
142
143         case "0.1.2": // SQL queries for v0.1.2
144                 // Update notes (these will be set as task text!)
145                 $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
146                 break;
147         }
148         break;
149
150 default: // Do stuff when extension is loaded
151         // URL ends which are used to indentify the end of an URL or email link
152         // Don't use these chars in links... ;-)
153         //
154         $URL_ENDS = array(
155                 " ",
156                 "\n",
157                 "\r",
158                 ")",
159         );
160
161         // Valid email chars (without @, or do you want to have another @ inside your email addy?)
162         $VALID_EMAIL_CHARS = array(
163                 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
164                 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',
165                 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',   '-', '.', '_', '0', '1',
166                 '2', '3', '4', '5', '6', '7', '8', '9'
167         );
168
169         if (isBooleanConstantAndTrue('__DAILY_RESET') && (!DEBUG_MODE) && ($CSS != 1))
170         {
171                 // Daily reset was run so let's check out for expired newsletter orders
172                 $INC_POOL[] = sprintf("%sinc/monthly/monthly_newsletter.php", PATH);
173         }
174         break;
175 }
176
177 // Language file prefix
178 $EXT_LANG_PREFIX = "newsletter";
179
180 // Extension is always active?
181 $EXT_ALWAYS_ACTIVE = "N";
182
183 //
184 ?>