Changeset 32783

Show
Ignore:
Timestamp:
09.11.2009 17:44:22 (3 months ago)
Author:
apachot@…
Message:

récupérer les notices en php serialisé plutôt que xml unimarc

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • _plugins_/spip-pmb/2_0_0/pmb_mes_fonctions.php

    r32649 r32783  
    193193                  } 
    194194                } 
     195               
     196 
    195197        } catch (SoapFault $fault) { 
    196198                print("Erreur : ".$fault->faultcode." : ".$fault->faultstring); 
     
    541543                if (($dernierTypeTrouve == "700") && ($dernierSousTypeTrouve == "a")) $gtresultat['id_auteur'] = $dernierIdTrouve; 
    542544                 
    543                 //section996 mode html 
    544                 if (($dernierTypeTrouve == "996") && ($dernierSousTypeTrouve == "f")) $gtresultat['exemplaires'] .= "<tr><td class='expl_cb'>".$texte."</td>"; 
    545                 if (($dernierTypeTrouve == "996") && ($dernierSousTypeTrouve == "k")) $gtresultat['exemplaires'] .= "<td class='expl_cote'>".$texte."</td>"; 
    546                 if (($dernierTypeTrouve == "996") && ($dernierSousTypeTrouve == "e")) $gtresultat['exemplaires'] .= "<td class='tdoc_libelle'>".$texte."</td>"; 
    547                 if (($dernierTypeTrouve == "996") && ($dernierSousTypeTrouve == "v")) $gtresultat['exemplaires'] .= "<td class='location_libelle'>".$texte."</td>"; 
    548                 if (($dernierTypeTrouve == "996") && ($dernierSousTypeTrouve == "x")) $gtresultat['exemplaires'] .= "<td class='section_libelle'>".$texte."</td>"; 
    549                 if (($dernierTypeTrouve == "996") && ($dernierSousTypeTrouve == "1")) $gtresultat['exemplaires'] .= "<td class='expl_situation'><strong>".$texte."</strong></td></tr>"; 
    550  
     545                 
    551546                //section996 mode tableau 
    552547                if (($dernierTypeTrouve == "996") && ($dernierSousTypeTrouve == "f")) { 
     
    619614//parsing d'une notice sérialisée 
    620615function pmb_ws_parser_notice_serialisee($id_notice, $value, &$tresultat) { 
    621             global $gtresultat; 
    622             $gtresultat = array(); 
    623          
    624             $noticecontent = array(); 
     616            include_spip("/inc/filtres_images"); 
     617            $indice_exemplaire = 0; 
     618            $tresultat = Array(); 
     619         
     620            $tresultat['tab_exemplaires'] = Array(); 
     621            $noticecontent = Array(); 
    625622            $unserialized = $value;  
    626623            $unserialized = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $unserialized ); 
    627  
     624             
    628625            $noticecontent = unserialize($unserialized); 
    629626            foreach ( $noticecontent as $c1=>$v1) { 
     
    638635                                $dernierSousTypeTrouve = $v4['c']; 
    639636                                $texte = $v4['value']; 
    640                                 if (($dernierTypeTrouve == "010") && ($dernierSousTypeTrouve == "a")) $gtresultat['isbn'] .= $texte; 
    641                                 if (($dernierTypeTrouve == "010") && ($dernierSousTypeTrouve == "b")) $gtresultat['reliure'] .= $texte; 
    642                                 if (($dernierTypeTrouve == "010") && ($dernierSousTypeTrouve == "d")) $gtresultat['prix'] .= $texte; 
    643                                  
    644                                 if (($dernierTypeTrouve == "101") && ($dernierSousTypeTrouve == "a")) $gtresultat['langues'] .= $texte; 
    645                                  
    646                                 if (($dernierTypeTrouve == "102") && ($dernierSousTypeTrouve == "a")) $gtresultat['pays'] .= $texte; 
    647                                  
    648                                 if (($dernierTypeTrouve == "200") && ($dernierSousTypeTrouve == "a")) $gtresultat['titre'] .= $texte; 
    649                                 if (($dernierTypeTrouve == "200") && ($dernierSousTypeTrouve == "f")) $gtresultat['auteur'] .= $texte; 
    650                                  
    651                                 if (($dernierTypeTrouve == "210") && ($dernierSousTypeTrouve == "c")) $gtresultat['editeur'] .= $texte; 
    652                                 if (($dernierTypeTrouve == "210") && ($dernierSousTypeTrouve == "a")) $gtresultat['editeur'] .= ' ('.$texte.')'; 
    653                                 if (($dernierTypeTrouve == "210") && ($dernierSousTypeTrouve == "c")) $gtresultat['id_editeur'] = $dernierIdTrouve; 
    654                                 if (($dernierTypeTrouve == "210") && ($dernierSousTypeTrouve == "d")) $gtresultat['annee_publication'] .= $texte; 
    655                                  
    656                                 if (($dernierTypeTrouve == "215") && ($dernierSousTypeTrouve == "a")) $gtresultat['importance'] .= $texte; 
    657                                 if (($dernierTypeTrouve == "215") && ($dernierSousTypeTrouve == "c")) $gtresultat['presentation'] .= $texte; 
    658                                 if (($dernierTypeTrouve == "215") && ($dernierSousTypeTrouve == "d")) $gtresultat['format'] .= $texte; 
    659                                  
    660                                 if (($dernierTypeTrouve == "225") && ($dernierSousTypeTrouve == "a")) $gtresultat['collection'] .= $texte; 
    661                                 if (($dernierTypeTrouve == "225") && ($dernierSousTypeTrouve == "a")) $gtresultat['id_collection'] = $dernierIdTrouve; 
    662                                  
    663                                 if (($dernierTypeTrouve == "330") && ($dernierSousTypeTrouve == "a")) $gtresultat['resume'] .= str_replace("œ","&oelig;", stripslashes(str_replace("\n","<br />", $texte))); 
    664                                  
    665                                 if (($dernierTypeTrouve == "700") && ($dernierSousTypeTrouve == "a")) $gtresultat['lesauteurs'] .= $texte; 
    666                                 if (($dernierTypeTrouve == "700") && ($dernierSousTypeTrouve == "b")) $gtresultat['lesauteurs'] .= " ".$texte; 
    667                                 if (($dernierTypeTrouve == "700") && ($dernierSousTypeTrouve == "a")) $gtresultat['id_auteur'] = $dernierIdTrouve; 
    668                                  
     637                                if (($dernierTypeTrouve == "010") && ($dernierSousTypeTrouve == "a")) $tresultat['isbn'] .= $texte; 
     638                                if (($dernierTypeTrouve == "010") && ($dernierSousTypeTrouve == "b")) $tresultat['reliure'] .= $texte; 
     639                                if (($dernierTypeTrouve == "010") && ($dernierSousTypeTrouve == "d")) $tresultat['prix'] .= $texte; 
     640                                 
     641                                if (($dernierTypeTrouve == "101") && ($dernierSousTypeTrouve == "a")) $tresultat['langues'] .= $texte; 
     642                                 
     643                                if (($dernierTypeTrouve == "102") && ($dernierSousTypeTrouve == "a")) $tresultat['pays'] .= $texte; 
     644                                 
     645                                if (($dernierTypeTrouve == "200") && ($dernierSousTypeTrouve == "a")) $tresultat['titre'] .= $texte; 
     646                                if (($dernierTypeTrouve == "200") && ($dernierSousTypeTrouve == "f")) $tresultat['auteur'] .= $texte; 
     647                                 
     648                                if (($dernierTypeTrouve == "210") && ($dernierSousTypeTrouve == "c")) $tresultat['editeur'] .= $texte; 
     649                                if (($dernierTypeTrouve == "210") && ($dernierSousTypeTrouve == "a")) $tresultat['editeur'] .= ' ('.$texte.')'; 
     650                                if (($dernierTypeTrouve == "210") && ($dernierSousTypeTrouve == "c")) $tresultat['id_editeur'] = $dernierIdTrouve; 
     651                                if (($dernierTypeTrouve == "210") && ($dernierSousTypeTrouve == "d")) $tresultat['annee_publication'] .= $texte; 
     652                                 
     653                                if (($dernierTypeTrouve == "215") && ($dernierSousTypeTrouve == "a")) $tresultat['importance'] .= $texte; 
     654                                if (($dernierTypeTrouve == "215") && ($dernierSousTypeTrouve == "c")) $tresultat['presentation'] .= $texte; 
     655                                if (($dernierTypeTrouve == "215") && ($dernierSousTypeTrouve == "d")) $tresultat['format'] .= $texte; 
     656                                 
     657                                if (($dernierTypeTrouve == "225") && ($dernierSousTypeTrouve == "a")) $tresultat['collection'] .= $texte; 
     658                                if (($dernierTypeTrouve == "225") && ($dernierSousTypeTrouve == "a")) $tresultat['id_collection'] = $dernierIdTrouve; 
     659                                 
     660                                if (($dernierTypeTrouve == "330") && ($dernierSousTypeTrouve == "a")) $tresultat['resume'] .= str_replace("œ","&oelig;", stripslashes(str_replace("\n","<br />", $texte))); 
     661                                 
     662                                if (($dernierTypeTrouve == "700") && ($dernierSousTypeTrouve == "a")) $tresultat['lesauteurs'] .= $texte; 
     663                                if (($dernierTypeTrouve == "700") && ($dernierSousTypeTrouve == "b")) $tresultat['lesauteurs'] .= " ".$texte; 
     664                                if (($dernierTypeTrouve == "700") && ($dernierSousTypeTrouve == "a")) $tresultat['id_auteur'] = $dernierIdTrouve; 
     665                                 
     666                                //section996 mode tableau 
     667                                if (($dernierTypeTrouve == "996") && ($dernierSousTypeTrouve == "f")) { 
     668                                        $indice_exemplaire++; 
     669                                        $tresultat['tab_exemplaires'][$indice_exemplaire-1] = Array(); 
     670                                        $tresultat['tab_exemplaires'][$indice_exemplaire-1]['expl_cb'] .= $texte; 
     671                                } 
     672 
     673                                if (($dernierTypeTrouve == "996") && ($dernierSousTypeTrouve == "k")) $tresultat['tab_exemplaires'][$indice_exemplaire-1]['expl_cote'] .= $texte; 
     674                                if (($dernierTypeTrouve == "996") && ($dernierSousTypeTrouve == "e")) $tresultat['tab_exemplaires'][$indice_exemplaire-1]['tdoc_libelle'] .= $texte; 
     675                                if (($dernierTypeTrouve == "996") && ($dernierSousTypeTrouve == "v")) $tresultat['tab_exemplaires'][$indice_exemplaire-1]['location_libelle'] .= $texte; 
     676                                if (($dernierTypeTrouve == "996") && ($dernierSousTypeTrouve == "x")) $tresultat['tab_exemplaires'][$indice_exemplaire-1]['section_libelle'] .= $texte; 
     677                                if (($dernierTypeTrouve == "996") && ($dernierSousTypeTrouve == "1")) $tresultat['tab_exemplaires'][$indice_exemplaire-1]['empruntable'] .= $texte; 
     678                                if (($dernierTypeTrouve == "996") && ($dernierSousTypeTrouve == "b")) $tresultat['tab_exemplaires'][$indice_exemplaire-1]['expl_situation'] .= $texte; 
     679 
    669680                                 
    670681                            } 
     
    673684            } 
    674685 
    675             if ($gtresultat['lesauteurs'] == "") 
    676                   $gtresultat['lesauteurs'] = $gtresultat['auteur']; 
    677              $gtresultat['logo_src'] = lire_config("spip_pmb/url","http://tence.bibli.fr/opac")."/getimage.php?url_image=http%3A%2F%2Fimages-eu.amazon.com%2Fimages%2FP%2F!!isbn!!.08.MZZZZZZZ.jpg&noticecode=".str_replace("-","",$gtresultat['isbn'])."&vigurl="; 
    678  
    679             //cas où il n'y a pas d'image pmb renvoie un carré de 1 par 1 transparent. 
    680             $tmp_img = image_reduire("<img src=\"".copie_locale($gtresultat['logo_src'])."\" />", 130, 0); 
     686            if ($tresultat['lesauteurs'] == "") 
     687                  $tresultat['lesauteurs'] = $tresultat['auteur']; 
     688             $tresultat['logo_src'] = lire_config("spip_pmb/url","http://tence.bibli.fr/opac")."/getimage.php?url_image=http%3A%2F%2Fimages-eu.amazon.com%2Fimages%2FP%2F!!isbn!!.08.MZZZZZZZ.jpg&noticecode=".str_replace("-","",$tresultat['isbn'])."&vigurl="; 
     689 
     690             //cas où il n'y a pas d'image pmb renvoie un carré de 1 par 1 transparent. 
     691            $tmp_img = image_reduire("<img src=\"".copie_locale($tresultat['logo_src'])."\" />", 130, 0); 
    681692            if (strpos($tmp_img, "L1xH1") !== false)  $gtresultat['logo_src'] = ""; 
     693 
     694            $tresultat['id'] = $id_notice; 
    682695             
    683             $gtresultat['id'] = $id_notice; 
    684              
    685  
    686             $tresultat = $gtresultat ; 
     696 
     697           
    687698} 
    688699 
     
    690701//récuperer une notice en xml via les webservices 
    691702function pmb_ws_recuperer_notice ($id_notice, &$ws, &$tresultat) { 
    692          
    693703         
    694704        try {    
    695705        $listenotices = array(''.$id_notice); 
    696706        $tresultat['id'] = $id_notice; 
    697                   $r=$ws->pmbesNotices_fetchNoticeList($listenotices,"pmb_xml_unimarc","utf8",true,true); 
     707                  $r=$ws->pmbesNotices_fetchNoticeList($listenotices,"serialized_unimarc","utf8",true,true); 
    698708                  foreach($r as $value) { 
    699                       pmb_ws_parser_notice_xml($id_notice, $value, $tresultat); 
     709                        pmb_ws_parser_notice_serialisee($id_notice, $value, $tresultat); 
    700710                  } 
    701711                 
     
    715725         
    716726        $tresultat['id'] = $id_notice; 
    717                   $r=$ws->pmbesNotices_fetchNoticeList($listenotices,"pmb_xml_unimarc","utf8",true,true); 
     727                  $r=$ws->pmbesNotices_fetchNoticeList($listenotices,"serialized_unimarc","utf8",true,true); 
    718728                  $cpt=0; 
    719729                  foreach($r as $value) { 
    720730                      $tresultat[$cpt] = Array(); 
    721                       pmb_ws_parser_notice_xml($id_notice, $value, $tresultat[$cpt]); 
     731                      pmb_ws_parser_notice_serialisee($id_notice, $value, $tresultat[$cpt]); 
    722732                      $cpt++; 
    723733                  }