Initial move towards microformats2

No validation has been attempted yet. Lots of changes left. This
is visibly not (very) different from the previous CSS layout. But
some simplifications have been made.

Might cause issues with local changes to themes and CSS. Also maybe
javascript which depends on certain legacy microformats elements.

The move to microformats2 is motivated by the announcement that all
microformats should be migrated to version 2, as of 2014-06-20 at:
http://microformats.org/2014/06/20/microformats-org-turns-9-upgrade-to-microformats2
This commit is contained in:
Mikael Nordfeldth 2014-06-21 21:01:17 +02:00
parent d16af504f6
commit 414a95a784
56 changed files with 327 additions and 539 deletions

View File

@ -96,11 +96,11 @@ class DocAction extends Action
*/ */
function showContentBlock() function showContentBlock()
{ {
$this->elementStart('div', array('id' => 'content', 'class' => 'hentry')); $this->elementStart('div', array('id' => 'content', 'class' => 'h-entry'));
$this->showPageTitle(); $this->showPageTitle();
$this->showPageNoticeBlock(); $this->showPageNoticeBlock();
$this->elementStart('div', array('id' => 'content_inner', $this->elementStart('div', array('id' => 'content_inner',
'class' => 'entry-content')); 'class' => 'e-content'));
// show the actual content (forms, lists, whatever) // show the actual content (forms, lists, whatever)
$this->showContent(); $this->showContent();
$this->elementEnd('div'); $this->elementEnd('div');

View File

@ -202,7 +202,7 @@ class SearchNoticeListItem extends NoticeListItem {
function showContent() function showContent()
{ {
// FIXME: URL, image, video, audio // FIXME: URL, image, video, audio
$this->out->elementStart('p', array('class' => 'entry-content')); $this->out->elementStart('p', array('class' => 'e-content'));
if ($this->notice->rendered) { if ($this->notice->rendered) {
$this->out->raw($this->highlight($this->notice->rendered, $this->terms)); $this->out->raw($this->highlight($this->notice->rendered, $this->terms));
} else { } else {

View File

@ -293,14 +293,14 @@ class RegisterAction extends Action
} }
} }
// overrided to add hentry, and content-inner class // overrided to add h-entry, and content-inner class
function showContentBlock() function showContentBlock()
{ {
$this->elementStart('div', array('id' => 'content', 'class' => 'hentry')); $this->elementStart('div', array('id' => 'content', 'class' => 'h-entry'));
$this->showPageTitle(); $this->showPageTitle();
$this->showPageNoticeBlock(); $this->showPageNoticeBlock();
$this->elementStart('div', array('id' => 'content_inner', $this->elementStart('div', array('id' => 'content_inner',
'class' => 'entry-content')); 'class' => 'e-content'));
// show the actual content (forms, lists, whatever) // show the actual content (forms, lists, whatever)
$this->showContent(); $this->showContent();
$this->elementEnd('div'); $this->elementEnd('div');

View File

@ -147,20 +147,20 @@ class ShowApplicationAction extends Action
$consumer = $this->application->getConsumer(); $consumer = $this->application->getConsumer();
$this->elementStart('div', 'entity_profile vcard'); $this->elementStart('div', 'entity_profile h-card');
// TRANS: Header on the OAuth application page. // TRANS: Header on the OAuth application page.
$this->element('h2', null, _('Application profile')); $this->element('h2', null, _('Application profile'));
if (!empty($this->application->icon)) { if (!empty($this->application->icon)) {
$this->element('img', array('src' => $this->application->icon, $this->element('img', array('src' => $this->application->icon,
'class' => 'photo logo entity_depiction')); 'class' => 'u-photo logo entity_depiction'));
} }
$this->element('a', array('href' => $this->application->source_url, $this->element('a', array('href' => $this->application->source_url,
'class' => 'url fn entity_fn'), 'class' => 'u-url p-name entity_fn'),
$this->application->name); $this->application->name);
$this->element('a', array('href' => $this->application->homepage, $this->element('a', array('href' => $this->application->homepage,
'class' => 'url entity_org'), 'class' => 'u-url entity_org'),
$this->application->organization); $this->application->organization);
$this->element('div', $this->element('div',

View File

@ -40,7 +40,7 @@ require_once INSTALLDIR.'/lib/noticelist.php';
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/ * @link http://status.net/
*/ */
class ShownoticeAction extends Action class ShownoticeAction extends ManagedAction
{ {
/** /**
* Notice object to show * Notice object to show
@ -184,33 +184,7 @@ class ShownoticeAction extends Action
*/ */
function title() function title()
{ {
$base = $this->profile->getFancyName(); return $this->notice->getTitle();
// TRANS: Title of the page that shows a notice.
// TRANS: %1$s is a user name, %2$s is the notice creation date/time.
return sprintf(_('%1$s\'s status on %2$s'),
$base,
common_exact_date($this->notice->created));
}
/**
* Handle input
*
* Only handles get, so just show the page.
*
* @param array $args $_REQUEST data (unused)
*
* @return void
*/
protected function handle()
{
parent::handle();
if (StatusNet::isAjax()) {
$this->showAjax();
} else {
$this->showPage();
}
} }
/** /**
@ -223,23 +197,9 @@ class ShownoticeAction extends Action
function showContent() function showContent()
{ {
$this->elementStart('ol', array('class' => 'notices xoxo')); $this->elementStart('ol', array('class' => 'notices xoxo'));
$nli = new SingleNoticeItem($this->notice, $this);
$nli->show();
$this->elementEnd('ol');
}
function showAjax()
{
$this->startHTML('text/xml;charset=utf-8');
$this->elementStart('head');
// TRANS: Title for page that shows a notice.
$this->element('title', null, _m('TITLE','Notice'));
$this->elementEnd('head');
$this->elementStart('body');
$nli = new NoticeListItem($this->notice, $this); $nli = new NoticeListItem($this->notice, $this);
$nli->show(); $nli->show();
$this->elementEnd('body'); $this->elementEnd('ol');
$this->endHTML();
} }
/** /**
@ -270,7 +230,7 @@ class ShownoticeAction extends Action
{ {
$user = User::getKV($this->profile->id); $user = User::getKV($this->profile->id);
if (!$user) { if (!$user instanceof User) {
return; return;
} }
@ -289,12 +249,3 @@ class ShownoticeAction extends Action
'content' => $this->notice->content)); 'content' => $this->notice->content));
} }
} }
// @todo FIXME: Class documentation missing.
class SingleNoticeItem extends DoFollowListItem
{
function avatarSize()
{
return AVATAR_STREAM_SIZE;
}
}

View File

@ -364,7 +364,7 @@ class Peopletag extends PeopletagListItem
function showStart() function showStart()
{ {
$mode = $this->peopletag->private ? 'private' : 'public'; $mode = $this->peopletag->private ? 'private' : 'public';
$this->out->elementStart('div', array('class' => 'hentry peopletag peopletag-profile mode-'.$mode, $this->out->elementStart('div', array('class' => 'h-entry peopletag peopletag-profile mode-'.$mode,
'id' => 'peopletag-' . $this->peopletag->id)); 'id' => 'peopletag-' . $this->peopletag->id));
} }

View File

@ -101,7 +101,7 @@ class TagprofileAction extends Action
function showContent() function showContent()
{ {
if (Event::handle('StartShowTagProfileForm', array($this, $this->profile)) && $this->profile) { if (Event::handle('StartShowTagProfileForm', array($this, $this->profile)) && $this->profile) {
$this->elementStart('div', 'entity_profile vcard author'); $this->elementStart('div', 'entity_profile h-card p-author');
// TRANS: Header in list form. // TRANS: Header in list form.
$this->element('h2', null, _('User profile')); $this->element('h2', null, _('User profile'));
@ -118,7 +118,7 @@ class TagprofileAction extends Action
'class' => 'entity_nickname nickname'), 'class' => 'entity_nickname nickname'),
$this->profile->nickname); $this->profile->nickname);
if ($this->profile->fullname) { if ($this->profile->fullname) {
$this->element('div', 'fn entity_fn', $this->profile->fullname); $this->element('div', 'p-name entity_fn', $this->profile->fullname);
} }
if ($this->profile->location) { if ($this->profile->location) {
@ -128,7 +128,7 @@ class TagprofileAction extends Action
if ($this->profile->homepage) { if ($this->profile->homepage) {
$this->element('a', array('href' => $this->profile->homepage, $this->element('a', array('href' => $this->profile->homepage,
'rel' => 'me', 'rel' => 'me',
'class' => 'url entity_url'), 'class' => 'u-url entity_url'),
$this->profile->homepage); $this->profile->homepage);
} }

View File

@ -108,17 +108,17 @@ class VersionAction extends Action
/* /*
* Override to add hentry, and content-inner classes * Override to add h-entry, and content-inner classes
* *
* @return void * @return void
*/ */
function showContentBlock() function showContentBlock()
{ {
$this->elementStart('div', array('id' => 'content', 'class' => 'hentry')); $this->elementStart('div', array('id' => 'content', 'class' => 'h-entry'));
$this->showPageTitle(); $this->showPageTitle();
$this->showPageNoticeBlock(); $this->showPageNoticeBlock();
$this->elementStart('div', array('id' => 'content_inner', $this->elementStart('div', array('id' => 'content_inner',
'class' => 'entry-content')); 'class' => 'e-content'));
// show the actual content (forms, lists, whatever) // show the actual content (forms, lists, whatever)
$this->showContent(); $this->showContent();
$this->elementEnd('div'); $this->elementEnd('div');

View File

@ -232,6 +232,19 @@ class Notice extends Managed_DataObject
return common_local_url('shownotice', array('notice' => $this->id), null, null, false); return common_local_url('shownotice', array('notice' => $this->id), null, null, false);
} }
public function getTitle()
{
$title = null;
if (Event::handle('GetNoticeTitle', array($this, &$title))) {
// TRANS: Title of a notice posted without a title value.
// TRANS: %1$s is a user name, %2$s is the notice creation date/time.
$title = sprintf(_('%1$s\'s status on %2$s'),
$this->getProfile()->getFancyName(),
common_exact_date($this->created));
}
return $title;
}
/* /*
* Get the original representation URL of this notice. * Get the original representation URL of this notice.
*/ */

View File

@ -376,19 +376,16 @@ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
<link rel="stylesheet" type="text/css" href="theme/base/css/display.css" media="screen, projection, tv"/> <link rel="stylesheet" type="text/css" href="theme/base/css/display.css" media="screen, projection, tv"/>
<link rel="stylesheet" type="text/css" href="theme/neo/css/display.css" media="screen, projection, tv"/> <link rel="stylesheet" type="text/css" href="theme/neo/css/display.css" media="screen, projection, tv"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<!--[if IE]><link rel="stylesheet" type="text/css" href="theme/base/css/ie.css" /><![endif]-->
<!--[if lte IE 6]><link rel="stylesheet" type="text/css" theme/base/css/ie6.css" /><![endif]-->
<!--[if lte IE 7]><link rel="stylesheet" type="text/css" theme/base/css/ie7.css" /><![endif]-->
<script src="js/extlib/jquery.js"></script> <script src="js/extlib/jquery.js"></script>
<script src="js/install.js"></script> <script src="js/install.js"></script>
</head> </head>
<body id="install"> <body id="install">
<div id="wrap"> <div id="wrap">
<div id="header"> <div id="header">
<address id="site_contact" class="vcard"> <address id="site_contact" class="h-card">
<a class="url home bookmark" href="."> <a class="u-url p-name home bookmark org" href=".">
<img class="logo photo" src="theme/neo/logo.png" alt="GNU social"/> <img class="logo u-photo" src="theme/neo/logo.png" alt="GNU social"/>
<span class="fn org">GNU social</span> GNU social
</a> </a>
</address> </address>
<div id="site_nav_global_primary"></div> <div id="site_nav_global_primary"></div>

View File

@ -863,7 +863,7 @@ var SN = { // StatusNet
var m = $(this); var m = $(this);
m.addClass(SN.C.S.Processing); m.addClass(SN.C.S.Processing);
$.get(m.attr('href'), {ajax: 1}, function (data) { $.get(m.attr('href'), {ajax: 1}, function (data) {
m.parent('.entry-content').html($(data).find('#attachment_view .entry-content').html()); m.parent('.e-content').html($(data).find('#attachment_view .e-content').html());
}); });
return false; return false;
@ -1361,7 +1361,7 @@ var SN = { // StatusNet
var profileLink = $('#nav_profile a').attr('href'); var profileLink = $('#nav_profile a').attr('href');
if (profileLink) { if (profileLink) {
var authorUrl = $(notice).find('.vcard.author a.url').attr('href'); var authorUrl = $(notice).find('.h-card.u-url').attr('href');
if (authorUrl == profileLink) { if (authorUrl == profileLink) {
if (action == 'all' || action == 'showstream') { if (action == 'all' || action == 'showstream') {
// Posts always show on your own friends and profile streams. // Posts always show on your own friends and profile streams.

View File

@ -582,8 +582,7 @@ class Action extends HTMLOutputter // lawsuit
*/ */
function showLogo() function showLogo()
{ {
$this->elementStart('address', array('id' => 'site_contact', $this->elementStart('address', array('id' => 'site_contact', 'class' => 'h-card'));
'class' => 'vcard'));
if (Event::handle('StartAddressData', array($this))) { if (Event::handle('StartAddressData', array($this))) {
if (common_config('singleuser', 'enabled')) { if (common_config('singleuser', 'enabled')) {
$user = User::singleUser(); $user = User::singleUser();
@ -596,7 +595,7 @@ class Action extends HTMLOutputter // lawsuit
$url = common_local_url('public'); $url = common_local_url('public');
} }
$this->elementStart('a', array('class' => 'url home bookmark', $this->elementStart('a', array('class' => 'home bookmark',
'href' => $url)); 'href' => $url));
if (StatusNet::isHTTPS()) { if (StatusNet::isHTTPS()) {
@ -622,13 +621,11 @@ class Action extends HTMLOutputter // lawsuit
} }
if (!empty($logoUrl)) { if (!empty($logoUrl)) {
$this->element('img', array('class' => 'logo photo', $this->element('img', array('class' => 'logo u-photo p-name',
'src' => $logoUrl, 'src' => $logoUrl,
'alt' => common_config('site', 'name'))); 'alt' => common_config('site', 'name')));
} }
$this->text(' ');
$this->element('span', array('class' => 'fn org'), common_config('site', 'name'));
$this->elementEnd('a'); $this->elementEnd('a');
Event::handle('EndAddressData', array($this)); Event::handle('EndAddressData', array($this));

View File

@ -87,50 +87,26 @@ class ApplicationList extends Widget
{ {
$user = common_current_user(); $user = common_current_user();
$this->out->elementStart( $this->out->elementStart('li', array('class' => 'application h-entry',
'li', 'id' => 'oauthclient-' . $this->application->id));
array(
'class' => 'application',
'id' => 'oauthclient-' . $this->application->id
)
);
$this->out->elementStart('span', 'vcard author'); $this->out->elementStart('a', array('href' => common_local_url('showapplication',
array('id' => $this->application->id)),
$this->out->elementStart( 'class' => 'h-card'));
'a',
array(
'href' => common_local_url(
'showapplication',
array('id' => $this->application->id)),
'class' => 'url'
)
);
if (!empty($this->application->icon)) { if (!empty($this->application->icon)) {
$this->out->element( $this->out->element('img', array('src' => $this->application->icon,
'img', 'class' => 'avatar u-photo'));
array(
'src' => $this->application->icon,
'class' => 'photo avatar'
)
);
} }
$this->out->element('span', 'fn', $this->application->name); $this->out->text($this->application->name);
$this->out->elementEnd('a'); $this->out->elementEnd('a');
$this->out->elementEnd('span');
$this->out->raw(' by '); $this->out->raw(' by ');
$this->out->element( $this->out->element('a', array('href' => $this->application->homepage,
'a', 'class' => 'u-url'),
array( $this->application->organization);
'href' => $this->application->homepage,
'class' => 'url'
),
$this->application->organization
);
$this->out->element('p', 'note', $this->application->description); $this->out->element('p', 'note', $this->application->description);
$this->out->elementEnd('li'); $this->out->elementEnd('li');
@ -204,59 +180,33 @@ class ConnectedAppsList extends Widget
{ {
$app = Oauth_application::getKV('id', $this->connection->application_id); $app = Oauth_application::getKV('id', $this->connection->application_id);
$this->out->elementStart( $this->out->elementStart('li', array('class' => 'application h-entry',
'li', 'id' => 'oauthclient-' . $app->id));
array(
'class' => 'application',
'id' => 'oauthclient-' . $app->id
)
);
$this->out->elementStart('span', 'vcard author'); $this->out->elementStart('a', array('href' => $app->source_url,
'class' => 'h-card p-name'));
$this->out->elementStart(
'a',
array(
'href' => $app->source_url,
'class' => 'url'
)
);
if (!empty($app->icon)) { if (!empty($app->icon)) {
$this->out->element( $this->out->element('img', array('src' => $app->icon,
'img', 'class' => 'avatar u-photo'));
array(
'src' => $app->icon,
'class' => 'photo avatar'
)
);
} }
if ($app->name != 'anonymous') { if ($app->name != 'anonymous') {
$this->out->element('span', 'fn', $app->name); $this->out->text($app->name);
} else {
// TRANS: Name for an anonymous application in application list.
$this->out->element('span', 'p-name', _('Unknown application'));
} }
$this->out->elementEnd('a'); $this->out->elementEnd('a');
if ($app->name == 'anonymous') {
// TRANS: Name for an anonymous application in application list.
$this->out->element('span', 'fn', _('Unknown application'));
}
$this->out->elementEnd('span');
if ($app->name != 'anonymous') { if ($app->name != 'anonymous') {
// @todo FIXME: i18n trouble. // @todo FIXME: i18n trouble.
// TRANS: Message has a leading space and a trailing space. Used in application list. // TRANS: Message has a leading space and a trailing space. Used in application list.
// TRANS: Before this message the application name is put, behind it the organisation that manages it. // TRANS: Before this message the application name is put, behind it the organisation that manages it.
$this->out->raw(_(' by ')); $this->out->raw(_(' by '));
$this->out->element( $this->out->element('a', array('href' => $app->homepage,
'a', 'class' => 'h-card'),
array( $app->organization);
'href' => $app->homepage,
'class' => 'url'
),
$app->organization
);
} }
// TRANS: Application access type // TRANS: Application access type

View File

@ -38,12 +38,12 @@ class Attachment extends AttachmentListItem
function showLink() { function showLink() {
if (Event::handle('StartShowAttachmentLink', array($this->out, $this->attachment))) { if (Event::handle('StartShowAttachmentLink', array($this->out, $this->attachment))) {
$this->out->elementStart('div', array('id' => 'attachment_view', $this->out->elementStart('div', array('id' => 'attachment_view',
'class' => 'hentry')); 'class' => 'h-entry'));
$this->out->elementStart('div', 'entry-title'); $this->out->elementStart('div', 'entry-title');
$this->out->element('a', $this->linkAttr(), _('Download link')); $this->out->element('a', $this->linkAttr(), _('Download link'));
$this->out->elementEnd('div'); $this->out->elementEnd('div');
$this->out->elementStart('div', 'entry-content'); $this->out->elementStart('div', 'e-content');
$this->showRepresentation(); $this->showRepresentation();
$this->out->elementEnd('div'); $this->out->elementEnd('div');
Event::handle('EndShowAttachmentLink', array($this->out, $this->attachment)); Event::handle('EndShowAttachmentLink', array($this->out, $this->attachment));

View File

@ -90,7 +90,7 @@ class AttachmentList extends Widget
function showListStart() function showListStart()
{ {
$this->out->elementStart('ol', array('class' => 'attachments entry-content')); $this->out->elementStart('ol', array('class' => 'attachments'));
} }
function showListEnd() function showListEnd()

View File

@ -114,9 +114,9 @@ class AttachmentListItem extends Widget
case 'image/jpeg': case 'image/jpeg':
try { try {
$thumb = $this->attachment->getThumbnail(); $thumb = $this->attachment->getThumbnail();
$this->out->element('img', array('src' => $thumb->getUrl(), 'alt' => '')); $this->out->element('img', array('class'=>'u-photo', 'src' => $thumb->getUrl(), 'alt' => $e->file->title));
} catch (UseFileAsThumbnailException $e) { } catch (UseFileAsThumbnailException $e) {
$this->out->element('img', array('src' => $e->file->getUrl(), 'alt' => $e->file->title)); $this->out->element('img', array('class'=>'u-photo', 'src' => $e->file->getUrl(), 'alt' => $e->file->title));
} catch (UnsupportedMediaException $e) { } catch (UnsupportedMediaException $e) {
// FIXME: Show a good representation of unsupported/unshowable images // FIXME: Show a good representation of unsupported/unshowable images
} }
@ -151,7 +151,7 @@ class AttachmentListItem extends Widget
$poster = null; $poster = null;
} }
$this->out->elementStart($mediatype, $this->out->elementStart($mediatype,
array('class'=>'attachment_player', array('class'=>"attachment_player u-{$mediatype}",
'poster'=>$poster, 'poster'=>$poster,
'controls'=>'controls')); 'controls'=>'controls'));
$this->out->element('source', $this->out->element('source',

View File

@ -66,7 +66,7 @@ class DoFollowListItem extends NoticeListItem
function showContent() function showContent()
{ {
// FIXME: URL, image, video, audio // FIXME: URL, image, video, audio
$this->out->elementStart('p', array('class' => 'entry-content')); $this->out->elementStart('div', array('class' => 'e-content'));
if (!empty($this->notice->rendered)) { if (!empty($this->notice->rendered)) {
$html = $this->notice->rendered; $html = $this->notice->rendered;
@ -83,6 +83,6 @@ class DoFollowListItem extends NoticeListItem
$this->out->raw($html); $this->out->raw($html);
$this->out->elementEnd('p'); $this->out->elementEnd('div');
} }
} }

View File

@ -83,36 +83,29 @@ class GroupList extends Widget
function showGroup() function showGroup()
{ {
$this->out->elementStart('li', array('class' => 'profile hentry', $this->out->elementStart('li', array('class' => 'profile h-card',
'id' => 'group-' . $this->group->id)); 'id' => 'group-' . $this->group->id));
$user = common_current_user(); $user = common_current_user();
$this->out->elementStart('div', 'entity_profile vcard entry-content'); $this->out->elementStart('div', 'entity_profile');
$logo = ($this->group->stream_logo) ? $logo = $this->group->stream_logo ?: User_group::defaultLogo(AVATAR_STREAM_SIZE);
$this->group->stream_logo : User_group::defaultLogo(AVATAR_STREAM_SIZE);
$this->out->elementStart('a', array('href' => $this->group->homeUrl(), $this->out->elementStart('a', array('href' => $this->group->homeUrl(),
'class' => 'url entry-title', 'class' => 'u-url p-nickname',
'rel' => 'contact group')); 'rel' => 'contact group'));
$this->out->element('img', array('src' => $logo, $this->out->element('img', array('src' => $logo,
'class' => 'photo avatar', 'class' => 'avatar u-photo',
'width' => AVATAR_STREAM_SIZE, 'width' => AVATAR_STREAM_SIZE,
'height' => AVATAR_STREAM_SIZE, 'height' => AVATAR_STREAM_SIZE,
'alt' => 'alt' => $this->group->getBestName()));
($this->group->fullname) ? $this->group->fullname : $this->out->text($this->group->getNickname());
$this->group->nickname));
$this->out->text(' ');
$hasFN = ($this->group->fullname) ? 'nickname' : 'fn org nickname';
$this->out->elementStart('span', $hasFN);
$this->out->raw($this->highlight($this->group->nickname));
$this->out->elementEnd('span');
$this->out->elementEnd('a'); $this->out->elementEnd('a');
if ($this->group->fullname) { if ($this->group->fullname) {
$this->out->text(' '); $this->out->text(' ');
$this->out->elementStart('span', 'fn org'); $this->out->elementStart('span', 'p-name');
$this->out->raw($this->highlight($this->group->fullname)); $this->out->raw($this->highlight($this->group->fullname));
$this->out->elementEnd('span'); $this->out->elementEnd('span');
} }
@ -125,7 +118,7 @@ class GroupList extends Widget
if ($this->group->homepage) { if ($this->group->homepage) {
$this->out->text(' '); $this->out->text(' ');
$this->out->elementStart('a', array('href' => $this->group->homepage, $this->out->elementStart('a', array('href' => $this->group->homepage,
'class' => 'url')); 'class' => 'u-url'));
$this->out->raw($this->highlight($this->group->homepage)); $this->out->raw($this->highlight($this->group->homepage));
$this->out->elementEnd('a'); $this->out->elementEnd('a');
} }

View File

@ -67,13 +67,11 @@ class GroupMiniList extends GroupList
function showGroup() function showGroup()
{ {
$this->out->elementStart('li', 'vcard'); $this->out->elementStart('li', 'h-card');
$this->out->elementStart('a', array('title' => ($this->group->fullname) ? $this->out->elementStart('a', array('title' => $this->group->getBestName(),
$this->group->fullname :
$this->group->nickname,
'href' => $this->group->homeUrl(), 'href' => $this->group->homeUrl(),
'rel' => 'contact group', 'rel' => 'contact group',
'class' => 'url')); 'class' => 'p-name u-url org'));
$logo = ($this->group->mini_logo) ? $logo = ($this->group->mini_logo) ?
$this->group->mini_logo : User_group::defaultLogo(AVATAR_MINI_SIZE); $this->group->mini_logo : User_group::defaultLogo(AVATAR_MINI_SIZE);
@ -82,10 +80,7 @@ class GroupMiniList extends GroupList
'width' => AVATAR_MINI_SIZE, 'width' => AVATAR_MINI_SIZE,
'height' => AVATAR_MINI_SIZE, 'height' => AVATAR_MINI_SIZE,
'class' => 'avatar photo', 'class' => 'avatar photo',
'alt' => ($this->group->fullname) ? 'alt' => $this->group->getBestName()));
$this->group->fullname :
$this->group->nickname));
$this->out->element('span', 'fn org nickname', $this->group->nickname);
$this->out->elementEnd('a'); $this->out->elementEnd('a');
$this->out->elementEnd('li'); $this->out->elementEnd('li');
} }

View File

@ -77,27 +77,18 @@ class GroupSection extends Section
{ {
$this->out->elementStart('tr'); $this->out->elementStart('tr');
$this->out->elementStart('td'); $this->out->elementStart('td');
$this->out->elementStart('span', 'vcard'); $this->out->elementStart('a', array('title' => $group->getBestName(),
$this->out->elementStart('a', array('title' => ($group->fullname) ?
$group->fullname :
$group->nickname,
'href' => $group->homeUrl(), 'href' => $group->homeUrl(),
'rel' => 'contact group', 'rel' => 'contact group',
'class' => 'url')); 'class' => 'h-card org nickname'));
$this->out->text(' '); $logo = $group->stream_logo ?: User_group::defaultLogo(AVATAR_STREAM_SIZE);
$logo = ($group->stream_logo) ?
$group->stream_logo : User_group::defaultLogo(AVATAR_STREAM_SIZE);
$this->out->element('img', array('src' => $logo, $this->out->element('img', array('src' => $logo,
'width' => AVATAR_MINI_SIZE, 'width' => AVATAR_MINI_SIZE,
'height' => AVATAR_MINI_SIZE, 'height' => AVATAR_MINI_SIZE,
'class' => 'avatar photo', 'class' => 'avatar u-photo',
'alt' => ($group->fullname) ? 'alt' => $group->getBestName()));
$group->fullname : $this->out->text($group->nickname);
$group->nickname));
$this->out->text(' ');
$this->out->element('span', 'fn org nickname', $group->nickname);
$this->out->elementEnd('a'); $this->out->elementEnd('a');
$this->out->elementEnd('span');
$this->out->elementEnd('td'); $this->out->elementEnd('td');
if ($group->value) { if ($group->value) {
$this->out->element('td', 'value', $group->value); $this->out->element('td', 'value', $group->value);

View File

@ -35,7 +35,7 @@ class InlineAttachmentList extends AttachmentList
{ {
function showListStart() function showListStart()
{ {
$this->out->elementStart('div', array('class' => 'entry-content thumbnails')); $this->out->elementStart('div', array('class' => 'attachments'));
} }
function showListEnd() function showListEnd()

View File

@ -67,32 +67,25 @@ abstract class MessageListItem extends Widget
*/ */
function show() function show()
{ {
$this->out->elementStart('li', array('class' => 'hentry notice', $this->out->elementStart('li', array('class' => 'h-entry notice',
'id' => 'message-' . $this->message->id)); 'id' => 'message-' . $this->message->id));
$profile = $this->getMessageProfile(); $profile = $this->getMessageProfile();
$this->out->elementStart('div', 'entry-title');
$this->out->elementStart('span', 'vcard author');
$this->out->elementStart('a', array('href' => $profile->profileurl, $this->out->elementStart('a', array('href' => $profile->profileurl,
'class' => 'url')); 'class' => 'p-author'));
$avatarUrl = $profile->avatarUrl(AVATAR_STREAM_SIZE); $avatarUrl = $profile->avatarUrl(AVATAR_STREAM_SIZE);
$this->out->element('img', array('src' => $avatarUrl, $this->out->element('img', array('src' => $avatarUrl,
'class' => 'photo avatar', 'class' => 'avatar u-photo',
'width' => AVATAR_STREAM_SIZE, 'width' => AVATAR_STREAM_SIZE,
'height' => AVATAR_STREAM_SIZE, 'height' => AVATAR_STREAM_SIZE,
'alt' => 'alt' => $profile->getBestName()));
($profile->fullname) ? $profile->fullname : $this->out->element('span', array('class' => 'nickname fn'), $profile->getNickname());
$profile->nickname));
$this->out->element('span', array('class' => 'nickname fn'),
$profile->nickname);
$this->out->elementEnd('a'); $this->out->elementEnd('a');
$this->out->elementEnd('span');
// FIXME: URL, image, video, audio // FIXME: URL, image, video, audio
$this->out->elementStart('p', array('class' => 'entry-content')); $this->out->elementStart('div', array('class' => 'e-content'));
$this->out->raw($this->message->rendered); $this->out->raw($this->message->rendered);
$this->out->elementEnd('p');
$this->out->elementEnd('div'); $this->out->elementEnd('div');
$messageurl = common_local_url('showmessage', $messageurl = common_local_url('showmessage',
@ -104,7 +97,7 @@ abstract class MessageListItem extends Widget
$messageurl = $this->message->uri; $messageurl = $this->message->uri;
} }
$this->out->elementStart('div', 'entry-content'); $this->out->elementStart('div', 'entry-metadata');
$this->out->elementStart('a', array('rel' => 'bookmark', $this->out->elementStart('a', array('rel' => 'bookmark',
'class' => 'timestamp', 'class' => 'timestamp',
'href' => $messageurl)); 'href' => $messageurl));

View File

@ -113,15 +113,25 @@ class NoticeListItem extends Widget
function showNotice() function showNotice()
{ {
$this->out->elementStart('div', 'entry-title'); $this->showNoticeTitle();
$this->showAuthor(); $this->showAuthor();
$this->showAddressees();
$this->showContent(); $this->showContent();
$this->out->elementEnd('div'); }
function showNoticeTitle()
{
if (Event::handle('StartShowNoticeTitle', array($this))) {
$this->element('a', array('href' => $this->notice->getUrl(),
'class' => 'p-name metadata'),
$this->notice->getTitle());
Event::handle('EndShowNoticeTitle', array($this));
}
} }
function showNoticeInfo() function showNoticeInfo()
{ {
$this->out->elementStart('div', 'entry-content'); $this->out->elementStart('div', 'entry-metadata');
if (Event::handle('StartShowNoticeInfo', array($this))) { if (Event::handle('StartShowNoticeInfo', array($this))) {
$this->showNoticeLink(); $this->showNoticeLink();
$this->showNoticeSource(); $this->showNoticeSource();
@ -164,7 +174,7 @@ class NoticeListItem extends Widget
{ {
if (Event::handle('StartOpenNoticeListItemElement', array($this))) { if (Event::handle('StartOpenNoticeListItemElement', array($this))) {
$id = (empty($this->repeat)) ? $this->notice->id : $this->repeat->id; $id = (empty($this->repeat)) ? $this->notice->id : $this->repeat->id;
$class = 'hentry notice'; $class = 'h-entry notice';
if ($this->notice->scope != 0 && $this->notice->scope != 1) { if ($this->notice->scope != 0 && $this->notice->scope != 1) {
$class .= ' limited-scope'; $class .= ' limited-scope';
} }
@ -209,24 +219,14 @@ class NoticeListItem extends Widget
function showAuthor() function showAuthor()
{ {
$this->out->elementStart('div', 'author');
$this->out->elementStart('span', 'vcard author');
$attrs = array('href' => $this->profile->profileurl, $attrs = array('href' => $this->profile->profileurl,
'class' => 'url', 'class' => 'h-card p-author',
'title' => $this->profile->nickname); 'title' => $this->profile->getNickname());
$this->out->elementStart('a', $attrs); $this->out->elementStart('a', $attrs);
$this->showAvatar($this->profile); $this->showAvatar($this->profile);
$this->out->text($this->profile->getStreamName()); $this->out->text($this->profile->getStreamName());
$this->out->elementEnd('a'); $this->out->elementEnd('a');
$this->out->elementEnd('span');
$this->showAddressees();
$this->out->elementEnd('div');
} }
function showAddressees() function showAddressees()
@ -234,21 +234,16 @@ class NoticeListItem extends Widget
$pa = $this->getProfileAddressees(); $pa = $this->getProfileAddressees();
if (!empty($pa)) { if (!empty($pa)) {
$this->out->elementStart('span', 'addressees'); $this->out->elementStart('ul', 'addressees');
$first = true; $first = true;
foreach ($pa as $addr) { foreach ($pa as $addr) {
if (!$first) { $this->out->elementStart('li', 'h-card');
// TRANS: Separator in profile addressees list.
$this->out->text(_m('SEPARATOR',', '));
} else {
// Start of profile addressees list.
$first = false;
}
$text = $addr['text']; $text = $addr['text'];
unset($addr['text']); unset($addr['text']);
$this->out->element('a', $addr, $text); $this->out->element('a', $addr, $text);
$this->out->elementEnd('li');
} }
$this->out->elementEnd('span', 'addressees'); $this->out->elementEnd('ul', 'addressees');
} }
} }
@ -261,7 +256,7 @@ class NoticeListItem extends Widget
foreach ($attentions as $attn) { foreach ($attentions as $attn) {
$class = $attn->isGroup() ? 'group' : 'account'; $class = $attn->isGroup() ? 'group' : 'account';
$pa[] = array('href' => $attn->profileurl, $pa[] = array('href' => $attn->profileurl,
'title' => $attn->nickname, 'title' => $attn->getNickname(),
'class' => "addressee {$class}", 'class' => "addressee {$class}",
'text' => $attn->getStreamName()); 'text' => $attn->getStreamName());
} }
@ -283,8 +278,8 @@ class NoticeListItem extends Widget
*/ */
function showNickname() function showNickname()
{ {
$this->out->raw('<span class="nickname fn">' . $this->out->raw('<span class="p-name">' .
htmlspecialchars($this->profile->nickname) . htmlspecialchars($this->profile->getNickname()) .
'</span>'); '</span>');
} }
@ -300,7 +295,7 @@ class NoticeListItem extends Widget
function showContent() function showContent()
{ {
// FIXME: URL, image, video, audio // FIXME: URL, image, video, audio
$this->out->elementStart('p', array('class' => 'entry-content')); $this->out->elementStart('div', array('class' => 'e-content'));
if ($this->notice->rendered) { if ($this->notice->rendered) {
$this->out->raw($this->notice->rendered); $this->out->raw($this->notice->rendered);
} else { } else {
@ -309,7 +304,7 @@ class NoticeListItem extends Widget
// versions (>> 0.4.x) // versions (>> 0.4.x)
$this->out->raw(common_render_content($this->notice->content, $this->notice)); $this->out->raw(common_render_content($this->notice->content, $this->notice));
} }
$this->out->elementEnd('p'); $this->out->elementEnd('div');
} }
function showNoticeAttachments() { function showNoticeAttachments() {
@ -329,7 +324,7 @@ class NoticeListItem extends Widget
function showNoticeLink() function showNoticeLink()
{ {
$this->out->elementStart('a', array('rel' => 'bookmark', $this->out->elementStart('a', array('rel' => 'bookmark',
'class' => 'timestamp', 'class' => 'u-url timestamp',
'href' => $this->notice->getLocalUrl())); 'href' => $this->notice->getLocalUrl()));
$this->out->element('time', array('class' => 'dt-published', $this->out->element('time', array('class' => 'dt-published',
'datetime' => common_date_iso8601($this->notice->created), 'datetime' => common_date_iso8601($this->notice->created),
@ -511,21 +506,15 @@ class NoticeListItem extends Widget
$repeater = Profile::getKV('id', $this->repeat->profile_id); $repeater = Profile::getKV('id', $this->repeat->profile_id);
$attrs = array('href' => $repeater->profileurl, $attrs = array('href' => $repeater->profileurl,
'class' => 'url'); 'class' => 'h-card p-author',
'title' => $repeater->getFancyName());
if (!empty($repeater->fullname)) { $this->out->elementStart('span', 'repeat h-entry');
$attrs['title'] = $repeater->fullname . ' (' . $repeater->nickname . ')';
}
$this->out->elementStart('span', 'repeat vcard');
// TRANS: Addition in notice list item if notice was repeated. Followed by a span with a nickname. // TRANS: Addition in notice list item if notice was repeated. Followed by a span with a nickname.
$this->out->raw(_('Repeated by')); $this->out->raw(_('Repeated by').' ');
$this->out->raw(' ');
$this->out->elementStart('a', $attrs); $this->out->element('a', $attrs, $repeater->getNickname());
$this->out->element('span', 'fn nickname', $repeater->nickname);
$this->out->elementEnd('a');
$this->out->elementEnd('span'); $this->out->elementEnd('span');
} }
@ -544,7 +533,7 @@ class NoticeListItem extends Widget
if (common_logged_in()) { if (common_logged_in()) {
$this->out->text(' '); $this->out->text(' ');
$reply_url = common_local_url('newnotice', $reply_url = common_local_url('newnotice',
array('replyto' => $this->profile->nickname, 'inreplyto' => $this->notice->id)); array('replyto' => $this->profile->getNickname(), 'inreplyto' => $this->notice->id));
$this->out->elementStart('a', array('href' => $reply_url, $this->out->elementStart('a', array('href' => $reply_url,
'class' => 'notice_reply', 'class' => 'notice_reply',
// TRANS: Link title in notice list item to reply to a notice. // TRANS: Link title in notice list item to reply to a notice.

View File

@ -78,28 +78,21 @@ class NoticeSection extends Section
$notice->id)); $notice->id));
return; return;
} }
$this->out->elementStart('li', 'hentry notice'); $this->out->elementStart('li', 'h-entry notice');
$this->out->elementStart('div', 'entry-title'); $this->out->elementStart('div', 'h-card');
$this->out->elementStart('span', 'vcard author'); $this->out->elementStart('a', array('title' => $profile->getBestName(),
$this->out->elementStart('a', array('title' => ($profile->fullname) ?
$profile->fullname :
$profile->nickname,
'href' => $profile->profileurl, 'href' => $profile->profileurl,
'class' => 'url')); 'class' => 'p-author u-url p-name'));
$avatarUrl = $profile->avatarUrl(AVATAR_MINI_SIZE); $avatarUrl = $profile->avatarUrl(AVATAR_MINI_SIZE);
$this->out->element('img', array('src' => $avatarUrl, $this->out->element('img', array('src' => $avatarUrl,
'width' => AVATAR_MINI_SIZE, 'width' => AVATAR_MINI_SIZE,
'height' => AVATAR_MINI_SIZE, 'height' => AVATAR_MINI_SIZE,
'class' => 'avatar photo', 'class' => 'avatar u-photo',
'alt' => ($profile->fullname) ? 'alt' => $profile->getBestName()));
$profile->fullname : $this->out->text($profile->getBestName());
$profile->nickname));
$this->out->text(' ');
$this->out->element('span', 'fn nickname', $profile->nickname);
$this->out->elementEnd('a'); $this->out->elementEnd('a');
$this->out->elementEnd('span');
$this->out->elementStart('p', 'entry-content'); $this->out->elementStart('p', 'e-content');
$this->out->text(mb_strlen($notice->content) > $this->maxchars $this->out->text(mb_strlen($notice->content) > $this->maxchars
? mb_substr($notice->content, 0, $this->maxchars) . '[…]' ? mb_substr($notice->content, 0, $this->maxchars) . '[…]'
: $notice->content); : $notice->content);

View File

@ -142,7 +142,7 @@ class PeopletagListItem extends Widget
function showStart() function showStart()
{ {
$mode = ($this->peopletag->private) ? 'private' : 'public'; $mode = ($this->peopletag->private) ? 'private' : 'public';
$this->out->elementStart('li', array('class' => 'hentry peopletag mode-' . $mode, $this->out->elementStart('li', array('class' => 'h-entry peopletag mode-' . $mode,
'id' => 'peopletag-' . $this->peopletag->id)); 'id' => 'peopletag-' . $this->peopletag->id));
} }
@ -221,20 +221,16 @@ class PeopletagListItem extends Widget
function showCreator() function showCreator()
{ {
$this->out->elementStart('span', 'author vcard');
$attrs = array(); $attrs = array();
$attrs['href'] = $this->profile->profileurl; $attrs['href'] = $this->profile->profileurl;
$attrs['class'] = 'url'; $attrs['class'] = 'h-card p-author nickname p-name';
$attrs['rel'] = 'contact'; $attrs['rel'] = 'contact';
$attrs['title'] = $this->profile->getFancyName();
if (!empty($this->profile->fullname)) {
$attrs['title'] = $this->profile->fullname . ' (' . $this->profile->nickname . ')';
}
$this->out->elementStart('a', $attrs); $this->out->elementStart('a', $attrs);
$this->showAvatar($this->profile); $this->showAvatar($this->profile);
$this->out->text($this->profile->getNickname()); $this->out->text($this->profile->getNickname());
$this->out->elementEnd('a'); $this->out->elementEnd('a');
$this->out->elementEnd('span');
} }
function showUpdated() function showUpdated()
@ -287,7 +283,6 @@ class PeopletagListItem extends Widget
function showDescription() function showDescription()
{ {
$this->out->element('div', 'entry-content description', $this->out->element('div', 'e-content description', $this->peopletag->description);
$this->peopletag->description);
} }
} }

View File

@ -142,7 +142,7 @@ class ProfileListItem extends Widget
function startItem() function startItem()
{ {
$this->out->elementStart('li', array('class' => 'profile hentry', $this->out->elementStart('li', array('class' => 'profile h-entry',
'id' => 'profile-' . $this->profile->id)); 'id' => 'profile-' . $this->profile->id));
} }
@ -184,14 +184,14 @@ class ProfileListItem extends Widget
function startProfile() function startProfile()
{ {
$this->out->elementStart('div', 'entity_profile vcard entry-content'); $this->out->elementStart('div', 'entity_profile h-card');
} }
function showFullName() function showFullName()
{ {
if (!empty($this->profile->fullname)) { if (!empty($this->profile->fullname)) {
$this->out->text(' '); $this->out->text(' ');
$this->out->elementStart('span', 'fn'); $this->out->elementStart('span', 'p-name');
$this->out->raw($this->highlight($this->profile->fullname)); $this->out->raw($this->highlight($this->profile->fullname));
$this->out->elementEnd('span'); $this->out->elementEnd('span');
} }
@ -304,13 +304,13 @@ class ProfileListItem extends Widget
function linkAttributes() function linkAttributes()
{ {
return array('href' => $this->profile->profileurl, return array('href' => $this->profile->profileurl,
'class' => 'url entry-title', 'class' => 'u-url',
'rel' => 'contact'); 'rel' => 'contact');
} }
function homepageAttributes() function homepageAttributes()
{ {
return array('href' => $this->profile->homepage, return array('href' => $this->profile->homepage,
'class' => 'url'); 'class' => 'u-url');
} }
} }

View File

@ -74,7 +74,7 @@ class ProfileMiniListItem extends ProfileListItem
{ {
function show() function show()
{ {
$this->out->elementStart('li', 'vcard'); $this->out->elementStart('li', 'h-card');
if (Event::handle('StartProfileListItemProfileElements', array($this))) { if (Event::handle('StartProfileListItemProfileElements', array($this))) {
if (Event::handle('StartProfileListItemAvatar', array($this))) { if (Event::handle('StartProfileListItemAvatar', array($this))) {
$aAttrs = $this->linkAttributes(); $aAttrs = $this->linkAttributes();
@ -83,11 +83,8 @@ class ProfileMiniListItem extends ProfileListItem
$this->out->element('img', array('src' => $avatarUrl, $this->out->element('img', array('src' => $avatarUrl,
'width' => AVATAR_MINI_SIZE, 'width' => AVATAR_MINI_SIZE,
'height' => AVATAR_MINI_SIZE, 'height' => AVATAR_MINI_SIZE,
'class' => 'avatar photo', 'class' => 'avatar u-photo',
'alt' => ($this->profile->fullname) ? 'alt' => $this->profile->getBestName()));
$this->profile->fullname :
$this->profile->nickname));
$this->out->element('span', 'fn nickname', $this->profile->nickname);
$this->out->elementEnd('a'); $this->out->elementEnd('a');
Event::handle('EndProfileListItemAvatar', array($this)); Event::handle('EndProfileListItemAvatar', array($this));
} }
@ -103,7 +100,7 @@ class ProfileMiniListItem extends ProfileListItem
$aAttrs['title'] = $this->profile->getBestName(); $aAttrs['title'] = $this->profile->getBestName();
$aAttrs['rel'] = 'contact member'; // @todo: member? always? $aAttrs['rel'] = 'contact member'; // @todo: member? always?
$aAttrs['class'] = 'url'; $aAttrs['class'] = 'u-url p-name';
return $aAttrs; return $aAttrs;
} }

View File

@ -78,26 +78,17 @@ class ProfileSection extends Section
{ {
$this->out->elementStart('tr'); $this->out->elementStart('tr');
$this->out->elementStart('td'); $this->out->elementStart('td');
$this->out->elementStart('span', 'vcard'); $this->out->elementStart('a', array('title' => $profile->getBestName(),
$this->out->elementStart('a', array('title' => ($profile->fullname) ?
$profile->fullname :
$profile->nickname,
'href' => $profile->profileurl, 'href' => $profile->profileurl,
'rel' => 'contact member', 'rel' => 'contact member',
'class' => 'url')); 'class' => 'h-card u-url'));
$this->out->text(' ');
$avatarUrl = $profile->avatarUrl(AVATAR_MINI_SIZE); $avatarUrl = $profile->avatarUrl(AVATAR_MINI_SIZE);
$this->out->element('img', array('src' => $avatarUrl, $this->out->element('img', array('src' => $avatarUrl,
'width' => AVATAR_MINI_SIZE, 'width' => AVATAR_MINI_SIZE,
'height' => AVATAR_MINI_SIZE, 'height' => AVATAR_MINI_SIZE,
'class' => 'avatar photo', 'class' => 'avatar u-photo',
'alt' => ($profile->fullname) ? 'alt' => $profile->getBestName()));
$profile->fullname :
$profile->nickname));
$this->out->text(' ');
$this->out->element('span', 'fn nickname', $profile->nickname);
$this->out->elementEnd('a'); $this->out->elementEnd('a');
$this->out->elementEnd('span');
$this->out->elementEnd('td'); $this->out->elementEnd('td');
if (isset($profile->value)) { if (isset($profile->value)) {
$this->out->element('td', 'value', $profile->value); $this->out->element('td', 'value', $profile->value);

View File

@ -548,7 +548,7 @@ class ThreadedNoticeListInlineFavesItem extends ThreadedNoticeListFavesItem
{ {
function showStart() function showStart()
{ {
$this->out->elementStart('div', array('class' => 'entry-content notice-faves')); $this->out->elementStart('div', array('class' => 'e-content notice-faves'));
} }
function showEnd() function showEnd()
@ -625,7 +625,7 @@ class ThreadedNoticeListInlineRepeatsItem extends ThreadedNoticeListRepeatsItem
{ {
function showStart() function showStart()
{ {
$this->out->elementStart('div', array('class' => 'entry-content notice-repeats')); $this->out->elementStart('div', array('class' => 'e-content notice-repeats'));
} }
function showEnd() function showEnd()

View File

@ -635,17 +635,13 @@ function common_linkify_mention($mention)
$xs = new XMLStringer(false); $xs = new XMLStringer(false);
$attrs = array('href' => $mention['url'], $attrs = array('href' => $mention['url'],
'class' => 'url'); 'class' => 'h-card '.$mention['type']);
if (!empty($mention['title'])) { if (!empty($mention['title'])) {
$attrs['title'] = $mention['title']; $attrs['title'] = $mention['title'];
} }
$xs->elementStart('span', 'vcard'); $xs->element('a', $attrs, $mention['text']);
$xs->elementStart('a', $attrs);
$xs->element('span', 'fn nickname '.$mention['type'], $mention['text']);
$xs->elementEnd('a');
$xs->elementEnd('span');
$output = $xs->getString(); $output = $xs->getString();

View File

@ -259,7 +259,7 @@ class BookmarkPlugin extends MicroAppPlugin
} }
$id = (empty($nli->repeat)) ? $nli->notice->id : $nli->repeat->id; $id = (empty($nli->repeat)) ? $nli->notice->id : $nli->repeat->id;
$class = 'hentry notice bookmark'; $class = 'h-entry notice bookmark';
if ($nli->notice->scope != 0 && $nli->notice->scope != 1) { if ($nli->notice->scope != 0 && $nli->notice->scope != 1) {
$class .= ' limited-scope'; $class .= ' limited-scope';
} }

View File

@ -68,7 +68,7 @@ ul.bookmark-tags a:hover {
top: 2px; top: 2px;
} }
.bookmark div.entry-content { .bookmark div.e-content {
font-size: 0.88em; font-size: 0.88em;
line-height: 1.2em; line-height: 1.2em;
margin-top: 6px; margin-top: 6px;
@ -76,7 +76,7 @@ ul.bookmark-tags a:hover {
margin-bottom: 0px; margin-bottom: 0px;
} }
.bookmark:hover div.entry-content { .bookmark:hover div.e-content {
opacity: 1; opacity: 1;
} }

View File

@ -74,7 +74,7 @@ class BookmarkListItem extends NoticeListItemAdapter
$profile = $notice->getProfile(); $profile = $notice->getProfile();
$out->elementStart('p', array('class' => 'entry-content')); $out->elementStart('p', array('class' => 'e-content'));
// Whether to nofollow // Whether to nofollow

View File

@ -110,7 +110,7 @@ class ConversationTree extends NoticeList
{ {
$notice = $this->table[$id]; $notice = $this->table[$id];
$this->out->elementStart('li', array('class' => 'hentry notice', $this->out->elementStart('li', array('class' => 'h-entry notice',
'id' => 'notice-' . $id)); 'id' => 'notice-' . $id));
$item = $this->newListItem($notice); $item = $this->newListItem($notice);

View File

@ -205,9 +205,8 @@ class SortableGroupListItem extends SortableSubscriptionListItem
{ {
$this->startProfile(); $this->startProfile();
$hasFN = ($this->profile->fullname) ? 'nickname' : 'fn org nickname';
$this->out->elementStart('a', array('href' => $this->profile->homeUrl(), $this->out->elementStart('a', array('href' => $this->profile->homeUrl(),
'class' => 'h-card org nickname', 'class' => 'h-card p-org p-nickname',
'rel' => 'contact group')); 'rel' => 'contact group'));
// getProfile here is because $this->profile is a User_group, which it should stop // getProfile here is because $this->profile is a User_group, which it should stop
// being by making sure the group listing runs a ->getGroup when it's necessary. // being by making sure the group listing runs a ->getGroup when it's necessary.

View File

@ -191,7 +191,7 @@ class SortableSubscriptionListItem extends SubscriptionListItem
function startProfile() function startProfile()
{ {
$this->out->elementStart('td', 'entity_profile vcard entry-content'); $this->out->elementStart('td', 'entity_profile h-card e-content');
} }
function endProfile() function endProfile()

View File

@ -6,8 +6,8 @@
.event-notice-count { float: right; } .event-notice-count { float: right; }
.event-info { float: left; } .event-info { float: left; }
.event-title { margin-left: 0px; } .event-title { margin-left: 0px; }
#content .event .entry-title { margin-left: 0px; } #content .event .h-entry { margin-left: 0px; }
#content .event .entry-content { margin-left: 0px; } #content .event .e-content { margin-left: 0px; }
.ui-autocomplete { .ui-autocomplete {
max-height: 100px; max-height: 100px;
overflow-y: auto; overflow-y: auto;
@ -32,13 +32,10 @@ li.rsvp-list .entities li {
margin-bottom: 8px; margin-bottom: 8px;
display: inline; display: inline;
} }
li.rsvp-list .entities li .photo { li.rsvp-list .entities li .u-photo {
margin: 0 !important; margin: 0 !important;
float: none !important; float: none !important;
} }
li.rsvp-list .entities li .fn {
display: none;
}
.notice .vevent div { .notice .vevent div {
margin-bottom: 8px; margin-bottom: 8px;

View File

@ -48,10 +48,8 @@ class EventListItem extends NoticeListItemAdapter
{ {
function showNotice() function showNotice()
{ {
$this->nli->out->elementStart('div', 'entry-title');
$this->nli->showAuthor(); $this->nli->showAuthor();
$this->showContent(); $this->showContent();
$this->nli->out->elementEnd('div');
} }
function showContent() function showContent()
@ -68,9 +66,9 @@ class EventListItem extends NoticeListItemAdapter
return; return;
} }
$out->elementStart('div', 'vevent event'); // VEVENT IN $out->elementStart('div', 'vevent event e-content'); // VEVENT IN
$out->elementStart('h3'); // VEVENT/H3 IN $out->elementStart('h3', 'summary'); // VEVENT/H3 IN
if (!empty($event->url)) { if (!empty($event->url)) {
$out->element('a', $out->element('a',

View File

@ -73,7 +73,7 @@ class NoticeTree extends NoticeList
// We take responsibility for doing the li // We take responsibility for doing the li
$this->out->elementStart('li', array('class' => 'hentry notice', $this->out->elementStart('li', array('class' => 'h-entry notice',
'id' => 'notice-' . $item->notice->id)); 'id' => 'notice-' . $item->notice->id));
$item->show(); $item->show();

View File

@ -70,7 +70,7 @@ class GroupMessageListItem extends Widget
$group = $this->gm->getGroup(); $group = $this->gm->getGroup();
$sender = $this->gm->getSender(); $sender = $this->gm->getSender();
$this->out->elementStart('li', array('class' => 'hentry notice message group-message', $this->out->elementStart('li', array('class' => 'h-entry notice message group-message',
'id' => 'message-' . $this->gm->id)); 'id' => 'message-' . $this->gm->id));
$this->out->elementStart('div', 'entry-title'); $this->out->elementStart('div', 'entry-title');
@ -90,12 +90,12 @@ class GroupMessageListItem extends Widget
$this->out->elementEnd('a'); $this->out->elementEnd('a');
$this->out->elementEnd('span'); $this->out->elementEnd('span');
$this->out->elementStart('p', array('class' => 'entry-content message-content')); $this->out->elementStart('p', array('class' => 'e-content message-content'));
$this->out->raw($this->gm->rendered); $this->out->raw($this->gm->rendered);
$this->out->elementEnd('p'); $this->out->elementEnd('p');
$this->out->elementEnd('div'); $this->out->elementEnd('div');
$this->out->elementStart('div', 'entry-content'); $this->out->elementStart('div', 'e-content');
$this->out->elementStart('a', array('rel' => 'bookmark', $this->out->elementStart('a', array('rel' => 'bookmark',
'class' => 'timestamp', 'class' => 'timestamp',
'href' => $this->gm->url)); 'href' => $this->gm->url));

View File

@ -39,7 +39,7 @@ function getNoticeFromElement(noticeElement)
parseFloat(latlon[1])] }; parseFloat(latlon[1])] };
} }
notice['html'] = noticeElement.find(".entry-content").html(); notice['html'] = noticeElement.find(".e-content").html();
notice['url'] = noticeElement.find("a.timestamp").attr('href'); notice['url'] = noticeElement.find("a.timestamp").attr('href');
notice['created_at'] = noticeElement.find("abbr.published").text(); notice['created_at'] = noticeElement.find("abbr.published").text();

View File

@ -292,27 +292,26 @@ class MobileProfilePlugin extends WAP20Plugin
function _showLogo($action) function _showLogo($action)
{ {
$action->elementStart('address', 'vcard'); $action->elementStart('address');
if (common_config('singleuser', 'enabled')) { if (common_config('singleuser', 'enabled')) {
$user = User::singleUser(); $user = User::singleUser();
$url = common_local_url('showstream', array('nickname' => $user->nickname)); $url = common_local_url('showstream', array('nickname' => $user->getNickname()));
} else { } else {
$url = common_local_url('public'); $url = common_local_url('public');
} }
$action->elementStart('a', array('class' => 'url home bookmark', $action->elementStart('a', array('class' => 'h-card home bookmark',
'href' => $url)); 'href' => $url));
if (common_config('site', 'mobilelogo') || if (common_config('site', 'mobilelogo') ||
file_exists(Theme::file('logo.png')) || file_exists(Theme::file('logo.png')) ||
file_exists(Theme::file('mobilelogo.png'))) { file_exists(Theme::file('mobilelogo.png'))) {
$action->element('img', array('class' => 'photo', $action->element('img', array('class' => 'u-photo',
'src' => (common_config('site', 'mobilelogo')) ? common_config('site', 'mobilelogo') : 'src' => (common_config('site', 'mobilelogo')) ? common_config('site', 'mobilelogo') :
((file_exists(Theme::file('mobilelogo.png'))) ? (Theme::path('mobilelogo.png')) : Theme::path('logo.png')), ((file_exists(Theme::file('mobilelogo.png'))) ? (Theme::path('mobilelogo.png')) : Theme::path('logo.png')),
'alt' => common_config('site', 'name'))); 'alt' => common_config('site', 'name')));
} }
$action->element('span', array('class' => 'fn org'), common_config('site', 'name'));
$action->elementEnd('a'); $action->elementEnd('a');
$action->elementEnd('address'); $action->elementEnd('address');
} }

View File

@ -352,6 +352,6 @@ label[for=blog-entry-content] {
content: '\003E'; content: '\003E';
} }
.user_in .notice div.entry-content { .user_in .notice div.e-content {
max-width: 150px; max-width: 150px;
} }

View File

@ -86,7 +86,7 @@ class ModPlusPlugin extends Plugin
* @param NoticeListItem $item * @param NoticeListItem $item
* @return boolean hook value * @return boolean hook value
*/ */
function onStartShowNoticeItem($item) function onStartShowNoticeItem(NoticeListItem $item)
{ {
$this->showProfileOptions($item->out, $item->profile); $this->showProfileOptions($item->out, $item->profile);
return true; return true;
@ -108,12 +108,11 @@ class ModPlusPlugin extends Plugin
* Currently only adds output for remote profiles, nothing for local users. * Currently only adds output for remote profiles, nothing for local users.
* *
* @param HTMLOutputter $out * @param HTMLOutputter $out
* @param Profile $profile (may also be an ArrayWrapper... sigh) * @param Profile $profile
*/ */
protected function showProfileOptions(HTMLOutputter $out, $profile) protected function showProfileOptions(HTMLOutputter $out, Profile $profile)
{ {
$isRemote = !(User::getKV('id', $profile->id)); if (!$profile->isLocal()) {
if ($isRemote) {
$target = common_local_url('remoteprofile', array('id' => $profile->id)); $target = common_local_url('remoteprofile', array('id' => $profile->id));
// TRANS: Label for access to remote profile options. // TRANS: Label for access to remote profile options.
$label = _m('Remote profile options...'); $label = _m('Remote profile options...');

View File

@ -10,14 +10,9 @@
padding: 6px 16px; padding: 6px 16px;
padding-left: 32px; padding-left: 32px;
-moz-border-radius: 8px;
-webkit-border-radius: 8px;
-msie-border-radius: 8px;
border-radius: 8px; border-radius: 8px;
box-shadow:3px 3px 7px rgba(194, 194, 194, 0.3); box-shadow:3px 3px 7px rgba(194, 194, 194, 0.3);
-moz-box-shadow:3px 3px 7px rgba(194, 194, 194, 0.3);
-webkit-box-shadow:3px 3px 7px rgba(194, 194, 194, 0.3);
display: none; display: none;
} }

View File

@ -5,7 +5,7 @@
$(function() { $(function() {
// Notice lists... // Notice lists...
$(document).on('mouseenter', '.notice .author', function(e) { $(document).on('mouseenter', '.notice .p-author', function(e) {
var notice = $(this).closest('.notice'); var notice = $(this).closest('.notice');
var popup = notice.find('.remote-profile-options'); var popup = notice.find('.remote-profile-options');
if (popup.length) { if (popup.length) {
@ -21,7 +21,7 @@ $(function() {
}); });
// Profile lists... // Profile lists...
$(document).on('mouseenter', '.profile .avatar', function(e) { $(document).on('mouseenter', '.profile .u-photo', function(e) {
var profile = $(this).closest('.profile'); var profile = $(this).closest('.profile');
var popup = profile.find('.remote-profile-options'); var popup = profile.find('.remote-profile-options');
if (popup.length) { if (popup.length) {

View File

@ -181,14 +181,15 @@ class NoticeTitlePlugin extends Plugin
* *
* @return boolean hook value * @return boolean hook value
*/ */
function onStartShowNoticeItem($nli) function onStartShowNoticeTitle(NoticeListItem $nli)
{ {
$title = Notice_title::fromNotice($nli->notice); $title = Notice_title::fromNotice($nli->notice);
if (!empty($title)) { if (!empty($title)) {
$nli->out->elementStart('h4', array('class' => 'notice_title')); $nli->elementStart('h4', array('class' => 'p-name'));
$nli->out->element('a', array('href' => $nli->notice->getUrl()), $title); $nli->element('a', array('href' => $nli->notice->getUrl()), $title);
$nli->out->elementEnd('h4'); $nli->elementEnd('h4');
return false;
} }
return true; return true;
@ -284,20 +285,16 @@ class NoticeTitlePlugin extends Plugin
/** /**
* If a notice has a title, show it in the <h1> element * If a notice has a title, show it in the <h1> element
* *
* @param Action $action Action being executed * @param Notice $notice Notice we're getting the title for
* @param string $title Reference to the variable which we set to the notice's title
* *
* @return boolean hook value * @return boolean hook value
*/ */
function onStartShowPageTitle($action) function onGetNoticeTitle(Notice $notice, &$title)
{ {
$actionName = $action->trimmed('action'); $title = Notice_title::fromNotice($notice);
if (!is_null($title)) {
if ($actionName == 'shownotice') { return false;
$title = Notice_title::fromNotice($action->notice);
if (!empty($title)) {
$action->element('h1', null, $title);
return false;
}
} }
return true; return true;

View File

@ -109,7 +109,7 @@ class OembedPlugin extends Plugin
if (empty($oembed->author_name) && empty($oembed->provider)) { if (empty($oembed->author_name) && empty($oembed->provider)) {
return true; return true;
} }
$out->elementStart('div', array('id'=>'oembed_info', 'class'=>'entry-content')); $out->elementStart('div', array('id'=>'oembed_info', 'class'=>'e-content'));
if (!empty($oembed->author_name)) { if (!empty($oembed->author_name)) {
$out->elementStart('div', 'fn vcard author'); $out->elementStart('div', 'fn vcard author');
if (empty($oembed->author_url)) { if (empty($oembed->author_url)) {

View File

@ -401,7 +401,7 @@ class PollPlugin extends MicroAppPlugin
$nli = new NoticeListItem($notice, $out); $nli = new NoticeListItem($notice, $out);
$nli->showNotice(); $nli->showNotice();
$out->elementStart('div', array('class' => 'entry-content poll-content')); $out->elementStart('div', array('class' => 'e-content poll-content'));
$poll = Poll::getByNotice($notice); $poll = Poll::getByNotice($notice);
if ($poll) { if ($poll) {
if ($user) { if ($user) {
@ -422,7 +422,7 @@ class PollPlugin extends MicroAppPlugin
$out->elementEnd('div'); $out->elementEnd('div');
// @fixme // @fixme
$out->elementStart('div', array('class' => 'entry-content')); $out->elementStart('div', array('class' => 'e-content'));
} }
function showNoticePollResponse(Notice $notice, $out) function showNoticePollResponse(Notice $notice, $out)
@ -434,7 +434,7 @@ class PollPlugin extends MicroAppPlugin
$nli->showNotice(); $nli->showNotice();
// @fixme // @fixme
$out->elementStart('div', array('class' => 'entry-content')); $out->elementStart('div', array('class' => 'e-content'));
} }
function entryForm($out) function entryForm($out)

View File

@ -265,7 +265,7 @@ class QnAPlugin extends MicroAppPlugin
{ {
case QnA_Question::OBJECT_TYPE: case QnA_Question::OBJECT_TYPE:
$id = (empty($nli->repeat)) ? $nli->notice->id : $nli->repeat->id; $id = (empty($nli->repeat)) ? $nli->notice->id : $nli->repeat->id;
$class = 'hentry notice question'; $class = 'h-entry notice question';
if ($nli->notice->scope != 0 && $nli->notice->scope != 1) { if ($nli->notice->scope != 0 && $nli->notice->scope != 1) {
$class .= ' limited-scope'; $class .= ' limited-scope';
} }
@ -288,7 +288,7 @@ class QnAPlugin extends MicroAppPlugin
case QnA_Answer::OBJECT_TYPE: case QnA_Answer::OBJECT_TYPE:
$id = (empty($nli->repeat)) ? $nli->notice->id : $nli->repeat->id; $id = (empty($nli->repeat)) ? $nli->notice->id : $nli->repeat->id;
$cls = array('hentry', 'notice', 'answer'); $cls = array('h-entry', 'notice', 'answer');
$answer = QnA_Answer::getKV('uri', $nli->notice->uri); $answer = QnA_Answer::getKV('uri', $nli->notice->uri);
@ -345,7 +345,7 @@ class QnAPlugin extends MicroAppPlugin
$nli = new NoticeListItem($notice, $out); $nli = new NoticeListItem($notice, $out);
$nli->showNotice(); $nli->showNotice();
$out->elementStart('div', array('class' => 'entry-content question-description')); $out->elementStart('div', array('class' => 'e-content question-description'));
$question = QnA_Question::getByNotice($notice); $question = QnA_Question::getByNotice($notice);
@ -361,7 +361,7 @@ class QnAPlugin extends MicroAppPlugin
$out->elementEnd('div'); $out->elementEnd('div');
// @fixme // @fixme
$out->elementStart('div', array('class' => 'entry-content')); $out->elementStart('div', array('class' => 'e-content'));
} }
/** /**
@ -437,7 +437,7 @@ class QnAPlugin extends MicroAppPlugin
$nli = new NoticeListItem($notice, $out); $nli = new NoticeListItem($notice, $out);
$nli->showNotice(); $nli->showNotice();
$out->elementStart('div', array('class' => 'entry-content answer-content')); $out->elementStart('div', array('class' => 'e-content answer-content'));
if (!empty($answer)) { if (!empty($answer)) {
$form = new QnashowanswerForm($out, $answer); $form = new QnashowanswerForm($out, $answer);
@ -450,7 +450,7 @@ class QnAPlugin extends MicroAppPlugin
$out->elementEnd('div'); $out->elementEnd('div');
// @todo FIXME // @todo FIXME
$out->elementStart('div', array('class' => 'entry-content')); $out->elementStart('div', array('class' => 'e-content'));
} }
static function shorten($content, $notice) static function shorten($content, $notice)

View File

@ -326,7 +326,7 @@ class NoticeAnswerListItem extends NoticeListItem
*/ */
function showContent() function showContent()
{ {
$this->out->elementStart('p', array('class' => 'entry-content answer-content')); $this->out->elementStart('p', array('class' => 'e-content answer-content'));
if ($this->notice->rendered) { if ($this->notice->rendered) {
$this->out->raw($this->notice->rendered); $this->out->raw($this->notice->rendered);
} else { } else {

View File

@ -2,7 +2,7 @@ var QnA = {
// @fixme: Should use ID // @fixme: Should use ID
close: function (form, best) { close: function (form, best) {
var notice = $(form).closest('li.hentry.notice.question'); var notice = $(form).closest('li.h-entry.notice.question');
notice.find('input#qna-best-answer,#qna-question-close').hide(); notice.find('input#qna-best-answer,#qna-question-close').hide();
notice.find('textarea').hide(); notice.find('textarea').hide();
@ -87,7 +87,7 @@ var QnA = {
$('body').click(function (e) { $('body').click(function (e) {
var dummyAnswer = $('ul.qna-dummy', notice); var dummyAnswer = $('ul.qna-dummy', notice);
var style = dummyAnswer.attr('style'); var style = dummyAnswer.attr('style');
var ans = $(notice).find('li.hentry.notice.anwer', notice) var ans = $(notice).find('li.h-entry.notice.anwer', notice)
if (ans > 0) { if (ans > 0) {
hideReplyPlaceholders(notice); hideReplyPlaceholders(notice);
} }
@ -300,7 +300,7 @@ var QnA = {
var list = form.closest('.threaded-replies'); var list = form.closest('.threaded-replies');
// if the inserted notice's parent question needs it give it a placeholder // if the inserted notice's parent question needs it give it a placeholder
var ans = questionItem.find('ul > li.hentry.notice.answer'); var ans = questionItem.find('ul > li.h-entry.notice.answer');
if (ans.length == 0) { if (ans.length == 0) {
SN.U.NoticeInlineReplyPlaceholder(questionItem); SN.U.NoticeInlineReplyPlaceholder(questionItem);
} }

View File

@ -632,7 +632,7 @@ RealtimeUpdate = {
*/ */
initPopupWindow: function() initPopupWindow: function()
{ {
$('.notices .entry-title a, .notices .entry-content a').bind('click', function() { $('.notices .entry-title a, .notices .e-content a').bind('click', function() {
window.open(this.href, ''); window.open(this.href, '');
return false; return false;

View File

@ -189,7 +189,7 @@ address img {
max-width: 158px; max-width: 158px;
} }
address img + .fn { address img + .p-name {
display: none; display: none;
} }
@ -626,52 +626,52 @@ address .poweredby {
width:100%; width:100%;
} }
.notice .author { .notice .p-author {
margin-right: 8px; margin-right: 8px;
} }
.notice .addressees:before { .notice .addressees::before {
content: '\25B8'; content: '\25B8';
} }
.notice .addressees, .notice .addressees li {
display: inline;
}
.notice .addressees > li::before {
content: ',';
}
.notice .addressees > li:first-child::before {
content: '';
}
.notice .addressees .group { .notice .addressees .group {
font-style: italic; font-style: italic;
} }
.fn { .p-name {
overflow: hidden; overflow: hidden;
} }
.notice .author .fn { .notice .p-author {
font-weight: bold; font-weight: bold;
} }
#core .vcard .photo { #core .h-card .u-photo {
display: inline;
margin-right: 11px;
float: left; float: left;
} }
#content .notice .author .photo { #content .notice .h-entry {
position: absolute; margin: 2px 0 0 0;
top: 7px; min-height: 32px;
left: 0px;
float: none;
} }
#content .notice .entry-title { .h-card .u-url, .h-card.u-url {
margin: 2px 7px 0px 59px;
min-height: 35px;
}
.vcard .url {
text-decoration:none; text-decoration:none;
} }
.vcard .url:hover { .h-card .u-url:hover, .h-card.u-url:hover {
text-decoration:underline; text-decoration:underline;
} }
.notice .entry-title { .notice .h-entry {
overflow:hidden; overflow:hidden;
word-wrap:break-word; word-wrap:break-word;
} }
@ -688,11 +688,8 @@ font-style:italic;
display:none; display:none;
} }
#remoteprofile .notice .entry-title, #remoteprofile .notice div.entry-content, #remoteprofile .notice .h-entry,
#showstream .notice .entry-title, #showstream .notice div.entry-content { #showstream .notice .h-entry,
margin-left: 0;
}
#remoteprofile .notice .entry-title, #remoteprofile .notice .entry-title,
#showstream .notice .entry-title { #showstream .notice .entry-title {
min-height: 1px; min-height: 1px;
@ -708,33 +705,22 @@ font-style:italic;
min-height: 1em; min-height: 1em;
} }
#shownotice .notice .entry-title { #shownotice .notice .h-entry {,
font-size:2.2em; font-size:2.2em;
min-height:123px; min-height:123px;
font-size: 1.6em; font-size: 1.6em;
line-height: 1.2em; line-height: 1.2em;
} }
#shownotice .notice div.entry-content { .notice div.e-content {
margin-left:0; margin-left: 55px;
} }
.notice p.entry-content { .entry-metadata .repeat {
display:inline;
}
.notice div.entry-content {
clear:left;
float:left;
margin-left:59px;
margin-top: 10px;
}
.entry-content .repeat {
display: block; display: block;
} }
.entry-content .repeat .photo { .entry-metadata .repeat .u-photo {
float:none; float:none;
margin-right:1px; margin-right:1px;
position:relative; position:relative;
@ -742,11 +728,19 @@ top:4px;
left:0; left:0;
} }
.entry-metadata {
clear: left;
float: left;
font-size: 0.88em;
}
.entry-metadata, .notice-options {
margin-bottom: 7px;
margin-top: 12px;
}
.notice-options { .notice-options {
float: right; float: right;
margin-top: 12px;
margin-right: -6px;
margin-bottom: 10px;
} }
.notice-options fieldset { .notice-options fieldset {
@ -858,10 +852,10 @@ content: ":";
clear: both; clear: both;
float: left; float: left;
width: 458px; width: 458px;
margin-left: 59px; margin-left: 55px;
margin-top: 10px;
margin-bottom: 10px; margin-bottom: 10px;
padding-right: 2px; padding-right: 2px;
padding-top: 5px;
border-left: 3px solid #ECECF2; border-left: 3px solid #ECECF2;
background: #fafafa; background: #fafafa;
color: #222; color: #222;
@ -872,10 +866,6 @@ content: ":";
margin-bottom: 0px; margin-bottom: 0px;
} }
.user_in .threaded-replies {
margin-top: 0px;
}
#content .notice .threaded-replies .notice, #content .notice .threaded-replies .notice,
#content .notice .threaded-replies .notice-data { #content .notice .threaded-replies .notice-data {
width: 440px; width: 440px;
@ -889,34 +879,27 @@ content: ":";
background: none; background: none;
} }
#content .notice .threaded-replies .h-entry,
#content .notice .threaded-replies .entry-title { #content .notice .threaded-replies .entry-title {
min-height: 1px; min-height: 1px;
} }
#content .threaded-replies .notice .author .photo { #content .threaded-replies .notice .p-author .u-photo {
height: 24px; height: 24px;
width: 24px; width: 24px;
top: 12px; top: 12px;
} }
#content .notice .threaded-replies .notice .entry-title { #content .notice .threaded-replies .notice .h-entry p.e-content {
margin: 2px 7px 0px 35px; margin-left: 32px;
} }
#content .notice .threaded-replies .notice div.entry-content { #content .notice .threaded-replies .notice div.e-content {
clear:left; margin-left: 32px;
float:left;
margin-left: 35px;
margin-top: 6px !important;
} }
#content .notice .threaded-replies .notice div.entry-content.notice-faves { #content .notice .threaded-replies .notice div.e-content.notice-faves {
margin-top: 2px !important; clear: both;
}
#content .notice .threaded-replies .notice .notice-options {
margin-top: 5px;
margin-bottom: 0px;
} }
.threaded-replies li { .threaded-replies li {
@ -986,11 +969,6 @@ content: ":";
width: auto; width: auto;
} }
#conversation .notices .threaded-replies {
margin-left: 59px;
background: #fafafa;
}
#conversation .notices .notices .notices .notices .notices .notices .notices .notices .notices .notices .notices .notices .notices { #conversation .notices .notices .notices .notices .notices .notices .notices .notices .notices .notices .notices .notices .notices {
background: none; background: none;
margin-left: 0px; margin-left: 0px;
@ -1003,7 +981,12 @@ content: ":";
clear:both; clear:both;
} }
.section .vcard .photo { .notice p.e-content {
clear: none;
display: block;
}
.section .h-card .u-photo {
margin-right:7px; margin-right:7px;
margin-bottom:0; margin-bottom:0;
} }
@ -1021,8 +1004,9 @@ padding-top:0;
.section .notice .author { .section .notice .author {
margin-right:0; margin-right:0;
} }
.section .notice .author .fn {
display:none; .p-name.metadata {
display:none;
} }
#aside_primary ol.notices { #aside_primary ol.notices {
@ -1084,12 +1068,9 @@ content: ":";
margin-bottom: 8px; margin-bottom: 8px;
display: inline; display: inline;
} }
.section .entities li .photo { .section .entities li .u-photo {
margin: 0; margin: 0;
} }
.section .entities li .fn {
display: none;
}
.tag-cloud { .tag-cloud {
list-style-type:none; list-style-type:none;
@ -1160,7 +1141,7 @@ clear:both;
margin-bottom:18px; margin-bottom:18px;
} }
.entry-content .success { .e-content .success {
padding: 6px; padding: 6px;
} }
@ -1477,16 +1458,20 @@ margin-left:11px;
width:auto; width:auto;
} }
.hentry .entry-content .form_settings ul { .h-entry .e-content .form_settings ul {
margin-left:0; margin-left:0;
} }
.limited-scope .entry-content .timestamp:before { .entry-metadata .timestamp span.p-name {
display: none;
}
.limited-scope .e-content .timestamp:before {
content:'☠'; content:'☠';
font-size:150%; font-size:150%;
} }
#content .notice-source-activity div.entry-title, .notice-source-activity div.entry-content { #content .notice-source-activity div.entry-title, .notice-source-activity div.e-content {
margin-left: 0; margin-left: 0;
} }
@ -1609,25 +1594,25 @@ height:16px;
margin-left:0; margin-left:0;
} }
.entity_profile .nickname { .entity_profile .p-nickname {
font-size:1.4em; font-size:1.4em;
} }
.entity_profile .fn { .entity_profile .p-name {
font-size: 1.2em; font-size: 1.2em;
clear: left; clear: left;
} }
.entity_profile .fn:before { .entity_profile .p-name:before {
content: "("; content: "(";
font-weight:normal; font-weight:normal;
} }
.entity_profile .fn:after { .entity_profile .p-name:after {
content: ")"; content: ")";
font-weight:normal; font-weight:normal;
} }
.entity_profile .nickname:after, .entity_profile .p-nickname:after,
.entity_profile .nickname:before { .entity_profile .p-nickname:before {
content:""; content:"";
} }
.entity_profile dt, .entity_profile dt,
@ -1884,13 +1869,13 @@ display:none;
margin-bottom: 20px; margin-bottom: 20px;
} }
.profile .entity_profile .fn.nickname, .profile .entity_profile .p-name,
.profile .entity_profile .url[rel~=contact] { .profile .entity_profile .u-url[rel~=contact] {
margin-left:0; margin-left:0;
display:inline; display:inline;
} }
.profile .entity_profile .fn, .profile .entity_profile .p-name,
.profile .entity_profile .label { .profile .entity_profile .label {
margin-left:11px; margin-left:11px;
margin-bottom:4px; margin-bottom:4px;
@ -1899,10 +1884,10 @@ clear:none;
} }
.profile .entity_profile .note, .profile .entity_profile .note,
.profile .entity_profile .url, .profile .entity_profile .u-url,
.profile .entity_profile .entity_tags, .profile .entity_profile .entity_tags,
.profile .entity_profile .form_subscription_edit { .profile .entity_profile .form_subscription_edit {
margin-left:59px; margin-left:55px;
clear:none; clear:none;
display:block; display:block;
width:auto; width:auto;
@ -1933,7 +1918,7 @@ min-height: 90px;
list-style: none; list-style: none;
} }
.peopletag .entry-content { .peopletag .e-content {
width:auto; width:auto;
} }
@ -1976,13 +1961,13 @@ font-weight:normal;
margin-right:10px; margin-right:10px;
} }
.profile-lister li .photo { .profile-lister li .u-photo {
display:inline; display:inline;
margin-right:7px; margin-right:7px;
margin-bottom:-5px; margin-bottom:-5px;
} }
.profile-lister li .fn { .profile-lister li .p-name {
font-weight:bold; font-weight:bold;
} }
@ -2082,8 +2067,8 @@ width:68%;
#showapplication .entity_profile .entity_fn { #showapplication .entity_profile .entity_fn {
margin-left:0; margin-left:0;
} }
#showapplication .entity_profile .fn:before, #showapplication .entity_profile .p-name:before,
#showapplication .entity_profile .fn:after { #showapplication .entity_profile .p-name:after {
content:''; content:'';
} }
#showapplication .entity_data { #showapplication .entity_data {

View File

@ -421,28 +421,22 @@ h6 {font-size: 1em;}
border-bottom: 2px dotted #eee; border-bottom: 2px dotted #eee;
} }
.notice div.entry-content { .notice div.e-content {
font-size: 0.88em;
line-height: 1.2em; line-height: 1.2em;
margin-top: 6px;
} }
.user_in .notice div.entry-content { .user_in .notice div.e-content {
max-width: 440px; max-width: 440px;
} }
.entry-content a.conversation:before { .e-content a.conversation:before {
content: " ("; content: " (";
} }
.entry-content a.conversation:after { .e-content a.conversation:after {
content: ")"; content: ")";
} }
.notice-options {
margin-top: 4px;
}
.notice-options .form_repeat.dialogbox { .notice-options .form_repeat.dialogbox {
margin-right: 0px; margin-right: 0px;
border: 1px solid #aaa; border: 1px solid #aaa;
@ -459,11 +453,7 @@ h6 {font-size: 1em;}
min-width: 80px; min-width: 80px;
} }
#content .threaded-replies .notice .author .photo { .user_in.realtime-popup .notice div.e-content {
box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
}
.user_in.realtime-popup .notice div.entry-content {
max-width: 320px; max-width: 320px;
} }
@ -747,31 +737,31 @@ padding-right:0;
/* Limited-scope */ /* Limited-scope */
.limited-scope .entry-content .timestamp { .limited-scope .e-content .timestamp {
padding-left: 20px; padding-left: 20px;
position: relative; position: relative;
} }
.limited-scope .entry-content .timestamp:before { .limited-scope .e-content .timestamp:before {
content: url(../images/lock.png); content: url(../images/lock.png);
position: absolute; position: absolute;
top: -2px; top: -2px;
left: 0px; left: 0px;
} }
.limited-scope li .entry-content .timestamp { .limited-scope li .e-content .timestamp {
padding-left: 0px; padding-left: 0px;
} }
.limited-scope li .entry-content .timestamp:before { .limited-scope li .e-content .timestamp:before {
content: none; content: none;
} }
.limited-scope li.limited-scope .entry-content .timestamp { .limited-scope li.limited-scope .e-content .timestamp {
padding-left: 20px; padding-left: 20px;
} }
.limited-scope li.limited-scope .entry-content .timestamp:before { .limited-scope li.limited-scope .e-content .timestamp:before {
content: url(../images/lock.png); content: url(../images/lock.png);
position: absolute; position: absolute;
top: -2px; top: -2px;
@ -970,13 +960,13 @@ td.entity_profile {
min-width: 250px; min-width: 250px;
} }
.profile_list .fn { .profile_list .p-name {
display: block; display: block;
font-size: 1.1em; font-size: 1.1em;
width: auto; width: auto;
} }
.profile_list .nickname, .profile_list .fn.nickname { .profile_list .nickname, .profile_list .p-name.nickname {
position: relative; position: relative;
top: -8px; top: -8px;
display: block; display: block;

View File

@ -15,7 +15,7 @@ span.rtl{
direction: rtl !important; direction: rtl !important;
} }
#content .notice .entry-title{ #content .notice .h-entry {
direction: ltr; direction: ltr;
} }
@ -27,12 +27,12 @@ span.rtl{
float: left; float: left;
} }
.notice div.entry-content { .notice div.e-content {
float: right; float: right;
clear: right; clear: right;
} }
#content .notice .threaded-replies .notice div.entry-content{ #content .notice .threaded-replies .notice div.e-content{
clear: right; clear: right;
float: right; float: right;
} }
@ -86,7 +86,7 @@ address{
margin-left: 0; margin-left: 0;
} }
.notice p.entry-content { .notice p.e-content {
float: left; float: left;
} }
@ -104,15 +104,7 @@ address{
/* background-position: right center; */ /* background-position: right center; */
} }
#content .notice .threaded-replies .notice .entry-title{ #content .notice .author .u-photo{
margin: 2px 35px 0 7px;
}
#content .notice .entry-title {
margin: 2px 59px 0 7px;
}
#content .notice .author .photo{
right: 0; right: 0;
left: auto; left: auto;
} }
@ -121,12 +113,12 @@ address{
float: left; float: left;
} }
.notice div.entry-content { .notice div.e-content {
margin-right: 59px; margin-right: 59px;
margin-left: 0; margin-left: 0;
} }
#core .vcard .photo { #core .h-card .u-photo {
margin-left: 11px; margin-left: 11px;
margin-right: 0; margin-right: 0;
} }
@ -135,14 +127,10 @@ address{
margin: 2px 10px 4px 0; margin: 2px 10px 4px 0;
} }
#shownotice .notice div.entry-content { #shownotice .notice div.e-content {
margin-right: 0; margin-right: 0;
} }
.notice .addressees:before {
content: '\25C2';
}
#content thead th { #content thead th {
text-align: right; text-align: right;
} }
@ -270,12 +258,12 @@ select {
float: left; float: left;
} }
.profile .entity_profile .fn, .profile .entity_profile .label { .profile .entity_profile .p-name, .profile .entity_profile .label {
margin-right: 11px; margin-right: 11px;
margin-left: 0; margin-left: 0;
} }
#core .vcard .photo { #core .h-card .u-photo {
float: right; float: right;
} }
@ -302,16 +290,16 @@ select {
margin-right: 0; margin-right: 0;
} }
#showstream .notice .entry-title, #showstream .notice div.entry-content { #showstream .notice .h-entry, #showstream .notice div.e-content {
margin-right: 0; margin-right: 0;
} }
.limited-scope .entry-content .timestamp:before { .limited-scope .e-content .timestamp:before {
right: 0; right: 0;
left: auto; left: auto;
} }
.limited-scope .entry-content .timestamp { .limited-scope .e-content .timestamp {
padding-left: 0; padding-left: 0;
padding-right: 20px; padding-right: 20px;
} }