From 6f1de69bbe8c876ce3c69f7f23d3dcdf65a890b2 Mon Sep 17 00:00:00 2001
From: Marc Alexander <admin@m-a-styles.de>
Date: Sun, 19 Mar 2017 22:37:19 +0100
Subject: [PATCH 1/2] [ticket/15135] Parse language files in acp_extensions
 instead of md manager

PHPBB3-15135
---
 phpBB/includes/acp/acp_extensions.php      | 3 ++-
 phpBB/phpbb/extension/metadata_manager.php | 6 +++---
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/phpBB/includes/acp/acp_extensions.php b/phpBB/includes/acp/acp_extensions.php
index 9effbe0f08..c38c492c1f 100644
--- a/phpBB/includes/acp/acp_extensions.php
+++ b/phpBB/includes/acp/acp_extensions.php
@@ -162,7 +162,8 @@ class acp_extensions
 				}
 				catch (\phpbb\extension\exception $e)
 				{
-					trigger_error($e . adm_back_link($this->u_action), E_USER_WARNING);
+					$message = call_user_func_array(array($this->user, 'lang'), array_merge(array($e->getMessage()), $e->get_parameters()));
+					trigger_error($message, E_USER_WARNING);
 				}
 
 				$extension = $phpbb_extension_manager->get_extension($ext_name);
diff --git a/phpBB/phpbb/extension/metadata_manager.php b/phpBB/phpbb/extension/metadata_manager.php
index f929433bff..3dc6cdaee6 100644
--- a/phpBB/phpbb/extension/metadata_manager.php
+++ b/phpBB/phpbb/extension/metadata_manager.php
@@ -278,7 +278,7 @@ class metadata_manager
 	{
 		if (substr_count($this->ext_name, '/') !== 1 || $this->ext_name != $this->get_metadata('name'))
 		{
-			throw new \phpbb\extension\exception($this->user->lang('EXTENSION_DIR_INVALID'));
+			throw new \phpbb\extension\exception('EXTENSION_DIR_INVALID');
 		}
 
 		return true;
@@ -295,7 +295,7 @@ class metadata_manager
 	{
 		if (!isset($this->metadata['extra']['soft-require']['phpbb/phpbb']))
 		{
-			throw new \phpbb\extension\exception($this->user->lang('META_FIELD_NOT_SET', 'soft-require'));
+			throw new \phpbb\extension\exception('META_FIELD_NOT_SET', 'soft-require');
 		}
 
 		return true;
@@ -311,7 +311,7 @@ class metadata_manager
 	{
 		if (!isset($this->metadata['require']['php']))
 		{
-			throw new \phpbb\extension\exception($this->user->lang('META_FIELD_NOT_SET', 'require php'));
+			throw new \phpbb\extension\exception('META_FIELD_NOT_SET', 'require php');
 		}
 
 		return true;

From a975a3573435d56b837c78b9df5ef92dc2b6dba6 Mon Sep 17 00:00:00 2001
From: Marc Alexander <admin@m-a-styles.de>
Date: Thu, 23 Mar 2017 21:52:35 +0100
Subject: [PATCH 2/2] [ticket/15135] Correctly pass exception arguments and add
 back link again

PHPBB3-15135
---
 phpBB/includes/acp/acp_extensions.php      | 5 +++--
 phpBB/phpbb/extension/metadata_manager.php | 4 ++--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/phpBB/includes/acp/acp_extensions.php b/phpBB/includes/acp/acp_extensions.php
index c38c492c1f..164e5872bb 100644
--- a/phpBB/includes/acp/acp_extensions.php
+++ b/phpBB/includes/acp/acp_extensions.php
@@ -163,7 +163,7 @@ class acp_extensions
 				catch (\phpbb\extension\exception $e)
 				{
 					$message = call_user_func_array(array($this->user, 'lang'), array_merge(array($e->getMessage()), $e->get_parameters()));
-					trigger_error($message, E_USER_WARNING);
+					trigger_error($message . adm_back_link($this->u_action), E_USER_WARNING);
 				}
 
 				$extension = $phpbb_extension_manager->get_extension($ext_name);
@@ -193,7 +193,8 @@ class acp_extensions
 				}
 				catch (\phpbb\extension\exception $e)
 				{
-					trigger_error($e . adm_back_link($this->u_action), E_USER_WARNING);
+					$message = call_user_func_array(array($this->user, 'lang'), array_merge(array($e->getMessage()), $e->get_parameters()));
+					trigger_error($message . adm_back_link($this->u_action), E_USER_WARNING);
 				}
 
 				$extension = $phpbb_extension_manager->get_extension($ext_name);
diff --git a/phpBB/phpbb/extension/metadata_manager.php b/phpBB/phpbb/extension/metadata_manager.php
index 3dc6cdaee6..6fc6dc9891 100644
--- a/phpBB/phpbb/extension/metadata_manager.php
+++ b/phpBB/phpbb/extension/metadata_manager.php
@@ -295,7 +295,7 @@ class metadata_manager
 	{
 		if (!isset($this->metadata['extra']['soft-require']['phpbb/phpbb']))
 		{
-			throw new \phpbb\extension\exception('META_FIELD_NOT_SET', 'soft-require');
+			throw new \phpbb\extension\exception('META_FIELD_NOT_SET', array('soft-require'));
 		}
 
 		return true;
@@ -311,7 +311,7 @@ class metadata_manager
 	{
 		if (!isset($this->metadata['require']['php']))
 		{
-			throw new \phpbb\extension\exception('META_FIELD_NOT_SET', 'require php');
+			throw new \phpbb\extension\exception('META_FIELD_NOT_SET', array('require php'));
 		}
 
 		return true;