summaryrefslogtreecommitdiff
path: root/lib/action.php
diff options
context:
space:
mode:
authorMeitar Moscovitz <meitarm@gmail.com>2009-02-10 19:42:01 +1100
committerMeitar Moscovitz <meitarm@gmail.com>2009-02-10 20:25:44 +1100
commitb240a1719485b15c4a6497b6053c24e8a40a4e3c (patch)
treecb3ab3fa2e76c971c70bffaf37984d079cee7185 /lib/action.php
parent3585012380bd8352b8e7bbb605bed05a9148fe11 (diff)
Beginning to refactor document relationship links to reduce common code.
My attempts here are to mimic the `pagination()` method shared by actions. I'm tentatively adding the `$count` property to actions so that we can query the number of notices ''being displayed'' per page prior to calling the actual `pagination()` method itself, since document relationship `<link>` elements need to be output inside of `showHead()`, before `showContent()`, which is where `pagination()` is, gets called.
Diffstat (limited to 'lib/action.php')
-rw-r--r--lib/action.php34
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/action.php b/lib/action.php
index 8d0fea7af..80a8969fa 100644
--- a/lib/action.php
+++ b/lib/action.php
@@ -938,4 +938,38 @@ class Action extends HTMLOutputter // lawsuit
$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')));
+ }
+ }
}