id = $id+0; if($this->id) { // on cherche à atteindre une notice existante $this->recursif=$recursif+0; } $this->getData(); } // --------------------------------------------------------------- // getData() : récupération infos auteur // --------------------------------------------------------------- public function getData() { global $msg; $this->ntu_data=array(); $this->oeuvre_events_order=array(); if($this->id) { $requete = "SELECT * FROM notices_titres_uniformes WHERE ntu_num_notice=$this->id order by ntu_ordre"; $result = pmb_mysql_query($requete); $nb_result=0; if(pmb_mysql_num_rows($result)) { while(($res_tu = pmb_mysql_fetch_object($result))) { $this->ntu_data[$nb_result] = new stdClass(); $this->ntu_data[$nb_result]->num_tu= $res_tu->ntu_num_tu; $this->ntu_data[$nb_result]->titre= $res_tu->ntu_titre; $this->ntu_data[$nb_result]->date= $res_tu->ntu_date; $this->ntu_data[$nb_result]->sous_vedette= $res_tu->ntu_sous_vedette; $this->ntu_data[$nb_result]->langue= $res_tu->ntu_langue; $this->ntu_data[$nb_result]->version= $res_tu->ntu_version; $this->ntu_data[$nb_result]->mention= $res_tu->ntu_mention; $authority = new authority(0, $this->ntu_data[$nb_result]->num_tu, AUT_TABLE_TITRES_UNIFORMES); $this->ntu_data[$nb_result]->tu = $authority; /* Champs récupérés du titre uniforme: name tonalite comment distrib (array) ref (array) subdiv (array) */ // mémorisation de l'ordre des évenemments par leur date, si renseigné. if(isset($this->ntu_data[$nb_result]->tu->get_object_instance()->get_oeuvre_events()[0]) && isset($this->ntu_data[$nb_result]->tu->get_object_instance()->get_oeuvre_events()[0]['date']) && $this->ntu_data[$nb_result]->tu->get_object_instance()->get_oeuvre_events()[0]['date']){ $this->oeuvre_events_order[$this->ntu_data[$nb_result]->tu->get_object_instance()->get_oeuvre_events()[0]['date']][]=$nb_result; } $nb_result++; } krsort($this->oeuvre_events_order); uasort($this->ntu_data, array('self', 'sort_tu')); } else { // pas trouvé avec cette clé } } } public function get_print_type() { global $msg; if(!$this->ntu_data) return''; $display="".$msg["catal_onglet_titre_uniforme"]." :"; $flag_first=0; $printed=array(); foreach ($this->oeuvre_events_order as $elts){ foreach ($elts as $elt){ if($flag_first)$display.="
"; $flag_first=1; $display.=" ".$this->get_link($this->ntu_data[$elt]); $printed[]=$elt; } } for($elt=0; $eltntu_data); $elt++) { if(in_array($elt, $printed)) continue; if($flag_first)$display.="
"; $flag_first=1; $display.=" ".$this->get_link($this->ntu_data[$elt]); } return $display; } public function get_link($tu){ return "".$tu->tu->get_isbd().""; } public function get_form($form_name) { global $msg; $values = array(); if(count($this->ntu_data)) { $i=0; do { $values[$i]["id"]= $this->ntu_data[$i]->num_tu; $values[$i]["label"]= $this->ntu_data[$i]->tu->get_isbd(); $j=0; $values[$i]["objets"][$j]["label"]=$msg["catal_titre_uniforme_titre_section"]; $values[$i]["objets"][$j]["name"]="ntu_titre"; $values[$i]["objets"][$j]["class"]="saisie-80em"; $values[$i]["objets"][$j]["value"]=$this->ntu_data[$i]->titre; $j++; $values[$i]["objets"][$j]["label"]=$msg["catal_titre_uniforme_date"]; $values[$i]["objets"][$j]["name"]="ntu_date"; $values[$i]["objets"][$j]["class"]="saisie-80em"; $values[$i]["objets"][$j]["value"]=$this->ntu_data[$i]->date; $j++; $values[$i]["objets"][$j]["label"]=$msg["catal_titre_uniforme_sous_vedette"]; $values[$i]["objets"][$j]["name"]="ntu_sous_vedette"; $values[$i]["objets"][$j]["class"]="saisie-80em"; $values[$i]["objets"][$j]["value"]=$this->ntu_data[$i]->sous_vedette; $j++; $values[$i]["objets"][$j]["label"]=$msg["catal_titre_uniforme_langue"]; $values[$i]["objets"][$j]["name"]="ntu_langue"; $values[$i]["objets"][$j]["class"]="saisie-80em"; $values[$i]["objets"][$j]["value"]=$this->ntu_data[$i]->langue; $j++; $values[$i]["objets"][$j]["label"]=$msg["catal_titre_uniforme_version"]; $values[$i]["objets"][$j]["name"]="ntu_version"; $values[$i]["objets"][$j]["class"]="saisie-80em"; $values[$i]["objets"][$j]["value"]=$this->ntu_data[$i]->version; $j++; $values[$i]["objets"][$j]["label"]=$msg["catal_titre_uniforme_mention"]; $values[$i]["objets"][$j]["name"]="ntu_mention"; $values[$i]["objets"][$j]["class"]="saisie-80em"; $values[$i]["objets"][$j]["value"]=$this->ntu_data[$i]->mention; } while (++$intu_data)); } else { $values = array( array( 'id' => 0, 'label' => '', 'objets' => array( array( 'label' => $msg["catal_titre_uniforme_titre_section"], 'name' => "ntu_titre", 'class' => "saisie-80em", 'value' => '' ), array( 'label' => $msg["catal_titre_uniforme_date"], 'name' => "ntu_date", 'class' => "saisie-80em", 'value' => '' ), array( 'label' => $msg["catal_titre_uniforme_sous_vedette"], 'name' => "ntu_sous_vedette", 'class' => "saisie-80em", 'value' => '' ), array( 'label' => $msg["catal_titre_uniforme_langue"], 'name' => "ntu_langue", 'class' => "saisie-80em", 'value' => '' ), array( 'label' => $msg["catal_titre_uniforme_version"], 'name' => "ntu_version", 'class' => "saisie-80em", 'value' => '' ), array( 'label' => $msg["catal_titre_uniforme_mention"], 'name' => "ntu_mention", 'class' => "saisie-80em", 'value' => '' ), ) ) ); } $this->ntu_form=static::gen_input_selection($msg["catal_onglet_titre_uniforme"],$form_name,"titre_uniforme",$values,"titre_uniforme","saisie-80emr"); return $this->ntu_form; } public static function get_form_import($form_name,$ntu_data) { global $msg; $values = array(); if(count($ntu_data)) { $i=0; do { $values[$i]["id"]= $ntu_data[$i]->num_tu; $values[$i]["label"]= $ntu_data[$i]->tu->name; $j=0; $values[$i]["objets"][$j]["label"]=$msg["catal_titre_uniforme_titre_section"]; $values[$i]["objets"][$j]["name"]="ntu_titre"; $values[$i]["objets"][$j]["class"]="saisie-80em"; $values[$i]["objets"][$j]["value"]=$ntu_data[$i]->titre; $j++; $values[$i]["objets"][$j]["label"]=$msg["catal_titre_uniforme_date"]; $values[$i]["objets"][$j]["name"]="ntu_date"; $values[$i]["objets"][$j]["class"]="saisie-80em"; $values[$i]["objets"][$j]["value"]=$ntu_data[$i]->date; $j++; $values[$i]["objets"][$j]["label"]=$msg["catal_titre_uniforme_sous_vedette"]; $values[$i]["objets"][$j]["name"]="ntu_sous_vedette"; $values[$i]["objets"][$j]["class"]="saisie-80em"; $values[$i]["objets"][$j]["value"]=$ntu_data[$i]->sous_vedette; $j++; $values[$i]["objets"][$j]["label"]=$msg["catal_titre_uniforme_langue"]; $values[$i]["objets"][$j]["name"]="ntu_langue"; $values[$i]["objets"][$j]["class"]="saisie-80em"; $values[$i]["objets"][$j]["value"]=$ntu_data[$i]->langue; $j++; $values[$i]["objets"][$j]["label"]=$msg["catal_titre_uniforme_version"]; $values[$i]["objets"][$j]["name"]="ntu_version"; $values[$i]["objets"][$j]["class"]="saisie-80em"; $values[$i]["objets"][$j]["value"]=$ntu_data[$i]->version; $j++; $values[$i]["objets"][$j]["label"]=$msg["catal_titre_uniforme_mention"]; $values[$i]["objets"][$j]["name"]="ntu_mention"; $values[$i]["objets"][$j]["class"]="saisie-80em"; $values[$i]["objets"][$j]["value"]=$ntu_data[$i]->mention; } while (++$i 0, 'label' => '', 'objets' => array( array( 'label' => $msg["catal_titre_uniforme_titre_section"], 'name' => "ntu_titre", 'class' => "saisie-80em", 'value' => '' ), array( 'label' => $msg["catal_titre_uniforme_date"], 'name' => "ntu_date", 'class' => "saisie-80em", 'value' => '' ), array( 'label' => $msg["catal_titre_uniforme_sous_vedette"], 'name' => "ntu_sous_vedette", 'class' => "saisie-80em", 'value' => '' ), array( 'label' => $msg["catal_titre_uniforme_langue"], 'name' => "ntu_langue", 'class' => "saisie-80em", 'value' => '' ), array( 'label' => $msg["catal_titre_uniforme_version"], 'name' => "ntu_version", 'class' => "saisie-80em", 'value' => '' ), array( 'label' => $msg["catal_titre_uniforme_mention"], 'name' => "ntu_mention", 'class' => "saisie-80em", 'value' => '' ) ) ) ); } $ntu_form=static::gen_input_selection($msg["catal_onglet_titre_uniforme"],$form_name,"titre_uniforme",$values,"titre_uniforme","saisie-80emr"); return $ntu_form; } public static function gen_input_selection($label,$form_name,$item,$values,$what_sel,$class='saisie-80em', $show_other_fields=1) { global $msg, $charset; $select_prop = "scrollbars=yes, toolbar=no, dependent=yes, resizable=yes"; $link="'./select.php?what=$what_sel&caller=$form_name¶m1=f_".$item."_code!!num!!¶m2=f_".$item."!!num!!&deb_rech='+".pmb_escape()."(this.form.f_".$item."!!num!!.value), '$what_sel', 400, 400, -2, -2, '$select_prop'"; $size_item=strlen($item)+2; $show_other_fields_plus_js = ''; $show_other_fields_plus = ''; if(!$show_other_fields) { $show_other_fields_plus_js = "img_" . $item . ".style.display='none';"; $show_other_fields_plus = "display:none;"; } $script_js=" "; $script_js_option=" div_label_!!num!!=document.createElement('div'); div_label_!!num!!.className='row'; label_!!num!!=document.createElement('label'); texte_!!num!!=document.createTextNode('!!label!!'); label_!!num!!.appendChild(texte_!!num!!); div_label_!!num!!.appendChild(label_!!num!!); div_!!num!!=document.createElement('div'); div_!!num!!.className='row'; op_!!num!! = document.createElement('input'); op_!!num!!.setAttribute('name','!!name!!'+suffixe); op_!!num!!.setAttribute('id','!!name!!'+suffixe); op_!!num!!.setAttribute('type','text'); op_!!num!!.className='!!class!!'; op_!!num!!.setAttribute('value',''); div_!!num!!.appendChild(op_!!num!!); child_".$item.".appendChild(div_label_!!num!!); child_".$item.".appendChild(div_!!num!!); "; //template de zone de texte pour chaque valeur $aff="
!!bouton_parcourir!! !!bouton_ajouter!!
"; return $template; } // --------------------------------------------------------------- // show_form : affichage du formulaire de saisie // --------------------------------------------------------------- public function show_form() { global $msg; global $titre_uniforme_form; global $charset; global $user_input, $nbr_lignes, $page ; if($this->id) { $action = "./autorites.php?categ=titres_uniformes&sub=update&id=$this->id"; $libelle = $msg["aut_titre_uniforme_modifier"]; $button_remplace = "id\"'>"; $button_voir = "id\"'>"; $button_delete = ""; } else { $action = './autorites.php?categ=titres_uniformes&sub=update&id='; $libelle = $msg["aut_titre_uniforme_ajouter"]; $button_remplace = ''; $button_delete =''; } $titre_uniforme_form = str_replace('!!id!!', $this->id, $titre_uniforme_form); $titre_uniforme_form = str_replace('!!action!!', $action, $titre_uniforme_form); $titre_uniforme_form = str_replace('!!libelle!!', $libelle, $titre_uniforme_form); $titre_uniforme_form = str_replace('!!nom!!', htmlentities($this->name,ENT_QUOTES, $charset), $titre_uniforme_form); $distribution_form=static::gen_input_selection($msg["aut_titre_uniforme_form_distribution"],"saisie_titre_uniforme","distrib",$this->distrib,"","saisie-80em"); $titre_uniforme_form = str_replace("",$distribution_form, $titre_uniforme_form); $ref_num_form=static::gen_input_selection($msg["aut_titre_uniforme_form_ref_numerique"],"saisie_titre_uniforme","ref",$this->ref,"","saisie-80em"); $titre_uniforme_form = str_replace("",$ref_num_form, $titre_uniforme_form); $titre_uniforme_form = str_replace('!!tonalite!!', htmlentities($this->tonalite,ENT_QUOTES, $charset), $titre_uniforme_form); $titre_uniforme_form = str_replace('!!comment!!', htmlentities($this->comment,ENT_QUOTES, $charset), $titre_uniforme_form); $sub_form=static::gen_input_selection($msg["aut_titre_uniforme_form_subdivision_forme"],"saisie_titre_uniforme","subdiv",$this->subdiv,"","saisie-80em"); $titre_uniforme_form = str_replace('', $sub_form, $titre_uniforme_form); $titre_uniforme_form = str_replace('!!remplace!!', $button_remplace, $titre_uniforme_form); $titre_uniforme_form = str_replace('!!voir_notices!!', $button_voir, $titre_uniforme_form); $titre_uniforme_form = str_replace('!!delete!!', $button_delete, $titre_uniforme_form); $titre_uniforme_form = str_replace('!!user_input_url!!', rawurlencode(stripslashes($user_input)), $titre_uniforme_form); $titre_uniforme_form = str_replace('!!user_input!!', htmlentities($user_input,ENT_QUOTES, $charset), $titre_uniforme_form); $titre_uniforme_form = str_replace('!!nbr_lignes!!', $nbr_lignes, $titre_uniforme_form); $titre_uniforme_form = str_replace('!!page!!', $page, $titre_uniforme_form); $titre_uniforme_form = str_replace('!!controller_url_base!!', './autorites.php?categ=titres_uniformes', $titre_uniforme_form); print $titre_uniforme_form; } // --------------------------------------------------------------- // replace_form : affichage du formulaire de remplacement // --------------------------------------------------------------- public function replace_form() { global $titre_uniforme_replace; global $msg; global $include_path; if(!$this->id || !$this->name) { require_once("$include_path/user_error.inc.php"); error_message($msg[161], $msg[162], 1, './autorites.php?categ=titres_uniformes&sub=&id='); return false; } $titre_uniforme_replace=str_replace('!!old_titre_uniforme_libelle!!', $this->display, $titre_uniforme_replace); $titre_uniforme_replace=str_replace('!!id!!', $this->id, $titre_uniforme_replace); $titre_uniforme_replace=str_replace('!!controller_url_base!!', './autorites.php?categ=titres_uniformes', $titre_uniforme_replace); print $titre_uniforme_replace; return true; } // --------------------------------------------------------------- // delete() : suppression // --------------------------------------------------------------- public function delete() { global $dbh; global $msg; if(!$this->id) return false; $requete = "DELETE FROM notices_titres_uniformes WHERE ntu_num_notice='$this->id' "; pmb_mysql_query($requete, $dbh); $this->id=0; $this->ntu_data=array(); } // --------------------------------------------------------------- // replace($by) : remplacement // --------------------------------------------------------------- public function replace($by) { global $msg; if (($this->id == $by) || (!$this->id)) { return $msg[223]; } // titre_uniforme::update_index($by); return FALSE; } // --------------------------------------------------------------- // update($value) : mise à jour // --------------------------------------------------------------- public function update($values) { global $dbh; global $msg; global $include_path; if(!$this->id) return false; $requete = "DELETE FROM notices_titres_uniformes WHERE ntu_num_notice=".$this->id; pmb_mysql_query($requete, $dbh); // nettoyage des chaînes en entrée $ordre=0; foreach($values as $value) { if($value['num_tu']) { $requete = "INSERT INTO notices_titres_uniformes SET ntu_num_notice='$this->id', ntu_num_tu='".$value['num_tu']."', ntu_titre='".clean_string($value['ntu_titre'])."', ntu_date='".clean_string($value['ntu_date'])."', ntu_sous_vedette='".clean_string($value['ntu_sous_vedette'])."', ntu_langue='".clean_string($value['ntu_langue'])."', ntu_version='".clean_string($value['ntu_version'])."', ntu_mention='".clean_string($value['ntu_mention'])."', ntu_ordre=$ordre "; pmb_mysql_query($requete, $dbh); } $ordre++; } return TRUE; } // --------------------------------------------------------------- // import() : import d'un titre_uniforme // --------------------------------------------------------------- // fonction d'import de notice titre_uniforme public function import($data) { // To do } // --------------------------------------------------------------- // search_form() : affichage du form de recherche // --------------------------------------------------------------- public function search_form() { global $user_query, $user_input; global $msg, $charset; $user_query = str_replace ('!!user_query_title!!', $msg[357]." : ".$msg["aut_menu_titre_uniforme"] , $user_query); $user_query = str_replace ('!!action!!', './autorites.php?categ=titres_uniformes&sub=reach&id=', $user_query); $user_query = str_replace ('!!add_auth_msg!!', $msg["aut_titre_uniforme_ajouter"] , $user_query); $user_query = str_replace ('!!add_auth_act!!', './autorites.php?categ=titres_uniformes&sub=titre_uniforme_form', $user_query); $user_query = str_replace ('', "".$msg["aut_titre_uniforme_derniers_crees"]."", $user_query); $user_query = str_replace("!!user_input!!",htmlentities(stripslashes($user_input),ENT_QUOTES, $charset),$user_query); print pmb_bidi($user_query) ; } //--------------------------------------------------------------- // update_index($id) : maj des n-uplets la table notice_global_index en rapport avec cet author //--------------------------------------------------------------- public static function update_index($id) { global $dbh; // On cherche tous les n-uplet de la table notice correspondant à ce titre_uniforme. $found = pmb_mysql_query("select ntu_num_notice from notices_titres_uniformes where ntu_num_tu = ".$id,$dbh); // Pour chaque n-uplet trouvés on met a jour la table notice_global_index avec l'auteur modifié : while(($mesNotices = pmb_mysql_fetch_object($found))) { $notice_id = $mesNotices->ntu_num_notice; indexation_stack::push($notice_id, TYPE_NOTICE); //-------------INI 13/04/2022 LLIUREX Temp solution to fix a bug in indexation------------- notice::majNoticesGlobalIndex($notice_id); notice::majNoticesMotsGlobalIndex($notice_id); //-------------FIN 13/04/2022-------------------------------------------------------------- } } public static function sort_tu($first_one,$second_one){ $mc_oeuvre_nature = marc_list_collection::get_instance('oeuvre_nature'); $nature_keys = array_keys($mc_oeuvre_nature->table); if(array_search($first_one->tu->get_object_instance()->oeuvre_nature, $nature_keys) == array_search($second_one->tu->get_object_instance()->oeuvre_nature, $nature_keys)){ return 0; } return (array_search($first_one->tu->get_object_instance()->oeuvre_nature, $nature_keys) < array_search($second_one->tu->get_object_instance()->oeuvre_nature, $nature_keys)) ? -1 : 1; } public static function create_tu_notice_link($num_tu, $num_notice, $ordre = 0) { $query = "INSERT INTO notices_titres_uniformes SET ntu_num_notice='" . $num_notice . "', ntu_num_tu='" . $num_tu . "', ntu_ordre= ". $ordre; pmb_mysql_query($query); } } // class auteur