$module) { // New module WT_DB::prepare("INSERT IGNORE INTO `##module` (module_name) VALUES (?)")->execute(array($module_name)); // Removed component if (!$module instanceof WT_Module_Block) { WT_DB::prepare( "DELETE FROM `##module_privacy` WHERE module_name=? AND component='block'" )->execute(array($module_name)); WT_DB::prepare( "DELETE `##block_setting` FROM `##block_setting` JOIN `##block` USING (block_id) WHERE module_name=?" )->execute(array($module_name)); WT_DB::prepare( "DELETE FROM `##block` WHERE module_name=?" )->execute(array($module_name)); } if (!$module instanceof WT_Module_Chart) { WT_DB::prepare( "DELETE FROM `##module_privacy` WHERE module_name=? AND component='chart'" )->execute(array($module_name)); } if (!$module instanceof WT_Module_Menu) { WT_DB::prepare( "DELETE FROM `##module_privacy` WHERE module_name=? AND component='menu'" )->execute(array($module_name)); WT_DB::prepare( "UPDATE `##module` SET menu_order=NULL WHERE module_name=?" )->execute(array($module_name)); } if (!$module instanceof WT_Module_Report) { WT_DB::prepare( "DELETE FROM `##module_privacy` WHERE module_name=? AND component='report'" )->execute(array($module_name)); } if (!$module instanceof WT_Module_Sidebar) { WT_DB::prepare( "DELETE FROM `##module_privacy` WHERE module_name=? AND component='sidebar'" )->execute(array($module_name)); WT_DB::prepare( "UPDATE `##module` SET sidebar_order=NULL WHERE module_name=?" )->execute(array($module_name)); } if (!$module instanceof WT_Module_Tab) { WT_DB::prepare( "DELETE FROM `##module_privacy` WHERE module_name=? AND component='tab'" )->execute(array($module_name)); WT_DB::prepare( "UPDATE `##module` SET tab_order=NULL WHERE module_name=?" )->execute(array($module_name)); } if (!$module instanceof WT_Module_Theme) { WT_DB::prepare( "DELETE FROM `##module_privacy` WHERE module_name=? AND component='theme'" )->execute(array($module_name)); } } // Delete config for modules that no longer exist $module_names=WT_DB::prepare("SELECT module_name FROM `##module`")->fetchOneColumn(); foreach ($module_names as $module_name) { if (!array_key_exists($module_name, $installed_modules)) { WT_DB::prepare( "DELETE FROM `##module_privacy` WHERE module_name=?" )->execute(array($module_name)); WT_DB::prepare( "DELETE `##block_setting` FROM `##block_setting` JOIN `##block` USING (block_id) WHERE module_name=?" )->execute(array($module_name)); WT_DB::prepare( "DELETE FROM `##block` WHERE module_name=?" )->execute(array($module_name)); WT_DB::prepare( "DELETE FROM `##module` WHERE module_name=?" )->execute(array($module_name)); } } $action = safe_POST('action'); if ($action=='update_mods') { foreach (WT_Module::getInstalledModules() as $module) { $module_name=$module->getName(); $status=safe_POST("status-{$module_name}"); if ($status!==null) { WT_DB::prepare("UPDATE `##module` SET status=? WHERE module_name=?")->execute(array($status ? 'enabled' : 'disabled', $module_name)); } } } print_header(WT_I18N::translate('Module administration')); ?>