Change the way format are handled in HTML catalog.

More work remaining to make it clean
This commit is contained in:
Sébastien Lucas 2012-06-24 08:16:47 +02:00
parent 9a8e9bacae
commit 06ce256e55
4 changed files with 36 additions and 12 deletions

View file

@ -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

View file

@ -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");
?>

View file

@ -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)
{

View file

@ -153,17 +153,13 @@
</div>
<div class="download">
<?php
if (array_key_exists("epub", $entry->book->format)) {
foreach ($config['cops_prefered_format'] as $format)
{
if (array_key_exists($format, $entry->book->format)) {
?>
<div class="button buttonEffect"><a href="<?php echo "download/" . $entry->book->id . "/" . urlencode ($entry->book->format ["epub"]) ?>">EPUB</a></div>
<div class="button buttonEffect"><a href="<?php echo "download/" . $entry->book->format [$format][0] . "/" . urlencode ($entry->book->format [$format][1]) ?>"><?php echo $format ?></a></div>
<?php
}
?>
<?php
if (array_key_exists("pdf", $entry->book->format)) {
?>
<div class="button buttonEffect"><a href="<?php echo "download/" . $entry->book->id . "/" . urlencode ($entry->book->format ["pdf"]) ?>">PDF</a></div>
<?php
}
?>
</div>