All database names are now 'back-ticked' and constant _MYSQL_PREFIX is wrapped. Partl...
[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  *                                                                      *
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.0.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");
48
49 switch ($EXT_LOAD_MODE)
50 {
51 case "register": // Do stuff when installation is running (modules.php?module=admin&action=login is called)
52         // SQL commands to run
53         $SQLs[] = "DROP TABLE IF EXISTS `{!MYSQL_PREFIX!}_online`";
54         $SQLs[] = "CREATE TABLE `{!MYSQL_PREFIX!}_online` (
55 id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
56 sid VARCHAR(32) NOT NULL DEFAULT '',
57 ip VARCHAR(15) NOT NULL DEFAULT '',
58 userid BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
59 refid BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
60 module VARCHAR(255) NOT NULL DEFAULT '',
61 action VARCHAR(255) NOT NULL DEFAULT '',
62 what VARCHAR(255) NOT NULL DEFAULT '',
63 is_admin ENUM('Y','N') NOT NULL DEFAULT 'N',
64 is_member ENUM('Y','N') NOT NULL DEFAULT 'N',
65 timestamp VARCHAR(10) NOT NULL DEFAULT 0,
66 PRIMARY KEY(id),
67 KEY(userid),
68 KEY(refid)
69 ) TYPE=MyISAM";
70         $SQLs[]="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)";
71         break;
72
73 case "remove": // Do stuff when removing extension
74         // SQL commands to run
75         $SQLs[] = "DROP TABLE IF EXISTS `{!MYSQL_PREFIX!}_online`";
76         $SQLs[] = "DELETE LOW_PRIORITY FROM `{!MYSQL_PREFIX!}_admin_menu` WHERE what='usr_online' LIMIT 1";
77         $SQLs[] = "DELETE LOW_PRIORITY FROM `{!MYSQL_PREFIX!}_guest_menu` WHERE action='online' LIMIT 1";
78
79         // Unregister filter
80         UNREGISTER_FILTER('init', 'UPDATE_ONLINE_LIST', true, $dry_run);
81         break;
82
83 case "activate": // Do stuff when admin activates this extension
84         // SQL commands to run
85         $SQLs[] = "UPDATE `{!MYSQL_PREFIX!}_guest_menu` SET visible='Y', locked='N' WHERE action='online' LIMIT 1";
86         break;
87
88 case "deactivate": // Do stuff when admin deactivates this extension
89         // SQL commands to run
90         $SQLs[] = "UPDATE `{!MYSQL_PREFIX!}_guest_menu` SET visible='N', locked='Y' WHERE action='online' LIMIT 1";
91         break;
92
93 case "update": // Update an extension
94         switch ($EXT_VER)
95         {
96         case "0.0.1": // SQL queries for v0.0.1
97                 // Update notes (these will be set as task text!)
98                 $UPDATE_NOTES = "Fehler <u>Unknown column 'visibled' in 'field list'</u> behoben.";
99                 break;
100
101         case "0.0.2": // SQL queries for v0.0.2
102                 // Update notes (these will be set as task text!)
103                 $UPDATE_NOTES = "Seit <a href=\"#\">Patch 340</a> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
104                 break;
105
106         case "0.0.3": // SQL queries for v0.0.3
107                 // Update notes (these will be set as task text!)
108                 $UPDATE_NOTES = "HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert.";
109                 break;
110
111         case "0.0.4": // SQL queries for v0.0.4
112                 // Update notes (these will be set as task text!)
113                 $UPDATE_NOTES = "Erstellung der Datenbanktabelle `{!MYSQL_PREFIX!}_online` in diese Erweiterung ausgelagert.";
114                 break;
115
116         case "0.0.5": // SQL queries for v0.0.5
117                 $SQLs[] = "INSERT INTO `{!MYSQL_PREFIX!}_guest_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('online',NULL,'Jetzt Online','2','Y','N')";
118
119                 // Register filter
120                 REGISTER_FILTER('init', 'UPDATE_ONLINE_LIST', false, true, $dry_run);
121
122                 // Update notes (these will be set as task text!)
123                 $UPDATE_NOTES = "Hinzuf&uuml;gen des Men&uuml;punktes &quot;Jetzt Online&quot; wird nun von dieser Erweiterung erledigt. Filter hinzugef&uuml;gt.";
124                 break;
125         }
126         break;
127
128 case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
129         break;
130
131 default: // Do stuff when extension is loaded
132         break;
133 }
134
135 //
136 ?>