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(); switch (WT_Filter::post('action')) { case 'update_mods': if (WT_Filter::checkCsrf()) { foreach ($modules as $module_name=>$status) { $new_status=WT_Filter::post("status-{$module_name}", '[01]'); if ($new_status!==null) { $new_status=$new_status ? 'enabled' : 'disabled'; if ($new_status!=$status) { WT_DB::prepare("UPDATE `##module` SET status=? WHERE module_name=?")->execute(array($new_status, $module_name)); $module_status[$module_name]=$new_status; } } } } header('Location: ' . WT_SERVER_NAME . WT_SCRIPT_PATH . 'admin_modules.php'); exit; } switch (WT_Filter::get('action')) { case 'delete_module': $module_name=WT_Filter::get('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)); unset($modules[$module_name]); unset($module_status[$module_name]); header('Location: ' . WT_SERVER_NAME . WT_SCRIPT_PATH . 'admin_modules.php'); exit; } $controller ->pageHeader() ->addExternalJavascript(WT_JQUERY_DATATABLES_URL) ->addInlineJavascript(' function reindexMods(id) { jQuery("#"+id+" input").each( function (index, value) { value.value = index+1; }); } jQuery("#installed_table").dataTable( { dom: \'<"H"pf<"dt-clear">irl>t<"F"pl>\', '.WT_I18N::datatablesI18N().', jQueryUI: true, autoWidth: false, sorting: [[ 1, "asc" ]], pageLength: 10, pagingType: "full_numbers", stateSave: true, stateDuration: 180, 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 ] }); '); ?>