1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-06-07 06:55:25 +02:00

[ticket/15833] Add core.avatar_manager_avatar_delete_after event

PHPBB3-15833
This commit is contained in:
Jakub Senko 2018-10-08 15:45:21 +02:00
parent 001f32da95
commit 6a35385308
No known key found for this signature in database
GPG Key ID: 6A7C328CD66EC21E
3 changed files with 24 additions and 2 deletions

View File

@ -3,6 +3,7 @@ services:
class: phpbb\avatar\manager class: phpbb\avatar\manager
arguments: arguments:
- '@config' - '@config'
- '@dispatcher'
- '@avatar.driver_collection' - '@avatar.driver_collection'
# ----- Avatar drivers ----- # ----- Avatar drivers -----

View File

@ -21,6 +21,12 @@ class manager
*/ */
protected $config; protected $config;
/**
* phpBB event dispatcher
* @var \phpbb\event\dispatcher_interface
*/
protected $phpbb_dispatcher;
/** /**
* Array that contains a list of enabled drivers * Array that contains a list of enabled drivers
* @var array * @var array
@ -49,11 +55,13 @@ class manager
* Construct an avatar manager object * Construct an avatar manager object
* *
* @param \phpbb\config\config $config phpBB configuration * @param \phpbb\config\config $config phpBB configuration
* @param \phpbb\event\dispatcher_interface $phpbb_dispatcher phpBB event dispatcher
* @param array $avatar_drivers Avatar drivers passed via the service container * @param array $avatar_drivers Avatar drivers passed via the service container
*/ */
public function __construct(\phpbb\config\config $config, $avatar_drivers) public function __construct(\phpbb\config\config $config, \phpbb\event\dispatcher_interface $phpbb_dispatcher, $avatar_drivers)
{ {
$this->config = $config; $this->config = $config;
$this->phpbb_dispatcher = $phpbb_dispatcher;
$this->register_avatar_drivers($avatar_drivers); $this->register_avatar_drivers($avatar_drivers);
} }
@ -331,6 +339,19 @@ class manager
WHERE user_avatar = '" . $db->sql_escape($avatar_data['avatar']) . "'"; WHERE user_avatar = '" . $db->sql_escape($avatar_data['avatar']) . "'";
$db->sql_query($sql); $db->sql_query($sql);
} }
/**
* Event is triggered after user avatar has been deleted
*
* @event core.avatar_manager_avatar_delete_after
* @var \phpbb\user user phpBB user object
* @var array avatar_data Normalised avatar-related user data
* @var string table Table to delete avatar from
* @var string prefix Column prefix to delete avatar from
* @since 3.2.4-RC1
*/
$vars = array('user', 'avatar_data', 'table', 'prefix');
extract($this->phpbb_dispatcher->trigger_event('core.avatar_manager_avatar_delete_after', compact($vars)));
} }
/** /**

View File

@ -99,7 +99,7 @@ class phpbb_avatar_manager_test extends \phpbb_database_test_case
$this->config['allow_avatar_' . get_class($this->avatar_barfoo)] = false; $this->config['allow_avatar_' . get_class($this->avatar_barfoo)] = false;
// Set up avatar manager // Set up avatar manager
$this->manager = new \phpbb\avatar\manager($this->config, $avatar_drivers, $phpbb_container); $this->manager = new \phpbb\avatar\manager($this->config, $dispatcher, $avatar_drivers);
$this->db = $this->new_dbal(); $this->db = $this->new_dbal();
$lang_loader = new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx); $lang_loader = new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx);
$lang = new \phpbb\language\language($lang_loader); $lang = new \phpbb\language\language($lang_loader);