";
}else{//formulaire de recherche simplifié
//années
if ($anneedeb != $anneefin) {$anneedeb = date('Y', time()); $anneefin = date('Y', time());}
$text .= "
\r\n";
$i = date('Y', time());
while ($i >= date('Y', time()) - $nbanneesfs) {
//on vérifie si ce n'est pas une année à exclure
if (strpos($annee_excl, strval($i)) === false) {
$text .= "
".$i." \r\n";
}
$i--;
}
$text .= "\r\n
";
}
}
if ((isset($_GET['aut']) && $_GET['aut'] != "") || (isset($_GET['titre']) && $_GET['titre'] != "") || (isset($_GET['typdoc']) && $_GET['typdoc'] != "" && $_GET['typdoc'] != "(\'ART_ACL\',\'ART_SCL\',\'COMM_ACT\')")) {
$text .= "
".$reinit."\r\n";
}
$labo2 = $labocrit;
if ($form != "non") {
$text .= $consult1."
".$consult2.".
\r\n";
}
if ($anneedeb == $anneefin) {
$text .= "
".$anneedeb."
\r\n";
}else{
$text .= "
".$result1.$anneedeb.$result2.$anneefin."
\r\n";
}
if ($labocrit != "" && $labocrit != $labo) {
$labosur[0] = $labocrit;
$mailtosur[0] = $mailtocrit;
}else{
$labosur = explode(";", $labo);
$mailtosur = explode(";", $mailto);
}
$ii = 0;
$i = 1;
$labocrit2 = "";
while ($labosur[$ii] != "") {
$labocrit = $labosur[$ii];
//$mailto = $mailtosur[$ii];
if ($lang == "fr") {
if ($tous == "oui") {
$HAL_URL = "http://hal.archives-ouvertes.fr/Public/afficheRequetePubli.php?typdoc=".$typdoc."&annee_publideb=".$anneedeb."&annee_publifin=".$anneefin."&auteur_exp=".$auteur_exp."&CB_typdoc=oui&CB_auteur=oui&CB_titre=oui&CB_article=oui&CB_DOI=oui&langue=Francais&tri_exp=typdoc&tri_exp2=auteur_exp&tri_exp3=date_publi&ordre_aff=TA&Fen=Aff";
}else{
$HAL_URL = "http://hal.archives-ouvertes.fr/Public/afficheRequetePubli.php?typdoc=".$typdoc."&annee_publideb=".$anneedeb."&annee_publifin=".$anneefin."&collection_exp=".$labocrit."&equipe_recherche_exp=".$equipe_recherche_exp."&auteur_exp=".$auteur_exp."&CB_typdoc=oui&CB_auteur=oui&CB_titre=oui&CB_article=oui&CB_DOI=oui&langue=Francais&tri_exp=typdoc&tri_exp2=auteur_exp&tri_exp3=date_publi&ordre_aff=TA&Fen=Aff";
}
}else{
if ($tous == "oui") {
$HAL_URL = "http://hal.archives-ouvertes.fr/Public/afficheRequetePubli.php?typdoc=".$typdoc."&annee_publideb=".$anneedeb."&annee_publifin=".$anneefin."&auteur_exp=".$auteur_exp."&CB_typdoc=oui&CB_auteur=oui&CB_titre=oui&CB_article=oui&CB_DOI=oui&langue=Anglais&tri_exp=typdoc&tri_exp2=auteur_exp&tri_exp3=date_publi&ordre_aff=TA&Fen=Aff";
}else{
$HAL_URL = "http://hal.archives-ouvertes.fr/Public/afficheRequetePubli.php?typdoc=".$typdoc."&annee_publideb=".$anneedeb."&annee_publifin=".$anneefin."&collection_exp=".$labocrit."&equipe_recherche_exp=".$equipe_recherche_exp."&auteur_exp=".$auteur_exp."&CB_typdoc=oui&CB_auteur=oui&CB_titre=oui&CB_article=oui&CB_DOI=oui&langue=Anglais&tri_exp=typdoc&tri_exp2=auteur_exp&tri_exp3=date_publi&ordre_aff=TA&Fen=Aff";
}
}
//echo "HAL_URL = ".$HAL_URL;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $HAL_URL);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'SCD (https://halur1.univ-rennes1.fr)');
curl_setopt($ch, CURLOPT_USERAGENT, 'PROXY (http://siproxy.univ-rennes1.fr)');
$resultat = curl_exec($ch);
$resultat = str_replace("&","and",$resultat);
$resultat = str_replace(" < "," < ",$resultat);
$resultat = str_replace("T<","T<",$resultat);
//$resultat = str_replace("1<","1<",$resultat);
$resultat = str_replace("(<","(<",$resultat);
$resultat = str_replace(" > "," > ",$resultat);
$resultat = str_replace("T>","T>",$resultat);
//$resultat = str_replace("1>","1>",$resultat);
$resultat = str_replace("(>","(>",$resultat);
$resultat = str_replace(" <= "," ≤ ",$resultat);
$resultat = str_replace("T<=","T≤",$resultat);
$resultat = str_replace("(<=","(≤",$resultat);
$resultat = str_replace(" >= "," ≥ ",$resultat);
$resultat = str_replace("T>=","T≥",$resultat);
$resultat = str_replace("(>=","(≥",$resultat);
$resultat = str_replace("T</i>","",$resultat);
//echo ("Deb:
".$resultat."
Fin");
curl_close($ch);
$HAL_Page = new DOMDocument();
$HAL_Page->loadHTML($resultat);
foreach($HAL_Page->getElementsByTagName("dl") as $dl) {
foreach($dl->getElementsByTagName("dd") as $dd) {
//Type de documents
if($dd->getAttribute("class") == "ValeurRes Type_de_document") {
$typdoctab[$i] = $dd->textContent;
if ($typdoctab[$i] == "Article in peer-reviewed journal") {
$typdoctab[$i] = "Article in peer-reviewed journal";
}
}
//Titre + lien HAL
if($dd->getAttribute("class") == "ValeurRes Titre") {
foreach($dd->getElementsByTagName("a") as $a) {
$titrehref[$i] = "
".$a->textContent."".$presbib;
$titreseul[$i] = $a->textContent;
}
}
//Auteurs
if($dd->getAttribute("class") == "ValeurRes Auteurs") {
$auteur_temp = $dd->textContent.$presbib;
//$auteurs[$i] = $dd->textContent.$presbib;
$auteur_temp = wd_remove_accents($auteur_temp);
$auteurs[$i] = substr($auteur_temp, 0, (strlen($auteur_temp)-2));
}
//Revue, vol, num et pp
if($dd->getAttribute("class") == "ValeurRes Detail") {
$rvnp[$i] = "
".substr($dd->textContent,0,strpos($dd->textContent,","))."".substr($dd->textContent,(strpos($dd->textContent,",")),strlen($dd->textContent)).$presbib;
}
//DOI
if($dd->getAttribute("class") == "ValeurRes DOI") {
foreach($dd->getElementsByTagName("a") as $a) {
$doi[$i] = "DOI :
".$a->textContent."".$presbib;
}
}
//Fichier joint
if($dd->getAttribute("class") == "ValeurRes Fichier_joint") {
//si PDF + BibTex
//Lien Bibtex
$BibTex = "";
foreach($dd->getElementsByTagName("span") as $span) {
if($span->getAttribute("class") == "LienBibtexACoteFulltext") {
foreach($span->getElementsByTagName("a") as $a) {
$BibTex = $a->getAttribute("href");
$bibtex[$i] = "
";
}
}
}
//Lien PDF
$j = 1;
foreach($dd->getElementsByTagName("a") as $a) {
if($a->getAttribute("href") != $BibTex) {
${"pdf".$j}[$i] = "
";
}
$j++;
}
//si uniquement BibTex
}elseif($dd->getAttribute("class") == "ValeurRes LienBibtex") {
foreach($dd->getElementsByTagName("a") as $a) {
$bibtex[$i] = "
";
}
}
}
//Demande reprint par mail
$repr = "
réindexation ordonnée
ksort($premautab);
ksort($auteurs);
ksort($typdoctab);
ksort($titrehref);
ksort($rvnp);
ksort($doi);
ksort($bibtex);
ksort($pdf1);
ksort($pdf2);
ksort($pdf3);
ksort($pdf4);
ksort($pdf5);
ksort($reprint);
//ksort($indtab);
//array_multisort($typdoctab, $premautab, $auteurs, $titrehref, $rvnp, $doi, $bibtex, $pdf1, $pdf2, $pdf3, $pdf4, $pdf5, $reprint, $indtab);
array_multisort($typdoctab, $premautab, $auteurs, $titrehref, $rvnp, $doi, $bibtex, $pdf1, $pdf2, $pdf3, $pdf4, $pdf5, $reprint);
//pour la correspondance entre index
for ($i = 1; $i <= $imax; $i++) {
$indtab[$i] = $i-1;
}
if (($titre != "") && ($aut != "")) {//si recherche sur un mot du titre et un auteur
$irec = 0;
for ($i = 0; $i <= $imax; $i++) {
if ((stripos($titrehref[$i], $titre) !== false) && (stripos($auteurs[$i], $aut) !== false)) {$irec++;$indtab[$irec]=$i;}
}
}
if (($titre != "") && ($aut == "")) {//si recherche juste sur le titre
$irec = 0;
for ($i = 0; $i <= $imax; $i++) {
if (stripos($titrehref[$i], $titre) !== false) {$irec++;$indtab[$irec]=$i;}
}
}
if (($titre == "") && ($aut != "")) {//si recherche juste sur l'auteur
$irec = 0;
for ($i = 0; $i <= $imax; $i++) {
if (stripos($auteurs[$i], $aut) !== false) {$irec++;$indtab[$irec]=$i;}
}
}
if ($irec == 0) {
$text .= "".$result3."
";
}else{
$text .= "".$result4.$irec.$result5." :
";
}
//export en CSV
$Fnm1 = "./HAL/publisHAL.csv";
$inF = fopen($Fnm1,"w");
fseek($inF, 0);
$chaine = "\xEF\xBB\xBF";
if (isset($_GET['presbib']) && ($_GET['presbib'] != "
")) {
if ($bt == "oui") {
$chaine .= "Auteurs;Titre;RVNP;DOI;bibtex;pdf1;pdf2;pdf3;pdf4;pdf5;reprint";
}else{
$chaine .= "Auteurs;Titre;RVNP;DOI;pdf1;pdf2;pdf3;pdf4;pdf5;reprint";
}
}else{
if ($bt == "oui") {
$chaine .= "Titre;Auteurs;RVNP;DOI;bibtex;pdf1;pdf2;pdf3;pdf4;pdf5;reprint";
}else{
$chaine .= "Titre;Auteurs;RVNP;DOI;pdf1;pdf2;pdf3;pdf4;pdf5;reprint";
}
}
fwrite($inF,$chaine.chr(13).chr(10));
$chaine = "";
//export en RTF
$Fnm2 = "./HAL/publisHAL.rtf";
require_once ("./HAL/phprtflite-1.2.0/lib/PHPRtfLite.php");
PHPRtfLite::registerAutoloader();
$rtf = new PHPRtfLite();
$sect = $rtf->addSection();
$font = new PHPRtfLite_Font(10, 'Arial', '#000000', '#FFFFFF');
$fontlien1 = new PHPRtfLite_Font(10, 'Arial', '#A71817', '#FFFFFF');
$fontlien1->setUnderline();
$fontlien2 = new PHPRtfLite_Font(10, 'Arial', '#0071bb', '#FFFFFF');
$fontlien2->setUnderline();
$parFormat = new PHPRtfLite_ParFormat(PHPRtfLite_ParFormat::TEXT_ALIGN_JUSTIFY);
$rubr = "";
$cpt = $ideb;
if ($ifin > $irec) {$ifin = $irec;}
$rubr = "";
for ($k = $ideb; $k <= $ifin; $k++) {
$ok = "non";
$i = $indtab[$k];
if (($titre != "") && ($aut != "")) {//si recherche sur un mot du titre et un auteur
if ((stripos($titrehref[$i], $titre) !== false) && (stripos($auteurs[$i], $aut) !== false)){$ok = "oui";}
}
if (($titre != "") && ($aut == "")) {//si recherche sur un mot du titre
if (stripos($titrehref[$i], $titre) !== false){$ok = "oui";}
}
if (($titre == "") && ($aut != "")) {//si recherche sur un auteur
if (stripos($auteurs[$i], $aut) !== false){$ok = "oui";}
}
if (($titre == "") && ($aut == "")) {//aucune recherche sur un titre ou un auteur
$ok = "oui";
}
if ($ok == "oui") { //si la référence est retenue, on continue la routine
if ($rubr == "") {
$rubr = $typdoctab[$i];
$text .= "".$typdoctab[$i]."
\r\n";
}
if ($rubr != $typdoctab[$i]) {
$text .= "".$typdoctab[$i]."
\r\n";
$rubr = $typdoctab[$i];
}
//mise en évidence des recherches
$titreaff1 = "".$titre."";
$titreaff2 = "".ucfirst($titre)."";
$titreaff3 = "".strtoupper($titre)."";
$titreaff4 = "".strtolower($titre)."";
$autaff1 = "".$aut."";
$autaff2 = "".ucfirst($aut)."";
$autaff3 = "".strtoupper($aut)."";
$autaff4 = "".strtolower($aut)."";
//si nom composé
$postiret = strpos($aut,"-");
if ($postiret != 0) {
$autg = substr($aut,0,($postiret));
$autd = substr($aut,($postiret+1),(strlen($aut)-$postiret));
$autgd = ucfirst($autg)."-".ucfirst($autd);
$autaff5 = "".$autgd."";
}
//si recherche sur plusieurs auteurs
$autaff = $auteurs[$i];
if (isset($_GET['auteur_exp']) && ($_GET['auteur_exp'] != "")) {
$auteur_exp_aff = $_GET['auteur_exp'];
$auteur_exp_aff_tab = explode(";", $auteur_exp_aff);
$ii = 0;
while (isset($auteur_exp_aff_tab[$ii]) && $auteur_exp_aff_tab[$ii] != "") {
$autexp0 = str_replace(","," ",$auteur_exp_aff_tab[$ii]);
//si nom composé
$postiret = strpos($autexp0,"-");
if ($postiret != 0) {
$autg = substr($autexp0,0,($postiret));
$autd = substr($autexp0,($postiret+1),(strlen($autexp0)-$postiret));
$autgd0 = ucfirst($autg)."-".ucfirst($autd);
$autgd1 = "".$autgd0."";
$autaff = str_replace($autgd0, $autgd1, $autaff);
}
$autexp0 = ucwords(strtolower($autexp0));
$autexp1 = "".$autexp0."";
$autaff = str_replace($autexp0, $autexp1, $autaff);
$ii += 1;
}
}else{
$autaff = str_replace(array($aut, ucfirst($aut), strtoupper($aut), strtolower($aut), $autgd),array($autaff1, $autaff2, $autaff3, $autaff4, $autaff5),$auteurs[$i]);
}
$titreaff = str_replace(array($titre, ucfirst($titre), strtoupper($titre), strtolower($titre)),array($titreaff1, $titreaff2, $titreaff3, $titreaff4),$titrehref[$i]);
if (isset($_GET['presbib']) && ($_GET['presbib'] != "
")) {
//$textaff = "Indice".$cpt ." - ";
$textaff = "".$cpt ." - ";
//$textaff .= "Auteurs".$autaff."";
$textaff .= "".$autaff."";
//$textaff .= "Titre".$titreaff."";
$textaff .= "".$titreaff."";
//$textaff .= "Détail".$rvnp[$i]."";
$textaff .= "".$rvnp[$i]."";
if ($doi[$i] == "-") {$doiaff = "";}else{$doiaff = $doi[$i];}
//$textaff .= "DOI".$doiaff."";
$textaff .= "".$doiaff."";
//$textaff .= "Accès au bibtex".$bibtex[$i]."";
if ($bt == "oui") {
$textaff .= "".$bibtex[$i]."";
}else{
$textaff .= "";
}
$text .= "";
}else{
//$textaff = "
- Indice
- ".$cpt ." -
";
$textaff = "
- ".$cpt ." -
";
//$textaff .= "
- Auteurs
- ".$titreaff."
";
$textaff .= "
- ".$titreaff."
";
//$textaff .= "
- Titre
- ".$autaff."
";
$textaff .= "
- ".$autaff."
";
//$textaff .= "
- Détail
- ".$rvnp[$i]."
";
$textaff .= "
- ".$rvnp[$i]."
";
if ($doi[$i] == "-") {$doiaff = "";}else{$doiaff = $doi[$i];}
//$textaff .= "
- DOI
- ".$doiaff."
";
$textaff .= "
- ".$doiaff."
";
//$textaff .= "
- Accès au bibtex
- ".$bibtex[$i]."
";
if ($bt == "oui") {
$textaff .= "
- ".$bibtex[$i]."
";
}else{
$textaff .= "
";
}
$text .= "
";
}
$text .= $textaff;
//export en CSV et RTF
//Auteurs - titre
if (isset($_GET['presbib']) && ($_GET['presbib'] != "
")) {
$chaine = strip_tags(str_replace(";",",",str_replace($presbib,"",$auteurs[$i]))).";";
$chaine .= strip_tags(str_replace(";",",",str_replace($presbib,"",$titrehref[$i]))).";";
$sect->writeText($cpt." - ".strip_tags(str_replace($presbib,"",$auteurs[$i])), $font);
$sect->writeText($presbib, $font);
$crit = $titrehref[$i];
$txt1 = strip_tags($crit);
$txt1 = str_replace($presbib,"",$txt1);
$txt2 = substr($crit,strpos($crit,"href='")+6,strpos($crit,"'>")-strpos($crit,"href='")-6);
$sect->writeHyperLink($txt2, $txt1, $fontlien1);
}else{
$chaine = strip_tags(str_replace(";",",",str_replace($presbib,"",$titrehref[$i]))).";";
$chaine .= strip_tags(str_replace(";",",",str_replace($presbib,"",$auteurs[$i]))).";";
$sect->writeText($cpt." - ", $font);
$crit = $titrehref[$i];
$txt1 = strip_tags($crit);
$txt1 = str_replace($presbib,"",$txt1);
$txt2 = substr($crit,strpos($crit,"href='")+6,strpos($crit,"'>")-strpos($crit,"href='")-6);
$sect->writeHyperLink($txt2, $txt1, $fontlien1);
$sect->writeText($presbib, $font);
$sect->writeText(strip_tags(str_replace($presbib,"",$auteurs[$i])), $font);
}
//RVNP
$chaine .= strip_tags(str_replace(";",",",str_replace($presbib,"",$rvnp[$i]))).";";
$sect->writeText($presbib.str_replace($presbib,"",strip_tags($rvnp[$i])), $font);
$sect->writeText($presbib, $font);
//DOI
$chaine .= strip_tags(str_replace(";",",",str_replace($presbib,"",$doi[$i]))).";";
$crit = $doi[$i];
$sect->writeText("DOI : ", $font);
if ($crit != "-") {
$txt1 = str_replace("DOI : ","",strip_tags($crit));
$txt1 = str_replace($presbib,"",$txt1);
$txt2 = substr($crit,strpos($crit,"href='")+6,strpos($crit,"'>")-strpos($crit,"href='")-6);
$sect->writeHyperLink($txt2, $txt1, $fontlien2);
}else{
$sect->writeText($crit, $font);
}
//Bibtex
if ($bt == "oui") {
$chaine .= str_replace(";",",",str_replace($presbib,"",str_replace(array(" ","target='_blank' "),"",$bibtex[$i])));
$sect->writeText($presbib, $font);
$crit = $bibtex[$i];
$txt1 = "Bibtex";
$txt2 = substr($crit,strpos($crit,"href='")+6,strpos($crit,"'>")-strpos($crit,"href='")-6);
$sect->writeHyperLink($txt2, $txt1, $fontlien2);
}else{
$sect->writeText($presbib, $font);
}
//PDF
$j = 1;
$cpt++;
//si plusieurs PDF
while (${"pdf".$j}[$i] != "") {
if (${"pdf".$j}[$i] != "-") {$text .= ${"pdf".$j}[$i];}
$j++;
}
for($j = 1; $j <= 5; $j++) {
$chaine .= ";".str_replace(";",",",str_replace(array(" ","target='_blank' "),"",${"pdf".$j}[$i]));
$crit = ${"pdf".$j}[$i];
if ($crit != "-") {
$sect->writeText(" - ", $font);
$txt1 = "PDF".$j;
$txt2 = substr($crit,strpos($crit,"href='")+6,strpos($crit,"'>")-strpos($crit,"href='")-6);
$sect->writeHyperLink($txt2, $txt1, $fontlien2);
}
}
//reprint
$chaine .= ";".str_replace(";",",",str_replace($presbib,"",str_replace(" ","",$reprint[$i])));
$crit = $reprint[$i];
if ($crit != "-") {
$sect->writeText(" - ", $font);
$txt1 = "Reprint";
$txt2 = substr($crit,strpos($crit,"href='")+6,strpos($crit,"'>")-strpos($crit,"href='")-6);
$sect->writeHyperLink($txt2, $txt1, $fontlien2);
}
//Affichage
if (isset($_GET['presbib']) && ($_GET['presbib'] != "
")) {
//$text .= "- Reprint
- ".$reprint[$i]."
\r\n";
$text .= "".$reprint[$i]."\r\n";
}
//export en CSV
fwrite($inF,$chaine.chr(13).chr(10));
//export en RTF
$sect->writeText("