Add v0.0.3

This commit is contained in:
Sébastien Lucas 2012-05-28 07:06:12 +02:00
parent f460bd8731
commit 2308af6033
10 changed files with 146 additions and 24 deletions

View file

@ -11,6 +11,7 @@ require_once ("base.php");
class OPDSRenderer
{
const PAGE_OPENSEARCH = "8";
const PAGE_OPENSEARCH_QUERY = "9";
private $xmlStream = NULL;
private $updated = NULL;
@ -32,11 +33,13 @@ class OPDSRenderer
}
public function getOpenSearch () {
global $config;
$xml = new XMLWriter ();
$xml->openMemory ();
$xml->setIndent (true);
$xml->startDocument('1.0','UTF-8');
$xml->startElement ("OpenSearchDescription");
$xml->writeAttribute ("xmlns", "http://a9.com/-/spec/opensearch/1.1/");
$xml->startElement ("ShortName");
$xml->text ("My catalog");
$xml->endElement ();
@ -47,11 +50,18 @@ class OPDSRenderer
$xml->text ("UTF-8");
$xml->endElement ();
$xml->startElement ("Image");
$xml->writeAttribute ("type", "image/x-icon");
$xml->writeAttribute ("width", "16");
$xml->writeAttribute ("height", "16");
$xml->text ("favicon.ico");
$xml->endElement ();
$xml->startElement ("Url");
$xml->writeAttribute ("type", 'application/atom+xml');
$xml->writeAttribute ("template", 'feed.php?page=' . self::PAGE_OPENSEARCH_QUERY . '&query={searchTerms}');
$xml->writeAttribute ("template", $config['cops_full_url'] . 'feed.php?query={searchTerms}');
$xml->endElement ();
$xml->startElement ("Query");
$xml->writeAttribute ("role", "example");
$xml->writeAttribute ("searchTerms", "robot");
$xml->endElement ();
$xml->endElement ();
$xml->endDocument();
@ -89,9 +99,9 @@ class OPDSRenderer
self::getXmlStream ()->text ("sebastien@slucas.fr");
self::getXmlStream ()->endElement ();
self::getXmlStream ()->endElement ();
$link = new LinkNavigation ("feed.php", "start", "Home");
$link = new LinkNavigation ("", "start", "Home");
self::renderLink ($link);
$link = new LinkNavigation ($_SERVER['REQUEST_URI'], "self");
$link = new LinkNavigation ("?" . $_SERVER['QUERY_STRING'], "self");
self::renderLink ($link);
$link = new Link ("feed.php?page=" . self::PAGE_OPENSEARCH, "application/opensearchdescription+xml", "search", "Search here");
self::renderLink ($link);
@ -169,6 +179,18 @@ class OPDSRenderer
public function render ($page) {
self::startXmlDocument ($page->title);
if ($page->query)
{
self::getXmlStream ()->startElement ("opensearch:totalResults");
self::getXmlStream ()->text (count($page->entryArray));
self::getXmlStream ()->endElement ();
self::getXmlStream ()->startElement ("opensearch:itemsPerPage");
self::getXmlStream ()->text (count($page->entryArray));
self::getXmlStream ()->endElement ();
self::getXmlStream ()->startElement ("opensearch:startIndex");
self::getXmlStream ()->text ("1");
self::getXmlStream ()->endElement ();
}
foreach ($page->entryArray as $entry) {
self::getXmlStream ()->startElement ("entry");
self::renderEntry ($entry);
@ -178,4 +200,4 @@ class OPDSRenderer
}
}
?>
?>