From 19d96e34d2bc87c31f27fd2dfb4a53e456a0d66d Mon Sep 17 00:00:00 2001 From: Rachid Aliouat <rachid.aliouat@univ-lille.fr> Date: Sun, 24 Sep 2023 22:20:10 +0200 Subject: [PATCH] creer_portfolio - ajout note public depuis 856z --- gestion_des_portfolios/creer_portfolios.pl | 27 ++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/gestion_des_portfolios/creer_portfolios.pl b/gestion_des_portfolios/creer_portfolios.pl index 0e23c8a..2ca0e96 100644 --- a/gestion_des_portfolios/creer_portfolios.pl +++ b/gestion_des_portfolios/creer_portfolios.pl @@ -8,13 +8,15 @@ # Le portfolio est créer selon le modéle du fichier modele-portfolio.xml : ce fichier contient 2 motifs à remplacer # avant le post : [MMS_ID] et [URL] # 09-02-2023 : ajout cas csv multicolonne : le fichier csv peut avoir plusieurs colonne , c'est la 1er qui contient le mms_id +# 25/09/2023 : ajout 856$z dans "note public" ############################## use strict; use warnings; use LWP::UserAgent; # bibliothèque pour les webservice use XML::Twig; # bibliothèque pour le XML use URI::Encode qw(uri_encode uri_decode);; #encoder decoder les URL - requiert la bibliotheque liburi-encode-perl - +use utf8; +use Encode; my $nom_fic_csv=""; my %hash_conf=(); @@ -102,10 +104,13 @@ for ($i;$i<=$#tab_inter;$i++) { { my $tag = $un_datafield->{'att'}->{'tag'}; + if ($tag=="856") { # on est dans le bon datafield print "\n##### 856 #######\n"; #print $un_datafield->sprint; #print "\n############\n"; + my $url=""; + my $note_public=""; my @les_subfield= $un_datafield->children('subfield'); ### on récuperer une table de hash de tous les "enfants" foreach my $un_subfield (@les_subfield) # liste chaque datafield de la liste { @@ -113,12 +118,23 @@ for ($i;$i<=$#tab_inter;$i++) { #print $code,"\n"; if ($code=~ /^u$/) { # on est dans le bon subfield print "\n\t##### sous champ u #######\n"; - print "\t".$un_subfield->text()."\n"; + $url=$un_subfield->text(); + #print "\t".$un_subfield->text()."\n"; + print "\t".$url."\n"; - $tab_mms_id_url{"[".$mms_id."][".$un_subfield->text()."]"}++; - ecrire_log($mms_id,$un_subfield->text()); + #$tab_mms_id_url{"[".$mms_id."][".$un_subfield->text()."]"}=""; + $tab_mms_id_url{"[".$mms_id."][".$url."]"}=""; + #ecrire_log($mms_id,$un_subfield->text()); + ecrire_log($mms_id,$url); $nbr_portfolios++; } + if ($code=~ /^z$/) { # on est dans le bon subfield + print "\n\t##### sous champ z #######\n"; + $note_public=$un_subfield->text(); + print "\t".$note_public."\n"; + $tab_mms_id_url{"[".$mms_id."][".$url."]"}=$note_public; + + } } } } @@ -194,16 +210,19 @@ print "######\n"; my $c=""; my $url=""; +my $note_public=""; my $portfolio_a_creer=""; foreach $c (sort keys %tab_mms_id_url) { print $c,"\n"; $c=~/\[(.*)\]\[(.*)\]/; $mms_id=$1; $url=$2; + $note_public=Encode::encode_utf8 $tab_mms_id_url{$c}; print "--->Creation du portfolio $url pour le mms_id $mms_id:\n"; $portfolio_a_creer=$bloc_modele_portfolio; $portfolio_a_creer=~ s/\[MMS_ID\]/$mms_id/g; $portfolio_a_creer=~ s/\[URL\]/$url/g; + $portfolio_a_creer=~ s/\[NOTE_PUBLIC\]/$note_public/g; #ajout note public #print "\n$portfolio_a_creer\n"; $block_xml=post_create_portfolio_mms_id($mms_id,$portfolio_a_creer); print $block_xml,"\n"; -- GitLab