1+ <?php
2+
3+ /*
4+ Copyright (c) 2007, Till Brehm, projektfarm Gmbh
5+ All rights reserved.
6+
7+ Redistribution and use in source and binary forms, with or without modification,
8+ are permitted provided that the following conditions are met:
9+
10+ * Redistributions of source code must retain the above copyright notice,
11+ this list of conditions and the following disclaimer.
12+ * Redistributions in binary form must reproduce the above copyright notice,
13+ this list of conditions and the following disclaimer in the documentation
14+ and/or other materials provided with the distribution.
15+ * Neither the name of ISPConfig nor the names of its contributors
16+ may be used to endorse or promote products derived from this software without
17+ specific prior written permission.
18+
19+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22+ IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
23+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24+ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
26+ OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29+ */
30+
31+ class server_module {
32+
33+ var $ module_name = 'server_module ' ;
34+ var $ class_name = 'server_module ' ;
35+ var $ actions_available = array ( 'server_insert ' ,
36+ 'server_update ' ,
37+ 'server_delete ' ,
38+ 'server_ip_insert ' ,
39+ 'server_ip_update ' ,
40+ 'server_ip_delete ' );
41+
42+ /*
43+ This function is called when the module is loaded
44+ */
45+
46+ function onLoad () {
47+ global $ app ;
48+
49+ /*
50+ Annonce the actions that where provided by this module, so plugins
51+ can register on them.
52+ */
53+
54+ $ app ->plugins ->announceEvents ($ this ->module_name ,$ this ->actions_available );
55+
56+ /*
57+ As we want to get notified of any changes on several database tables,
58+ we register for them.
59+
60+ The following function registers the function "functionname"
61+ to be executed when a record for the table "dbtable" is
62+ processed in the sys_datalog. "classname" is the name of the
63+ class that contains the function functionname.
64+ */
65+
66+ $ app ->modules ->registerTableHook ('server ' ,'server_module ' ,'process ' );
67+ $ app ->modules ->registerTableHook ('server_ip ' ,'server_module ' ,'process ' );
68+
69+ // Register service
70+ //$app->services->registerService('httpd','web_module','restartHttpd');
71+
72+ }
73+
74+ /*
75+ This function is called when a change in one of the registered tables is detected.
76+ The function then raises the events for the plugins.
77+ */
78+
79+ function process ($ tablename ,$ action ,$ data ) {
80+ global $ app ;
81+
82+ switch ($ tablename ) {
83+ case 'server ' :
84+ if ($ action == 'i ' ) $ app ->plugins ->raiseEvent ('server_insert ' ,$ data );
85+ if ($ action == 'u ' ) $ app ->plugins ->raiseEvent ('server_update ' ,$ data );
86+ if ($ action == 'd ' ) $ app ->plugins ->raiseEvent ('server_delete ' ,$ data );
87+ break ;
88+ case 'server_ip ' :
89+ if ($ action == 'i ' ) $ app ->plugins ->raiseEvent ('server_ip_insert ' ,$ data );
90+ if ($ action == 'u ' ) $ app ->plugins ->raiseEvent ('server_ip_update ' ,$ data );
91+ if ($ action == 'd ' ) $ app ->plugins ->raiseEvent ('server_ip_delete ' ,$ data );
92+ break ;
93+ } // end switch
94+ } // end function
95+
96+ /*
97+ // This function is used
98+ function restartHttpd($action = 'restart') {
99+ global $app;
100+ if($action == 'restart') {
101+ exec('/etc/init.d/apache2 restart');
102+ } else {
103+ exec('/etc/init.d/apache2 reload');
104+ }
105+ }
106+ */
107+
108+ } // end class
109+
110+ ?>
0 commit comments