3669fb8fc49537ede846881ec883bdb139f0c8f4
[mailer.git] / inc / extensions / ext-html_mail.php
1 <?php
2 /************************************************************************
3  * MXChange v0.2.1                                    Start: 03/22/2004 *
4  * ================                             Last change: 05/02/2004 *
5  *                                                                      *
6  * -------------------------------------------------------------------- *
7  * File              : ext-html_mail.php                                *
8  * -------------------------------------------------------------------- *
9  * Short description : HTML mails with default mail() routine           *
10  * -------------------------------------------------------------------- *
11  * Kurzbeschreibung  : HTML-Mails mit Standart mail()-Routine           *
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 (!defined('__SECURITY')) {
36         $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
37         require($INC);
38 }
39
40 // Version number
41 $EXT_VERSION = "0.1.5";
42
43 // Auto-set extension version
44 if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
45
46 // Version history array (add more with , "0.1" and so on)
47 $EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.51", "0.0.52", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5");
48
49 switch ($EXT_LOAD_MODE)
50 {
51 case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
52         // SQL commands to run
53         $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD html ENUM('Y','N') NOT NULL DEFAULT 'Y'";
54         $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_bonus ADD html_msg ENUM('Y','N') NOT NULL DEFAULT 'N'";
55         $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_pool ADD html_msg ENUM('Y','N') NOT NULL DEFAULT 'N'";
56         $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('main', 'html_mail', 'HTML-Empfang', '3', 'Y', 'Y')";
57         break;
58
59 case "remove": // Do stuff when removing extension
60         // SQL commands to run
61         $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data DROP html";
62         $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_bonus DROP html_msg";
63         $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_pool DROP html_msg";
64         $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE action='main' AND what='html_mail' LIMIT 1";
65         break;
66
67 case "activate": // Do stuff when admin activates this extension
68         // SQL commands to run
69         $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='N' WHERE action='main' AND what='html_mail' LIMIT 1";
70         break;
71
72 case "deactivate": // Do stuff when admin deactivates this extension
73         // SQL commands to run
74         $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='Y' WHERE action='main' AND what='html_mail' LIMIT 1";
75         break;
76
77 case "update": // Update an extension
78         switch ($EXT_VER)
79         {
80         case "0.0.6": // SQL queries for v0.0.6
81                 // Update notes (these will be set as task text!)
82                 $UPDATE_NOTES = "Der erstellte HTML-Code wird noch kompiliert (eigene HTML-Codes umgewandelt).";
83                 break;
84
85         case "0.0.8": // SQL queries for v0.0.8
86                 // Update notes (these will be set as task text!)
87                 $UPDATE_NOTES = "Fehlende Abfrage im Mitlieder-Modul, on Erweiterung auch aktiviert ist.";
88                 break;
89
90         case "0.0.9": // SQL queries for v0.0.9
91                 // Update notes (these will be set as task text!)
92                 $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
93                 break;
94
95         case "0.1.0": // SQL queries for v0.2.1
96                 // Update notes (these will be set as task text!)
97                 $UPDATE_NOTES = "Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.";
98                 break;
99
100         case "0.1.1": // SQL queries for v0.1.1
101                 // Update notes (these will be set as task text!)
102                 $UPDATE_NOTES = "Seit <A href=\"#\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
103                 break;
104
105         case "0.1.2": // SQL queries for v0.1.2
106                 // Update notes (these will be set as task text!)
107                 $UPDATE_NOTES = "W&ouml;rter <STRONG>Mailtausch</STRONG>, <STRONG>Mailtausches</STRONG> und <STRONG>Mailtauscher</STRONG> sind austauschbar.";
108                 break;
109
110         case "0.1.3": // SQL queries for v0.1.3
111                 // Update notes (these will be set as task text!)
112                 $UPDATE_NOTES = "Sicherheitsupdate: SQL-Anweisungen gesch&uuml;tzt.";
113                 break;
114
115         case "0.1.4": // SQL queries for v0.1.4
116                 // Update notes (these will be set as task text!)
117                 $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
118                 break;
119
120         case "0.1.5": // SQL queries for v0.1.5
121                 // Update notes (these will be set as task text!)
122                 $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
123                 break;
124         }
125         break;
126
127 default: // Do stuff when extension is loaded
128
129         // Define all arrary variables as global!
130         global $HTML_TAGS, $URL_ENDS, $VALID_EMAI_CHARS;
131
132         // Valid HTML tags (only simple and no attributes!)
133         $HTML_TAGS = array(
134                 "b",
135                 "i",
136                 "u",
137                 "ol",
138                 "ul",
139                 "li",
140                 "strong",
141                 "center",
142                 "left",
143                 "right",
144                 "br",
145         );
146
147         // URL ends which are used to indentify the end of an URL or email link
148         // Don't use these chars in links... ;-)
149         //
150         $URL_ENDS = array(
151                 " ",
152                 "\n",
153                 "\r",
154                 ")",
155         );
156
157         // Valid email chars (without @, or do you want to have another @ inside your email addy?)
158         $VALID_EMAIL_CHARS = array(
159                 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
160                 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',
161                 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',   '-', '.', '_', '0', '1',
162                 '2', '3', '4', '5', '6', '7', '8', '9'
163         );
164         break;
165 }
166 // Language file prefix
167 $EXT_LANG_PREFIX = "html_mail";
168
169 // Extension is always active?
170 $EXT_ALWAYS_ACTIVE = "N";
171
172 //
173 ?>