diff --git a/BibtexbrowserTest.php b/BibtexbrowserTest.php
index 4cd0d27..a18bbce 100755
--- a/BibtexbrowserTest.php
+++ b/BibtexbrowserTest.php
@@ -1586,6 +1586,61 @@ class BibtexbrowserTest extends PHPUnit_Framework_TestCase {
// Clean up
unset($_GET["venue_page"]);
}
+
+ function test_AcademicDisplay() {
+ // Create test BibTeX database with entries from different categories
+ $bibtex = "@article{journal1,title={Journal Article},author={John Doe},journal={Nature},year=2023,type={Journal Articles}}
+ @inproceedings{conf1,title={Conference Paper},author={Jane Smith},booktitle={ICSE},year=2023,type={Refereed Conference Papers}}
+ @book{book1,title={A Book},author={Bob Johnson},publisher={Springer},year=2022,type={Books}}
+ @techreport{tech1,title={Technical Report},author={Alice Brown},institution={MIT},year=2023,type={Technical Reports}}";
+
+ $test_data = fopen('php://memory','x+');
+ fwrite($test_data, $bibtex);
+ fseek($test_data,0);
+ $db = new BibDataBase();
+ $db->update_internal("inline", $test_data);
+
+ // Test with BIBTEXBROWSER_ACADEMIC_TOC = true
+ bibtexbrowser_configure('BIBTEXBROWSER_ACADEMIC_TOC', true);
+
+ $display = new AcademicDisplay();
+ $display->setDB($db);
+
+ ob_start();
+ $display->display();
+ $output_with_toc = ob_get_clean();
+
+ // Verify TOC is present
+ // $this->assertStringContainsString('class="btb-menu-toc"', $output_with_toc);
+ $this->assertStringContainsString('Refereed Articles', $output_with_toc);
+
+ // Verify HTML structure for both cases
+ $xml1 = new SimpleXMLElement("".$output_with_toc."");
+ $headers1 = $xml1->xpath('//div[@class="sheader"]');
+ $this->assertEquals(0, count($headers1));
+ $anchors = $xml1->xpath('//h2');
+ $this->assertGreaterThan(3, count($anchors));
+
+
+ // Test with BIBTEXBROWSER_ACADEMIC_TOC = false
+ bibtexbrowser_configure('BIBTEXBROWSER_ACADEMIC_TOC', false);
+
+ $display2 = new AcademicDisplay();
+ $display2->setDB($db);
+
+ ob_start();
+ $display2->display();
+ $output_without_toc = ob_get_clean();
+
+ // Verify TOC is not present
+ $this->assertStringNotContainsString('class="btb-menu-toc"', $output_without_toc);
+ // But category headers should still be present
+ $this->assertStringContainsString('Refereed Articles', $output_without_toc);
+
+ $xml2 = new SimpleXMLElement("".$output_without_toc."");
+ $headers2 = $xml2->xpath('//div[@class="sheader"]');
+ $this->assertGreaterThan(0, count($headers2));
+ }
} // end class
// Test implementation that records events
diff --git a/bibtexbrowser.php b/bibtexbrowser.php
index b8fa328..3d06ca7 100755
--- a/bibtexbrowser.php
+++ b/bibtexbrowser.php
@@ -236,7 +236,7 @@ if (defined('ENCODING')) {
@define('BIBTEXBROWSER_URL',basename(__FILE__));
// Specify the location of the cache file for servers that need temporary files written in a specific location
-@define('CACHE_DIR','');
+@define('CACHE_DIR','.');
// Specify the location of the bib file for servers that need do not allow slashes in URLs,
// where the bib file and bibtexbrowser.php are in different directories.
@@ -368,7 +368,7 @@ function _zetDB($bibtex_filenames) {
// ---------------------------- HANDLING caching of compiled bibtex files
// for sake of performance, once the bibtex file is parsed
// we try to save a "compiled" in a txt file
- $compiledbib = CACHE_DIR.'bibtexbrowser_'.md5($bibtex_filenames).'.dat';
+ $compiledbib = c("CACHE_DIR").'/bibtexbrowser_'.md5($bibtex_filenames).'.dat';
$parse=filemtime(__FILE__)>@filemtime($compiledbib);
@@ -3481,7 +3481,7 @@ class AcademicDisplay {
$this->db = createBibDataBase();
$this->db->bibdb = $this->entries;
- if (BIBTEXBROWSER_ACADEMIC_TOC != true) {
+ if (c("BIBTEXBROWSER_ACADEMIC_TOC") == false) {
foreach (_DefaultBibliographySections() as $section) {
$this->search2html($section['query'],$section['title']);
}
@@ -3515,7 +3515,7 @@ class AcademicDisplay {
echo "\n";
echo "";
echo $section['title']." (".$section['count'].")";
- echo "\n",
+ echo "\n";
$section['display']->display();
}
}