* Copyright (C) 2011, StatusNet, Inc.
*
* Superclass for profile blocks
- *
+ *
* PHP version 5
*
* This program is free software: you can redistribute it and/or modify
abstract class ProfileBlock extends Widget
{
- abstract function avatar();
+ protected $avatarSize = AVATAR_PROFILE_SIZE;
+
abstract function name();
abstract function url();
abstract function location();
function show()
{
- $this->out->elementStart('div', 'profile_block section');
-
- $size = $this->avatarSize();
-
- $this->out->element('img', array('src' => $this->avatar(),
- 'class' => 'profile_block_avatar',
- 'alt' => $this->name(),
- 'width' => $size,
- 'height' => $size));
+ $this->showActions();
+ $this->showAvatar($this->profile);
+ $this->showName();
+ $this->showLocation();
+ $this->showHomepage();
+ $this->showOtherProfiles();
+ $this->showDescription();
+ $this->showTags();
+ }
+ function showName()
+ {
$name = $this->name();
if (!empty($name)) {
}
$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);
}
+ }
+ function showHomepage()
+ {
$homepage = $this->homepage();
if (!empty($homepage)) {
- $this->out->element('a', 'profile_block_homepage', $homepage);
+ $this->out->element('a',
+ array('href' => $homepage,
+ 'rel' => 'me',
+ 'class' => 'profile_block_homepage'),
+ $homepage);
}
+ }
- $description = $this->description();
+ function showOtherProfiles()
+ {
+ $otherProfiles = $this->otherProfiles();
+
+ if (!empty($otherProfiles)) {
+
+ $this->out->elementStart('ul',
+ array('class' => 'profile_block_otherprofile_list'));
+
+ foreach ($otherProfiles as $otherProfile) {
+ $this->out->elementStart('li');
+ $this->out->elementStart('a',
+ array('href' => $otherProfile['href'],
+ 'rel' => 'me',
+ 'class' => 'profile_block_otherprofile',
+ 'title' => $otherProfile['text']));
+ $this->out->element('img',
+ array('src' => $otherProfile['image'],
+ 'class' => 'profile_block_otherprofile_icon'));
+ $this->out->elementEnd('a');
+ $this->out->elementEnd('li');
+ }
- if (!empty($description)) {
- $this->out->element('p',
- 'profile_block_description',
- $description);
+ $this->out->elementEnd('ul');
}
-
- $this->showActions();
-
- $this->out->elementEnd('div');
}
- function avatarSize()
+ function showTags()
{
- return AVATAR_PROFILE_SIZE;
}
function showActions()