Changeset 31573 in spip-zone


Ignore:
Timestamp:
Sep 14, 2009, 12:18:01 PM (11 years ago)
Author:
apachot@…
Message:

recherche simple dans le catalogue avec les webservices

File:
1 edited

Legend:

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

    r31572 r31573  
    172172function pmb_recherche_extraire($recherche, $url_base, $look_FIRSTACCESS='', $look_ALL='', $look_AUTHOR='', $look_PUBLISHER='', $look_COLLECTION='', $look_SUBCOLLECTION='', $look_CATEGORY='', $look_INDEXINT='', $look_KEYWORDS='', $look_TITLE='', $look_ABSTRACT='', $surligne='', $typdoc='', $ok='',$mode='auto') {
    173173        $tableau_resultat = Array();
    174         $url_page = "index.php?lvl=search_result";
     174        //$url_page = "index.php?lvl=search_result";
    175175        if ($surligne) $url_page.="&surligne=".$surligne;
    176176        if ($typdoc) $url_page.="&typdoc=".$typdoc;
     
    188188
    189189
    190         if ($htmldom = pmb_charger_page($url_base, $url_page,$mode)) {
     190        /*if ($htmldom = pmb_charger_page($url_base, $url_page,$mode)) {
    191191                        $tableau_resultat[0] = Array();
    192192                        $tableau_resultat[0]['nav_bar'] = $htmldom->find('.navbar',0)->outertext;
     
    201201                                $i++;
    202202                        }       
    203         }
    204         return $tableau_resultat;
    205 }
     203        }*/
     204
     205
     206        //récupérer le résultat d'une recherche simple via les webservices
     207       
     208        global $gtresultat;
     209        $gtresultat = array();
     210       
     211       
     212       
     213        pmb_ws_charger_wsdl($ws);
     214        try {   
     215                        $tableau_resultat[0] = Array();
     216                        /*$tableau_resultat[0]['nav_bar'] = $htmldom->find('.navbar',0)->outertext;
     217                        $tableau_resultat[0]['nav_bar'] = pmb_transformer_nav_bar($tableau_resultat[0]['nav_bar']);
     218
     219                        $resultats_recherche = $htmldom->find('.notice-child');
     220                       
     221                        $tableau_resultat[0]['nb_resultats'] = count($resultats_recherche);
     222                        $i = 1;
     223                        foreach($resultats_recherche as $res) {
     224                                $tableau_resultat[$i] = Array();                               
     225                                if ($i>1) pmb_parser_notice_apercu($res, $tableau_resultat[$i]);
     226                                $i++;
     227                        }*/
     228                        //Recherche dans tous les champs du mot "loup"
     229                        $r=$ws->pmbesOPACAnonymous_simpleSearch(0,$recherche);
     230                        $searchId=$r["searchId"];
     231                        $tableau_resultat[0]['nb_resultats'] = $r["nbResults"];
     232           
     233                        //R�cup�ration des 10 premiers r�sultats
     234                        /*Les formats peuvent-�tre :
     235                                pmb_xml_unimarc pour du xml.
     236                                json_unimarc pour du javascript.
     237                                serialized_unimarc pour du php.
     238                                header, isbd, isbd_suite pour du texte.
     239                                dc, oai_dc pour du dublin core.
     240                                convert:truc pour un passage pas admin/convert dans le format truc.
     241                                autre: renvoi l'id de la notice.
     242                        */
     243                          $r=$ws->pmbesOPACAnonymous_fetchSearchRecords($searchId,0,10,"pmb_xml_unimarc","utf8");
     244                          $i = 1;
     245                          foreach($r as $value) {
     246                                    $tableau_resultat[$i] = Array();                           
     247                               
     248                                    pmb_ws_parser_notice($value['noticeId'], $value['noticeContent'], $tableau_resultat[$i]);
     249                                    $i++;
     250                          }
     251               
     252
     253        } catch (SoapFault $fault) {
     254                print("Erreur : ".$fault->faultcode." : ".$fault->faultstring);
     255        }
     256
     257        return $tableau_resultat;
     258}
     259
     260
    206261function pmb_parser_notice_apercu ($localdom, &$tresultat) {
    207262        $tresultat['id'] = intval(substr($localdom->id,2));     
     
    355410    }
    356411
    357 //récuperer une notice en xml via les webservices
    358 function pmb_ws_parser_notice ($id_notice, &$ws, &$tresultat) {
    359        
    360         global $gtresultat;
    361         $gtresultat = array();
    362        
    363         try {   
    364         $listenotices = array(''.$id_notice);
    365         $tresultat['id'] = '4904';
    366                   $r=$ws->pmbesNotices_fetchNoticeList($listenotices,"pmb_xml_unimarc","utf8",true,true);
    367                 echo("<ul>");
    368                 foreach($r as $value) {
    369                                
     412//parsing xml d'une notice
     413function pmb_ws_parser_notice($id_notice, $value, &$tresultat) {
     414            global $gtresultat;
     415            $gtresultat = array();
     416       
    370417            // Création du parseur XML
    371418            $parseurXML = xml_parser_create();
     
    387434
    388435            if ($gtresultat['lesauteurs'] == "")
    389                   $gtresultat['lesauteurs'] = $tresultat['auteur'];
     436                  $gtresultat['lesauteurs'] = $gtresultat['auteur'];
    390437            $gtresultat['logo_src'] = "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=";
     438            $gtresultat['id'] = $id_notice;
     439           
     440
    391441            $tresultat = $gtresultat ;
    392 
    393            
    394             }
     442}
     443
     444//récuperer une notice en xml via les webservices
     445function pmb_ws_recuperer_notice ($id_notice, &$ws, &$tresultat) {
     446       
     447       
     448        try {   
     449        $listenotices = array(''.$id_notice);
     450        $tresultat['id'] = $id_notice;
     451                  $r=$ws->pmbesNotices_fetchNoticeList($listenotices,"pmb_xml_unimarc","utf8",true,true);
     452                  foreach($r as $value) {
     453                      pmb_ws_parser_notice($id_notice, $value, $tresultat);
     454                  }
    395455               
    396456
     
    417477        //if ($htmldom = pmb_charger_page($url_base, "index.php?lvl=notice_display&seule=1&id=".$id_notice, $mode)) {
    418478                 //pmb_parser_notice($id_notice, $htmldom->find('#notice',0), $tableau_resultat);       
    419                  pmb_ws_parser_notice($id_notice, $ws, $tableau_resultat);
     479                 pmb_ws_recuperer_notice($id_notice, $ws, $tableau_resultat);
    420480        //}
    421481        return $tableau_resultat;
Note: See TracChangeset for help on using the changeset viewer.