aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Weiske <cweiske@cweiske.de>2016-02-12 17:04:42 +0100
committerChristian Weiske <cweiske@cweiske.de>2016-02-12 17:04:42 +0100
commita23efd3bfd8de4bdf8085ea0e39e7abd4f84f516 (patch)
treecb3af6435bec575d522bbe66b8e5406b4c5b1b5d
parentcb78e8dbc0351660d0c5c15be2a7b9b969ad9dbe (diff)
downloadphinde-a23efd3bfd8de4bdf8085ea0e39e7abd4f84f516.tar.gz
phinde-a23efd3bfd8de4bdf8085ea0e39e7abd4f84f516.zip
opensearch paging
-rw-r--r--data/templates/opensearch.htm19
-rw-r--r--src/phinde/Html/Pager.php15
2 files changed, 32 insertions, 2 deletions
diff --git a/data/templates/opensearch.htm b/data/templates/opensearch.htm
index a1000f1..1ba805a 100644
--- a/data/templates/opensearch.htm
+++ b/data/templates/opensearch.htm
@@ -1,11 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
-<feed xmlns="http://www.w3.org/2005/Atom"
+<feed xmlns="http://www.w3.org/2005/Atom"
xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">
- <title>"{{query}}" search results</title>
+ <title>"{{query}}" search results</title>
<link rel="self" href="{{fullUrl}}" type="application/atom+xml"/>
+ {% set fullUrls = pager.getFullUrls() %}
+ {% if fullUrls.first %}
+ <link rel="first" href="{{fullUrls.first}}" type="application/atom+xml"/>
+ {% endif %}
+ {% if fullUrls.prev %}
+ <link rel="prev" href="{{fullUrls.prev}}" type="application/atom+xml"/>
+ {% endif %}
+ {% if fullUrls.next %}
+ <link rel="next" href="{{fullUrls.next}}" type="application/atom+xml"/>
+ {% endif %}
+ {% if fullUrls.last %}
+ <link rel="last" href="{{fullUrls.last}}" type="application/atom+xml"/>
+ {% endif %}
+
<updated>{{"now"|date("c")}}</updated>
<id>{{fullUrl}}</id>
<opensearch:totalResults>{{hitcount}}</opensearch:totalResults>
+ <opensearch:itemsPerPage>10</opensearch:itemsPerPage>
{% for hit in hits %}
{% set doc = hit._source %}
<entry>
diff --git a/src/phinde/Html/Pager.php b/src/phinde/Html/Pager.php
index a14a53d..9726d95 100644
--- a/src/phinde/Html/Pager.php
+++ b/src/phinde/Html/Pager.php
@@ -57,6 +57,21 @@ class Html_Pager
return $arLinks;
}
+ public function getFullUrls()
+ {
+ $arLinks = $this->pager->getLinks();
+ $arUrls = array();
+ foreach ($arLinks['linkTagsRaw'] as $key => $link) {
+ if (isset($link['url'])) {
+ $arUrls[$key] = str_replace(
+ '&amp;', '&',
+ Helper::fullUrl('/' . $link['url'])
+ );
+ }
+ }
+ return $arUrls;
+ }
+
public function numPages()
{
return $this->pager->numPages();