aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/acp/acp_extensions.php
diff options
context:
space:
mode:
authorMarc Alexander <admin@m-a-styles.de>2017-03-19 16:01:33 +0100
committerMarc Alexander <admin@m-a-styles.de>2017-03-19 16:01:33 +0100
commit948ce2d84f368216e3c708e44da0f7c62364c331 (patch)
tree8829989db25890b65498bb2921a817afdcc05ca3 /phpBB/includes/acp/acp_extensions.php
parent59396771e6fe99a42aa48f0b8192c9c90bf60f6b (diff)
parentcdca848018571f2725aed207ead751823970a014 (diff)
downloadforums-948ce2d84f368216e3c708e44da0f7c62364c331.tar
forums-948ce2d84f368216e3c708e44da0f7c62364c331.tar.gz
forums-948ce2d84f368216e3c708e44da0f7c62364c331.tar.bz2
forums-948ce2d84f368216e3c708e44da0f7c62364c331.tar.xz
forums-948ce2d84f368216e3c708e44da0f7c62364c331.zip
Merge pull request #4578 from javiexin/ticket/14849
[ticket/14849] Add core.acp_extensions_run_action
Diffstat (limited to 'phpBB/includes/acp/acp_extensions.php')
-rw-r--r--phpBB/includes/acp/acp_extensions.php62
1 files changed, 47 insertions, 15 deletions
diff --git a/phpBB/includes/acp/acp_extensions.php b/phpBB/includes/acp/acp_extensions.php
index bc8d6263f6..ef5f78d5bf 100644
--- a/phpBB/includes/acp/acp_extensions.php
+++ b/phpBB/includes/acp/acp_extensions.php
@@ -56,21 +56,6 @@ class acp_extensions
$safe_time_limit = (ini_get('max_execution_time') / 2);
$start_time = time();
- /**
- * Event to run a specific action on extension
- *
- * @event core.acp_extensions_run_action
- * @var string action Action to run
- * @var string u_action Url we are at
- * @var string ext_name Extension name from request
- * @var int safe_time_limit Safe limit of execution time
- * @var int start_time Start time
- * @since 3.1.11-RC1
- */
- $u_action = $this->u_action;
- $vars = array('action', 'u_action', 'ext_name', 'safe_time_limit', 'start_time');
- extract($this->phpbb_dispatcher->trigger_event('core.acp_extensions_run_action', compact($vars)));
-
// Cancel action
if ($request->is_set_post('cancel'))
{
@@ -83,6 +68,28 @@ class acp_extensions
trigger_error('FORM_INVALID', E_USER_WARNING);
}
+ /**
+ * Event to run a specific action on extension
+ *
+ * @event core.acp_extensions_run_action_before
+ * @var string action Action to run; if the event completes execution of the action, should be set to 'none'
+ * @var string u_action Url we are at
+ * @var string ext_name Extension name from request
+ * @var int safe_time_limit Safe limit of execution time
+ * @var int start_time Start time
+ * @var string tpl_name Template file to load
+ * @since 3.1.11-RC1
+ * @changed 3.2.1-RC1 Renamed to core.acp_extensions_run_action_before, added tpl_name, added action 'none'
+ */
+ $u_action = $this->u_action;
+ $tpl_name = '';
+ $vars = array('action', 'u_action', 'ext_name', 'safe_time_limit', 'start_time', 'tpl_name');
+ extract($this->phpbb_dispatcher->trigger_event('core.acp_extensions_run_action_before', compact($vars)));
+
+ // In case they have been updated by the event
+ $this->u_action = $u_action;
+ $this->tpl_name = $tpl_name;
+
// If they've specified an extension, let's load the metadata manager and validate it.
if ($ext_name)
{
@@ -101,6 +108,10 @@ class acp_extensions
// What are we doing?
switch ($action)
{
+ case 'none':
+ // Intentionally empty, used by extensions that execute additional actions in the prior event
+ break;
+
case 'set_config_version_check_force_unstable':
$force_unstable = $this->request->variable('force_unstable', false);
@@ -333,6 +344,27 @@ class acp_extensions
$this->tpl_name = 'acp_ext_details';
break;
}
+
+ /**
+ * Event to run after a specific action on extension has completed
+ *
+ * @event core.acp_extensions_run_action_after
+ * @var string action Action that has run
+ * @var string u_action Url we are at
+ * @var string ext_name Extension name from request
+ * @var int safe_time_limit Safe limit of execution time
+ * @var int start_time Start time
+ * @var string tpl_name Template file to load
+ * @since 3.1.11-RC1
+ */
+ $u_action = $this->u_action;
+ $tpl_name = $this->tpl_name;
+ $vars = array('action', 'u_action', 'ext_name', 'safe_time_limit', 'start_time', 'tpl_name');
+ extract($this->phpbb_dispatcher->trigger_event('core.acp_extensions_run_action_after', compact($vars)));
+
+ // In case they have been updated by the event
+ $this->u_action = $u_action;
+ $this->tpl_name = $tpl_name;
}
/**