From 3fbdb2f345cc5fb132755033ba3b9d2fa061218e Mon Sep 17 00:00:00 2001 From: 3D-I Date: Tue, 13 Aug 2019 04:30:48 +0200 Subject: [PATCH] [ticket/16019] Deny prosilver's uninstallation PHPBB3-16019 --- phpBB/includes/acp/acp_styles.php | 12 ++++++++++++ phpBB/language/en/acp/styles.php | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/phpBB/includes/acp/acp_styles.php b/phpBB/includes/acp/acp_styles.php index 1bf5a3c6a8..1983dff1cc 100644 --- a/phpBB/includes/acp/acp_styles.php +++ b/phpBB/includes/acp/acp_styles.php @@ -289,6 +289,14 @@ class acp_styles { global $user, $phpbb_log; + // Don't remove prosilver, you can still deactivate it. + $sql = 'SELECT style_id + FROM ' . STYLES_TABLE . " + WHERE style_name = '" . $this->db->sql_escape('prosilver') . "'"; + $result = $this->db->sql_query($sql); + $prosilver_id = (int) $this->db->sql_fetchrow($result); + $this->db->sql_freeresult($result); + $default = $this->default_style; $uninstalled = array(); $messages = array(); @@ -296,6 +304,10 @@ class acp_styles // Check styles list foreach ($ids as $id) { + if ($id == $prosilver_id) + { + trigger_error($this->user->lang['UNINSTALL_PROSILVER'] . adm_back_link($this->u_action), E_USER_WARNING); + } if (!$id) { trigger_error($this->user->lang['INVALID_STYLE_ID'] . adm_back_link($this->u_action), E_USER_WARNING); diff --git a/phpBB/language/en/acp/styles.php b/phpBB/language/en/acp/styles.php index ab85d9d2f5..bfa8753a74 100644 --- a/phpBB/language/en/acp/styles.php +++ b/phpBB/language/en/acp/styles.php @@ -84,7 +84,8 @@ $lang = array_merge($lang, array( 'STYLE_USED_BY' => 'Used by (including robots)', 'STYLE_VERSION' => 'Style version', - 'UNINSTALL_DEFAULT' => 'You cannot uninstall the default style.', + 'UNINSTALL_PROSILVER' => 'You cannot uninstall the style “prosilver”.', + 'UNINSTALL_DEFAULT' => 'You cannot uninstall the default style.', 'BROWSE_STYLES_DATABASE' => 'Browse styles database', ));