4e4d696d0ac839c5404ed19e84a08f847448f730
[mailer.git] / inc / extensions / ext-online.php
1 <?php
2 /************************************************************************
3  * MXChange v0.2.1                                    Start: 01/14/2005 *
4  * ================                             Last change: 01/14/2005 *
5  *                                                                      *
6  * -------------------------------------------------------------------- *
7  * File              : ext-online.php                                   *
8  * -------------------------------------------------------------------- *
9  * Short description : Who is where online?                             *
10  * -------------------------------------------------------------------- *
11  * Kurzbeschreibung  : Wer befindet sich wo gerade Online?              *
12  * -------------------------------------------------------------------- *
13  * $Revision::                                                        $ *
14  * $Date::                                                            $ *
15  * $Tag:: 0.2.1-FINAL                                                 $ *
16  * $Author::                                                          $ *
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                  *
22  *                                                                      *
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.                                  *
27  *                                                                      *
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.                         *
32  *                                                                      *
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,               *
36  * MA  02110-1301  USA                                                  *
37  ************************************************************************/
38
39 // Some security stuff...
40 if (!defined('__SECURITY')) {
41         $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), '/inc') + 4) . '/security.php';
42         require($INC);
43 }
44
45 // Version number
46 EXT_SET_VERSION('0.0.5');
47
48 // Version history array (add more with , '0.1.0' 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'));
50
51 switch ($EXT_LOAD_MODE)
52 {
53         case 'register': // Do stuff when installation is running (modules.php?module=admin&action=login is called)
54                 // SQL commands to run
55                 ADD_EXT_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_online`");
56                 ADD_EXT_SQL("CREATE TABLE `{!_MYSQL_PREFIX!}_online` (
57 id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
58 sid VARCHAR(32) NOT NULL DEFAULT '',
59 ip VARCHAR(15) NOT NULL DEFAULT '',
60 userid BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
61 refid BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
62 module VARCHAR(255) NOT NULL DEFAULT '',
63 action VARCHAR(255) NOT NULL DEFAULT '',
64 what VARCHAR(255) NOT NULL DEFAULT '',
65 is_admin ENUM('Y','N') NOT NULL DEFAULT 'N',
66 is_member ENUM('Y','N') NOT NULL DEFAULT 'N',
67 timestamp VARCHAR(10) NOT NULL DEFAULT 0,
68 PRIMARY KEY(id),
69 KEY(userid),
70 KEY(refid),
71 KEY `admin_member` (`is_admin`,`is_member`)
72 ) TYPE={!_TABLE_TYPE!}");
73                 ADD_EXT_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('misc','usr_online','Online-Statistik','Eine Liste von derzeit &quot;Online&quot; Usern. Doppelte Eintr&auml;ge k&ouml;nnte auf mangelnden Cookie-Support des Browsers oder auf einen Spider hindeuten.', 1)");
74                 break;
75
76         case 'remove': // Do stuff when removing extension
77                 // SQL commands to run
78                 ADD_EXT_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_online`");
79                 ADD_EXT_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_admin_menu` WHERE `what`='usr_online'");
80                 ADD_EXT_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_guest_menu` WHERE `action`='online'");
81
82                 // Unregister filter
83                 unregisterFilter('init', 'UPDATE_ONLINE_LIST', true, $dry_run);
84                 break;
85
86         case 'activate': // Do stuff when admin activates this extension
87                 // SQL commands to run
88                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_guest_menu` SET `visible`='Y', `locked`='N' WHERE `action`='online' LIMIT 1");
89                 break;
90
91         case 'deactivate': // Do stuff when admin deactivates this extension
92                 // SQL commands to run
93                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_guest_menu` SET `visible`='N', `locked`='Y' WHERE `action`='online' LIMIT 1");
94                 break;
95
96         case 'update': // Update an extension
97                 switch ($EXT_VER)
98                 {
99                         case '0.0.1': // SQL queries for v0.0.1
100                                 // Update notes (these will be set as task text!)
101                                 EXT_SET_UPDATE_NOTES("Fehler <u>Unknown column 'visibled' in 'field list'</u> behoben.");
102                                 break;
103
104                         case '0.0.2': // SQL queries for v0.0.2
105                                 // Update notes (these will be set as task text!)
106                                 EXT_SET_UPDATE_NOTES("Seit <a href=\"#\">Patch 340</a> &uuml;berfl&uuml;ssige HTML-Tags entfernt.");
107                                 break;
108
109                         case '0.0.3': // SQL queries for v0.0.3
110                                 // Update notes (these will be set as task text!)
111                                 EXT_SET_UPDATE_NOTES("HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert.");
112                                 break;
113
114                         case '0.0.4': // SQL queries for v0.0.4
115                                 // Update notes (these will be set as task text!)
116                                 EXT_SET_UPDATE_NOTES("Erstellung der Datenbanktabelle `{!_MYSQL_PREFIX!}_online` in diese Erweiterung ausgelagert.");
117                                 break;
118
119                         case '0.0.5': // SQL queries for v0.0.5
120                                 ADD_EXT_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_guest_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('online',NULL,'Jetzt Online','2','Y','N')");
121
122                                 // Register filter
123                                 registerFilter('init', 'UPDATE_ONLINE_LIST', false, true, $dry_run);
124
125                                 // Update notes (these will be set as task text!)
126                                 EXT_SET_UPDATE_NOTES("Hinzuf&uuml;gen des Men&uuml;punktes &quot;Jetzt Online&quot; wird nun von dieser Erweiterung erledigt. Filter hinzugef&uuml;gt.");
127                                 break;
128                 }
129                 break;
130
131                         case 'modify': // When the extension got modified
132                                 break;
133
134                         case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
135                                 break;
136
137                         default: // Do stuff when extension is loaded
138                                 break;
139 }
140
141 //
142 ?>