[feature/add_events] Replaced current append_sid() hook with new event

The new event, core.append_sid_override can either supplement or override
the append_sid() function.

PHPBB3-9550
This commit is contained in:
David King 2012-08-20 11:52:06 -04:00
parent 6613884a60
commit fbdc956a1c

View file

@ -2238,14 +2238,34 @@ function append_sid($url, $params = false, $is_amp = true, $session_id = false)
$params = false; $params = false;
} }
// Developers using the hook function need to globalise the $_SID and $_EXTRA_URL on their own and also handle it appropriately. $append_sid_override = false;
// They could mimic most of what is within this function
if (!empty($phpbb_hook) && $phpbb_hook->call_hook(__FUNCTION__, $url, $params, $is_amp, $session_id)) /**
* This event can either supplement or override the append_sid() function
*
* To override this function, the event must set $append_sid_override to
* the new URL value, which will be returned following the event
*
* @event core.append_sid_override
* @var string url The url the session id needs to be
* appended to (can have params)
* @var mixed params String or array of additional url
* parameters
* @var bool is_amp Is url using & (true) or
* & (false)
* @var bool|string session_id Possibility to use a custom session
* id (string) instead of the global
* one (false)
* @var bool|string append_sid_override Overwrite function (string URL)
* or not (false)
* @since 3.1-A1
*/
$vars = array('url', 'params', 'is_amp', 'session_id', 'append_sid_override');
extract($phpbb_dispatcher->trigger_event('core.append_sid_override', compact($vars)));
if ($append_sid_override)
{ {
if ($phpbb_hook->hook_return(__FUNCTION__)) return $append_sid;
{
return $phpbb_hook->hook_return_result(__FUNCTION__);
}
} }
$params_is_array = is_array($params); $params_is_array = is_array($params);