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->showActions();
- $this->showAvatar();
+ $this->showAvatar($this->profile);
$this->showName();
$this->showLocation();
$this->showHomepage();
+ $this->showOtherProfiles();
$this->showDescription();
$this->showTags();
}
- function showAvatar()
- {
- $size = $this->avatarSize();
-
- $this->out->element(
- 'img',
- array(
- 'src' => $this->avatar(),
- 'class' => 'ur_face',
- 'alt' => $this->name(),
- 'width' => $size,
- 'height' => $size
- )
- );
- }
-
function showName()
{
$name = $this->name();
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);
}
}
- function avatarSize()
+ function showOtherProfiles()
{
- return AVATAR_PROFILE_SIZE;
+ $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');
+ }
+
+ $this->out->elementEnd('ul');
+ }
}
function showTags()