Add some more events to aside profile blocks and rework a bit

This commit is contained in:
Zach Copley 2011-04-08 15:45:49 -07:00
parent 8335d234f7
commit 3022d711e3
5 changed files with 79 additions and 22 deletions

View File

@ -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

View File

@ -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');
}
}

View File

@ -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');
}
}

View File

@ -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()

View File

@ -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;
}
}