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(); 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; //$this->ntu_data[$nb_result]->tu= new authority(0, $this->ntu_data[$nb_result]->num_tu, AUT_TABLE_TITRES_UNIFORMES); $this->ntu_data[$nb_result]->tu= authorities_collection::get_authority('authority', 0, ['num_object' => $this->ntu_data[$nb_result]->num_tu, 'type_object' => AUT_TABLE_TITRES_UNIFORMES]); $this->ntu_data[$nb_result]->p_perso = $this->ntu_data[$nb_result]->tu->p_perso; /* Champs récupérés du titre uniforme: name tonalite comment distrib (array) ref (array) subdiv (array) */ $nb_result++; } } else { // pas trouvé avec cette clé } } } public function get_print_type($link='') { global $msg; $display = ''; if($this->ntu_data && is_array($this->ntu_data)){ foreach ($this->ntu_data as $tu) { if($link){ $link_print="".$tu->tu->display.""; }else { $link_print=$tu->num_tu; } $biblio_fields=array(); if($tu->titre)$biblio_fields[]=$tu->titre; if($tu->date)$biblio_fields[]=$tu->date; if($tu->sous_vedette)$biblio_fields[]=$tu->sous_vedette; if($tu->langue)$biblio_fields[]=$tu->langue; if($tu->version)$biblio_fields[]=$tu->version; if($tu->mention)$biblio_fields[]=$tu->mention; $biblio_print=implode("; ",$biblio_fields); if($biblio_print) $biblio_print=" : ".$biblio_print; $display.=" ".$link_print.$biblio_print."
"; } } return $display; } 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->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"]=$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 gen_input_selection($label,$form_name,$item,$values,$what_sel,$class='saisie-80em' ) { global $msg; $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; $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!!_!!num!!'+suffixe); op_!!num!!.setAttribute('id','!!name!!_!!num!!'+suffixe); op_!!num!!.setAttribute('type','text'); op_!!num!!.className='!!class!!'; op_!!num!!.setAttribute('value',''); div_!!num!!.appendChild(op_!!num!!); //template.appendChild(div_label_!!num!!); //template.appendChild(div_!!num!!); child_".$item.".appendChild(div_label_!!num!!); child_".$item.".appendChild(div_!!num!!); "; //template de zone de texte pour chaque valeur $aff="
".$msg[ !!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); 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); 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; global $msg; $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); 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; notice::majNoticesGlobalIndex($notice_id); notice::majNoticesMotsGlobalIndex($notice_id); } } } // class auteur