summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--actions/showstream.php175
-rw-r--r--lib/profilelist.php53
-rw-r--r--lib/subscribeform.php15
-rw-r--r--lib/unsubscribeform.php14
-rw-r--r--theme/base/css/display.css17
5 files changed, 172 insertions, 102 deletions
diff --git a/actions/showstream.php b/actions/showstream.php
index aaa55b330..1d79ea30d 100644
--- a/actions/showstream.php
+++ b/actions/showstream.php
@@ -132,7 +132,12 @@ class ShowstreamAction extends Action
function showPageTitle()
{
- // Don't show the H1; we have one in the profile block
+ $this->element('h1', NULL, $this->profile->nickname._("'s profile"));
+ }
+
+ function showPageNoticeBlock()
+ {
+ return;
}
function showExportData()
@@ -219,19 +224,90 @@ class ShowstreamAction extends Action
function showProfile()
{
- $this->elementStart('div', array('id' => 'profile', 'class' => 'vcard'));
+ $this->elementStart('div', array('id' => 'user_profile', 'class' => 'vcard author'));
+ $this->element('h2', null, _('User profile'));
$avatar = $this->profile->getAvatar(AVATAR_PROFILE_SIZE);
- $this->elementStart('div', array('id' => 'profile_avatar'));
+ $this->elementStart('dl', 'user_depiction');
+ $this->element('dt', null, _('Photo'));
+ $this->elementStart('dd');
$this->element('img', array('src' => ($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_PROFILE_SIZE),
- 'class' => 'avatar profile photo',
+ 'class' => 'photo avatar',
'width' => AVATAR_PROFILE_SIZE,
'height' => AVATAR_PROFILE_SIZE,
'alt' => $this->profile->nickname));
+ $this->elementEnd('dd');
+ $this->elementEnd('dl');
+
+ $this->elementStart('dl', 'user_nickname');
+ $this->element('dt', null, _('Nickname'));
+ $this->elementStart('dd');
+ $this->element('a', array('href' => $this->profile->profileurl,
+ 'rel' => 'me', 'class' => 'nickname url uid'),
+ $this->profile->nickname);
+ $this->elementEnd('dd');
+ $this->elementEnd('dl');
+
+ if ($this->profile->fullname) {
+ $this->elementStart('dl', 'user_fn');
+ $this->element('dt', null, _('Full name'));
+ $this->elementStart('dd');
+ $this->element('span', 'fn', $this->profile->fullname);
+ $this->elementEnd('dd');
+ $this->elementEnd('dl');
+ }
+
+ if ($this->profile->location) {
+ $this->elementStart('dl', 'user_location');
+ $this->element('dt', null, _('Location'));
+ $this->element('dd', 'location', $this->profile->location);
+ $this->elementEnd('dl');
+ }
+
+ if ($this->profile->homepage) {
+ $this->elementStart('dl', 'user_url');
+ $this->element('dt', null, _('URL'));
+ $this->elementStart('dd');
+ $this->element('a', array('href' => $this->profile->homepage,
+ 'rel' => 'me', 'class' => 'url'),
+ $this->profile->homepage);
+ $this->elementEnd('dd');
+ $this->elementEnd('dl');
+ }
+
+ if ($this->profile->bio) {
+ $this->elementStart('dl', 'user_note');
+ $this->element('dt', null, _('Note'));
+ $this->element('dd', 'note', $this->profile->bio);
+ $this->elementEnd('dl');
+ }
- $this->elementStart('ul', array('id' => 'profile_actions'));
+ $tags = Profile_tag::getTags($this->profile->id, $this->profile->id);
+ if (count($tags) > 0) {
+ $this->elementStart('dl', 'user_tags');
+ $this->element('dt', null, _('Tags'));
+ $this->elementStart('dd', 'tags');
+ $this->elementStart('ul', 'tags xoxo');
+ foreach ($tags as $tag) {
+ $this->elementStart('li');
+ $this->element('span', 'mark_hash', '#');
+ $this->element('a', array('rel' => 'tag',
+ 'href' => common_local_url('peopletag',
+ array('tag' => $tag))),
+ $tag);
+ $this->elementEnd('li');
+ }
+ $this->elementEnd('ul');
+ $this->elementEnd('dd');
+ $this->elementEnd('dl');
+ }
+ $this->elementEnd('div');
- $this->elementStart('li', array('id' => 'profile_subscribe'));
+
+ $this->elementStart('div', array('id' => 'user_actions'));
+ $this->element('h2', null, _('User actions'));
+ $this->elementStart('ul');
+ $this->elementStart('li', array('id' => 'user_subscribe'));
$cur = common_current_user();
if ($cur) {
if ($cur->id != $this->profile->id) {
@@ -252,7 +328,7 @@ class ShowstreamAction extends Action
if ($cur && $cur->id != $this->profile->id) {
$blocked = $cur->hasBlocked($this->profile);
- $this->elementStart('li', array('id' => 'profile_block'));
+ $this->elementStart('li', array('id' => 'user_block'));
if ($blocked) {
$bf = new BlockForm($this, $this->profile);
$bf->show();
@@ -262,35 +338,7 @@ class ShowstreamAction extends Action
}
$this->elementEnd('li');
}
-
$this->elementEnd('ul');
-
- $this->elementEnd('div');
-
- $this->elementStart('div', array('id' => 'profile_information'));
-
- if ($this->profile->fullname) {
- $this->element('h1', array('class' => 'fn'), $this->profile->fullname . ' (' . $this->profile->nickname . ')');
- } else {
- $this->element('h1', array('class' => 'fn nickname'), $this->profile->nickname);
- }
-
- if ($this->profile->location) {
- $this->element('p', 'location', $this->profile->location);
- }
- if ($this->profile->bio) {
- $this->element('p', 'description note', $this->profile->bio);
- }
- if ($this->profile->homepage) {
- $this->elementStart('p', 'website');
- $this->element('a', array('href' => $this->profile->homepage,
- 'rel' => 'me', 'class' => 'url'),
- $this->profile->homepage);
- $this->elementEnd('p');
- }
-
- $this->elementEnd('div');
-
$this->elementEnd('div');
}
@@ -334,14 +382,14 @@ class ShowstreamAction extends Action
$subs_count = $subs->find();
- $this->elementStart('div', array('id' => 'subscriptions',
+ $this->elementStart('div', array('id' => 'user_subscriptions',
'class' => 'section'));
$this->element('h2', null, _('Subscriptions'));
if ($subs_count > 0) {
- $this->elementStart('ul', array('id' => 'subscriptions_avatars'));
+ $this->elementStart('ul', 'users');
for ($i = 0; $i < min($subs_count, SUBSCRIPTIONS); $i++) {
@@ -363,15 +411,16 @@ class ShowstreamAction extends Action
$other->nickname,
'href' => $other->profileurl,
'rel' => 'contact',
- 'class' => 'subscription fn url'));
+ 'class' => 'url'));
$avatar = $other->getAvatar(AVATAR_MINI_SIZE);
$this->element('img', array('src' => (($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_MINI_SIZE)),
'width' => AVATAR_MINI_SIZE,
'height' => AVATAR_MINI_SIZE,
- 'class' => 'avatar mini photo',
+ 'class' => 'avatar photo',
'alt' => ($other->fullname) ?
$other->fullname :
$other->nickname));
+ $this->element('span', 'fn nickname', $other->nickname);
$this->elementEnd('a');
$this->elementEnd('li');
}
@@ -380,11 +429,11 @@ class ShowstreamAction extends Action
}
if ($subs_count > SUBSCRIPTIONS) {
- $this->elementStart('p', array('id' => 'subscriptions_viewall'));
+ $this->elementStart('p');
$this->element('a', array('href' => common_local_url('subscriptions',
array('nickname' => $this->profile->nickname)),
- 'class' => 'moresubscriptions'),
+ 'class' => 'mores'),
_('All subscriptions'));
$this->elementEnd('p');
}
@@ -394,7 +443,6 @@ class ShowstreamAction extends Action
function showStatistics()
{
-
// XXX: WORM cache this
$subs = new Subscription();
$subs->subscriber = $this->profile->id;
@@ -408,48 +456,39 @@ class ShowstreamAction extends Action
$notices->profile_id = $this->profile->id;
$notice_count = (int) $notices->count();
- $this->elementStart('div', array('id' => 'statistics',
+ $this->elementStart('div', array('id' => 'user_statistics',
'class' => 'section'));
- $this->element('h2', 'statistics', _('Statistics'));
+ $this->element('h2', null, _('Statistics'));
// Other stats...?
- $this->elementStart('dl', 'statistics');
- $this->element('dt', 'membersince', _('Member since'));
- $this->element('dd', 'membersince', date('j M Y',
+ $this->elementStart('dl', 'user_member-since');
+ $this->element('dt', null, _('Member since'));
+ $this->element('dd', null, date('j M Y',
strtotime($this->profile->created)));
+ $this->elementEnd('dl');
- $this->elementStart('dt', 'subscriptions');
+ $this->elementStart('dl', 'user_subscriptions');
+ $this->elementStart('dt');
$this->element('a', array('href' => common_local_url('subscriptions',
array('nickname' => $this->profile->nickname))),
_('Subscriptions'));
$this->elementEnd('dt');
- $this->element('dd', 'subscriptions', (is_int($subs_count)) ? $subs_count : '0');
- $this->elementStart('dt', 'subscribers');
+ $this->element('dd', null, (is_int($subs_count)) ? $subs_count : '0');
+ $this->elementEnd('dl');
+
+ $this->elementStart('dl', 'user_subscribers');
+ $this->elementStart('dt');
$this->element('a', array('href' => common_local_url('subscribers',
array('nickname' => $this->profile->nickname))),
_('Subscribers'));
$this->elementEnd('dt');
$this->element('dd', 'subscribers', (is_int($subbed_count)) ? $subbed_count : '0');
- $this->element('dt', 'notices', _('Notices'));
- $this->element('dd', 'notices', (is_int($notice_count)) ? $notice_count : '0');
- // XXX: link these to something
- $this->element('dt', 'tags', _('Tags'));
- $this->elementStart('dd', 'tags');
- $tags = Profile_tag::getTags($this->profile->id, $this->profile->id);
-
- $this->elementStart('ul', 'tags xoxo');
- foreach ($tags as $tag) {
- $this->elementStart('li');
- $this->element('a', array('rel' => 'bookmark tag',
- 'href' => common_local_url('peopletag',
- array('tag' => $tag))),
- $tag);
- $this->elementEnd('li');
- }
- $this->elementEnd('ul');
- $this->elementEnd('dd');
+ $this->elementEnd('dl');
+ $this->elementStart('dl', 'user_notices');
+ $this->element('dt', null, _('Notices'));
+ $this->element('dd', null, (is_int($notice_count)) ? $notice_count : '0');
$this->elementEnd('dl');
$this->elementEnd('div');
diff --git a/lib/profilelist.php b/lib/profilelist.php
index fdc71ab8d..24b357385 100644
--- a/lib/profilelist.php
+++ b/lib/profilelist.php
@@ -68,7 +68,7 @@ class ProfileList extends Widget
function show()
{
- $this->out->elementStart('ul', array('id' => 'profiles', 'class' => 'profile_list'));
+ $this->out->elementStart('ul', 'profiles');
$cnt = 0;
@@ -87,51 +87,40 @@ class ProfileList extends Widget
function showProfile()
{
- $this->out->elementStart('li', array('class' => 'profile_single',
- 'id' => 'profile-' . $this->profile->id));
+ $this->out->elementStart('li', array('class' => 'profile vcard',
+ 'id' => 'profile-' . $this->profile->id));
$user = common_current_user();
- if ($user && $user->id != $this->profile->id) {
- # XXX: special-case for user looking at own
- # subscriptions page
- if ($user->isSubscribed($this->profile)) {
- $usf = new UnsubscribeForm($this->out, $this->profile);
- $usf->show();
- } else {
- $sf = new SubscribeForm($this->out, $this->profile);
- $sf->show();
- }
- }
+
+ $this->out->elementStart('div', array('id' => 'user_profile',
+ 'class' => 'vcard'));
$avatar = $this->profile->getAvatar(AVATAR_STREAM_SIZE);
- $this->out->elementStart('a', array('href' => $this->profile->profileurl));
+ $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' => 'avatar stream',
+ 'class' => 'photo avatar',
'width' => AVATAR_STREAM_SIZE,
'height' => AVATAR_STREAM_SIZE,
'alt' =>
($this->profile->fullname) ? $this->profile->fullname :
$this->profile->nickname));
- $this->out->elementEnd('a');
- $this->out->elementStart('p');
- $this->out->elementStart('a', array('href' => $this->profile->profileurl,
- 'class' => 'nickname'));
+ $this->out->elementStart('span', 'nickname');
$this->out->raw($this->highlight($this->profile->nickname));
+ $this->out->elementEnd('span');
$this->out->elementEnd('a');
+
if ($this->profile->fullname) {
- $this->out->text(' | ');
- $this->out->elementStart('span', 'fullname');
+ $this->out->elementStart('span', 'fn');
$this->out->raw($this->highlight($this->profile->fullname));
$this->out->elementEnd('span');
}
if ($this->profile->location) {
- $this->out->text(' | ');
$this->out->elementStart('span', 'location');
$this->out->raw($this->highlight($this->profile->location));
$this->out->elementEnd('span');
}
- $this->out->elementEnd('p');
if ($this->profile->homepage) {
$this->out->elementStart('p', 'website');
$this->out->elementStart('a', array('href' => $this->profile->homepage));
@@ -188,6 +177,20 @@ class ProfileList extends Widget
$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
+ if ($user->isSubscribed($this->profile)) {
+ $usf = new UnsubscribeForm($this->out, $this->profile);
+ $usf->show();
+ } else {
+ $sf = new SubscribeForm($this->out, $this->profile);
+ $sf->show();
+ }
+ }
+
$this->out->elementEnd('li');
}
@@ -202,4 +205,4 @@ class ProfileList extends Widget
{
return htmlspecialchars($text);
}
-} \ No newline at end of file
+}
diff --git a/lib/subscribeform.php b/lib/subscribeform.php
index 996729a28..8b69efd1a 100644
--- a/lib/subscribeform.php
+++ b/lib/subscribeform.php
@@ -80,6 +80,19 @@ class SubscribeForm extends Form
return 'subscribe-' . $this->profile->id;
}
+
+ /**
+ * class of the form
+ *
+ * @return string of the form class
+ */
+
+ function formClass()
+ {
+ return 'form_subscribe';
+ }
+
+
/**
* Action of the form
*
@@ -114,4 +127,4 @@ class SubscribeForm extends Form
{
$this->out->submit('submit', _('Subscribe'));
}
-} \ No newline at end of file
+}
diff --git a/lib/unsubscribeform.php b/lib/unsubscribeform.php
index a724bb312..b222f0e54 100644
--- a/lib/unsubscribeform.php
+++ b/lib/unsubscribeform.php
@@ -80,6 +80,18 @@ class UnsubscribeForm extends Form
return 'unsubscribe-' . $this->profile->id;
}
+
+ /**
+ * class of the form
+ *
+ * @return string of the form class
+ */
+
+ function formClass()
+ {
+ return 'form_unsubscribe';
+ }
+
/**
* Action of the form
*
@@ -114,4 +126,4 @@ class UnsubscribeForm extends Form
{
$this->out->submit('submit', _('Unsubscribe'));
}
-} \ No newline at end of file
+}
diff --git a/theme/base/css/display.css b/theme/base/css/display.css
index 59429cf72..406ba3f9a 100644
--- a/theme/base/css/display.css
+++ b/theme/base/css/display.css
@@ -489,7 +489,7 @@ margin-bottom:0;
/* user_profile */
#user_profile {
position:relative;
-width:633px;
+width:475px;
min-height:123px;
float:left;
margin-bottom:17px;
@@ -514,7 +514,7 @@ width:96px;
#user_profile .user_tags {
float:left;
clear:left;
-margin-left:125px;
+margin-left:113px;
width:322px;
margin-bottom:4px;
}
@@ -524,21 +524,24 @@ margin-bottom:4px;
width:auto;
clear:none;
}
-#user_profile .user_nickname {
+#user_profile .user_fn {
margin-left:11px;
+margin-left:4px;
+margin-right:4px;
+font-weight:bold;
}
#user_profile .user_nickname .nickname {
font-style:italic;
font-weight:bold;
-margin-left:4px;
-margin-right:4px;
}
-#user_profile .user_nickname dd:before {
+#user_profile .user_fn dd:before {
content: "(";
+font-weight:normal;
}
-#user_profile .user_nickname dd:after {
+#user_profile .user_fn dd:after {
content: ")";
+font-weight:normal;
}
#user_profile dt {