From 4db184e5b4843ec15c7b4e48b3461f9d6fd87822 Mon Sep 17 00:00:00 2001 From: Eric Helgeson Date: Wed, 9 Dec 2009 22:31:07 -0500 Subject: [PATCH] New Events for avatar settings --- EVENTS.txt | 12 +++++ actions/avatarsettings.php | 108 +++++++++++++++++++------------------ 2 files changed, 69 insertions(+), 51 deletions(-) diff --git a/EVENTS.txt b/EVENTS.txt index e0516f8f45..96250f64c7 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 879e44842f..cf45255520 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()); + + 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'); + } - $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'); + $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'); - } + $this->elementEnd('ul'); - $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->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)); } }