summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--EVENTS.txt12
-rw-r--r--actions/avatarsettings.php110
2 files changed, 70 insertions, 52 deletions
diff --git a/EVENTS.txt b/EVENTS.txt
index e0516f8f4..96250f64c 100644
--- a/EVENTS.txt
+++ b/EVENTS.txt
@@ -290,6 +290,18 @@ StartRegistrationTry: before validating and saving a new user
EndRegistrationTry: after saving a new user (note: no profile or user object!)
- $action: action object being shown
+StartAvatarFormData: before displaying avatar form
+- $action: action object being shown
+
+EndAvatarFormData: after displaying avatar form
+- $action: action object being shown
+
+StartAvatarSaveForm: before saving the avatar
+- $action: action object being shown
+
+EndAvatarSaveForm: after saving the avatar
+- $action: action object being shown
+
StartNewQueueManager: before trying to start a new queue manager; good for plugins implementing new queue manager classes
- $qm: empty queue manager to set
diff --git a/actions/avatarsettings.php b/actions/avatarsettings.php
index 879e44842..cf4525552 100644
--- a/actions/avatarsettings.php
+++ b/actions/avatarsettings.php
@@ -118,53 +118,56 @@ class AvatarsettingsAction extends AccountSettingsAction
$this->elementStart('fieldset');
$this->element('legend', null, _('Avatar settings'));
$this->hidden('token', common_session_token());
-
- $this->elementStart('ul', 'form_data');
- if ($original) {
- $this->elementStart('li', array('id' => 'avatar_original',
- 'class' => 'avatar_view'));
- $this->element('h2', null, _("Original"));
- $this->elementStart('div', array('id'=>'avatar_original_view'));
- $this->element('img', array('src' => $original->url,
- 'width' => $original->width,
- 'height' => $original->height,
- 'alt' => $user->nickname));
- $this->elementEnd('div');
+
+ if (Event::handle('StartAvatarFormData', array($this))) {
+ $this->elementStart('ul', 'form_data');
+ if ($original) {
+ $this->elementStart('li', array('id' => 'avatar_original',
+ 'class' => 'avatar_view'));
+ $this->element('h2', null, _("Original"));
+ $this->elementStart('div', array('id'=>'avatar_original_view'));
+ $this->element('img', array('src' => $original->url,
+ 'width' => $original->width,
+ 'height' => $original->height,
+ 'alt' => $user->nickname));
+ $this->elementEnd('div');
+ $this->elementEnd('li');
+ }
+
+ $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
+
+ if ($avatar) {
+ $this->elementStart('li', array('id' => 'avatar_preview',
+ 'class' => 'avatar_view'));
+ $this->element('h2', null, _("Preview"));
+ $this->elementStart('div', array('id'=>'avatar_preview_view'));
+ $this->element('img', array('src' => $original->url,
+ 'width' => AVATAR_PROFILE_SIZE,
+ 'height' => AVATAR_PROFILE_SIZE,
+ 'alt' => $user->nickname));
+ $this->elementEnd('div');
+ $this->submit('delete', _('Delete'));
+ $this->elementEnd('li');
+ }
+
+ $this->elementStart('li', array ('id' => 'settings_attach'));
+ $this->element('input', array('name' => 'avatarfile',
+ 'type' => 'file',
+ 'id' => 'avatarfile'));
+ $this->element('input', array('name' => 'MAX_FILE_SIZE',
+ 'type' => 'hidden',
+ 'id' => 'MAX_FILE_SIZE',
+ 'value' => ImageFile::maxFileSizeInt()));
$this->elementEnd('li');
- }
-
- $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
+ $this->elementEnd('ul');
- if ($avatar) {
- $this->elementStart('li', array('id' => 'avatar_preview',
- 'class' => 'avatar_view'));
- $this->element('h2', null, _("Preview"));
- $this->elementStart('div', array('id'=>'avatar_preview_view'));
- $this->element('img', array('src' => $original->url,
- 'width' => AVATAR_PROFILE_SIZE,
- 'height' => AVATAR_PROFILE_SIZE,
- 'alt' => $user->nickname));
- $this->elementEnd('div');
- $this->submit('delete', _('Delete'));
+ $this->elementStart('ul', 'form_actions');
+ $this->elementStart('li');
+ $this->submit('upload', _('Upload'));
$this->elementEnd('li');
+ $this->elementEnd('ul');
}
-
- $this->elementStart('li', array ('id' => 'settings_attach'));
- $this->element('input', array('name' => 'avatarfile',
- 'type' => 'file',
- 'id' => 'avatarfile'));
- $this->element('input', array('name' => 'MAX_FILE_SIZE',
- 'type' => 'hidden',
- 'id' => 'MAX_FILE_SIZE',
- 'value' => ImageFile::maxFileSizeInt()));
- $this->elementEnd('li');
- $this->elementEnd('ul');
-
- $this->elementStart('ul', 'form_actions');
- $this->elementStart('li');
- $this->submit('upload', _('Upload'));
- $this->elementEnd('li');
- $this->elementEnd('ul');
+ Event::handle('EndAvatarFormData', array($this));
$this->elementEnd('fieldset');
$this->elementEnd('form');
@@ -266,15 +269,18 @@ class AvatarsettingsAction extends AccountSettingsAction
'Try again, please.'));
return;
}
-
- if ($this->arg('upload')) {
- $this->uploadAvatar();
- } else if ($this->arg('crop')) {
- $this->cropAvatar();
- } else if ($this->arg('delete')) {
- $this->deleteAvatar();
- } else {
- $this->showForm(_('Unexpected form submission.'));
+
+ if (Event::handle('StartAvatarSaveForm', array($this))) {
+ if ($this->arg('upload')) {
+ $this->uploadAvatar();
+ } else if ($this->arg('crop')) {
+ $this->cropAvatar();
+ } else if ($this->arg('delete')) {
+ $this->deleteAvatar();
+ } else {
+ $this->showForm(_('Unexpected form submission.'));
+ }
+ Event::handle('EndAvatarSaveForm', array($this));
}
}