summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAdrian Lang <mail@adrianlang.de>2009-04-15 09:38:19 +0200
committerAdrian Lang <mail@adrianlang.de>2009-04-15 09:38:19 +0200
commit99f4367d03a4bd0676ac2b7ea9b5cfb8cf0f6f83 (patch)
treec84cd6625a0df93ec078317f29eeb0046bb9e59e /lib
parentfc6cedd2227d9d560736e494f431e2b40b26b45c (diff)
parent2fb8c58c84ef02766364e605d28ecaf90c5fc25f (diff)
Merge branch 'link-rel-paginate' of git://gitorious.org/laconica/meitar. Fixed wrong call of common_local_url.
These changes add opera-readable prev/next relations.
Diffstat (limited to 'lib')
-rw-r--r--lib/action.php46
1 files changed, 46 insertions, 0 deletions
diff --git a/lib/action.php b/lib/action.php
index cc98d4445..dddba9eb0 100644
--- a/lib/action.php
+++ b/lib/action.php
@@ -124,6 +124,7 @@ class Action extends HTMLOutputter // lawsuit
$this->showShortcutIcon();
$this->showStylesheets();
$this->showScripts();
+ $this->showRelationshipLinks();
$this->showOpenSearch();
$this->showFeeds();
$this->showDescription();
@@ -265,6 +266,19 @@ class Action extends HTMLOutputter // lawsuit
}
/**
+ * Show document relationship links
+ *
+ * SHOULD overload
+ *
+ * @return nothing
+ */
+ function showRelationshipLinks()
+ {
+ // output <link> elements with appropriate HTML4.01 link types:
+ // http://www.w3.org/TR/html401/types.html#type-links
+ }
+
+ /**
* Show OpenSearch headers
*
* @return nothing
@@ -1039,4 +1053,36 @@ class Action extends HTMLOutputter // lawsuit
{
return null;
}
+
+ /**
+ * 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);
+ $this->element('link', array('rel' => 'next',
+ 'href' => common_local_url($action, $args, $pargs),
+ 'title' => _('Next')));
+ }
+ // "previous" is equivalent to "before"
+ if ($have_previous=true) { // FIXME
+ $pargs = array('page' => $page+1);
+ $this->element('link', array('rel' => 'prev',
+ 'href' => common_local_url($action, $args, $pargs),
+ 'title' => _('Previous')));
+ }
+ }
}