Skip to content

Instantly share code, notes, and snippets.

@Derky
Created January 14, 2017 11:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Derky/a575ec6718a35b948c707355fc7a1285 to your computer and use it in GitHub Desktop.
Save Derky/a575ec6718a35b948c707355fc7a1285 to your computer and use it in GitHub Desktop.
<?php
/**
* Show and remove non-default ACP, MCP and UCP modules based on the default set of modules from phpBB 3.1.10
* by Derky http://www.derky.nl
**/
/**
* @ignore
**/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
$user->session_begin();
$auth->acl($user->data);
// Limit this to founders or admins
if ((int) $user->data['user_type'] !== USER_FOUNDER)
{
trigger_error('You need to be a founder');
}
/** To update the list of standard modules to your version of phpBB, run this query on a default installation and update the $where
* SET group_concat_max_len = 20048;
* SELECT CONCAT(GROUP_CONCAT(CONCAT('\'', module_langname, '\'')), '\'') AS result
* FROM phpbb_modules
**/
// For phpBB 3.1.10
$default_modules = "'ACP_CAT_GENERAL','ACP_QUICK_ACCESS','ACP_BOARD_CONFIGURATION','ACP_CLIENT_COMMUNICATION','ACP_SERVER_CONFIGURATION','ACP_CAT_FORUMS','ACP_MANAGE_FORUMS','ACP_FORUM_BASED_PERMISSIONS','ACP_CAT_POSTING','ACP_MESSAGES','ACP_ATTACHMENTS','ACP_CAT_USERGROUP','ACP_CAT_USERS','ACP_GROUPS','ACP_USER_SECURITY','ACP_CAT_PERMISSIONS','ACP_GLOBAL_PERMISSIONS','ACP_FORUM_BASED_PERMISSIONS','ACP_PERMISSION_ROLES','ACP_PERMISSION_MASKS','ACP_CAT_CUSTOMISE','ACP_STYLE_MANAGEMENT','ACP_EXTENSION_MANAGEMENT','ACP_LANGUAGE','ACP_CAT_MAINTENANCE','ACP_FORUM_LOGS','ACP_CAT_DATABASE','ACP_CAT_SYSTEM','ACP_AUTOMATION','ACP_GENERAL_TASKS','ACP_MODULE_MANAGEMENT','ACP_CAT_DOT_MODS','ACP_ATTACHMENT_SETTINGS','ACP_ATTACHMENT_SETTINGS','ACP_MANAGE_EXTENSIONS','ACP_EXTENSION_GROUPS','ACP_ORPHAN_ATTACHMENTS','ACP_MANAGE_ATTACHMENTS','ACP_BAN_EMAILS','ACP_BAN_IPS','ACP_BAN_USERNAMES','ACP_BBCODES','ACP_BOARD_SETTINGS','ACP_BOARD_FEATURES','ACP_AVATAR_SETTINGS','ACP_MESSAGE_SETTINGS','ACP_MESSAGE_SETTINGS','ACP_POST_SETTINGS','ACP_POST_SETTINGS','ACP_SIGNATURE_SETTINGS','ACP_FEED_SETTINGS','ACP_REGISTER_SETTINGS','ACP_AUTH_SETTINGS','ACP_EMAIL_SETTINGS','ACP_COOKIE_SETTINGS','ACP_SERVER_SETTINGS','ACP_SECURITY_SETTINGS','ACP_LOAD_SETTINGS','ACP_BOTS','ACP_VC_SETTINGS','ACP_VC_CAPTCHA_DISPLAY','ACP_CONTACT_SETTINGS','ACP_BACKUP','ACP_RESTORE','ACP_DISALLOW_USERNAMES','ACP_MASS_EMAIL','ACP_EXTENSIONS','ACP_MANAGE_FORUMS','ACP_GROUPS_MANAGE','ACP_GROUPS_POSITION','ACP_ICONS','ACP_SMILIES','ACP_INACTIVE_USERS','ACP_JABBER_SETTINGS','ACP_LANGUAGE_PACKS','ACP_ADMIN_LOGS','ACP_MOD_LOGS','ACP_USERS_LOGS','ACP_CRITICAL_LOGS','ACP_INDEX','ACP','UCP','MCP','ACP_ADMIN_ROLES','ACP_USER_ROLES','ACP_MOD_ROLES','ACP_FORUM_ROLES','ACP_PERMISSIONS','ACP_PERMISSION_TRACE','ACP_FORUM_PERMISSIONS','ACP_FORUM_PERMISSIONS_COPY','ACP_FORUM_MODERATORS','ACP_USERS_PERMISSIONS','ACP_USERS_PERMISSIONS','ACP_USERS_FORUM_PERMISSIONS','ACP_USERS_FORUM_PERMISSIONS','ACP_GROUPS_PERMISSIONS','ACP_GROUPS_PERMISSIONS','ACP_GROUPS_FORUM_PERMISSIONS','ACP_GROUPS_FORUM_PERMISSIONS','ACP_ADMINISTRATORS','ACP_GLOBAL_MODERATORS','ACP_VIEW_ADMIN_PERMISSIONS','ACP_VIEW_USER_PERMISSIONS','ACP_VIEW_GLOBAL_MOD_PERMISSIONS','ACP_VIEW_FORUM_MOD_PERMISSIONS','ACP_VIEW_FORUM_PERMISSIONS','ACP_PHP_INFO','ACP_CUSTOM_PROFILE_FIELDS','ACP_PRUNE_FORUMS','ACP_PRUNE_USERS','ACP_MANAGE_RANKS','ACP_MANAGE_REASONS','ACP_SEARCH_SETTINGS','ACP_SEARCH_INDEX','ACP_SEND_STATISTICS','ACP_STYLES','ACP_STYLES_INSTALL','ACP_VERSION_CHECK','ACP_MANAGE_USERS','ACP_USER_FEEDBACK','ACP_USER_WARNINGS','ACP_USER_PROFILE','ACP_USER_PREFS','ACP_USER_AVATAR','ACP_USER_RANK','ACP_USER_SIG','ACP_USER_GROUPS','ACP_USER_PERM','ACP_USER_ATTACH','ACP_WORDS','ACP_MANAGE_USERS','ACP_GROUPS_MANAGE','ACP_MANAGE_FORUMS','ACP_MOD_LOGS','ACP_BOTS','ACP_PHP_INFO','ACP_FORUM_PERMISSIONS','ACP_FORUM_PERMISSIONS_COPY','ACP_FORUM_MODERATORS','ACP_USERS_FORUM_PERMISSIONS','ACP_GROUPS_FORUM_PERMISSIONS','MCP_MAIN','MCP_QUEUE','MCP_REPORTS','MCP_NOTES','MCP_WARN','MCP_LOGS','MCP_BAN','MCP_BAN_USERNAMES','MCP_BAN_IPS','MCP_BAN_EMAILS','MCP_LOGS_FRONT','MCP_LOGS_FORUM_VIEW','MCP_LOGS_TOPIC_VIEW','MCP_MAIN_FRONT','MCP_MAIN_FORUM_VIEW','MCP_MAIN_TOPIC_VIEW','MCP_MAIN_POST_DETAILS','MCP_NOTES_FRONT','MCP_NOTES_USER','MCP_PM_REPORTS_OPEN','MCP_PM_REPORTS_CLOSED','MCP_PM_REPORT_DETAILS','MCP_QUEUE_UNAPPROVED_TOPICS','MCP_QUEUE_UNAPPROVED_POSTS','MCP_QUEUE_DELETED_TOPICS','MCP_QUEUE_DELETED_POSTS','MCP_QUEUE_APPROVE_DETAILS','MCP_REPORTS_OPEN','MCP_REPORTS_CLOSED','MCP_REPORT_DETAILS','MCP_WARN_FRONT','MCP_WARN_LIST','MCP_WARN_USER','MCP_WARN_POST','UCP_MAIN','UCP_PROFILE','UCP_PREFS','UCP_PM','UCP_USERGROUPS','UCP_ZEBRA','UCP_MAIN_ATTACHMENTS','UCP_AUTH_LINK_MANAGE','UCP_USERGROUPS_MEMBER','UCP_USERGROUPS_MANAGE','UCP_MAIN_FRONT','UCP_MAIN_SUBSCRIBED','UCP_MAIN_BOOKMARKS','UCP_MAIN_DRAFTS','UCP_NOTIFICATION_OPTIONS','UCP_NOTIFICATION_LIST','UCP_PM_VIEW','UCP_PM_COMPOSE','UCP_PM_DRAFTS','UCP_PM_OPTIONS','UCP_PREFS_PERSONAL','UCP_PREFS_POST','UCP_PREFS_VIEW','UCP_PROFILE_PROFILE_INFO','UCP_PROFILE_SIGNATURE','UCP_PROFILE_AVATAR','UCP_PROFILE_REG_DETAILS','UCP_PROFILE_AUTOLOGIN_KEYS','UCP_ZEBRA_FRIENDS','UCP_ZEBRA_FOES'";
$text = '';
if (!isset($_GET['delete']))
{
// Show non-default modules
$sql = 'SELECT module_langname
FROM ' . MODULES_TABLE . '
WHERE module_langname NOT IN(' . $default_modules . ')';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$text .= $row['module_langname'] . '<br />';
}
$db->sql_freeresult($result);
if ($text) {
$text = 'Non default modules: <br />' . $text . '<br />Make a backup of the "'. MODULES_TABLE . '" table yourself and then: <a href="?delete=true"><strong>click here to delete all non-default modules</strong></a>';
}
else {
$text = 'No non-default modules found';
}
}
else {
// Delete non-default moduls
$sql = 'DELETE FROM ' . MODULES_TABLE . ' WHERE module_langname NOT IN(' . $default_modules . ')';
$result = $db->sql_query($sql);
$modules_deleted = $db->sql_affectedrows();
$db->sql_freeresult($result);
$text .= 'Modules deleted: '. $modules_deleted;
$cache->purge();
}
trigger_error($text);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment