New Events for avatar settings

This commit is contained in:
Eric Helgeson 2009-12-09 22:31:07 -05:00
parent 83830c26e7
commit 4db184e5b4
2 changed files with 69 additions and 51 deletions

View File

@ -290,6 +290,18 @@ StartRegistrationTry: before validating and saving a new user
EndRegistrationTry: after saving a new user (note: no profile or user object!) EndRegistrationTry: after saving a new user (note: no profile or user object!)
- $action: action object being shown - $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 StartNewQueueManager: before trying to start a new queue manager; good for plugins implementing new queue manager classes
- $qm: empty queue manager to set - $qm: empty queue manager to set

View File

@ -118,53 +118,56 @@ class AvatarsettingsAction extends AccountSettingsAction
$this->elementStart('fieldset'); $this->elementStart('fieldset');
$this->element('legend', null, _('Avatar settings')); $this->element('legend', null, _('Avatar settings'));
$this->hidden('token', common_session_token()); $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'); $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE);
if ($original) {
$this->elementStart('li', array('id' => 'avatar_original', if ($avatar) {
'class' => 'avatar_view')); $this->elementStart('li', array('id' => 'avatar_preview',
$this->element('h2', null, _("Original")); 'class' => 'avatar_view'));
$this->elementStart('div', array('id'=>'avatar_original_view')); $this->element('h2', null, _("Preview"));
$this->element('img', array('src' => $original->url, $this->elementStart('div', array('id'=>'avatar_preview_view'));
'width' => $original->width, $this->element('img', array('src' => $original->url,
'height' => $original->height, 'width' => AVATAR_PROFILE_SIZE,
'alt' => $user->nickname)); 'height' => AVATAR_PROFILE_SIZE,
$this->elementEnd('div'); '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('li');
} $this->elementEnd('ul');
$avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE); $this->elementStart('ul', 'form_actions');
$this->elementStart('li');
if ($avatar) { $this->submit('upload', _('Upload'));
$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->elementEnd('li');
$this->elementEnd('ul');
} }
Event::handle('EndAvatarFormData', array($this));
$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');
$this->elementEnd('fieldset'); $this->elementEnd('fieldset');
$this->elementEnd('form'); $this->elementEnd('form');
@ -266,15 +269,18 @@ class AvatarsettingsAction extends AccountSettingsAction
'Try again, please.')); 'Try again, please.'));
return; return;
} }
if ($this->arg('upload')) { if (Event::handle('StartAvatarSaveForm', array($this))) {
$this->uploadAvatar(); if ($this->arg('upload')) {
} else if ($this->arg('crop')) { $this->uploadAvatar();
$this->cropAvatar(); } else if ($this->arg('crop')) {
} else if ($this->arg('delete')) { $this->cropAvatar();
$this->deleteAvatar(); } else if ($this->arg('delete')) {
} else { $this->deleteAvatar();
$this->showForm(_('Unexpected form submission.')); } else {
$this->showForm(_('Unexpected form submission.'));
}
Event::handle('EndAvatarSaveForm', array($this));
} }
} }