Changeset 31572 in spip-zone
- Timestamp:
- Sep 14, 2009, 11:23:14 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/spip-pmb/2_0_0/pmb_mes_fonctions.php
r27709 r31572 233 233 234 234 //d�coupage d'une notice au d�part dans un div de class .parent 235 function pmb_parser_notice ($id_notice, $localdom, &$tresultat) {235 /*function pmb_parser_notice ($id_notice, $localdom, &$tresultat) { 236 236 $tresultat['id'] = $id_notice; 237 237 $tresultat['logo_src'] = $localdom->find('table td img',2)->src; … … 261 261 } 262 262 263 } 263 }*/ 264 265 // Traitement des balises ouvrantes 266 function fonctionBaliseOuvrante($parseur, $nomBalise, $tableauAttributs) 267 { 268 // En fait... nous nous conteterons de mémoriser le nom de la balise 269 // afin d'en tenir compte dans la fonction "fonctionTexte" 270 271 global $derniereBaliseRencontree; 272 global $dernierAttributRencontre; 273 global $dernierTypeTrouve; 274 275 $derniereBaliseRencontree = $nomBalise; 276 277 $dernierAttributRencontre = $tableauAttributs; 278 279 } 280 281 // Rraitement des balises fermantes 282 function fonctionBaliseFermante($parseur, $nomBalise) 283 { 284 // On oublie la dernière balise rencontrée 285 global $derniereBaliseRencontree; 286 global $dernierAttributRencontre; 287 global $dernierTypeTrouve; 288 289 $derniereBaliseRencontree = ""; 290 } 291 292 // Traitement du texte 293 // qui est appelé par le "parseur" 294 function fonctionTexte($parseur, $texte) 295 { 296 global $derniereBaliseRencontree; 297 global $dernierAttributRencontre; 298 global $dernierTypeTrouve; 299 global $gtresultat; 300 301 // Selon les cas, nous affichons le texte 302 // ou nous proposons un lien 303 // ATTENTION: Par défaut les noms des balises sont 304 // mises en majuscules 305 //echo("<br />fonctionTexte=".$derniereBaliseRencontree); 306 switch ($derniereBaliseRencontree) { 307 case "F": 308 foreach($dernierAttributRencontre as $cle=>$attr) { 309 if ($cle=="C") $dernierTypeTrouve = $attr; 310 } 311 break; 312 313 case "S": 314 foreach($dernierAttributRencontre as $cle=>$attr) { 315 if ($cle=="C") $dernierSousTypeTrouve = $attr; 316 } 317 318 if (($dernierTypeTrouve == "010") && ($dernierSousTypeTrouve == "a")) $gtresultat['isbn'] .= $texte; 319 if (($dernierTypeTrouve == "010") && ($dernierSousTypeTrouve == "b")) $gtresultat['reliure'] .= $texte; 320 if (($dernierTypeTrouve == "010") && ($dernierSousTypeTrouve == "d")) $gtresultat['prix'] .= $texte; 321 322 if (($dernierTypeTrouve == "101") && ($dernierSousTypeTrouve == "a")) $gtresultat['langues'] .= $texte; 323 324 if (($dernierTypeTrouve == "102") && ($dernierSousTypeTrouve == "a")) $gtresultat['pays'] .= $texte; 325 326 if (($dernierTypeTrouve == "200") && ($dernierSousTypeTrouve == "a")) $gtresultat['titre'] .= $texte; 327 if (($dernierTypeTrouve == "200") && ($dernierSousTypeTrouve == "f")) $gtresultat['auteur'] .= $texte; 328 329 if (($dernierTypeTrouve == "210") && ($dernierSousTypeTrouve == "c")) $gtresultat['editeur'] .= $texte; 330 if (($dernierTypeTrouve == "210") && ($dernierSousTypeTrouve == "a")) $gtresultat['editeur'] .= ' ('.$texte.')'; 331 if (($dernierTypeTrouve == "210") && ($dernierSousTypeTrouve == "d")) $gtresultat['annee_publication'] .= $texte; 332 333 if (($dernierTypeTrouve == "215") && ($dernierSousTypeTrouve == "a")) $gtresultat['importance'] .= $texte; 334 if (($dernierTypeTrouve == "215") && ($dernierSousTypeTrouve == "c")) $gtresultat['presentation'] .= $texte; 335 if (($dernierTypeTrouve == "215") && ($dernierSousTypeTrouve == "d")) $gtresultat['format'] .= $texte; 336 337 if (($dernierTypeTrouve == "225") && ($dernierSousTypeTrouve == "a")) $gtresultat['collection'] .= $texte; 338 339 if (($dernierTypeTrouve == "330") && ($dernierSousTypeTrouve == "a")) $gtresultat['resume'] .= str_replace("\n","<br />", $texte); 340 341 if (($dernierTypeTrouve == "700") && ($dernierSousTypeTrouve == "a")) $gtresultat['lesauteurs'] .= $texte; 342 if (($dernierTypeTrouve == "700") && ($dernierSousTypeTrouve == "b")) $gtresultat['lesauteurs'] .= " ".$texte; 343 344 345 //a faire : disponibilité 346 347 /* sous la forme ... 348 <table cellpadding='2' class='exemplaires' width='100%'> 349 <tr><th class='expl_header_expl_cb'>Code barre</th><th class='expl_header_expl_cote'>Cote</th><th class='expl_header_tdoc_libelle'>Support</th><th class='expl_header_location_libelle'>Localisation</th><th class='expl_header_section_libelle'>Section</th><th>Disponibilité</th><tr><td class='expl_cb'>4319900946</td><td class='expl_cote'>RP GUI</td><td class='tdoc_libelle'>Livre</td><td class='location_libelle'>Saint-Jeures</td><td class='section_libelle'>Romans Policiers</td><td class='expl_situation'><strong>Disponible</strong> </td></tr> 350 351 </table> 352 */ 353 break; 354 } 355 } 356 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 370 // Création du parseur XML 371 $parseurXML = xml_parser_create(); 372 373 // Je précise le nom des fonctions à appeler 374 // lorsque des balises ouvrantes ou fermantes sont rencontrées 375 xml_set_element_handler($parseurXML, "fonctionBaliseOuvrante" 376 , "fonctionBaliseFermante"); 377 378 // Je précise le nom de la fonction à appeler 379 // lorsque du texte est rencontré 380 xml_set_character_data_handler($parseurXML, "fonctionTexte"); 381 382 // Ouverture du fichier 383 xml_parse($parseurXML, $value, true); 384 385 // echo("<br/><br />version brute : <br/><br />".$value); 386 xml_parser_free($parseurXML); 387 388 if ($gtresultat['lesauteurs'] == "") 389 $gtresultat['lesauteurs'] = $tresultat['auteur']; 390 $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¬icecode=".str_replace("-","",$gtresultat['isbn'])."&vigurl="; 391 $tresultat = $gtresultat ; 392 393 394 } 395 396 397 } catch (SoapFault $fault) { 398 print("Erreur : ".$fault->faultcode." : ".$fault->faultstring); 399 } 400 401 402 403 } 404 405 //charger les webservices 406 function pmb_ws_charger_wsdl(&$ws) { 407 $ws=new SoapClient("http://test3.bibli.fr/ostudio/PMBWsSOAP_1?wsdl"); 408 409 } 410 264 411 265 412 // retourne un tableau associatif contenant tous les champs d'une notice 266 413 function pmb_notice_extraire ($id_notice, $url_base, $mode='auto') { 267 414 $tableau_resultat = Array(); 268 if ($htmldom = pmb_charger_page($url_base, "index.php?lvl=notice_display&seule=1&id=".$id_notice, $mode)) { 269 pmb_parser_notice($id_notice, $htmldom->find('#notice',0), $tableau_resultat); 270 } 415 416 pmb_ws_charger_wsdl($ws); 417 //if ($htmldom = pmb_charger_page($url_base, "index.php?lvl=notice_display&seule=1&id=".$id_notice, $mode)) { 418 //pmb_parser_notice($id_notice, $htmldom->find('#notice',0), $tableau_resultat); 419 pmb_ws_parser_notice($id_notice, $ws, $tableau_resultat); 420 //} 271 421 return $tableau_resultat; 272 422
Note: See TracChangeset
for help on using the changeset viewer.