liste_sugg = $tableau_sugg; } /** * Formulaire de saisie des suggestions multiples */ public function display_form(){ global $dbh, $multi_sug_form,$charset,$msg, $src_liste; global $PMBusernom; global $PMBuserprenom; global $origine_id, $type_origine, $acquisition_sugg_categ, $acquisition_sugg_localises; $req = "select * from suggestions_source order by libelle_source"; $res= pmb_mysql_query($req,$dbh); $option = ""; $select=""; while(($src=pmb_mysql_fetch_object($res))){ $select = ($src_liste == $src->id_source ? "selected" : ""); $option .= ""; } if(!$this->liste_sugg){ $multi_sug_form = str_replace("!!max_lignes!!","1",$multi_sug_form); $ligne = " "; } else { $multi_sug_form = str_replace("!!max_lignes!!",count($this->liste_sugg),$multi_sug_form); for($i=0;$i<=count($this->liste_sugg);$i++){ if($this->liste_sugg[$i]){ $ligne .= " "; if($i==count($this->liste_sugg)){ $ligne .= ""; } else { $ligne .= ""; } if($this->liste_sugg[$i]['id_uni']) $ligne .= " "; $ligne .= ""; } } } $multi_sug_form = str_replace('!!ligne!!',$ligne,$multi_sug_form); if(!$origine_id){ $multi_sug_form = str_replace('!!id_user!!',SESSuserid,$multi_sug_form); $multi_sug_form = str_replace('!!type_user!!',0,$multi_sug_form); $multi_sug_form = str_replace('!!user_txt!!',$PMBusernom.", ".$PMBuserprenom,$multi_sug_form); } else { $multi_sug_form = str_replace('!!id_user!!',$origine_id,$multi_sug_form); $multi_sug_form = str_replace('!!type_user!!',$type_origine,$multi_sug_form); if($type_origine) $req = "select concat(empr_prenom,' ',empr_nom) as nom from empr where id_empr='".$origine_id."'"; else $req = "select concat(prenom,' ',nom) as nom from users where userid='".$origine_id."'"; $res = pmb_mysql_query($req,$dbh); $empr = pmb_mysql_fetch_object($res); $multi_sug_form = str_replace('!!user_txt!!',$empr->nom,$multi_sug_form); } //Selecteur Affecter a une categorie if ($acquisition_sugg_categ == '1' ) { $sel_categ = " "; $tab_categ = suggestions_categ::getCategList(); $sel_categ.= ""; } else { $sel_categ = ""; } //Selecteur de localisation $list_locs = ''; if ($acquisition_sugg_localises) { $list_locs .= " "; if ($sugg_location_id) $temp_location=$sugg_location_id; else $temp_location=0; $locs=new docs_location(); $list_locs.=$locs->gen_combo_box_sugg($temp_location,1); } else { $list_locs=''; } $multi_sug_form = str_replace('!!categorie!!',$sel_categ,$multi_sug_form); $multi_sug_form = str_replace('!!localisation!!',$list_locs,$multi_sug_form); return $multi_sug_form; } /** * Enregistrement de la suggestion multiple */ public function save(){ global $dbh, $max_nblignes, $msg, $id_user, $type_user, $sugg_location_id, $num_categ; for($i=0;$i<$max_nblignes;$i++){ $tit = "sugg_tit_".$i; $aut = "sugg_aut_".$i; $edi = "sugg_edi_".$i; $code = "sugg_code_".$i; $prix = "sugg_prix_".$i; $com = "sugg_com_".$i; $com_gestion = "sugg_com_gestion_".$i; $url = "sugg_url_".$i; $qte = "sugg_qte_".$i; $src = "sugg_src_".$i; $date = "sugg_date_".$i; $unimarc = "id_unimarc_".$i; global ${$tit}, ${$aut}, ${$edi}, ${$code}, ${$com}, ${$com_gestion}, ${$prix}, ${$url}, ${$qte}, ${$src}, ${$date}, ${$unimarc}; if(isset(${$tit})){ if(!is_numeric(${$qte})){ print "".$msg['acquisition_sugg_qte_error'].""; return; } else if(!${$tit} || (!${$edi} && !${$aut} && !${$code})) { print "".str_replace('\n','
',$msg['acquisition_sug_ko'])."
"; return; } else if(!suggestions::exists($id_user,${$tit},${$aut},${$edi},${$code})) { ${$prix} = str_replace(',','.',${$prix}); $req="insert into suggestions set titre='".${$tit}."', auteur='".${$aut}."', editeur='".${$edi}."', code='".${$code}."', prix='".${$prix}."', commentaires='".${$com}."', commentaires_gestion='".${$com_gestion}."', url_suggestion='".${$url}."', nb='".${$qte}."', sugg_source='".${$src}."', statut=1, date_publication='".${$date}."', date_creation='".date("Y-m-d")."', num_categ='".$num_categ."', sugg_location='".$sugg_location_id."' "; if(${$unimarc}){ $uni = new suggestions_unimarc(${$unimarc}); $req .= ", notice_unimarc ='".addslashes($uni->sugg_uni_notice)."'"; } pmb_mysql_query($req,$dbh); $num_suggestion = pmb_mysql_insert_id(); if (is_object($uni)) $uni->delete(); $sug_orig = new suggestions_origine($id_user, $num_suggestion); $sug_orig->type_origine = $type_user; $sug_orig->save(); print "".$msg['acquisition_sugg_ok'].""; } else { print "".$msg['acquisition_sugg_already_exist'].""; } } } } public function traite_notice($notice_iso2709,$n_notice) { $notice=new iso2709_notices($notice_iso2709); $n_notice--; if (!$notice->error) { $this->liste_sugg[$n_notice]['code'] = ($notice->fields['010'][0]['a'][0] ? $notice->fields['010'][0]['a'][0] : $notice->fields['011'][0]['a'][0] ); $this->liste_sugg[$n_notice]['prix'] = $notice->fields['010'][0]['d'][0]; $this->liste_sugg[$n_notice]['titre'] = $notice->fields['200'][0]['a'][0]; $this->liste_sugg[$n_notice]['editeur'] = $notice->fields['210'][0]['a'][0]; $this->liste_sugg[$n_notice]['date']= $notice->fields['210'][0]['d'][0]; $this->liste_sugg[$n_notice]['auteur'] = ( $notice->fields['700'][0]['a'][0] ? $notice->fields['700'][0]['a'][0] : ($notice->fields['710'][0]['a'][0] ? $notice->fields['710'][0]['a'][0] : $notice->fields['701'][0]['a'][0].", ".$notice->fields['701'][0]['b'][0])) ; $this->liste_sugg[$n_notice]['url'] = $notice->fields['856'][0]['u'][0]; //Enregistrement de la suggestion unimarc $uni = new suggestions_unimarc(); $uni->sugg_uni_notice = $notice_iso2709; $uni->sugg_uni_num_notice = $n_notice; $uni->sugg_uni_origine = $this->ori_unimarc; $uni->save(); $this->liste_sugg[$n_notice]['id_uni'] = $uni->sugg_uni_id; } } public function create_table_from_uni() { global $charset,$file_in,$suffix; //Lecture des notices if(!$suffix) $fp=@fopen("temp/$file_in","r"); else $fp=@fopen("temp/$file_in.$suffix~","r"); if ($fp) { $n=1; $car=0x1d; $i=false; $notice=""; $notices=""; $this->ori_unimarc = microtime()."_unimulti"; while (!feof($fp)) { $notices.=fread($fp,4096); $i=strpos($notices,$car); while ($i!==false) { $notice=substr($notices,0,$i+1); $this->traite_notice($notice,$n); $n++; $notices=substr($notices,$i+1); $i=strpos($notices,$car); } } if ($notices!="") { $notice=$notices; $this->traite_notice($notice); $n++; } } fclose($fp); if(!$suffix) unlink("temp/$file_in"); else unlink("temp/$file_in.$suffix~"); } } ?>