$page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
- common_show_header(_t('Public timeline'), array($this, 'show_header'));
+ header('X-XRDS-Location: '. common_local_url('publicxrds'));
+
+ common_show_header(_('Public timeline'),
+ array($this, 'show_header'), NULL,
+ array($this, 'show_top'));
# XXX: Public sidebar here?
common_show_footer();
}
+ function show_top() {
+ if (common_logged_in()) {
+ common_notice_form('public');
+ }
+ }
+
function show_header() {
common_element('link', array('rel' => 'alternate',
'href' => common_local_url('publicrss'),
'type' => 'application/rss+xml',
- 'title' => _t('Public Stream Feed')));
+ 'title' => _('Public Stream Feed')));
+ # for client side of OpenID authentication
+ common_element('meta', array('http-equiv' => 'X-XRDS-Location',
+ 'content' => common_local_url('publicxrds')));
}
-
+
function show_notices($page) {
- $notice = DB_DataObject::factory('notice');
+ $notice = new Notice();
- # FIXME: bad performance
-
- $notice->whereAdd('EXISTS (SELECT user.id from user where user.id = notice.profile_id)');
+ # XXX: sub-optimal
+
+ $notice->is_local = 1;
+
+ $notice->orderBy('created DESC, notice.id DESC');
- $notice->orderBy('created DESC');
-
# We fetch one extra, to see if we need an "older" link
-
+
$notice->limit((($page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE + 1);
$cnt = $notice->find();
}
common_element_end('ul');
}
-
+
common_pagination($page > 1, $cnt > NOTICES_PER_PAGE,
$page, 'public');
}