restrictAccess(Auth::isAdmin()) ->setPageTitle(WT_I18N::translate('Module administration')); $modules = WT_Module::getInstalledModules('disabled'); $module_status = WT_DB::prepare("SELECT module_name, status FROM `##module`")->fetchAssoc(); if (WT_Filter::post('action') === 'update_mods' && WT_Filter::checkCsrf()) { foreach ($modules as $module) { $new_status = WT_Filter::post('status-' . $module->getName(), '[01]'); if ($new_status !== null) { $new_status = $new_status ? 'enabled' : 'disabled'; $old_status = $module_status[$module->getName()]; if ($new_status !== $old_status) { WT_DB::prepare("UPDATE `##module` SET status=? WHERE module_name=?")->execute(array($new_status, $module->getName())); if ($new_status === 'disabled') { WT_FlashMessages::addMessage(WT_I18N::translate('The module “%s” has been disabled.', $module->getTitle()), 'success'); } else { WT_FlashMessages::addMessage(WT_I18N::translate('The module “%s” has been enabled.', $module->getTitle()), 'success'); } } } } header('Location: ' . WT_SERVER_NAME . WT_SCRIPT_PATH . 'admin_modules.php'); return; } if (WT_Filter::post('action') === 'delete' && WT_Filter::checkCsrf()) { $module_name = WT_Filter::post('module_name'); WT_DB::prepare( "DELETE `##block_setting`" . " FROM `##block_setting`" . " JOIN `##block` USING (block_id)" . " JOIN `##module` USING (module_name)" . " WHERE module_name=?" )->execute(array($module_name)); WT_DB::prepare( "DELETE `##block`" . " FROM `##block`" . " JOIN `##module` USING (module_name)" . " WHERE module_name=?" )->execute(array($module_name)); WT_DB::prepare("DELETE FROM `##module_setting` WHERE module_name=?")->execute(array($module_name)); WT_DB::prepare("DELETE FROM `##module_privacy` WHERE module_name=?")->execute(array($module_name)); WT_DB::prepare("DELETE FROM `##module` WHERE module_name=?")->execute(array($module_name)); WT_FlashMessages::addMessage(WT_I18N::translate('The preferences for the module “%s” have been deleted.', $module_name), 'success'); header('Location: ' . WT_SERVER_NAME . WT_SCRIPT_PATH . 'admin_modules.php'); exit; } // Module can’t be found on disk? // Don't delete it automatically. It may be temporarily missing, after a re-installation, etc. foreach ($module_status as $module_name => $status) { if (!array_key_exists($module_name, $modules)) { $html = WT_I18N::translate('Preferences exist for the module “%s”, but this module no longer exists.', '' . $module_name . '') . '
' . WT_Filter::getCsrf() . '' . '' . '' . '
'; WT_FlashMessages::addMessage($html, 'warning'); } } $controller ->pageHeader() ->addExternalJavascript(WT_JQUERY_DATATABLES_URL) ->addExternalJavascript(WT_DATATABLES_BOOTSTRAP_JS_URL) ->addInlineJavascript(' function reindexMods(id) { jQuery("#" + id + " input").each( function (index, value) { value.value = index+1; }); } jQuery("#installed_table").dataTable( { paging: false, ' . WT_I18N::datatablesI18N() . ', sorting: [[ 1, "asc" ]], columns : [ { sortable: false, class: "center" }, null, null, { class: "center" }, { class: "center" }, { class: "center" }, { class: "center" }, { class: "center", visible: false }, // The WT_Module system does not yet include charts { class: "center" }, { class: "center", visible: false } // The WT_Module system does not yet include themes ] }); '); ?>

getPageTitle(); ?>

$status) { if (array_key_exists($module_name, $modules)) { $module = $modules[$module_name]; echo '', '', '', '', '', '', '', '', '', '', ''; } } ?>
', two_state_checkbox('status-' . $module_name, $status === 'enabled'), ''; if ($module instanceof WT_Module_Config) { echo ''; } echo $module->getTitle(); if ($module instanceof WT_Module_Config) { echo ' '; } echo '', $module->getDescription(), '