From 27b2d91713dfbad1e87ae83336559d22ac9ec399 Mon Sep 17 00:00:00 2001 From: Jakub Senko Date: Thu, 4 May 2017 17:27:41 +0200 Subject: [ticket/15217] Add core.user_format_date_override event PHPBB3-15217 --- phpBB/phpbb/user.php | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) (limited to 'phpBB/phpbb/user.php') diff --git a/phpBB/phpbb/user.php b/phpBB/phpbb/user.php index 305510851c..d4097f53ee 100644 --- a/phpBB/phpbb/user.php +++ b/phpBB/phpbb/user.php @@ -588,6 +588,7 @@ class user extends \phpbb\session */ function format_date($gmepoch, $format = false, $forcedate = false) { + global $phpbb_dispatcher; static $utc; if (!isset($utc)) @@ -595,10 +596,34 @@ class user extends \phpbb\session $utc = new \DateTimeZone('UTC'); } - $time = new $this->datetime($this, '@' . (int) $gmepoch, $utc); - $time->setTimezone($this->timezone); + $format_date_override = false; + $function_arguments = func_get_args(); + /** + * Execute code and/or override format_date() + * + * To override the format_date() function generated value + * set $format_date_override to new return value + * + * @event core.user_format_date_override + * @var DateTimeZone utc Is DateTimeZone in UTC + * @var array function_arguments is array comprising a function's argument list + * @var string format_date_override Shall we return custom format (string) or not (false) + * @since 3.2.1-RC1 + */ + $vars = array('utc', 'function_arguments', 'format_date_override'); + extract($phpbb_dispatcher->trigger_event('core.user_format_date_override', compact($vars))); - return $time->format($format, $forcedate); + if (!$format_date_override) + { + $time = new $this->datetime($this, '@' . (int) $gmepoch, $utc); + $time->setTimezone($this->timezone); + + return $time->format($format, $forcedate); + } + else + { + return $format_date_override; + } } /** -- cgit v1.2.1