]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/avatarsettings.php
Add Start/EndFavorNoticeForm and Start/EndDisFavorNoticeForm hooks
[quix0rs-gnu-social.git] / actions / avatarsettings.php
index 879e44842f40a03961b20241f7186ef4eefc71d0..52dc2e42496aa1b8c27ef47bc232b76a6dcf279d 100644 (file)
@@ -103,7 +103,7 @@ class AvatarsettingsAction extends AccountSettingsAction
 
         if (!$profile) {
             common_log_db_error($user, 'SELECT', __FILE__);
-            $this->serverError(_('User without matching profile'));
+            $this->serverError(_('User without matching profile.'));
             return;
         }
 
@@ -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');
-        }
+            $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');
@@ -179,7 +182,7 @@ class AvatarsettingsAction extends AccountSettingsAction
 
         if (!$profile) {
             common_log_db_error($user, 'SELECT', __FILE__);
-            $this->serverError(_('User without matching profile'));
+            $this->serverError(_('User without matching profile.'));
             return;
         }
 
@@ -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));
         }
     }
 
@@ -295,6 +301,10 @@ class AvatarsettingsAction extends AccountSettingsAction
             $this->showForm($e->getMessage());
             return;
         }
+        if ($imagefile === null) {
+            $this->showForm(_('No file uploaded.'));
+            return;
+        }
 
         $cur = common_current_user();
 
@@ -410,8 +420,8 @@ class AvatarsettingsAction extends AccountSettingsAction
         parent::showScripts();
 
         if ($this->mode == 'crop') {
-            $this->script('js/jcrop/jquery.Jcrop.min.js');
-            $this->script('js/jcrop/jquery.Jcrop.go.js');
+            $this->script('jcrop/jquery.Jcrop.min.js');
+            $this->script('jcrop/jquery.Jcrop.go.js');
         }
 
         $this->autofocus('avatarfile');