Compare commits
12
Commits
0f3216a056
...
f4298cf171
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f4298cf171 | ||
|
|
d714808318 | ||
|
|
c0912e172c | ||
|
|
ef723ef291 | ||
|
|
95fe893121 | ||
|
|
2381e7c412 | ||
|
|
2867059f68 | ||
|
|
a8c24dab18 | ||
|
|
e2154ea9b0 | ||
|
|
24689aceb4 | ||
|
|
0bd87f51fd | ||
|
|
8a4122d049 |
@@ -1455,6 +1455,72 @@ class BibtexbrowserTest extends PHPUnit_Framework_TestCase {
|
||||
$this->assertEquals(0, count($results));
|
||||
}
|
||||
|
||||
function test_tags_pagination() {
|
||||
// Define the page size for pagination
|
||||
bibtexbrowser_configure('TAGS_SIZE', 2);
|
||||
|
||||
// Create a test BibTeX database with multiple entries and keywords
|
||||
$bibtex = "@article{paper1,title={Paper One},keywords={tagA, tagB},year=2020}
|
||||
@article{paper2,title={Paper Two},keywords={tagC},year=2020}
|
||||
@article{paper3,title={Paper Three},keywords={tagD},year=2020}
|
||||
@article{paper4,title={Paper Four},keywords={tagE},year=2020}";
|
||||
|
||||
$test_data = fopen('php://memory','r+');
|
||||
fwrite($test_data, $bibtex);
|
||||
fseek($test_data, 0);
|
||||
|
||||
$db = new BibDataBase();
|
||||
$db->update_internal("inline", $test_data);
|
||||
|
||||
// Create MenuManager display
|
||||
$display = new MenuManager();
|
||||
$display->setDB($db);
|
||||
|
||||
// Test the first page
|
||||
$_GET["tags_page"] = '1';
|
||||
ob_start();
|
||||
$display->display();
|
||||
$output1 = ob_get_clean();
|
||||
|
||||
// Tags are sorted alphabetically.
|
||||
$this->assertStringContainsString('tagA', $output1);
|
||||
$this->assertStringContainsString('tagB', $output1);
|
||||
$this->assertStringNotContainsString('tagC', $output1);
|
||||
|
||||
// Verify pagination link to the next page
|
||||
$this->assertStringContainsString('keywords_page=2', $output1);
|
||||
|
||||
// Test the second page
|
||||
$_GET["keywords_page"] = '2';
|
||||
ob_start();
|
||||
$display->display();
|
||||
$output2 = ob_get_clean();
|
||||
|
||||
$this->assertStringContainsString('tagC', $output2);
|
||||
$this->assertStringContainsString('tagD', $output2);
|
||||
$this->assertStringNotContainsString('tagA', $output2);
|
||||
$this->assertStringNotContainsString('tagE', $output2);
|
||||
|
||||
// Verify navigation links to previous and next pages
|
||||
$this->assertStringContainsString('keywords_page=1', $output2);
|
||||
$this->assertStringContainsString('keywords_page=3', $output2);
|
||||
|
||||
// Test the third page
|
||||
$_GET["keywords_page"] = '3';
|
||||
ob_start();
|
||||
$display->display();
|
||||
$output3 = ob_get_clean();
|
||||
|
||||
$this->assertStringContainsString('tagE', $output3);
|
||||
$this->assertStringNotContainsString('tagD', $output3);
|
||||
|
||||
// Verify navigation link to the previous page
|
||||
$this->assertStringContainsString('keywords_page=2', $output3);
|
||||
$this->assertStringNotContainsString('keywords_page=4', $output3); // No next page
|
||||
|
||||
// Clean up
|
||||
unset($_GET["keywords_page"]);
|
||||
}
|
||||
function test_venuevc_pagination() {
|
||||
// Define the page size for pagination
|
||||
bibtexbrowser_configure('VENUE_SIZE', 2);
|
||||
|
||||
+2
-1
@@ -60,10 +60,11 @@ The following uses bibtexbrowser under the hood:
|
||||
* [[http://www.monperrus.net/martin/feeding-mysql-database-with-bibtexbrowser|Feeding a MySQL database from the content of a bibtex file]]
|
||||
* Publication lists in Wordpress with [[http://www.monperrus.net/martin/wp-publications|wp-publications]]
|
||||
* [[http://www.monperrus.net/martin/publication-lists-with-hal-and-bibtexbrowser|Publication lists with HAL and bibtexbrowser]]
|
||||
* Generating publication lists in DokuWiki using the [[https://www.dokuwiki.org/plugin:bb4dw|bb4dw plugin]]
|
||||
|
||||
=====Demo and screenshot=====
|
||||
|
||||
Demo: [[http://bibtexbrowser.sourceforge.net/bibtexbrowser.php?bib=metrics.bib|Here, you can browse a bibtex file dedicated to software metrics]]
|
||||
Demo: [[https://www.monperrus.net/martin/bibtexbrowser.php|Here, you can browse a bibtex file of Martin's papers.]]
|
||||
|
||||
<img height="500" src="https://www.monperrus.net/martin/bibtexbrowser/bibtexbrowser-screenshot.png" alt="bibtexbrowser screenshot"/>
|
||||
|
||||
|
||||
+5
-1
@@ -2584,6 +2584,10 @@ function JanosBibliographyStyle($bibentry) {
|
||||
|
||||
$result = implode(", ",$entry).'.';
|
||||
|
||||
// some comments (e.g. acceptance rate)?
|
||||
if ($bibentry->hasField('comment')) {
|
||||
$result .= " (".$bibentry->getField("comment").")";
|
||||
|
||||
// add the Coin URL
|
||||
$result .= "\n".$bibentry->toCoins();
|
||||
|
||||
@@ -2994,7 +2998,7 @@ class MenuManager {
|
||||
} else $page = 1;
|
||||
|
||||
|
||||
if (count($tags)>0) $this->displayMenu('Keywords', $tags, $page, bibtexbrowser_configuration("MENU_SIZE"), Q_TAG_PAGE,
|
||||
if (count($tags)>0) $this->displayMenu('Keywords', $tags, $page, bibtexbrowser_configuration("TAGS_SIZE"), Q_TAG_PAGE,
|
||||
Q_TAG);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user