require_once INSTALLDIR.'/lib/widget.php';
-define('PROFILES_PER_PAGE', 20);
-
/**
* Widget to show a list of profiles
*
function showProfile()
{
- $this->out->elementStart('li', array('class' => 'profile vcard',
+ $this->out->elementStart('li', array('class' => 'profile',
'id' => 'profile-' . $this->profile->id));
$user = common_current_user();
+ $is_own = !is_null($user) && isset($this->owner) && ($user->id === $this->owner->id);
-
- $this->out->elementStart('div', array('id' => 'user_profile',
- 'class' => 'vcard'));
+ $this->out->elementStart('div', 'entity_profile vcard');
$avatar = $this->profile->getAvatar(AVATAR_STREAM_SIZE);
$this->out->elementStart('a', array('href' => $this->profile->profileurl,
'class' => 'url'));
- $this->out->element('img', array('src' => ($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_STREAM_SIZE),
- 'class' => 'photo avatar',
- 'width' => AVATAR_STREAM_SIZE,
- 'height' => AVATAR_STREAM_SIZE,
- 'alt' =>
- ($this->profile->fullname) ? $this->profile->fullname :
- $this->profile->nickname));
- $this->out->elementStart('span', 'nickname');
+ $this->out->element('img', array('src' => ($avatar) ? $avatar->displayUrl() : Avatar::defaultImage(AVATAR_STREAM_SIZE),
+ 'class' => 'photo avatar',
+ 'width' => AVATAR_STREAM_SIZE,
+ 'height' => AVATAR_STREAM_SIZE,
+ 'alt' =>
+ ($this->profile->fullname) ? $this->profile->fullname :
+ $this->profile->nickname));
+ $hasFN = ($this->profile->fullname !== '') ? 'nickname' : 'fn nickname';
+ $this->out->elementStart('span', $hasFN);
$this->out->raw($this->highlight($this->profile->nickname));
$this->out->elementEnd('span');
$this->out->elementEnd('a');
-
- if ($this->profile->fullname) {
+
+ if (!empty($this->profile->fullname)) {
+ $this->out->elementStart('dl', 'entity_fn');
+ $this->out->element('dt', null, 'Full name');
+ $this->out->elementStart('dd');
$this->out->elementStart('span', 'fn');
$this->out->raw($this->highlight($this->profile->fullname));
$this->out->elementEnd('span');
+ $this->out->elementEnd('dd');
+ $this->out->elementEnd('dl');
}
- if ($this->profile->location) {
- $this->out->elementStart('span', 'location');
+ if (!empty($this->profile->location)) {
+ $this->out->elementStart('dl', 'entity_location');
+ $this->out->element('dt', null, _('Location'));
+ $this->out->elementStart('dd', 'label');
$this->out->raw($this->highlight($this->profile->location));
- $this->out->elementEnd('span');
+ $this->out->elementEnd('dd');
+ $this->out->elementEnd('dl');
}
- if ($this->profile->homepage) {
- $this->out->elementStart('p', 'website');
- $this->out->elementStart('a', array('href' => $this->profile->homepage));
+ if (!empty($this->profile->homepage)) {
+ $this->out->elementStart('dl', 'entity_url');
+ $this->out->element('dt', null, _('URL'));
+ $this->out->elementStart('dd');
+ $this->out->elementStart('a', array('href' => $this->profile->homepage,
+ 'class' => 'url'));
$this->out->raw($this->highlight($this->profile->homepage));
$this->out->elementEnd('a');
- $this->out->elementEnd('p');
+ $this->out->elementEnd('dd');
+ $this->out->elementEnd('dl');
}
- if ($this->profile->bio) {
- $this->out->elementStart('p', 'bio');
+ if (!empty($this->profile->bio)) {
+ $this->out->elementStart('dl', 'entity_note');
+ $this->out->element('dt', null, _('Note'));
+ $this->out->elementStart('dd', 'note');
$this->out->raw($this->highlight($this->profile->bio));
- $this->out->elementEnd('p');
+ $this->out->elementEnd('dd');
+ $this->out->elementEnd('dl');
}
# If we're on a list with an owner (subscriptions or subscribers)...
# Get tags
$tags = Profile_tag::getTags($this->owner->id, $this->profile->id);
- $this->out->elementStart('div', 'tags_user');
- $this->out->elementStart('dl');
+ $this->out->elementStart('dl', 'entity_tags');
$this->out->elementStart('dt');
- if ($user->id == $this->owner->id) {
+ if ($is_own) {
$this->out->element('a', array('href' => common_local_url('tagother',
- array('id' => $this->profile->id))),
- _('Tags'));
+ array('id' => $this->profile->id))),
+ _('Tags'));
} else {
$this->out->text(_('Tags'));
}
- $this->out->text(":");
$this->out->elementEnd('dt');
$this->out->elementStart('dd');
if ($tags) {
$this->out->elementStart('ul', 'tags xoxo');
foreach ($tags as $tag) {
$this->out->elementStart('li');
+ $this->out->element('span', 'mark_hash', '#');
$this->out->element('a', array('rel' => 'tag',
- 'href' => common_local_url($this->action,
- array('nickname' => $this->owner->nickname,
- 'tag' => $tag))),
- $tag);
+ 'href' => common_local_url($this->action->trimmed('action'),
+ array('nickname' => $this->owner->nickname,
+ 'tag' => $tag))),
+ $tag);
$this->out->elementEnd('li');
}
$this->out->elementEnd('ul');
}
$this->out->elementEnd('dd');
$this->out->elementEnd('dl');
- $this->out->elementEnd('div');
}
- if ($user && $user->id == $this->owner->id) {
+ if ($is_own) {
$this->showOwnerControls($this->profile);
}
$this->out->elementEnd('div');
- if ($user && $user->id != $this->profile->id) {
- # XXX: special-case for user looking at own
- # subscriptions page
+ $this->out->elementStart('div', 'entity_actions');
+
+ $this->out->elementStart('ul');
+
+ // Is this a logged-in user, looking at someone else's
+ // profile?
+
+ if (!empty($user) && $this->profile->id != $user->id) {
+ $this->out->elementStart('li', 'entity_subscribe');
if ($user->isSubscribed($this->profile)) {
$usf = new UnsubscribeForm($this->out, $this->profile);
$usf->show();
$sf = new SubscribeForm($this->out, $this->profile);
$sf->show();
}
+ $this->out->elementEnd('li');
+ $this->out->elementStart('li', 'entity_block');
+ if ($user->id == $this->owner->id) {
+ $this->showBlockForm();
+ }
+ $this->out->elementEnd('li');
}
+ $this->out->elementEnd('ul');
+
+ $this->out->elementEnd('div');
+
$this->out->elementEnd('li');
}
{
return htmlspecialchars($text);
}
+
+ function showBlockForm()
+ {
+ }
}