diff options
| -rw-r--r-- | data/templates/opensearch.htm | 19 | ||||
| -rw-r--r-- | src/phinde/Html/Pager.php | 15 |
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( + '&', '&', + Helper::fullUrl('/' . $link['url']) + ); + } + } + return $arUrls; + } + public function numPages() { return $this->pager->numPages(); |
