*/
function showRelationshipLinks()
{
- // Machine-readable pagination
- if ($this->page > 1) {
- $this->element('link', array('rel' => 'next',
- 'href' => common_local_url('all',
- array('nickname' => $this->user->nickname,
- 'page' => $this->page - 1)),
- 'title' => _('Next Notices')));
- }
- $this->element('link', array('rel' => 'prev',
- 'href' => common_local_url('all',
- array('nickname' => $this->user->nickname,
- 'page' => $this->page + 1)),
- 'title' => _('Previous Notices')));
+ $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+ $this->page, 'all', array('nickname' => $this->user->nickname));
}
function showLocalNav()
*/
function showRelationshipLinks()
{
- // Machine-readable pagination
- if ($this->page > 1) {
- $this->element('link', array('rel' => 'next',
- 'href' => common_local_url('favorited',
- array('page' => $this->page - 1)),
- 'title' => _('Next Notices')));
- }
- $this->element('link', array('rel' => 'prev',
- 'href' => common_local_url('favorited',
- array('page' => $this->page + 1)),
- 'title' => _('Previous Notices')));
+ $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+ $this->page, 'favorited');
}
}
*/
function showRelationshipLinks()
{
- // Machine-readable pagination
- if ($this->page > 1) {
- $this->element('link', array('rel' => 'next',
- 'href' => common_local_url('groupmembers',
- array('nickname' => $this->group->nickname,
- 'page' => $this->page - 1)),
- 'title' => _('Next Group Members')));
- }
- $this->element('link', array('rel' => 'prev',
- 'href' => common_local_url('groupmembers',
- array('nickname' => $this->group->nickname,
- 'page' => $this->page + 1)),
- 'title' => _('Previous Group Members')));
+ $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+ $this->page, 'groupmembers', array('nickname' => $this->group->nickname));
}
}
*/
function showRelationshipLinks()
{
- // Machine-readable pagination
- if ($this->page > 1) {
- $this->element('link', array('rel' => 'next',
- 'href' => common_local_url('groups',
- array('page' => $this->page - 1)),
- 'title' => _('Next Groups')));
- }
- $this->element('link', array('rel' => 'prev',
- 'href' => common_local_url('groups',
- array('page' => $this->page + 1)),
- 'title' => _('Previous Groups')));
+ $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+ $this->page, 'groups', array('nickname' => $this->group->nickname));
}
}
*/
function showRelationshipLinks()
{
- // Machine-readable pagination
- if ($this->page > 1) {
- $this->element('link', array('rel' => 'next',
- 'href' => common_local_url('inbox',
- array('nickname' => $this->user->nickname,
- 'page' => $this->page - 1)),
- 'title' => _('Next Messages')));
- }
- $this->element('link', array('rel' => 'prev',
- 'href' => common_local_url('inbox',
- array('nickname' => $this->user->nickname,
- 'page' => $this->page + 1)),
- 'title' => _('Previous Messages')));
+ $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+ $this->page, 'inbox', array('nickname' => $this->user->nickname));
}
/**
*/
function showRelationshipLinks()
{
- // Machine-readable pagination
- if ($this->page > 1) {
- $this->element('link', array('rel' => 'next',
- 'href' => common_local_url('outbox',
- array('nickname' => $this->user->nickname,
- 'page' => $this->page - 1)),
- 'title' => _('Next Messages')));
- }
- $this->element('link', array('rel' => 'prev',
- 'href' => common_local_url('outbox',
- array('nickname' => $this->user->nickname,
- 'page' => $this->page + 1)),
- 'title' => _('Previous Messages')));
+ $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+ $this->page, 'outbox', array('nickname' => $this->user->nickname));
}
/**
var $page = null;
+ /**
+ * Number of notices being shown on this page.
+ */
+ // Does this need to be here? Should it be?
+ // If it does, this property needs to be
+ // added to other actions as well, like $page.
+ // I'm trying to find a way to capture the
+ // output of the $cnt variable from this
+ // action's showContent() method but need
+ // to do so earlier, I think...?
+ var $count = null;
+
function isReadOnly()
{
return true;
*/
function showRelationshipLinks()
{
- // Machine-readable pagination
- if ($this->page > 1) {
- $this->element('link', array('rel' => 'next',
- 'href' => common_local_url('public',
- array('page' => $this->page - 1)),
- 'title' => _('Next Notices')));
- }
- $this->element('link', array('rel' => 'prev',
- 'href' => common_local_url('public',
- array('page' => $this->page + 1)),
- 'title' => _('Previous Notices')));
+ $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+ $this->page, 'public');
}
/**
*/
function showRelationshipLinks()
{
- // Machine-readable pagination
- if ($this->page > 1) {
- $this->element('link', array('rel' => 'next',
- 'href' => common_local_url('replies',
- array('nickname' => $this->user->nickname,
- 'page' => $this->page - 1)),
- 'title' => _('Next Notices')));
- }
- $this->element('link', array('rel' => 'prev',
- 'href' => common_local_url('replies',
- array('nickname' => $this->user->nickname,
- 'page' => $this->page + 1)),
- 'title' => _('Previous Notices')));
+ $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+ $this->page, 'replies', array('nickname' => $this->user->nickname));
}
/**
*/
function showRelationshipLinks()
{
- // Machine-readable pagination
- if ($this->page > 1) {
- $this->element('link', array('rel' => 'next',
- 'href' => common_local_url('showfavorites',
- array('nickname' => $this->user->nickname,
- 'page' => $this->page - 1)),
- 'title' => _('Next Favorite Notices')));
- }
- $this->element('link', array('rel' => 'prev',
- 'href' => common_local_url('showfavorites',
- array('nickname' => $this->user->nickname,
- 'page' => $this->page + 1)),
- 'title' => _('Previous Favorite Notices')));
+ $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+ $this->page, 'showfavorites', array('nickname' => $this->user->nickname));
}
+
/**
* show the personal group nav
*
*/
function showRelationshipLinks()
{
- // Machine-readable pagination
- if ($this->page > 1) {
- $this->element('link', array('rel' => 'next',
- 'href' => common_local_url('showgroup',
- array('nickname' => $this->group->nickname,
- 'page' => $this->page - 1)),
- 'title' => _('Next Notices')));
- }
- $this->element('link', array('rel' => 'prev',
- 'href' => common_local_url('showgroup',
- array('nickname' => $this->group->nickname,
- 'page' => $this->page + 1)),
- 'title' => _('Previous Notices')));
+ $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+ $this->page, 'showgroup', array('nickname' => $this->group->nickname));
}
/**
*/
function showRelationshipLinks()
{
- // Machine-readable pagination
- if ($this->page > 1) {
- $this->element('link', array('rel' => 'next',
- 'href' => common_local_url('showstream',
- array('nickname' => $this->user->nickname,
- 'page' => $this->page - 1)),
- 'title' => _('Next Notices')));
- }
- $this->element('link', array('rel' => 'prev',
- 'href' => common_local_url('showstream',
- array('nickname' => $this->user->nickname,
- 'page' => $this->page + 1)),
- 'title' => _('Previous Notices')));
+ $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+ $this->page, 'showstream', array('nickname' => $this->user->nickname));
}
function extraHead()
*/
function showRelationshipLinks()
{
- // Machine-readable pagination
- if ($this->page > 1) {
- $this->element('link', array('rel' => 'next',
- 'href' => common_local_url('tag',
- array('tag' => $this->tag,
- 'page' => $this->page - 1)),
- 'title' => _('Next Notices')));
- }
- $this->element('link', array('rel' => 'prev',
- 'href' => common_local_url('tag',
- array('tag' => $this->tag,
- 'page' => $this->page + 1)),
- 'title' => _('Previous Notices')));
+ $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+ $this->page, 'tag', array('tag' => $this->tag));
}
function showPageNotice()
$this->elementEnd('div');
}
}
+
+ /**
+ * Generate document metadata for sequential navigation
+ *
+ * @param boolean $have_before is there something before?
+ * @param boolean $have_after is there something after?
+ * @param integer $page current page
+ * @param string $action current action
+ * @param array $args rest of query arguments
+ *
+ * @return nothing
+ */
+ function sequenceRelationships($have_next, $have_previous, $page, $action, $args=null)
+ {
+ // Outputs machine-readable pagination in <link> elements.
+ // Pattern taken from $this->pagination() method.
+
+ // "next" is equivalent to "after"
+ if ($have_next) {
+ $pargs = array('page' => $page-1);
+ $newargs = $args ? array_merge($args, $pargs) : $pargs;
+ $this->element('link', array('rel' => 'next',
+ 'href' => common_local_url($action, $newargs),
+ 'title' => _('Next')));
+ }
+ // "previous" is equivalent to "before"
+ if ($have_previous=true) { // FIXME
+ $pargs = array('page' => $page+1);
+ $newargs = $args ? array_merge($args, $pargs) : $pargs;
+ $this->element('link', array('rel' => 'prev',
+ 'href' => common_local_url($action, $newargs),
+ 'title' => _('Previous')));
+ }
+ }
}