From 3022d711e391a5601e1933f581b27355b7abe77c Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 8 Apr 2011 15:45:49 -0700 Subject: [PATCH] Add some more events to aside profile blocks and rework a bit --- EVENTS.txt | 16 +++++ lib/accountprofileblock.php | 11 ++++ lib/groupprofileblock.php | 10 +++ lib/profileblock.php | 61 +++++++++++++------ .../ExtendedProfile/ExtendedProfilePlugin.php | 3 +- 5 files changed, 79 insertions(+), 22 deletions(-) diff --git a/EVENTS.txt b/EVENTS.txt index b328785e7b..08a4273ec9 100644 --- a/EVENTS.txt +++ b/EVENTS.txt @@ -1147,3 +1147,19 @@ StartDefaultLocalNav: When showing the default local nav EndDefaultLocalNav: When showing the default local nav - $menu: the menu - $user: current user + +StartShowAccountProfileBlock: When showing the profile block for an account +- $out: XMLOutputter to append custom output +- $profile: the profile being shown + +EndShowAccountProfileBlock: After showing the profile block for an account +- $out: XMLOutputter to append custom output +- $profile: the profile being shown + +StartShowGroupProfileBlock: When showing the profile block for a group +- $out: XMLOutputter to append custom output +- $profile: the profile being shown + +EndShowGroupProfileBlock: After showing showing the profile block for a group +- $out: XMLOutputter to append custom output +- $group: the group being shown \ No newline at end of file diff --git a/lib/accountprofileblock.php b/lib/accountprofileblock.php index 1c3a8dc536..e3e657fb17 100644 --- a/lib/accountprofileblock.php +++ b/lib/accountprofileblock.php @@ -289,4 +289,15 @@ class AccountProfileBlock extends ProfileBlock // TRANS: Link text for link that will subscribe to a remote profile. _m('BUTTON','Subscribe')); } + + function show() + { + common_debug("show"); + $this->out->elementStart('div', 'account_profile_block section'); + if (Event::handle('StartShowAccountProfileBlock', array($this->out, $this->profile))) { + parent::show(); + Event::handle('EndShowAccountProfileBlock', array($this->out, $this->profile)); + } + $this->out->elementEnd('div'); + } } diff --git a/lib/groupprofileblock.php b/lib/groupprofileblock.php index 819c0fbdcc..30e9a235a2 100644 --- a/lib/groupprofileblock.php +++ b/lib/groupprofileblock.php @@ -123,4 +123,14 @@ class GroupProfileBlock extends ProfileBlock $this->out->elementEnd('ul'); $this->out->elementEnd('div'); } + + function show() + { + $this->out->elementStart('div', 'group_profile_block section'); + if (Event::handle('StartShowGroupProfileBlock', array($this->out, $this->group))) { + parent::show(); + Event::handle('EndShowGroupProfileBlock', array($this->out, $this->group)); + } + $this->out->elementEnd('div'); + } } diff --git a/lib/profileblock.php b/lib/profileblock.php index 19e5a386ba..bf1ffd1443 100644 --- a/lib/profileblock.php +++ b/lib/profileblock.php @@ -56,16 +56,32 @@ abstract class ProfileBlock extends Widget function show() { - $this->out->elementStart('div', 'profile_block section'); + $this->showActions(); + $this->showAvatar(); + $this->showName(); + $this->showLocation(); + $this->showHomepage(); + $this->showDescription(); + } + function showAvatar() + { $size = $this->avatarSize(); - $this->out->element('img', array('src' => $this->avatar(), - 'class' => 'profile_block_avatar', - 'alt' => $this->name(), - 'width' => $size, - 'height' => $size)); + $this->out->element( + 'img', + array( + 'src' => $this->avatar(), + 'class' => 'ur_face', + 'alt' => $this->name(), + 'width' => $size, + 'height' => $size + ) + ); + } + function showName() + { $name = $this->name(); if (!empty($name)) { @@ -79,30 +95,35 @@ abstract class ProfileBlock extends Widget } $this->out->elementEnd('p'); } + } + function showDescription() + { + $description = $this->description(); + + if (!empty($description)) { + $this->out->element( + 'p', + 'profile_block_description', + $description + ); + } + } + + function showLocation() + { $location = $this->location(); if (!empty($location)) { $this->out->element('p', 'profile_block_location', $location); } + } - $homepage = $this->homepage(); - + function showHomepage() + { if (!empty($homepage)) { $this->out->element('a', 'profile_block_homepage', $homepage); } - - $description = $this->description(); - - if (!empty($description)) { - $this->out->element('p', - 'profile_block_description', - $description); - } - - $this->showActions(); - - $this->out->elementEnd('div'); } function avatarSize() diff --git a/plugins/ExtendedProfile/ExtendedProfilePlugin.php b/plugins/ExtendedProfile/ExtendedProfilePlugin.php index 51584e9f91..7b2e53c62a 100644 --- a/plugins/ExtendedProfile/ExtendedProfilePlugin.php +++ b/plugins/ExtendedProfile/ExtendedProfilePlugin.php @@ -115,13 +115,12 @@ class ExtendedProfilePlugin extends Plugin return true; } - function onStartProfilePageActionsSection(HTMLOutputter $out, Profile $profile) { + function onEndShowAccountProfileBlock(HTMLOutputter $out, Profile $profile) { $user = User::staticGet('id', $profile->id); if ($user) { $url = common_local_url('profiledetail', array('nickname' => $user->nickname)); // TRANS: Link text on user profile page leading to extended profile page. $out->element('a', array('href' => $url, 'class' => 'profiledetail'), _m('More details...')); } - return true; } }