From 06ce256e55c9ff1578a651cae609c1c53070c676 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Lucas?= Date: Sun, 24 Jun 2012 08:16:47 +0200 Subject: [PATCH] Change the way format are handled in HTML catalog. More work remaining to make it clean --- book.php | 16 +++++++++++++++- config_default.php | 7 +++++++ fetch.php | 11 +++++++++-- index.php | 14 +++++--------- 4 files changed, 36 insertions(+), 12 deletions(-) diff --git a/book.php b/book.php index c8d210e..332681d 100644 --- a/book.php +++ b/book.php @@ -217,7 +217,7 @@ from data where book = ?'); if (array_key_exists ($ext, self::$mimetypes)) { array_push ($linkArray, $this->getLink ($ext, self::$mimetypes [$ext], Link::OPDS_ACQUISITION_TYPE, $post->name . "." . strtolower ($post->format), $post->id, "Download")); - $this->format [$ext] = $post->name . "." . strtolower ($post->format); + $this->format [$post->format] = array ($post->id, $post->name . "." . strtolower ($post->format)); } } @@ -318,6 +318,20 @@ where books.id = ?'); return NULL; } + public static function getBookByDataId($dataId) { + $result = parent::getDb ()->prepare('select ' . self::BOOK_COLUMNS . ' +from data, books left outer join comments on comments.book = books.id +where data.book = books.id and data.id = ?'); + $entryArray = array(); + $result->execute (array ($dataId)); + while ($post = $result->fetchObject ()) + { + $book = new Book ($post); + return $book; + } + return NULL; + } + public static function getBooksByQuery($query) { $result = parent::getDb ()->prepare("select " . self::BOOK_COLUMNS . " from books left outer join comments on book = books.id diff --git a/config_default.php b/config_default.php index 5c1fa33..df168db 100644 --- a/config_default.php +++ b/config_default.php @@ -73,4 +73,11 @@ * http://www.php.net/manual/en/timezones.php */ $config['default_timezone'] = "Europe/Paris"; + + /* + * Prefered format for HTML catalog + * The two first will be displayed in book entries + * The other only appear in book detail + */ + $config['cops_prefered_format'] = array ("EPUB", "PDF"); ?> \ No newline at end of file diff --git a/fetch.php b/fetch.php index 5942283..885467b 100644 --- a/fetch.php +++ b/fetch.php @@ -14,10 +14,17 @@ header("Pragma: public"); header("Cache-Control: maxage=".$expires); header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$expires) . ' GMT'); - $bookId = $_GET["id"]; - $book = Book::getBookById($bookId); + $bookId = getURLParam ("id", NULL); $type = getURLParam ("type", "jpg"); $idData = getURLParam ("data", NULL); + if (is_null ($bookId)) + { + $book = Book::getBookByDataId($idData); + } + else + { + $book = Book::getBookById($bookId); + } switch ($type) { diff --git a/index.php b/index.php index 370662b..5449825 100644 --- a/index.php +++ b/index.php @@ -153,17 +153,13 @@
book->format)) { + foreach ($config['cops_prefered_format'] as $format) + { + if (array_key_exists($format, $entry->book->format)) { ?> - - - book->format)) { - ?> - +