diff --git a/bibtexbrowser.php b/bibtexbrowser.php index e043ccb..c8922b6 100755 --- a/bibtexbrowser.php +++ b/bibtexbrowser.php @@ -3,6 +3,7 @@ URL: http://www.monperrus.net/martin/bibtexbrowser/ Feedback & Bug Reports: martin.monperrus@gmail.com +(C) 2013 Matthieu Guillaumin (C) 2006-2012 Martin Monperrus (C) 2005-2006 The University of Texas at El Paso / Joel Garcia, Leonardo Ruiz, and Yoonsik Cheon This program is free software; you can redistribute it and/or @@ -117,6 +118,8 @@ define('BIBTEXBROWSER','v__GITHUB__'); @define('METADATA_DC',true); @define('METADATA_EPRINTS',false); +@define('LAYOUT','table'); // may be table/list/deflist. defines the HTML rendering options (,
    /
)with two TDS inside - */ - function toTR() { - echo ''; - echo ' '; - echo ''; + break; + case 'deflist': + echo ''; + break; + } + } - if ($this->hasField('doi')) { - echo ' [doi]'; - } - - // Google Scholar ID - if ($this->hasField('gsid')) { - echo ' [cites]'; - } - echo "\n"; + /** Create the entry anchor */ + function anchor() { + echo ''; } /** Outputs an coins URL: see http://ocoins.info/cobg.html @@ -1436,12 +1455,63 @@ class BibEntry { } +function layoutHeaderHTML() { + $tag = ''; + switch(LAYOUT) { /* switch for different layouts */ + case 'list': + if (ABBRV_TYPE=='index') { + $tag='ol'; + } else { // assume none + $tag='ul'; + } + break; + case 'table': + $tag = 'table'; + break; + case 'deflist': + $tag = 'div'; + break; + default: + die('Unknown LAYOUT'); + } + echo '<' . $tag . ' class="result">'; + return $tag; +} + +function layoutFooterHTML($tag) { + echo ''; +} + /** this function encapsulates the user-defined name for bib to HTML*/ function bib2html(&$bibentry) { $function = BIBLIOGRAPHYSTYLE; return $function($bibentry); } +function bib2links(&$bibentry) { + $href = 'href="'.$bibentry->getURL().'"'; + + if (BIBTEXBROWSER_BIBTEX_LINKS) { + // we add biburl and title to be able to retrieve this important information + // using Xpath expressions on the XHTML source + $str .= " getKey()."\" {$href}>[bibtex]"; + } + + // returns an empty string if no url present + $str .= $bibentry->getUrlLink(); + + if ($bibentry->hasField('doi')) { + $str .= ' [doi]'; + } + + // Google Scholar ID + if ($bibentry->hasField('gsid')) { + $str .= ' [cites]'; + } + + return $str; +} + /** encapsulates the user-defined sections. @nodoc */ function _DefaultBibliographySections() { $function = BIBLIOGRAPHYSECTIONS; @@ -2301,21 +2371,19 @@ class SimpleDisplay { echo 'Options: '.@implode(',',$this->options).'
'; } - ?> + $tag = layoutHeaderHTML(); -
'; - //echo ''; - - echo $this->getAbbrv().''; - echo bib2html($this); - - $href = 'href="'.$this->getURL().'"'; - - if (BIBTEXBROWSER_BIBTEX_LINKS) { - // we add biburl and title to be able to retrieve this important information - // using Xpath expressions on the XHTML source - echo " getKey()."\" {$href}>[bibtex]"; - } - - // returns an empty string if no url present - echo $this->getUrlLink(); + /** Outputs HTML line according to layout */ + function toHTML() { + switch(LAYOUT) { // open row + case 'list': + echo '
  • '; + break; + case 'table': + echo '
  • '; + break; + case 'deflist': + echo '
    '; break; + } + $this->anchor(); + switch(LAYOUT) { // close bibref and open bibitem + case 'table': + echo $this->getAbbrv().'
    '; + break; + case 'deflist': + echo $this->getAbbrv().'
    '; + break; + } + echo bib2html($this); + echo bib2links($this); + switch(LAYOUT) { // close row + case 'list': + echo ''; + break; + case 'table': + echo '
    - entries); $i=0; foreach ($this->entries as $bib) { - // by default, index are in decrasing order + // by default, index are in decreasing order // so that when you add a publicaton recent , the indices of preceding publications don't change - $bib->setIndex('['.($count-($i++)).']'); - $bib->toTR(); + $bib->setIndex($count-($i++)); + $bib->toHTML(); } // end foreach - ?> -
    - 0) { echo "\n".'
    '.$title.'
    '."\n"; - echo ''."\n"; + $tag = layoutHeaderHTML(); - // by default the abbreviation is incermented over all - // searches + // by default the abbreviation is incremented over all searches // since we don't know before hand all section, we can not index in decreasing order static $count; if ($count == NULL) { $count = 1; } // init $id = $count; foreach ($entries as $bib) { - $bib->setIndex('['.($id++).']'); - $bib->toTR(); + $bib->setIndex($id++); + $bib->toHTML(); } // end foreach $count = @$count + count($entries); - echo '
    '; + layoutFooterHTML($tag); } } @@ -2397,7 +2464,7 @@ class AcademicDisplay { foreach (_DefaultBibliographySections() as $section) { $this->search2html($section['query'],$section['title']); - } + } } } @@ -3176,18 +3243,18 @@ class PagedDisplay { } $this->menu($less, $more); - echo ''; + $tag = layoutHeaderHTML(); for ($i = 0; $i < PAGE_SIZE; $i++) { $index = ($this->page-1)*PAGE_SIZE + $i; if (isset($this->entries[$index])) { $bib = $this->entries[$index]; - $bib->toTR(); + $bib->toHTML(); } else { //break; } } // end foreach - echo '
    '; + layoutFooterHTML($tag); $this->menu($less, $more); } @@ -3478,7 +3545,7 @@ class Dispatcher { function keywords() { $this->query[Q_TAG]=$_GET[Q_TAG]; } - function author() { + function author() { // Friday, October 29 2010 // changed from 'author' to '_author' // in order to search at the same time "Joe Dupont" an "Dupont, Joe" @@ -3573,4 +3640,4 @@ class Dispatcher { $class = BIBTEXBROWSER_MAIN;// extension point $main = new $class(); $main->main(); -?> \ No newline at end of file +?>