]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
add lots of events to customize the profile page
authorEvan Prodromou <evan@status.net>
Fri, 9 Oct 2009 20:14:20 +0000 (16:14 -0400)
committerEvan Prodromou <evan@status.net>
Fri, 9 Oct 2009 20:14:20 +0000 (16:14 -0400)
EVENTS.txt
actions/showstream.php

index 68c7a2961bce45c1487ecdeda340d1297c5a6258..9de2f8bc6bbfffaa271a442be37e8c36ba811ad3 100644 (file)
@@ -292,44 +292,101 @@ EndShowHeadElements: Right before the </head> tag; put <script>s here if you nee
 
 CheckSchema: chance to check the schema
 
-StartShowLargeProfileSection: Starting to show the section of the
+StartProfilePageProfileSection: Starting to show the section of the
                               profile page with the actual profile data;
                               hook to prevent showing the profile (e.g.)
 - $action: the current action
 - &$profile: the profile being shown
 
-StartShowLargeProfileElements: inside the section, before the first
+StartProfilePageProfileElements: inside the section, before the first
                                element; prepend elements here
 - $action: the current action
 - &$profile: the profile being shown
 
-EndShowLargeProfileElements: inside the section, after the last element;
+EndProfilePageProfileElements: inside the section, after the last element;
                              append elements here
 - $action: the current action
 - &$profile: the profile being shown
 
-EndShowLargeProfileSection: After showing the section of the profile
+EndProfilePageProfileSection: After showing the section of the profile
                             page with the profile elements
 - $action: the current action
 - &$profile: the profile being shown
 
-StartShowLargeEntityActionsSection: Starting to show the section of the
+StartProfilePageActionsSection: Starting to show the section of the
                                     profile page with action links; hook
                                     to hide them (for example)
 - $action: the current action
 - &$profile: the profile being shown
 
-StartShowLargeEntityActionsElements: inside the list, before the first
+StartProfilePageActionsElements: inside the list, before the first
                                      element; prepend elements here
 - $action: the current action
 - &$profile: the profile being shown
 
-EndShowLargeEntityActionsElements: inside the list, after the last element;
+EndProfilePageActionsElements: inside the list, after the last element;
                                    append elements here
 - $action: the current action
 - &$profile: the profile being shown
 
-EndShowLargeEntityActionsSection: After showing the section of the profile
+EndProfilePageActionsSection: After showing the section of the profile
                                   page with the entity actions
 - $action: the current action
 - &$profile: the profile being shown
