3 class moduleAdmin// extends NP_UpdatePingServer
11 function moduleAdmin ($plugin_name)
15 $this->myPlugin =& $manager->getPlugin('NP_' . $plugin_name);
16 $this->plugin_name = $plugin_name;
17 $this->getModuleList();
22 return $this->myPlugin;
25 function getModuleDir()
27 return $this->myPlugin->getDirectory() . 'modules/';
30 function getModulePrefix()
32 return $this->plugin_name . 'Module_';
35 function getModuleTable()
37 return sql_table('plug_' . $this->getModuleTablePrefix() . '_modules');
40 function getModuleTablePrefix()
42 return $this->myPlugin->getShortName();
45 function _loadModule($name) {
46 $moduleClass = $this->getModulePrefix() . $name;
47 if (!class_exists($moduleClass)) {
48 $moduleFile = $this->getModuleDir() .$moduleClass . '.php';
49 if (!file_exists($moduleFile)) {
50 $errmsg = 'Module ' . $name . ' was not loaded (File not found)';
51 ACTIONLOG::add(WARNING, $errmsg);
55 if (!class_exists($moduleClass)) {
56 $errmsg = 'Module ' . $name . ' was not loaded (Class not found in file, possible parse error)';
57 ACTIONLOG::add(WARNING, $errmsg);
60 eval('$this->modules[$name] =& new ' . $moduleClass . '();');
61 $this->modules[$name]->initModule($this->myPlugin);
64 $this->modules[$name] = false;
67 function &getModule($name) {
68 $module =& $this->modules[$name];
71 // load class if needed
72 $this->_loadModule($name);
73 $module =& $this->modules[$name];
78 function getModuleOrder($name)
80 $sharedFunctions = new sharedFunctions();
82 . ' moduleorder as result '
84 . $this->getModuleTable()
86 . ' modulename = ' . $sharedFunctions->quoteSmart($name);
87 return quickQuery($query);
90 function getModuleList()
92 $this->moduleList = array();
97 . $this->getModuleTable()
100 $result = sql_query($query);
101 while ($o = mysql_fetch_object($result)) {
102 $moduleName = $o->modulename;
103 $moduleClass = $this->getModulePrefix() . $moduleName;
104 $moduleFile = $this->getModuleDir() . $moduleClass . '.php';
105 if (file_exists($moduleFile)) {
106 $this->moduleList[] = $moduleName;
109 // return $this->moduleList;
112 function checkModule($moduleName)
114 $moduleClass = $this->getModulePrefix() . $moduleName;
115 $moduleFile = $this->getModuleDir() . $moduleClass . '.php';
116 return file_exists($moduleFile);
119 function _moduleInstall($moduleName)
121 $sharedFunctions = new sharedFunctions();
124 . ' COUNT(moduleid) as result '
126 . $this->getModuleTable();
127 $mods = quickQuery($query);
129 $query = 'INSERT INTO '
130 . $this->getModuleTable()
138 . $sharedFunctions->quoteSmart($moduleName)
141 $modId = mysql_insert_id();
143 $module =& $this->getModule($moduleName);
145 $query = 'DELETE FROM '
146 . $this->getModuleTable()
148 . ' moduleid = ' . intval($modId);
150 $this->error(_NP_PINGSERVER_ERROR_MODNOTLOADED);
152 $module->initModule($this->myPlugin);
153 if (method_exists($module, 'installModule')) {
154 $module->installModule();
158 function _moduleUnInstall($moduleName)
160 $sharedFunctions = new sharedFunctions();
162 if (!$this->checkModule($moduleName)) {
163 $this->error(_NP_PINGSERVER_ERROR_MODFILEERROR . ' (' . $moduleName . ')');
165 $module =& $this->getModule($moduleName);
166 $module->initModule($this->myPlugin);
167 if (method_exists($module, 'uninstall')) {
168 $module->uninstall();
170 $query = 'DELETE FROM '
171 . $this->getModuleTable()
173 . ' modulename = ' . $sharedFunctions->quoteSmart($moduleName);
179 $this->p_admin->start();
181 $dir=$this->plugin->getAdminURL();
184 <?php echo htmlspecialchars($msg);
186 echo "<a href='".$dir."index.php' onclick='history.back()'>"._BACK."</a>";
188 $this->p_admin->end();