Changing the number of book per pages changed the search with multiple database. Reported by At-Libitum. fix #124

This commit is contained in:
Sébastien Lucas 2013-12-07 21:17:38 +01:00
parent e9620c977a
commit 002c7596ea
3 changed files with 18 additions and 3 deletions

View file

@ -752,7 +752,7 @@ class PageQueryResult extends Page
$i = 0; $i = 0;
foreach ($config['calibre_directory'] as $key => $value) { foreach ($config['calibre_directory'] as $key => $value) {
Base::clearDb (); Base::clearDb ();
list ($array, $totalNumber) = Book::getBooksByQuery (array ($crit, $crit, $crit, $crit), $this->n, $i); list ($array, $totalNumber) = Book::getBooksByQuery (array ($crit, $crit, $crit, $crit), 1, $i, 1);
array_push ($this->entryArray, new Entry ($key, DB . ":query:{$i}", array_push ($this->entryArray, new Entry ($key, DB . ":query:{$i}",
str_format (localize ("bookword", count($array)), count($array)), "text", str_format (localize ("bookword", count($array)), count($array)), "text",
array ( new LinkNavigation ("?" . DB . "={$i}&page=9&query=" . $this->query)))); array ( new LinkNavigation ("?" . DB . "={$i}&page=9&query=" . $this->query))));

View file

@ -553,8 +553,8 @@ where data.book = books.id and data.id = ?');
return NULL; return NULL;
} }
public static function getBooksByQuery($query, $n, $database = NULL) { public static function getBooksByQuery($query, $n, $database = NULL, $numberPerPage = NULL) {
return self::getEntryArray (self::SQL_BOOKS_QUERY, $query, $n, $database); return self::getEntryArray (self::SQL_BOOKS_QUERY, $query, $n, $database, $numberPerPage);
} }
public static function getBooks($n) { public static function getBooks($n) {

View file

@ -43,6 +43,21 @@ class PageMultiDatabaseTest extends PHPUnit_Framework_TestCase
$qid = NULL; $qid = NULL;
$n = "1"; $n = "1";
// Issue 124
$config['cops_max_item_per_page'] = 2;
$currentPage = Page::getPage ($page, $qid, $query, $n);
$currentPage->InitializeContent ();
$this->assertEquals ("Search result for *art*", $currentPage->title);
$this->assertCount (2, $currentPage->entryArray);
$this->assertEquals ("Some books", $currentPage->entryArray [0]->title);
$this->assertEquals ("10 books", $currentPage->entryArray [0]->content);
$this->assertEquals ("One book", $currentPage->entryArray [1]->title);
$this->assertEquals ("1 book", $currentPage->entryArray [1]->content);
$this->assertFalse ($currentPage->ContainsBook ());
$config['cops_max_item_per_page'] = -1;
$currentPage = Page::getPage ($page, $qid, $query, $n); $currentPage = Page::getPage ($page, $qid, $query, $n);
$currentPage->InitializeContent (); $currentPage->InitializeContent ();