13 Commits

Author SHA1 Message Date
Frederik Möllers f4298cf171 Add comment field to JanosBibliographyStyle 2 weeks ago
Frederik Möllers d714808318 Merge branch 'master' into staging 2 weeks ago
Frederik Möllers c0912e172c Merge branch 'github' 2 weeks ago
Frederik Möllers ef723ef291
Merge branch 'monperrus:master' into master 2 weeks ago
Martin Monperrus 95fe893121
Update README.wiki 1 month ago
Hans-Nikolai Viessmann 2381e7c412
add DokuWiki bb2dw plugin reference to readme file (#138) 1 month ago
Martin Monperrus 2867059f68
fix https://github.com/monperrus/bibtexbrowser/issues/136 2 months ago
Frederik Möllers a8c24dab18
Add internationalization for third-party styles (#137) 2 months ago
Frederik Möllers 8a4122d049 Add internationalization for third-party styles 2 months ago
Frederik Möllers 0f3216a056 Use staging URL 2 months ago
Frederik Möllers bc3a28c815 Translate remaining english strings to german 2 months ago
Frederik Möllers f2195e8a59 Add internationalization for third-party styles 2 months ago
Frederik Möllers 694fe7ceba Improve use of CSS font-weight 2 months ago
  1. 66
      BibtexbrowserTest.php
  2. 3
      README.wiki
  3. 2
      bibtexbrowser.local.php
  4. 6
      bibtexbrowser.php

66
BibtexbrowserTest.php

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

3
README.wiki

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

2
bibtexbrowser.local.php

@ -3,7 +3,7 @@ bibtexbrowser_configure('ABBRV_TYPE','key');
// use tabular layout (HTML tables)
bibtexbrowser_configure('BIBTEXBROWSER_LAYOUT','table');
// URL to individual files
bibtexbrowser_configure('BIBTEXBROWSER_URL',"https://publications.zrd-saar.de/");
bibtexbrowser_configure('BIBTEXBROWSER_URL',"https://publications-staging.zrd-saar.de/");
// URL to jQuery
bibtexbrowser_configure('JQUERY_URI', '/static/jquery-3.6.4.min.js');
// URL to MathJax

6
bibtexbrowser.php

@ -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);
}

Loading…
Cancel
Save