Changeset 31595 in spip-zone


Ignore:
Timestamp:
Sep 15, 2009, 11:04:38 AM (10 years ago)
Author:
apachot@…
Message:
  • Teste la récupération des résultats au format serialisé php plutôt qu'en xml.
  • remplacement d'une gif corrompue (pointillés sous le titre d'un bloc en colonne droite)
Location:
_plugins_/spip-pmb/2_0_0
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spip-pmb/2_0_0/habillage.css

    r27709 r31595  
    268268.page_auteur .articles ul li small { display: block; }
    269269/* docs multim�dias */
    270 .multimedia { background: #99ac2d; }
     270.multimedia { background: #99ac2d; padding-bottom: .4em; }
    271271.multimedia h2 { color: white; padding: .5em; background-image: url(bordure-vert-clair.gif); background-repeat: repeat-x; background-position: bottom left; }
    272272.multimedia h2 a { color: white; font-size: .8em; }
  • _plugins_/spip-pmb/2_0_0/pmb_mes_fonctions.php

    r31573 r31595  
    176176        if ($typdoc) $url_page.="&typdoc=".$typdoc;
    177177        if ($ok) $url_page.="&ok=".$ok;
    178         if ($look_ALL) $url_page.="&look_ALL=".$look_ALL;
    179         if ($look_FIRSTACCESS) $url_page.="&look_FIRSTACCESS=".$look_FIRSTACCESS;
    180         if ($look_AUTHOR) $url_page.="&look_AUTHOR=".$look_AUTHOR;
    181         if ($look_PUBLISHER) $url_page.="&look_PUBLISHER=".$look_PUBLISHER;
    182         if ($look_COLLECTION) $url_page.="&look_COLLECTION=".$look_COLLECTION;
    183         if ($look_CATEGORY) $url_page.="&look_CATEGORY=".$look_CATEGORY;
    184         if ($look_INDEXINT) $url_page.="&look_INDEXINT=".$look_INDEXINT;
     178
     179        /*0 (SEARCH_ALL)=tous les champs,
     180        1 (SEARCH_TITLE)=titre,
     181        2 (SEARCH_AUTHOR)=auteur,
     182        3 (SEARCH_EDITOR)=éditeur,
     183        4 (SEARCH_COLLECTION)=collection,
     184        6 (SEARCH_CATEGORIES)=catégories/mots matières
     185        */
     186        $searchType = 0; //par défaut recherche sur tous les champs
     187        if ($look_ALL) $searchType = 0;
     188        if ($look_TITLE) $searchType = 1;
     189        //if ($look_FIRSTACCESS) $url_page.="&look_FIRSTACCESS=".$look_FIRSTACCESS;
     190        if ($look_AUTHOR)  $searchType = 2;
     191        if ($look_PUBLISHER) $searchType = 3;
     192        if ($look_COLLECTION) $searchType = 4;
     193        if ($look_ABSTRACT) $searchType = 5;
     194        if ($look_CATEGORY) $searchType = 6;
     195        /*if ($look_INDEXINT) $url_page.="&look_INDEXINT=".$look_INDEXINT;
    185196        if ($look_KEYWORDS) $url_page.="&look_KEYWORDS=".$look_KEYWORDS;
    186         if ($look_ABSTRACT) $url_page.="&look_ABSTRACT=".$look_ABSTRACT;
    187         if ($recherche) $url_page.="&user_query=".$recherche;
     197        if ($recherche) $url_page.="&user_query=".$recherche;*/
    188198
    189199
     
    227237                        }*/
    228238                        //Recherche dans tous les champs du mot "loup"
    229                         $r=$ws->pmbesOPACAnonymous_simpleSearch(0,$recherche);
     239                        $r=$ws->pmbesOPACAnonymous_simpleSearch($searchType ,$recherche);
    230240                        $searchId=$r["searchId"];
    231241                        $tableau_resultat[0]['nb_resultats'] = $r["nbResults"];
     
    241251                                autre: renvoi l'id de la notice.
    242252                        */
    243                           $r=$ws->pmbesOPACAnonymous_fetchSearchRecords($searchId,0,10,"pmb_xml_unimarc","utf8");
     253                          $r=$ws->pmbesOPACAnonymous_fetchSearchRecords($searchId,0,10,"serialized_unimarc","utf8");
    244254                          $i = 1;
    245255                          foreach($r as $value) {
    246256                                    $tableau_resultat[$i] = Array();                           
    247257                               
    248                                     pmb_ws_parser_notice($value['noticeId'], $value['noticeContent'], $tableau_resultat[$i]);
     258                                    pmb_ws_parser_notice_serialisee($value['noticeId'], $value['noticeContent'], $tableau_resultat[$i]);
    249259                                    $i++;
    250260                          }
     
    411421
    412422//parsing xml d'une notice
    413 function pmb_ws_parser_notice($id_notice, $value, &$tresultat) {
     423function pmb_ws_parser_notice_xml($id_notice, $value, &$tresultat) {
    414424            global $gtresultat;
    415425            $gtresultat = array();
     
    442452}
    443453
     454//parsing d'une notice sérialisée
     455function pmb_ws_parser_notice_serialisee($id_notice, $value, &$tresultat) {
     456            global $gtresultat;
     457            $gtresultat = array();
     458       
     459            $noticecontent = array();
     460            $unserialized = $value;
     461            $unserialized = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $unserialized );
     462
     463            $noticecontent = unserialize($unserialized);
     464            foreach ( $noticecontent as $c1=>$v1) {
     465              //echo("<br />C1 -> ".$c1."=".$v1);
     466              foreach ( $v1 as $c2=>$v2) {
     467                    //echo("<br />C2 -> ".$c2."=".$v2);
     468                    foreach ( $v2 as $c3=>$v3) {
     469                           if ($c3=="c") $dernierTypeTrouve = $v3;
     470                            foreach ( $v3 as $c4=>$v4) {
     471                                //echo("<br />attr=".$dernierTypeTrouve.",".$v4['c'].",".$v4['value']);
     472                                $dernierSousTypeTrouve = $v4['c'];
     473                                $texte = $v4['value'];
     474                                if (($dernierTypeTrouve == "010") && ($dernierSousTypeTrouve == "a")) $gtresultat['isbn'] .= $texte;
     475                                if (($dernierTypeTrouve == "010") && ($dernierSousTypeTrouve == "b")) $gtresultat['reliure'] .= $texte;
     476                                if (($dernierTypeTrouve == "010") && ($dernierSousTypeTrouve == "d")) $gtresultat['prix'] .= $texte;
     477                               
     478                                if (($dernierTypeTrouve == "101") && ($dernierSousTypeTrouve == "a")) $gtresultat['langues'] .= $texte;
     479                               
     480                                if (($dernierTypeTrouve == "102") && ($dernierSousTypeTrouve == "a")) $gtresultat['pays'] .= $texte;
     481                               
     482                                if (($dernierTypeTrouve == "200") && ($dernierSousTypeTrouve == "a")) $gtresultat['titre'] .= $texte;
     483                                if (($dernierTypeTrouve == "200") && ($dernierSousTypeTrouve == "f")) $gtresultat['auteur'] .= $texte;
     484                               
     485                                if (($dernierTypeTrouve == "210") && ($dernierSousTypeTrouve == "c")) $gtresultat['editeur'] .= $texte;
     486                                if (($dernierTypeTrouve == "210") && ($dernierSousTypeTrouve == "a")) $gtresultat['editeur'] .= ' ('.$texte.')';
     487                                if (($dernierTypeTrouve == "210") && ($dernierSousTypeTrouve == "d")) $gtresultat['annee_publication'] .= $texte;
     488                               
     489                                if (($dernierTypeTrouve == "215") && ($dernierSousTypeTrouve == "a")) $gtresultat['importance'] .= $texte;
     490                                if (($dernierTypeTrouve == "215") && ($dernierSousTypeTrouve == "c")) $gtresultat['presentation'] .= $texte;
     491                                if (($dernierTypeTrouve == "215") && ($dernierSousTypeTrouve == "d")) $gtresultat['format'] .= $texte;
     492                               
     493                                if (($dernierTypeTrouve == "225") && ($dernierSousTypeTrouve == "a")) $gtresultat['collection'] .= $texte;
     494                               
     495                                if (($dernierTypeTrouve == "330") && ($dernierSousTypeTrouve == "a")) $gtresultat['resume'] .= stripslashes(str_replace("\n","<br />", $texte));
     496                               
     497                                if (($dernierTypeTrouve == "700") && ($dernierSousTypeTrouve == "a")) $gtresultat['lesauteurs'] .= $texte;
     498                                if (($dernierTypeTrouve == "700") && ($dernierSousTypeTrouve == "b")) $gtresultat['lesauteurs'] .= " ".$texte;
     499                               
     500                            }
     501                    }
     502              }
     503            }
     504
     505            if ($gtresultat['lesauteurs'] == "")
     506                  $gtresultat['lesauteurs'] = $gtresultat['auteur'];
     507            $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=";
     508            $gtresultat['id'] = $id_notice;
     509           
     510
     511            $tresultat = $gtresultat ;
     512}
     513
     514
    444515//récuperer une notice en xml via les webservices
    445516function pmb_ws_recuperer_notice ($id_notice, &$ws, &$tresultat) {
     
    449520        $listenotices = array(''.$id_notice);
    450521        $tresultat['id'] = $id_notice;
    451                   $r=$ws->pmbesNotices_fetchNoticeList($listenotices,"pmb_xml_unimarc","utf8",true,true);
     522                  $r=$ws->pmbesNotices_fetchNoticeList($listenotices,"serialized_unimarc","utf8",true,true);
    452523                  foreach($r as $value) {
    453                       pmb_ws_parser_notice($id_notice, $value, $tresultat);
     524                      pmb_ws_parser_notice_serialisee($id_notice, $value, $tresultat);
    454525                  }
    455526               
Note: See TracChangeset for help on using the changeset viewer.