diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d8fe4fa --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/.project diff --git a/bibtexbrowser.php b/bibtexbrowser.php index f65ffd1..11b51c0 100755 --- a/bibtexbrowser.php +++ b/bibtexbrowser.php @@ -86,6 +86,12 @@ function bibtexbrowser_configure($key, $value) { // do we add [bibtex] links ? // suggested by Sascha Schnepp @define('BIBTEXBROWSER_BIBTEX_LINKS',true); +// do we add [pdf] links ? +@define('BIBTEXBROWSER_PDF_LINKS',true); +// do we add [doi] links ? +@define('BIBTEXBROWSER_DOI_LINKS',true); +// do we add [gsid] links (Google Scholar)? +@define('BIBTEXBROWSER_GSID_LINKS',true); // should authors be linked to [none/homepage/resultpage] // none: nothing @@ -227,8 +233,11 @@ function _zetDB($bibtex_filenames) { // ---------------------------- HANDLING unexistent files foreach(explode(MULTIPLE_BIB_SEPARATOR, $bibtex_filenames) as $bib) { + // get file extension to only allow .bib files + $ext = pathinfo($bib, PATHINFO_EXTENSION); // this is a security protection - if (BIBTEXBROWSER_LOCAL_BIB_ONLY && !file_exists($bib)) { + if (BIBTEXBROWSER_LOCAL_BIB_ONLY && (!file_exists($bib) || strcasecmp($ext, 'bib') != 0)) { + // to automate dectection of faulty links with tools such as webcheck header('HTTP/1.1 404 Not found'); die('the bib file '.$bib.' does not exist !'); @@ -1479,15 +1488,17 @@ class BibEntry { $str .= " getKey()."\" {$href}>[bibtex]"; } - // returns an empty string if no url present - $str .= $this->getUrlLink(); + if (BIBTEXBROWSER_PDF_LINKS) { + // returns an empty string if no url present + $str .= $this->getUrlLink(); + } - if ($this->hasField('doi')) { + if (BIBTEXBROWSER_DOI_LINKS && $this->hasField('doi')) { $str .= ' [doi]'; } // Google Scholar ID - if ($this->hasField('gsid')) { + if (BIBTEXBROWSER_GSID_LINKS && $this->hasField('gsid')) { $str .= ' [cites]'; } @@ -3413,8 +3424,8 @@ class RSSDisplay { // first strip HTML tags $desc = strip_tags($desc); - // then decode characters encoded by latex2html - $desc= html_entity_decode($desc); + // then decode characters encoded by latex2html, preserve ENCODING + $desc = html_entity_decode($desc, ENT_COMPAT, ENCODING); // some entities may still be here, we remove them // we replace html entities e.g. é by nothing