+
+StartProfilePageAvatar: before showing the avatar on the profile page
+- $action: the current action
+- &$profile: the profile being shown
+
+EndProfilePageAvatar: after showing the avatar on the profile page
+- $action: the current action
+- &$profile: the profile being shown
+
+StartProfilePageNickname: before showing the nickname on the profile page
+- $action: the current action
+- &$profile: the profile being shown
+
+EndProfilePageNickname: after showing the nickname on the profile page
+- $action: the current action
+- &$profile: the profile being shown
+
+StartProfilePageFullName: before showing the fullname on the profile page
+- $action: the current action
+- &$profile: the profile being shown
+
+EndProfilePageFullName: after showing the fullname on the profile page
+- $action: the current action
+- &$profile: the profile being shown
+
+StartProfilePageLocation: before showing the location on the profile page
+- $action: the current action
+- &$profile: the profile being shown
+
+EndProfilePageLocation: after showing the location on the profile page
+- $action: the current action
+- &$profile: the profile being shown
+
+StartProfilePageHomepage: before showing the homepage link on the profile page
+- $action: the current action
+- &$profile: the profile being shown
+
+EndProfilePageHomepage: after showing the homepage on the profile page
+- $action: the current action
+- &$profile: the profile being shown
+
+StartProfilePageBio: before showing the bio on the profile page
+- $action: the current action
+- &$profile: the profile being shown
+
+EndProfilePageBio: after showing the bio on the profile page
+- $action: the current action
+- &$profile: the profile being shown
+
+StartProfilePageProfileTags: before showing the tags on the profile page
+- $action: the current action
+- &$profile: the profile being shown
+
+EndProfilePageProfileTags: after showing the tags on the profile page
+- $action: the current action
+- &$profile: the profile being shown
+
index 83ac496cad8b4b559a8c9c27b5a04d872593bc66..b3a9b1f05c75da9fbf3ef8969c3fc093cda63494 100644 (file)
@@ -187,116 +187,172 @@ class ShowstreamAction extends ProfileAction
 
     function showProfileData()
     {
-        if (Event::handle('StartShowLargeProfileSection', array(&$this, &$this->profile))) {
+        if (Event::handle('StartProfilePageProfileSection', array(&$this, $this->profile))) {
 
             $this->elementStart('div', 'entity_profile vcard author');
             $this->element('h2', null, _('User profile'));
 
-            if (Event::handle('StartShowLargeProfileElements', array(&$this, &$this->profile))) {
+            if (Event::handle('StartProfilePageProfileElements', array(&$this, $this->profile))) {
 
-                $avatar = $this->profile->getAvatar(AVATAR_PROFILE_SIZE);
-                $this->elementStart('dl', 'entity_depiction');
-                $this->element('dt', null, _('Photo'));
+                $this->showAvatar();
+                $this->showNickname();
+                $this->showFullName();
+                $this->showLocation();
+                $this->showHomepage();
+                $this->showBio();
+                $this->showProfileTags();
+
+                Event::handle('EndProfilePageProfileElements', array(&$this, $this->profile));
+            }
+
+            $this->elementEnd('div');
+            Event::handle('EndProfilePageProfileSection', array(&$this, $this->profile));
+        }
+    }
+
+    function showAvatar()
+    {
+        if (Event::handle('StartProfilePageAvatar', array($this, $this->profile))) {
+
+            $avatar = $this->profile->getAvatar(AVATAR_PROFILE_SIZE);
+
+            $this->elementStart('dl', 'entity_depiction');
+            $this->element('dt', null, _('Photo'));
+            $this->elementStart('dd');
+            $this->element('img', array('src' => ($avatar) ? $avatar->displayUrl() : Avatar::defaultImage(AVATAR_PROFILE_SIZE),
+                                        'class' => 'photo avatar',
+                                        'width' => AVATAR_PROFILE_SIZE,
+                                        'height' => AVATAR_PROFILE_SIZE,
+                                        'alt' => $this->profile->nickname));
+            $this->elementEnd('dd');
+
+            $user = User::staticGet('id', $this->profile->id);
+
+            $cur = common_current_user();
+            if ($cur && $cur->id == $user->id) {
                 $this->elementStart('dd');
-                $this->element('img', array('src' => ($avatar) ? $avatar->displayUrl() : Avatar::defaultImage(AVATAR_PROFILE_SIZE),
-                                            'class' => 'photo avatar',
-                                            'width' => AVATAR_PROFILE_SIZE,
-                                            'height' => AVATAR_PROFILE_SIZE,
-                                            'alt' => $this->profile->nickname));
+                $this->element('a', array('href' => common_local_url('avatarsettings')), _('Edit Avatar'));
                 $this->elementEnd('dd');
+            }
 
-                $user = User::staticGet('id', $this->profile->id);
-                $cur = common_current_user();
-                if ($cur && $cur->id == $user->id) {
-                    $this->elementStart('dd');
-                    $this->element('a', array('href' => common_local_url('avatarsettings')), _('Edit Avatar'));
-                    $this->elementEnd('dd');
-                }
+            $this->elementEnd('dl');
 
-                $this->elementEnd('dl');
+            Event::handle('EndProfilePageAvatar', array($this, $this->profile));
+        }
+    }
+
+    function showNickname()
+    {
+        if (Event::handle('StartProfilePageNickname', array($this, $this->profile))) {
+
+            $this->elementStart('dl', 'entity_nickname');
+            $this->element('dt', null, _('Nickname'));
+            $this->elementStart('dd');
+            $hasFN = ($this->profile->fullname) ? 'nickname url uid' : 'fn nickname url uid';
+            $this->element('a', array('href' => $this->profile->profileurl,
+                                      'rel' => 'me', 'class' => $hasFN),
+                           $this->profile->nickname);
+            $this->elementEnd('dd');
+            $this->elementEnd('dl');
+
+            Event::handle('EndProfilePageNickname', array($this, $this->profile));
+        }
+    }
 
-                $this->elementStart('dl', 'entity_nickname');
-                $this->element('dt', null, _('Nickname'));
+    function showFullName()
+    {
+        if (Event::handle('StartProfilePageFullName', array($this, $this->profile))) {
+            if ($this->profile->fullname) {
+                $this->elementStart('dl', 'entity_fn');
+                $this->element('dt', null, _('Full name'));
                 $this->elementStart('dd');
-                $hasFN = ($this->profile->fullname) ? 'nickname url uid' : 'fn nickname url uid';
-                $this->element('a', array('href' => $this->profile->profileurl,
-                                          'rel' => 'me', 'class' => $hasFN),
-                               $this->profile->nickname);
+                $this->element('span', 'fn', $this->profile->fullname);
                 $this->elementEnd('dd');
                 $this->elementEnd('dl');
+            }
+            Event::handle('EndProfilePageFullName', array($this, $this->profile));
+        }
+    }
 
-                if ($this->profile->fullname) {
-                    $this->elementStart('dl', 'entity_fn');
-                    $this->element('dt', null, _('Full name'));
-                    $this->elementStart('dd');
-                    $this->element('span', 'fn', $this->profile->fullname);
-                    $this->elementEnd('dd');
-                    $this->elementEnd('dl');
-                }
+    function showLocation()
+    {
+        if (Event::handle('StartProfilePageLocation', array($this, $this->profile))) {
+            if ($this->profile->location) {
+                $this->elementStart('dl', 'entity_location');
+                $this->element('dt', null, _('Location'));
+                $this->element('dd', 'label', $this->profile->location);
+                $this->elementEnd('dl');
+            }
+            Event::handle('EndProfilePageLocation', array($this, $this->profile));
+        }
+    }
 
-                if ($this->profile->location) {
-                    $this->elementStart('dl', 'entity_location');
-                    $this->element('dt', null, _('Location'));
-                    $this->element('dd', 'label', $this->profile->location);
-                    $this->elementEnd('dl');
-                }
+    function showHomepage()
+    {
+        if (Event::handle('StartProfilePageHomepage', array($this, $this->profile))) {
+            if ($this->profile->homepage) {
+                $this->elementStart('dl', 'entity_url');
+                $this->element('dt', null, _('URL'));
+                $this->elementStart('dd');
+                $this->element('a', array('href' => $this->profile->homepage,
+                                          'rel' => 'me', 'class' => 'url'),
+                               $this->profile->homepage);
+                $this->elementEnd('dd');
+                $this->elementEnd('dl');
+            }
+            Event::handle('EndProfilePageHomepage', array($this, $this->profile));
+        }
+    }
 
-                if ($this->profile->homepage) {
-                    $this->elementStart('dl', 'entity_url');
-                    $this->element('dt', null, _('URL'));
-                    $this->elementStart('dd');
-                    $this->element('a', array('href' => $this->profile->homepage,
-                                              'rel' => 'me', 'class' => 'url'),
-                                   $this->profile->homepage);
-                    $this->elementEnd('dd');
-                    $this->elementEnd('dl');
-                }
+    function showBio()
+    {
+        if (Event::handle('StartProfilePageBio', array($this, $this->profile))) {
+            if ($this->profile->bio) {
+                $this->elementStart('dl', 'entity_note');
+                $this->element('dt', null, _('Note'));
+                $this->element('dd', 'note', $this->profile->bio);
+                $this->elementEnd('dl');
+            }
+            Event::handle('EndProfilePageBio', array($this, $this->profile));
+        }
+    }
 
-                if ($this->profile->bio) {
-                    $this->elementStart('dl', 'entity_note');
-                    $this->element('dt', null, _('Note'));
-                    $this->element('dd', 'note', $this->profile->bio);
-                    $this->elementEnd('dl');
-                }
+    function showProfileTags()
+    {
+        if (Event::handle('StartProfilePageProfileTags', array($this, $this->profile))) {
+            $tags = Profile_tag::getTags($this->profile->id, $this->profile->id);
 
-                $tags = Profile_tag::getTags($this->profile->id, $this->profile->id);
-
-                if (count($tags) > 0) {
-                    $this->elementStart('dl', 'entity_tags');
-                    $this->element('dt', null, _('Tags'));
-                    $this->elementStart('dd');
-                    $this->elementStart('ul', 'tags xoxo');
-                    foreach ($tags as $tag) {
-                        $this->elementStart('li');
-                        // Avoid space by using raw output.
-                        $pt = '<span class="mark_hash">#</span><a rel="tag" href="' .
-                          common_local_url('peopletag', array('tag' => $tag)) .
-                          '">' . $tag . '</a>';
-                        $this->raw($pt);
-                        $this->elementEnd('li');
-                    }
-                    $this->elementEnd('ul');
-                    $this->elementEnd('dd');
-                    $this->elementEnd('dl');
+            if (count($tags) > 0) {
+                $this->elementStart('dl', 'entity_tags');
+                $this->element('dt', null, _('Tags'));
+                $this->elementStart('dd');
+                $this->elementStart('ul', 'tags xoxo');
+                foreach ($tags as $tag) {
+                    $this->elementStart('li');
+                    // Avoid space by using raw output.
+                    $pt = '<span class="mark_hash">#</span><a rel="tag" href="' .
+                      common_local_url('peopletag', array('tag' => $tag)) .
+                      '">' . $tag . '</a>';
+                    $this->raw($pt);
+                    $this->elementEnd('li');
                 }
-
-                Event::handle('EndShowLargeProfileElements', array(&$this, &$this->profile));
+                $this->elementEnd('ul');
+                $this->elementEnd('dd');
+                $this->elementEnd('dl');
             }
-
-            $this->elementEnd('div');
-            Event::handle('EndShowLargeProfileSection', array(&$this, &$this->profile));
+            Event::handle('EndProfilePageProfileTags', array($this, $this->profile));
         }
     }
 
     function showEntityActions()
     {
-        if (Event::handle('StartShowLargeEntityActionsSection', array(&$this, &$this->profile))) {
+        if (Event::handle('StartProfilePageActionsSection', array(&$this, $this->profile))) {
 
             $this->elementStart('div', 'entity_actions');
             $this->element('h2', null, _('User actions'));
             $this->elementStart('ul');
 
-            if (Event::handle('StartShowLargeEntityActionsElements', array(&$this, &$this->profile))) {
+            if (Event::handle('StartProfilePageActionsElements', array(&$this, $this->profile))) {
                 if (empty($cur)) { // not logged in
                     $this->elementStart('li', 'entity_subscribe');
                     $this->showRemoteSubscribeLink();
@@ -362,13 +418,13 @@ class ShowstreamAction extends ProfileAction
                     }
                 }
 
-                Event::handle('EndShowLargeEntityActionsElements', array(&$this, &$this->profile));
+                Event::handle('EndProfilePageActionsElements', array(&$this, $this->profile));
             }
 
             $this->elementEnd('ul');
             $this->elementEnd('div');
 
-            Event::handle('EndShowLargeEntityActionsSection', array(&$this, &$this->profile));
+            Event::handle('EndProfilePageActionsSection', array(&$this, $this->profile));
         }
     }