authperso_authority_authperso_num;
}
}
$this->id=$id+0;
$this->fetch_data();
}
function fetch_data() {
$this->info=array();
$this->info['fields']=array();
if(!$this->id) return;
$req="select * from authperso where id_authperso=". $this->id;
$resultat=pmb_mysql_query($req);
if (pmb_mysql_num_rows($resultat)) {
$r=pmb_mysql_fetch_object($resultat);
$this->info['id']= $r->id_authperso;
$this->info['name']= $r->authperso_name;
$this->info['onglet_num']= $r->authperso_notice_onglet_num;
$this->info['isbd_script']= $r->authperso_isbd_script;
$this->info['opac_search']= $r->authperso_opac_search;
$this->info['opac_multi_search']= $r->authperso_opac_multi_search;
$this->info['gestion_search']= $r->authperso_gestion_search;
$this->info['gestion_multi_search']= $r->authperso_gestion_multi_search;
$this->info['comment']= $r->authperso_comment;
$this->info['onglet_name']="";
$req="SELECT * FROM notice_onglet where id_onglet=".$r->authperso_notice_onglet_num;
$resultat=pmb_mysql_query($req);
if (pmb_mysql_num_rows($resultat)) {
$r_onglet=pmb_mysql_fetch_object($resultat);
$this->info['onglet_name']= $r_onglet->onglet_name;
}
}
$req="select * from authperso_custom where num_type=". $this->id." order by ordre";
$resultat=pmb_mysql_query($req);
$i=0;
if (pmb_mysql_num_rows($resultat)) {
while($r=pmb_mysql_fetch_object($resultat)){
$this->info['fields'][$i]['id']= $r->idchamp;
$this->info['fields'][$i]['name']= $r->name;
$this->info['fields'][$i]['label']= $r->titre;
$this->info['fields'][$i]['type']= $r->type ;
$this->info['fields'][$i]['ordre']= $r->ordre ;
$this->info['fields'][$i]['search']=$r->search;
$this->info['fields'][$i]['pond']=$r->pond;
$this->info['fields'][$i]['obligatoire']=$r->obligatoire;
$this->info['fields'][$i]['export']=$r->export;
$this->info['fields'][$i]['multiple']=$r->multiple;
$this->info['fields'][$i]['opac_sort']=$r->opac_sort;
$this->info['fields'][$i]['code_champ']=$this->id;
$this->info['fields'][$i]['code_ss_champ']=$r->idchamp;
$this->info['fields'][$i]['data']= array();
$i++;
}
}
}
function get_data(){
return $this->info;
}
function get_info_fields($id=0){
global $dbh;
$info= array();
if($id){
$req="select * from authperso_authorities,authperso where id_authperso=authperso_authority_authperso_num and id_authperso_authority=". $id;
$res = pmb_mysql_query($req,$dbh);
if(($r=pmb_mysql_fetch_object($res))) {
$p_perso=new custom_parametres_perso("authperso","authperso",$r->authperso_authority_authperso_num,"./autorites.php?categ=authperso&sub=update&id_authperso=".$this->id,$option_navigation,$option_visibilite);
$fields=$p_perso->get_out_values($id);
$authperso_fields=$p_perso->values;
}
}
foreach($this->info['fields'] as $field){
$info[$field['id']]['id']= $field['id'];
$info[$field['id']]['name']= $field['name'];
$info[$field['id']]['label']= $field['label'];
$info[$field['id']]['type']= $field['type'];
$info[$field['id']]['ordre']= $field['ordre'];
$info[$field['id']]['search']=$field['search'];
$info[$field['id']]['pond']=$field['pond'];
$info[$field['id']]['obligatoire']=$field['obligatoire'];
$info[$field['id']]['export']=$field['export'];
$info[$field['id']]['multiple']=$field['multiple'];
$info[$field['id']]['opac_sort']=$field['opac_sort'];
$info[$field['id']]['code_champ']=$this->id;
$info[$field['id']]['code_ss_champ']=$field['id'];
$info[$field['id']]['values']= $authperso_fields[$field['name']]['values'];
$info[$field['id']]['all_format_values']= $authperso_fields[$field['name']]['all_format_values'];
}
return $info;
}
function fetch_data_auth($id) {
$p_perso=new custom_parametres_perso("authperso","authperso",$this->id);
$authperso_fields=$p_perso->get_out_values($id);
$this->info['data_auth'][$id]=$p_perso->values;
//pour ne pas louper les champs vides...
foreach($this->info['fields'] as $i =>$field){
$this->info['fields'][$i]['data'][$id]=$this->info['data_auth'][$id][$field['name']];
}
return $p_perso->values;
}
function get_search_list($tpl_auth,$restriction){
global $msg,$charset,$dbh;
$req = "select * from authperso_authorities where authperso_authority_authperso_num= ".$this->id;
$req .= " order by id_authperso_authority DESC $restriction";
$res = pmb_mysql_query($req, $dbh);
while(($r=pmb_mysql_fetch_object($res))) {
$id=$r->id_authperso_authority;
$isbd=$this->get_isbd($id);
$tpl=$tpl_auth;
$tpl = str_replace ('!!isbd_addslashes!!', htmlentities(addslashes($isbd),ENT_QUOTES, $charset), $tpl);
$tpl = str_replace ('!!isbd!!', htmlentities($isbd), $tpl);
$tpl = str_replace ('!!auth_id!!', $id, $tpl);
$auth_lines.=$tpl;
}
return $auth_lines;
}
function get_list() {
global $msg,$charset,$dbh;
global $user_query, $user_input,$page,$nbr_lignes,$last_param;
global $url_base;
$nb_per_page = 10;
if(!$page) $page=1;
$debut =($page-1)*$nb_per_page;
$search_word = str_replace('*','%',$user_input);
if(!($nb_per_page*1)){
$nb_per_page=$nb_per_page_search;
}
if(!$page) $page=1;
if(!$last_param){
$debut =($page-1)*$nb_per_page;
$requete = "SELECT count(1) FROM authperso_authorities where ( authperso_infos_global like '%".$search_word."%' or authperso_index_infos_global like '%".$user_input."%' ) and authperso_authority_authperso_num= ".$this->id;
$res = pmb_mysql_query($requete, $dbh);
$nbr_lignes = pmb_mysql_result($res, 0, 0);
$req = "select * from authperso_authorities where ( authperso_infos_global like '%".$search_word."%' or authperso_index_infos_global like '%".$user_input."%' ) and authperso_authority_authperso_num= ".$this->id;
$req .= " order by authperso_index_infos_global LIMIT ".$debut.",".$nb_per_page." ";
}else{ // les derniers créés
$req = "select * from authperso_authorities where authperso_authority_authperso_num= ".$this->id;
$req .= " order by id_authperso_authority DESC LIMIT $nb_per_page";
}
$res = pmb_mysql_query($req,$dbh);
$parity=1;
while(($r=pmb_mysql_fetch_object($res))) {
if ($parity % 2) $pair_impair = "even"; else $pair_impair = "odd";
$parity += 1;
$id=$r->id_authperso_authority;
$this->fetch_data_auth($r->id_authperso_authority);
$auth_line="";
//$this->info['fields'][$i]['data'][$id][$field['name']]
foreach($this->info['fields'] as $field){
$data_label=$field['data'][$id]['values'][0]['format_value'];
$auth_line.="
id."&id=$id&user_input=!!user_input_url!!&nbr_lignes=$nbr_lignes&page=$page';\" title='' valign='top'>".
$data_label
." | ";
$auth_line = str_replace('!!user_input_url!!', rawurlencode(stripslashes($user_input)),$auth_line);
}
// usage
$auth_line.="
id +1000)."&etat=aut_search&aut_type=authperso&authperso_id=".$this->id."&aut_id=$id';\" title='' valign='top'>".
$this->get_count_notice($id)
." | ";
$auth_lines.="
$auth_line
";
}
$user_query = str_replace ('!!user_query_title!!', $msg["authperso_search_title"], $user_query);
$user_query = str_replace ('!!action!!', "./autorites.php?categ=authperso&sub=reach&id_authperso=".$this->id."&id=", $user_query);
$user_query = str_replace ('!!add_auth_msg!!', $msg["authperso_search_add"] , $user_query);
$user_query = str_replace ('!!add_auth_act!!', './autorites.php?categ=authperso&sub=authperso_form&id_authperso='.$this->id, $user_query);
$user_query = str_replace ('', "".$msg["authperso_search_last"]."", $user_query);
$user_query = str_replace("!!user_input!!",htmlentities(stripslashes($user_input),ENT_QUOTES, $charset),$user_query);
$user_query = str_replace('!!user_input_url!!', rawurlencode(stripslashes($user_input)),$user_query);
if($error){
$user_query.error_message($msg["searcher_syntax_error"],sprintf($msg["searcher_syntax_error_desc"],$aq->current_car,$aq->input_html,$aq->error_message));
exit;
}
$authperso_list_tpl= "
$user_query
".$msg["authperso_search_found"]." !!cle!!
!!nav_bar!!
";
foreach($this->info['fields'] as $field){
$th_fields.="".htmlentities($field['label'],ENT_QUOTES,$charset)." | ";
}
$th_fields.="".htmlentities($msg['authperso_usage'],ENT_QUOTES,$charset)." | ";
$nav_bar = aff_pagination ($url_base, $nbr_lignes, $nb_per_page, $page, 10, false, true) ;
$authperso_list_tpl=str_replace( "",$nbr_lignes.' ',$authperso_list_tpl);
$authperso_list_tpl = str_replace("!!th_fields!!", $th_fields, $authperso_list_tpl);
$authperso_list_tpl = str_replace("!!cle!!", $user_input, $authperso_list_tpl);
$authperso_list_tpl = str_replace("!!list!!", $auth_lines, $authperso_list_tpl);
$authperso_list_tpl = str_replace("!!nav_bar!!", $nav_bar, $authperso_list_tpl);
return $authperso_list_tpl;
}
function get_list_selector() {
global $msg,$charset,$dbh;
global $user_query, $user_input,$page,$nbr_lignes,$last_param;
global $callback;
global $caller;
global $base_url;
$nb_per_page = 10;
if(!$page) $page=1;
$debut =($page-1)*$nb_per_page;
$search_word = str_replace('*','%',$user_input);
if(!($nb_per_page*1)){
$nb_per_page=$nb_per_page_search;
}
if(!$page) $page=1;
if(!$last_param){
$debut =($page-1)*$nb_per_page;
$requete = "SELECT count(1) FROM authperso_authorities where ( authperso_infos_global like '%".$search_word."%' or authperso_index_infos_global like '%".$user_input."%' ) and authperso_authority_authperso_num= ".$this->id;
$res = pmb_mysql_query($requete, $dbh);
$nbr_lignes = pmb_mysql_result($res, 0, 0);
$req = "select * from authperso_authorities where ( authperso_infos_global like '%".$search_word."%' or authperso_index_infos_global like '%".$user_input."%' ) and authperso_authority_authperso_num= ".$this->id;
$req .= " order by authperso_index_infos_global LIMIT ".$debut.",".$nb_per_page." ";
}else{ // les derniers créés
$req = "select * from authperso_authorities where authperso_authority_authperso_num= ".$this->id;
$req .= " order by id_authperso_authority DESC LIMIT $nb_per_page";
}
$res = pmb_mysql_query($req,$dbh);
while(($r=pmb_mysql_fetch_object($res))) {
$id=$r->id_authperso_authority;
$isbd=$this->get_isbd($id);
$auth_lines.="".
htmlentities($isbd,ENT_QUOTES, $charset)."
";
}
//$url_base = $base_url."&user_input=".rawurlencode(stripslashes($user_input));
$nav_bar = aff_pagination ($base_url, $nbr_lignes, $nb_per_page, $page, 10, false, true) ;
$authperso_list_tpl= "
$auth_lines
$nav_bar
";
return $authperso_list_tpl;
}
function get_isbd($id){
global $dbh;
$req="select * from authperso_authorities,authperso where id_authperso=authperso_authority_authperso_num and id_authperso_authority=". $id;
$res = pmb_mysql_query($req,$dbh);
if(($r=pmb_mysql_fetch_object($res))) {
$p_perso=new custom_parametres_perso("authperso","authperso",$r->authperso_authority_authperso_num);
$fields=$p_perso->get_out_values($id);
$authperso_fields=$p_perso->values;
if($r->authperso_isbd_script){
$index_concept = new index_concept($id, TYPE_AUTHPERSO);
$authperso_fields['index_concepts']=$index_concept->get_data();
$isbd=H2o::parseString($r->authperso_isbd_script)->render($authperso_fields);
}else{
foreach ($authperso_fields as $field){
$isbd.=$field[values][0][format_value].". ";
}
}
}
return $isbd;
}
function get_count_notice($id){
global $dbh;
$req="select count(1) from notices_authperso where notice_authperso_authority_num=". $id;
return pmb_mysql_result(pmb_mysql_query($req, $dbh), 0, 0);
}
function get_notices($id){
global $dbh;
$list=array();
$req="select notice_authperso_notice_num from notices_authperso where notice_authperso_authority_num=". $id;
$res = pmb_mysql_query($req,$dbh);
if(($r=pmb_mysql_fetch_object($res))) {
$list[]=$r>notice_authperso_notice_num;
}
return $list;
}
function get_form($id) {
global $msg,$charset,$authperso_form;
global $user_query, $user_input,$page,$nbr_lignes;
global $pmb_type_audit;
global $thesaurus_concepts_active;
$p_perso=new custom_parametres_perso("authperso","authperso",$this->id,"./autorites.php?categ=authperso&sub=update&id_authperso=".$this->id,$option_navigation,$option_visibilite);
$authperso_fields=$p_perso->show_editable_fields($id);
$authperso_field_tpl="
!!aff!!
";
foreach($authperso_fields['FIELDS'] as $field){
//printr($field);
$field_tpl=$authperso_field_tpl;
$field_tpl = str_replace("!!titre!!", $field['TITRE'], $field_tpl);
$field_tpl = str_replace("!!aff!!", $field['AFF'], $field_tpl);
$tpl.=$field_tpl;
}
$button_remplace = "";
$button_voir = "";
if ($pmb_type_audit && $id)
$bouton_audit= " id + 1000)."&object_id=".$id."', 'audit_popup', 700, 500, -2, -2, 'scrollbars=yes, toolbar=no, dependent=yes, resizable=yes')\" title=\"".$msg['audit_button']."\" value=\"".$msg['audit_button']."\" /> ";
$aut_link= new aut_link($this->id+1000,$id);
$authperso_form = str_replace('', $aut_link->get_form('saisie_authperso') , $authperso_form);
// Indexation concept
if($thesaurus_concepts_active == 1){
$index_concept = new index_concept($id, TYPE_AUTHPERSO);
$authperso_form = str_replace('', $index_concept->get_form('saisie_authperso'), $authperso_form);
}
$authperso_form = str_replace("!!list_field!!", $tpl, $authperso_form);
if(!$id){
$authperso_form = str_replace("!!libelle!!", $msg['authperso_form_titre_new'], $authperso_form);
$authperso_form = str_replace("!!delete!!", "", $authperso_form);
$authperso_form = str_replace("!!remplace!!", "", $authperso_form);
$authperso_form = str_replace("!!voir_notices!!", "", $authperso_form);
$authperso_form = str_replace("!!audit_bt!!", "", $authperso_form);
}else{
$authperso_form = str_replace("!!libelle!!", $msg['authperso_form_titre_edit'], $authperso_form);
$authperso_form = str_replace("!!delete!!", "", $authperso_form);
$authperso_form = str_replace("!!remplace!!", $button_remplace, $authperso_form);
$authperso_form = str_replace("!!voir_notices!!", $button_voir, $authperso_form);
$authperso_form = str_replace("!!audit_bt!!", $bouton_audit, $authperso_form);
}
$authperso_form = str_replace("!!action!!", "./autorites.php?categ=authperso&sub=update&id_authperso=".$this->id."&id=$id", $authperso_form);
$authperso_form = str_replace("!!id_authperso!!", $this->id, $authperso_form);
$authperso_form = str_replace("!!id!!", $id, $authperso_form);
$authperso_form = str_replace("!!page!!", $page, $authperso_form);
$authperso_form = str_replace("!!nbr_lignes!!", $nbr_lignes, $authperso_form);
$authperso_form = str_replace("!!user_input!!",htmlentities(stripslashes($user_input),ENT_QUOTES, $charset),$authperso_form);
$authperso_form = str_replace('!!user_input_url!!', rawurlencode(stripslashes($user_input)),$authperso_form);
return $authperso_form;
}
function get_form_select($id,$base_url) {
global $msg,$charset,$authperso_form_select;
global $user_query, $user_input,$page,$nbr_lignes;
global $pmb_type_audit;
global $thesaurus_concepts_active;
$p_perso=new custom_parametres_perso("authperso","authperso",$this->id,"./autorites.php?categ=authperso&sub=update&id_authperso=".$this->id,$option_navigation,$option_visibilite);
$authperso_fields=$p_perso->show_editable_fields($id);
$authperso_field_tpl="
!!aff!!
";
foreach($authperso_fields['FIELDS'] as $field){
//printr($field);
$field_tpl=$authperso_field_tpl;
$field_tpl = str_replace("!!titre!!", $field['TITRE'], $field_tpl);
$field_tpl = str_replace("!!aff!!", $field['AFF'], $field_tpl);
$tpl.=$field_tpl;
}
$button_remplace = "";
$button_voir = "";
if ($pmb_type_audit && $id)
$bouton_audit= " id + 1000)."&object_id=".$id."', 'audit_popup', 700, 500, -2, -2, 'scrollbars=yes, toolbar=no, dependent=yes, resizable=yes')\" title=\"".$msg['audit_button']."\" value=\"".$msg['audit_button']."\" /> ";
$aut_link= new aut_link($this->id+1000,$id);
$authperso_form_select = str_replace('', $aut_link->get_form('saisie_authperso') , $authperso_form_select);
// Indexation concept
if($thesaurus_concepts_active == 1){
$index_concept = new index_concept($id, TYPE_AUTHPERSO);
$authperso_form_select = str_replace('', $index_concept->get_form('saisie_authperso'), $authperso_form_select);
}
$authperso_form_select = str_replace("!!libelle!!", $msg['authperso_form_titre_new'], $authperso_form_select);
$authperso_form_select = str_replace("!!list_field!!", $tpl, $authperso_form_select);
$authperso_form_select = str_replace("!!retour!!", "$base_url&action=", $authperso_form_select);
$authperso_form_select = str_replace("!!action!!", "$base_url&action=update", $authperso_form_select);
$authperso_form_select = str_replace("!!id_authperso!!", $this->id, $authperso_form_select);
$authperso_form_select = str_replace("!!id!!", $id, $authperso_form_select);
return $authperso_form_select;
}
function update_from_form($id=0) {
global $dbh;
global $thesaurus_concepts_active;
$id+=0;
if(!$id){
$requete="insert into authperso_authorities set authperso_authority_authperso_num=".$this->id;
pmb_mysql_query($requete);
$id = pmb_mysql_insert_id($dbh);
audit::insert_creation ($this->id+1000,$id);
}else{
audit::insert_modif ($this->id+1000,$id);
}
if(!$id) return;
$p_perso=new custom_parametres_perso("authperso","authperso",$this->id);
$p_perso->rec_fields_perso($id);
$aut_link= new aut_link($this->id+1000,$id);
$aut_link->save_form();
// Indexation concepts
if($thesaurus_concepts_active == 1){
$index_concept = new index_concept($id, TYPE_AUTHPERSO);
$index_concept->save();
}
$this->update_global_index($id);
}
function update_global_index($id){
global $dbh;
$p_perso=new custom_parametres_perso("authperso","authperso",$this->id);
$mots_perso=$p_perso->get_fields_recherche($id);
if($mots_perso) {
$infos_global.= $mots_perso.' ';
$infos_global_index.= strip_empty_words($mots_perso).' ';
}
$req = "update authperso_authorities set authperso_infos_global='".addslashes($infos_global)."', authperso_index_infos_global='".addslashes(' '.$infos_global_index)."' where id_authperso_authority=$id";
pmb_mysql_query($req,$dbh);
}
function reindex_all(){
global $dbh;
$req = "select id_authperso_authority from authperso_authorities";
$res = pmb_mysql_query($req,$dbh);
while($fiche = pmb_mysql_fetch_object($res)){
$this->update_global_index($fiche->id_authperso_authority);
}
}
function delete($id) {
global $dbh;
$p_perso=new custom_parametres_perso("authperso","authperso",$this->id);
$p_perso->delete_values($id);
// nettoyage indexation concepts
$index_concept = new index_concept($id, TYPE_AUTHPERSO);
$index_concept->delete();
$req="DELETE FROM authperso_authorities where id_authperso_authority=". $id;
$resultat=pmb_mysql_query($req);
audit::delete_audit($this->id+1000,$id);
}
function replace_form($id) {
global $authperso_replace;
global $msg;
global $include_path;
if(!$id ) {
require_once("$include_path/user_error.inc.php");
error_message($msg[161], $msg[162], 1, './autorites.php?categ=authperso&sub=&id=');
return;
}
$authperso_replace=str_replace('!!old_authperso_libelle!!', $this->get_isbd($id), $authperso_replace);
$authperso_replace=str_replace('!!id!!', $id, $authperso_replace);
$authperso_replace=str_replace('!!id_authperso!!', $this->id, $authperso_replace);
return $authperso_replace;
}
function replace($id,$by,$link_save=0) {
global $msg;
global $dbh;
global $pmb_synchro_rdf;
if (($id == $by) || (!$id) || (!$by)) return $msg[223];
$aut_link= new aut_link($this->id+1000,$id);
// "Conserver les liens entre autorités" est demandé
if($link_save) {
// liens entre autorités
$aut_link->add_link_to($this->id +1000,$by);
}
$aut_link->delete();
// remplacement dans les notices
$requete = "UPDATE notices_authperso SET notice_authperso_authority_num='$by' WHERE notice_authperso_authority_num='$id' ";
@pmb_mysql_query($requete, $dbh);
// effacement de
$this->delete($id);
}
function import($data) {
global $dbh;
// to do
}
function get_ajax_list($user_input){
global $dbh;
$values=array();
$search_word = str_replace('*','%',$user_input);
$req = "select * from authperso_authorities where ( authperso_infos_global like ' ".addslashes($search_word)."%' or authperso_index_infos_global like ' ".addslashes($user_input)."%' ) and authperso_authority_authperso_num= ".$this->id;
$req .= " order by authperso_index_infos_global limit 20";
$res = pmb_mysql_query($req,$dbh);
while(($r=pmb_mysql_fetch_object($res))) {
$values[$r->id_authperso_authority]=$this->get_isbd($r->id_authperso_authority);
}
return($values);
}
} //authperso class end
class authpersos {
var $info=array();
function authpersos() {
$this->fetch_data();
}
function fetch_data() {
global $PMBuserid;
$this->info=array();
$i=0;
$req="select * from authperso ";
$resultat=pmb_mysql_query($req);
if (pmb_mysql_num_rows($resultat)) {
while($r=pmb_mysql_fetch_object($resultat)){
// $this->info[$i]= new authperso($r->id_authperso);
$authperso= new authperso($r->id_authperso);
$this->info[$r->id_authperso]=$authperso->get_data();
$i++;
}
}
}
function get_data(){
return($this->info);
}
function get_all_index_fields(){
$index_fields=array();
$req="select id_authperso from authperso ";
$resultat=pmb_mysql_query($req);
if (pmb_mysql_num_rows($resultat)) {
while($r=pmb_mysql_fetch_object($resultat)){
$index_fields[]=$r->id_authperso;
}
}
return $index_fields;
}
function get_onglet_list() {
$onglets=array();
foreach($this->info as $elt){
if($elt['onglet_num'])
$onglets[$elt['onglet_num']][]=$elt;
}
return $onglets;
}
function get_menu() {
global $authperso_list_tpl,$authperso_list_line_tpl,$msg;
$line_tpl="!!name!!";
foreach($this->info as $elt){
$tpl_elt=$line_tpl;
$tpl_elt=str_replace('!!name!!',$elt['name'], $tpl_elt);
$tpl_elt=str_replace('!!id_authperso!!',$elt['id'], $tpl_elt);
$tpl_list.=$tpl_elt;
}
return $tpl_list;
}
} // authpersos class end