[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[InetBib] Endnote mit Find full text und Redi-Linkresolver



Hallo

falls noch andere Kollegen das Problem haben, dass die "Find full  
text"-Funktion von Endote  in Kombination mit dem Redi-Linkresolver  
(eingestellt bei Endnote in: OpenURL) nie so wirklich geklappt hat,  
denen sei ein kleines Skript an die Hand gegeben, dass das Problem  
mit dem Zugriff auf das PDF-Dokument aus dem berechtigten Netz der  
Einrichtung löst.

Das kleine PHP-Skript überspringt die Stelle, an der man bei Redi den  
Anbieter händisch auswählen muss.

Man installiert es am besten auf dem Webserver und konfiguriert es  
für seine Einrichtung - frei nach dem Motto: "Es ist besser, ein  
Licht anzuzünden, als auf die Dunkelheit zu schimpfen."

Have fun

Andreas Bohne-Lang

<?php

/*
  *    Endote Volltext Suchhilfe für Redi
  *
  *    Andreas Bohne-Lang, 2011
  *
  *    Das Skript muss auf einem Rechner im Netz der Einrichtung laufen.
  *
  */

// hier editieren:
$redi_url="http://www.redi-bw.de/links/unihdma";; // Redi-Resolver mit  
Account
$proxy="foxyproxy.medma.uni-heidelberg.de:8080"; // Web-Proxy, falls  
benoetigt
$take_last=true;   // bei mehr als einem Link nimm den letzten

#------------------------------------------------------

if( isset($proxy) && !empty($proxy) ){
         $opts = array("http" => array("proxy" => "tcp://$proxy",  
"request_fulluri" => true, "user_agent"=>"Endnote"));
} else {
         $opts = array("http" => array("request_fulluri" => false,  
"user_agent"=>"Endnote" ));
}

$context = stream_context_create($opts);
$turl = sprintf("%s?%s",$redi_url,$_SERVER["QUERY_STRING"]);

$doc = new DOMDocument();
$doc->loadXML(file_get_contents($turl,false,$context));

$xpath = new DOMXPath($doc);
$xpath->registerNamespace("ezb", "http://www.w3.org/1999/xhtml";);
$nodes = $xpath->query('//ezb:div[@class="t_ezb_result"]//ezb:span 
[@class="t_link"]/ezb:a/attribute::href');

$xurl=array();
for($i=0; $i < $nodes->length; $i++){
         $xurl[$i]= $nodes->item($i)->nodeValue;
}

if($nodes->length>=1){
         if ( $take_last) {
                 header(sprintf("Location: %s",$xurl[$nodes- 
length-1]));
         } else {
                 header(sprintf("Location: %s",$xurl[0]));
         }
}

?>



PS: Besten Dank an Herrn Oberknapp vom ReDI (Regionale Datenbank- 
Information) Dienst aus Freiburg bei der Realisierung.


-- 
Dr. Andreas Bohne-Lang
Universitätsmedizin Mannheim
Medizinische Fakultät Mannheim
Universität Heidelberg
EDV/Bibliothek
Ludolf-Krehl-Str. 13-17
68167 Mannheim

Tel:   ++49(0)621-383-9990  Fax: -9981  Sek.: -9980
eMail: andreas.bohne-lang@xxxxxxxxxxxxxxxxxxxxxxx






-- 
http://www.inetbib.de


Listeninformationen unter http://www.inetbib.de.