id = $id*1; $this->num_object = $num_object*1; $this->type_object = $type_object*1; $this->get_datas(); $this->table_tempo = 'pperso_authorities'.md5(microtime(true)); $this->uid = 'authority_'.md5(microtime(true)); } public function get_datas() { if(!$this->id && $this->num_object && $this->type_object) { $query = "select id_authority, num_statut, authorities_statut_label, authorities_statut_class_html, thumbnail_url from authorities join authorities_statuts on authorities_statuts.id_authorities_statut = authorities.num_statut where num_object=".$this->num_object." and type_object=".$this->type_object; $result = pmb_mysql_query($query); if($result) { if(pmb_mysql_num_rows($result)) { $row = pmb_mysql_fetch_object($result); $this->id = $row->id_authority; $this->num_statut = $row->num_statut; $this->statut_label = $row->authorities_statut_label; $this->statut_class_html = $row->authorities_statut_class_html; $this->thumbnail_url = $row->thumbnail_url; } else { $query = "insert into authorities(id_authority, num_object, type_object) values (0, ".$this->num_object.", ".$this->type_object.")"; pmb_mysql_query($query); $this->id = pmb_mysql_insert_id(); $this->num_statut = 1; $this->statut_label = ''; $this->statut_class_html = 'statutnot1'; } } } else if ($this->id) { $query = "select num_object, type_object, num_statut, authorities_statut_label, authorities_statut_class_html, thumbnail_url from authorities join authorities_statuts on authorities_statuts.id_authorities_statut = authorities.num_statut where id_authority=".$this->id; $result = pmb_mysql_query($query); if($result && pmb_mysql_num_rows($result)) { $row = pmb_mysql_fetch_object($result); $this->num_object = $row->num_object; $this->type_object = $row->type_object; $this->num_statut = $row->num_statut; $this->statut_label = $row->authorities_statut_label; $this->statut_class_html = $row->authorities_statut_class_html; $this->thumbnail_url = $row->thumbnail_url; } } } public function get_id() { return $this->id; } public function get_num_object() { return $this->num_object; } public function get_num_statut() { return $this->num_statut; } public function get_statut_label() { return $this->statut_label; } public function get_statut_class_html() { return $this->statut_class_html; } public function get_display_statut_class_html() { global $charset, $base_path; return "id."'); z.style.display=''; \" onmouseout=\"z=document.getElementById('zoom_statut".$this->id."'); z.style.display='none'; \"> "; } public function set_num_statut($num_statut) { $num_statut += 0; if(!$num_statut){ $num_statut = 1; }else{ $query = "select id_authorities_statut from authorities_statuts where id_authorities_statut=".$num_statut; $result = pmb_mysql_query($query); if(!pmb_mysql_num_rows($result)){ $num_statut = 1; } } $this->num_statut = $num_statut; } public function update() { global $msg; if($this->num_object && $this->type_object) { $query = "update authorities set num_statut='".$this->num_statut."', thumbnail_url = '".addslashes($this->thumbnail_url)."' where num_object=".$this->num_object." and type_object=".$this->type_object; $result = pmb_mysql_query($query); if($result) { return true; } else { return false; } } } public function get_type_object() { return $this->type_object; } public function get_string_type_object() { if (!$this->string_type_object) { switch ($this->type_object) { case AUT_TABLE_AUTHORS : $this->string_type_object = 'author'; break; case AUT_TABLE_CATEG : $this->string_type_object = 'category'; break; case AUT_TABLE_PUBLISHERS : $this->string_type_object = 'publisher'; break; case AUT_TABLE_COLLECTIONS : $this->string_type_object = 'collection'; break; case AUT_TABLE_SUB_COLLECTIONS : $this->string_type_object = 'subcollection'; break; case AUT_TABLE_SERIES : $this->string_type_object = 'serie'; break; case AUT_TABLE_TITRES_UNIFORMES : $this->string_type_object = 'titre_uniforme'; break; case AUT_TABLE_INDEXINT : $this->string_type_object = 'indexint'; break; case AUT_TABLE_CONCEPT : $this->string_type_object = 'concept'; break; case AUT_TABLE_AUTHPERSO : $this->string_type_object = 'authperso'; break; } } return $this->string_type_object; } public function delete() { //Suppression de la vignette de l'autorité si il y en a une d'uploadée thumbnail::delete($this->id, 'authority'); $query = "delete from authorities where num_object=".$this->num_object." and type_object=".$this->type_object; $result = pmb_mysql_query($query); if($result) { return true; } else { return false; } } public function get_object_instance($params = array()) { return authorities_collection::get_authority($this->type_object, $this->num_object, $params); } public function __get($name) { $return = $this->look_for_attribute_in_class($this, $name); if (!$return) { $return = $this->look_for_attribute_in_class($this->get_object_instance(), $name); } return $return; } public function lookup($name,$context) { $value = null; if(strpos($name,":authority.")!==false){ $property = str_replace(":authority.","",$name); $value = $this->generic_lookup($this, $property); if(!$value){ $value = $this->generic_lookup($this->get_object_instance(), $property); } } else if (strpos($name,":aut_link.")!==false){ $this->init_autlink_class(); $property = str_replace(":aut_link.","",$name); $value = $this->generic_lookup($this->autlink_class, $property); } else { $attributes = explode('.', $name); // On regarde si on a directement une instance d'objet, dans le cas des boucles for if (is_object($obj = $context->getVariable(substr($attributes[0], 1))) && (count($attributes) > 1)) { $value = $obj; $property = str_replace($attributes[0].'.', '', $name); $value = $this->generic_lookup($value, $property); } } if(!$value){ $value = null; } return $value; } private function generic_lookup($obj,$property){ $attributes = explode(".",$property); for($i=0 ; $ilook_for_attribute_in_class($obj, $attributes[$i]); } else{ $obj = null; break; } } return $obj; } private function look_for_attribute_in_class($class, $attribute, $parameters = array()) { if (is_object($class) && isset($class->{$attribute})) { return $class->{$attribute}; } else if (method_exists($class, $attribute)) { return call_user_func_array(array($class, $attribute), $parameters); } else if (method_exists($class, "get_".$attribute)) { return call_user_func_array(array($class, "get_".$attribute), $parameters); } else if (method_exists($class, "is_".$attribute)) { return call_user_func_array(array($class, "is_".$attribute), $parameters); } return null; } public function render($context=array()){ $template_path = "./includes/templates/authorities/".$this->get_string_type_object().".html"; if(file_exists("./includes/templates/authorities/".$this->get_string_type_object()."_subst.html")){ $template_path = "./includes/templates/authorities/".$this->get_string_type_object()."_subst.html"; } if(file_exists($template_path)){ $h2o = new H2o($template_path); $h2o->addLookup(array($this,"lookup")); $this->init_autlink_class(); $h2o->set('aut_link', $this->autlink_class); echo $h2o->render($context); } } /** * Retourn la classe d'affichage des éléments des onglets * @return elements_list_ui */ public function get_authority_list_ui(){ global $quoi; if(!$this->authority_list_ui){ $tab = null; foreach($this->authority_tabs->get_tabs() as $current_tab){ if (!$tab && $current_tab->get_nb_results()) { $tab = $current_tab; } if(($current_tab->get_name() == $quoi) && $current_tab->get_nb_results()){ $tab = $current_tab; break; } } if ($tab) { $quoi = $tab->get_name(); switch($tab->get_content_type()){ case 'records': $this->authority_list_ui = new elements_records_list_ui($tab->get_contents(), $tab->get_nb_results(), $tab->is_mixed(), $tab->get_groups(), $tab->get_nb_filtered_results()); break; case 'authorities': $this->authority_list_ui = new elements_authorities_list_ui($tab->get_contents(), $tab->get_nb_results(), $tab->is_mixed(), $tab->get_groups(), $tab->get_nb_filtered_results()); break; case 'docnums': $this->authority_list_ui = new elements_docnums_list_ui($tab->get_contents(), $tab->get_nb_results(), $tab->is_mixed(), $tab->get_groups(), $tab->get_nb_filtered_results()); break; case 'sections': $this->authority_list_ui = new elements_cms_editorial_sections_list_ui($tab->get_contents(), $tab->get_nb_results(), $tab->is_mixed(), $tab->get_groups(), $tab->get_nb_filtered_results()); break; case 'articles': $this->authority_list_ui = new elements_cms_editorial_articles_list_ui($tab->get_contents(), $tab->get_nb_results(), $tab->is_mixed(), $tab->get_groups(), $tab->get_nb_filtered_results()); break; case 'graph': $this->authority_list_ui = new elements_graph_ui($tab->get_contents(), $tab->get_nb_results(), $tab->is_mixed()); break; } } } return $this->authority_list_ui; } private function init_autlink_class(){ if(!$this->autlink_class){ if ($this->type_object == AUT_TABLE_AUTHPERSO) { $query = "select authperso_authority_authperso_num from authperso_authorities where id_authperso_authority= ".$this->num_object; $result = pmb_mysql_query($query); if($result && pmb_mysql_num_rows($result)){ $row = pmb_mysql_fetch_object($result); $this->autlink_class = new aut_link($row->authperso_authority_authperso_num+1000, $this->num_object); } } else { $this->autlink_class = new aut_link($this->type_object, $this->num_object); } } } public function get_indexing_concepts(){ $concepts_list = new skos_concepts_list(); switch($this->type_object){ case AUT_TABLE_AUTHORS : if ($concepts_list->set_concepts_from_object(TYPE_AUTHOR, $this->num_object)) { return $concepts_list->get_concepts(); } break; case AUT_TABLE_PUBLISHERS : if ($concepts_list->set_concepts_from_object(TYPE_PUBLISHER, $this->num_object)) { return $concepts_list->get_concepts(); } break; case AUT_TABLE_COLLECTIONS : if ($concepts_list->set_concepts_from_object(TYPE_COLLECTION, $this->num_object)) { return $concepts_list->get_concepts(); } break; case AUT_TABLE_SUB_COLLECTIONS : if ($concepts_list->set_concepts_from_object(TYPE_SUBCOLLECTION, $this->num_object)) { return $concepts_list->get_concepts(); } break; case AUT_TABLE_SERIES : if ($concepts_list->set_concepts_from_object(TYPE_SERIE, $this->num_object)) { return $concepts_list->get_concepts(); } break; case AUT_TABLE_INDEXINT : if ($concepts_list->set_concepts_from_object(TYPE_INDEXINT, $this->num_object)) { return $concepts_list->get_concepts(); } break; case AUT_TABLE_TITRES_UNIFORMES : if ($concepts_list->set_concepts_from_object(TYPE_TITRE_UNIFORME, $this->num_object)) { return $concepts_list->get_concepts(); } break; case AUT_TABLE_CATEG : if ($concepts_list->set_concepts_from_object(TYPE_CATEGORY, $this->num_object)) { return $concepts_list->get_concepts(); } break; case AUT_TABLE_AUTHPERSO : if ($concepts_list->set_concepts_from_object(TYPE_AUTHPERSO, $this->num_object)) { return $concepts_list->get_concepts(); } break; } return null; } public function set_authority_tabs($authority_tabs) { $this->authority_tabs = $authority_tabs; } public function get_authority_tabs() { return $this->authority_tabs; } public function get_type_label(){ if (!$this->type_label) { if ($this->get_type_object() != AUT_TABLE_AUTHPERSO) { $this->type_label = self::get_type_label_from_type_id($this->get_type_object()); }elseif($this->get_type_object() == AUT_TABLE_AUTHPERSO) { $auth_datas = $this->get_object_instance()->get_data(); $this->type_label = $auth_datas['authperso']['name']; } else { $auth_datas = $this->get_object_instance()->get_data(); $this->type_label = $auth_datas['name']; } } return $this->type_label; } public static function get_type_label_from_type_id($type_id) { global $msg; switch($type_id){ case AUT_TABLE_AUTHORS : return $msg['isbd_author']; case AUT_TABLE_PUBLISHERS : return $msg['isbd_editeur']; case AUT_TABLE_COLLECTIONS : return $msg['isbd_collection']; case AUT_TABLE_SUB_COLLECTIONS : return $msg['isbd_subcollection']; case AUT_TABLE_SERIES : return $msg['isbd_serie']; case AUT_TABLE_INDEXINT : return $msg['isbd_indexint']; case AUT_TABLE_TITRES_UNIFORMES : return $msg['isbd_titre_uniforme']; case AUT_TABLE_CATEG : return $msg['isbd_categories']; case AUT_TABLE_CONCEPT : return $msg['concept_menu']; } } /** * Retourne les paramètres persos * @return array */ public function get_p_perso() { if (!$this->p_perso) { $this->p_perso = array(); if($this->get_type_object() != AUT_TABLE_CONCEPT){ $parametres_perso = new parametres_perso($this->get_prefix_for_pperso()); $ppersos = $parametres_perso->show_fields($this->num_object); if(isset($ppersos['FIELDS']) && is_array($ppersos['FIELDS'])){ foreach ($ppersos['FIELDS'] as $pperso) { $this->p_perso[] = $pperso; } } } } return $this->p_perso; } public function get_prefix_for_pperso(){ switch($this->get_type_object()){ case AUT_TABLE_CATEG: return 'categ'; case AUT_TABLE_TITRES_UNIFORMES: return 'tu'; default : return $this->get_string_type_object(); } } public function get_audit_type() { if (!$this->audit_type) { switch ($this->type_object) { case AUT_TABLE_AUTHORS : $this->audit_type = AUDIT_AUTHOR; break; case AUT_TABLE_CATEG : $this->audit_type = AUDIT_CATEG; break; case AUT_TABLE_PUBLISHERS : $this->audit_type = AUDIT_PUBLISHER; break; case AUT_TABLE_COLLECTIONS : $this->audit_type = AUDIT_COLLECTION; break; case AUT_TABLE_SUB_COLLECTIONS : $this->audit_type = AUDIT_SUB_COLLECTION; break; case AUT_TABLE_SERIES : $this->audit_type = AUDIT_SERIE; break; case AUT_TABLE_TITRES_UNIFORMES : $this->audit_type = AUDIT_TITRE_UNIFORME; break; case AUT_TABLE_INDEXINT : $this->audit_type = AUDIT_INDEXINT; break; case AUT_TABLE_CONCEPT : $this->audit_type = AUDIT_CONCEPT; break; case AUT_TABLE_AUTHPERSO : $req="select authperso_authority_authperso_num from authperso_authorities,authperso where id_authperso=authperso_authority_authperso_num and id_authperso_authority=". $this->num_object; $res = pmb_mysql_query($req); if(($r=pmb_mysql_fetch_object($res))) { $this->audit_type=($r->authperso_authority_authperso_num + 1000); } break; } } return $this->audit_type; } public function get_special() { global $include_path; $special_file = $include_path.'/templates/authorities/special/authority_special.class.php'; if (file_exists($special_file)) { require_once($special_file); return new authority_special($this); } return null; } public function get_mapping_profiles(){ $returnedDatas = array(); switch($this->type_object){ case AUT_TABLE_AUTHORS : break; case AUT_TABLE_CATEG : break; case AUT_TABLE_PUBLISHERS : break; case AUT_TABLE_COLLECTIONS : break; case AUT_TABLE_SUB_COLLECTIONS : break; case AUT_TABLE_SERIES : break; case AUT_TABLE_TITRES_UNIFORMES : $mapper = form_mapper::getMapper('tu'); break; case AUT_TABLE_INDEXINT : break; case AUT_TABLE_CONCEPT : break; case AUT_TABLE_AUTHPERSO : break; } if($mapper){ $mapper->setId($this->num_object); $destinations = $mapper->getDestinations(); foreach($destinations as $dest){ $profile = $mapper->getProfiles($dest); if($profile){ $returnedDatas[] = $profile; } } } return $returnedDatas; } /** * Renvoie le tableau des identifiants de concepts composés utilisant cette autorité * @return array */ public function get_concepts_ids() { if (!isset($this->concepts_ids)) { $this->concepts_ids = array(); $vedette_composee_found = vedette_composee::get_vedettes_built_with_element($this->get_num_object(), $this->get_string_type_object()); foreach($vedette_composee_found as $vedette_id){ // toutes les vedettes composées ne sont pas des concepts if($concepts_id = vedette_composee::get_object_id_from_vedette_id($vedette_id, TYPE_CONCEPT_PREFLABEL)) { $this->concepts_ids[] = $concepts_id; } } } return $this->concepts_ids; } /** * Renvoie le tableau des identifiants de notices utilisant cette autorité comme vedette * @return array */ public function get_records_ids() { if (!isset($this->records_ids)) { $this->records_ids = array(); $vedette_composee_found = vedette_composee::get_vedettes_built_with_element($this->get_num_object(), $this->get_string_type_object()); foreach($vedette_composee_found as $vedette_id){ if($record_id = vedette_composee::get_object_id_from_vedette_id($vedette_id, TYPE_NOTICE_RESPONSABILITY_PRINCIPAL)) { $this->records_ids[] = $record_id; } if($record_id = vedette_composee::get_object_id_from_vedette_id($vedette_id, TYPE_NOTICE_RESPONSABILITY_AUTRE)) { $this->records_ids[] = $record_id; } if($record_id = vedette_composee::get_object_id_from_vedette_id($vedette_id, TYPE_NOTICE_RESPONSABILITY_SECONDAIRE)) { $this->records_ids[] = $record_id; } } $this->records_ids = array_unique($this->records_ids); } return $this->records_ids; } /** * Renvoie le tableau des identifiants d'oeuvres utilisant cette autorité comme vedette * @return array */ public function get_tus_ids() { if (!isset($this->tus_ids)) { $this->tus_ids = array(); $vedette_composee_found = vedette_composee::get_vedettes_built_with_element($this->get_num_object(), $this->get_string_type_object()); foreach($vedette_composee_found as $vedette_id){ if($tu_id = vedette_composee::get_object_id_from_vedette_id($vedette_id, TYPE_TU_RESPONSABILITY)) { $this->tus_ids[] = $tu_id; } if($tu_id = vedette_composee::get_object_id_from_vedette_id($vedette_id, TYPE_TU_RESPONSABILITY_INTERPRETER)) { $this->tus_ids[] = $tu_id; } } $this->tus_ids = array_unique($this->tus_ids); } return $this->tus_ids; } public function get_type_icon() { if (!isset($this->type_icon)) { $this->type_icon = './images/authorities/'.$this->get_string_type_object().'_icon.png'; } return $this->type_icon; } public static function get_indexation_directory($const) { $indexation_directory = ""; switch ($const) { case AUT_TABLE_AUTHORS : $indexation_directory = "authors"; break; case AUT_TABLE_CATEG : $indexation_directory = "categories"; break; case AUT_TABLE_PUBLISHERS : $indexation_directory = "publishers"; break; case AUT_TABLE_COLLECTIONS : $indexation_directory = "collections"; break; case AUT_TABLE_SUB_COLLECTIONS : $indexation_directory = "subcollections"; break; case AUT_TABLE_SERIES : $indexation_directory = "series"; break; case AUT_TABLE_TITRES_UNIFORMES : $indexation_directory = "titres_uniformes"; break; case AUT_TABLE_INDEXINT : $indexation_directory = "indexint"; break; case AUT_TABLE_CONCEPT : $indexation_directory = "concepts"; break; case AUT_TABLE_AUTHPERSO : $indexation_directory = "authperso"; break; } return $indexation_directory; } public function get_used_in_pperso_authorities() { global $dbh; if (!isset($this->used_in_pperso_authorities)) { $this->used_in_pperso_authorities=aut_pperso::get_used($this->type_object, $this->num_object,$this->table_tempo); } return $this->used_in_pperso_authorities; } public function get_used_in_pperso_authorities_ids($prefix) { global $dbh; switch($prefix){ case 'article':$type_object=20; break; case 'section':$type_object=21; break; case 'notices': $type_object=50; break; case 'author': $type_object=AUT_TABLE_AUTHORS; break; case 'authperso': $type_object=AUT_TABLE_AUTHPERSO; break; case 'categ': $type_object=AUT_TABLE_CATEG; break; case 'collection': $type_object=AUT_TABLE_COLLECTIONS; break; case 'indexint': $type_object=AUT_TABLE_INDEXINT; break; case 'publisher': $type_object=AUT_TABLE_PUBLISHERS; break; case 'serie': $type_object=AUT_TABLE_SERIES; break; case 'subcollection': $type_object=AUT_TABLE_SUB_COLLECTIONS; break; case 'tu': $type_object=AUT_TABLE_TITRES_UNIFORMES; break; default: return array(); } $ids=array(); $query= "SELECT distinct id from ".$this->table_tempo." where type_object = '".$type_object."' order by id"; $result = pmb_mysql_query($query); if(pmb_mysql_num_rows($result)){ while($row = pmb_mysql_fetch_object($result)){ $ids[]=$row->id; } } return $ids; } public static function get_const_type_object($string_type_object) { switch ($string_type_object) { case 'author': return AUT_TABLE_AUTHORS; case 'category': return AUT_TABLE_CATEG; case 'publisher' : return AUT_TABLE_PUBLISHERS; case 'collection' : return AUT_TABLE_COLLECTIONS; case 'subcollection' : return AUT_TABLE_SUB_COLLECTIONS; case 'serie': return AUT_TABLE_SERIES; case 'titre_uniforme' : return AUT_TABLE_TITRES_UNIFORMES; case 'indexint' : return AUT_TABLE_INDEXINT; case 'concept' : return AUT_TABLE_CONCEPT; case 'authperso' : return AUT_TABLE_AUTHPERSO; } } public function get_vedette_type(){ if (!$this->vedette_type) { switch ($this->type_object) { case AUT_TABLE_AUTHORS : $this->vedette_type = TYPE_AUTHOR; break; case AUT_TABLE_CATEG : $this->vedette_type = TYPE_CATEGORY; break; case AUT_TABLE_PUBLISHERS : $this->vedette_type = TYPE_PUBLISHER; break; case AUT_TABLE_COLLECTIONS : $this->vedette_type = TYPE_COLLECTION; break; case AUT_TABLE_SUB_COLLECTIONS : $this->vedette_type = TYPE_SUBCOLLECTION; break; case AUT_TABLE_SERIES : $this->vedette_type = TYPE_SERIE; break; case AUT_TABLE_TITRES_UNIFORMES : $this->vedette_type = TYPE_TITRE_UNIFORME; break; case AUT_TABLE_INDEXINT : $this->vedette_type = TYPE_INDEXINT; break; case AUT_TABLE_CONCEPT : $this->vedette_type = TYPE_CONCEPT_PREFLABEL; break; case AUT_TABLE_AUTHPERSO : $this->vedette_type = TYPE_AUTHPERSO; break; } } return $this->vedette_type; } public function get_uid() { return $this->uid; } public function get_authority_link(){ return './autorites.php?categ=see&sub='.$this->get_string_type_object().'&id='.$this->get_num_object(); } public function get_entity_type(){ return 'authority'; } public function get_caddie() { global $msg; $selector_prop = "toolbar=no, dependent=yes, width=500, height=400, resizable=yes, scrollbars=yes"; $cart_click = "onClick=\"openPopUp('./cart.php?object_type=".authorities_caddie::get_type_from_const($this->type_object)."&item=".$this->get_id()."', 'cart', 600, 700, -2, -2, '$selector_prop')\""; $cart_over_out = "onMouseOver=\"show_div_access_carts(event,".$this->get_id().", '".authorities_caddie::get_type_from_const($this->get_type_object())."');\" onMouseOut=\"set_flag_info_div(false);\""; return "basket"; } public function get_thumbnail_url() { return $this->thumbnail_url; } public function set_thumbnail_url($thumbnail_url) { $uploaded_thumbnail_url = thumbnail::create($this->get_id(), 'authority'); if($uploaded_thumbnail_url) { $this->thumbnail_url = $uploaded_thumbnail_url; } else { $this->thumbnail_url = $thumbnail_url; } } public function get_thumbnail() { return thumbnail::get_image('', $this->thumbnail_url); } public function get_icon_pointe_in_cart() { return $this->icon_pointe_in_cart; } public function set_icon_pointe_in_cart($icon_pointe_in_cart) { $this->icon_pointe_in_cart = $icon_pointe_in_cart; } public function get_icon_del_in_cart() { return $this->icon_del_in_cart; } public function set_icon_del_in_cart($icon_del_in_cart) { $this->icon_del_in_cart = $icon_del_in_cart; } public static function prefix_var_tree($tree,$prefix){ for($i=0 ; $i "id", 'desc' => $msg['1601'] ); $main_fields[] = array( 'var' => "num_object", 'desc' => $msg['cms_authority_format_data_db_id'] ); $main_fields[] = array( 'var' => "statut", 'desc' => $msg['authorities_statut_label'] ); $main_fields[] = array( 'var' => "thumbnail_url", 'desc' => $msg['notice_thumbnail_url'] ); // $main_fields[] = array( // 'var' => "thumbnail", // 'desc' => $msg[''] // ); //CP $type_object = $this->get_string_type_object(); switch ($type_object) { case 'titre_uniforme' : $parametres_perso = new parametres_perso('tu'); break; case 'category' : $parametres_perso = new parametres_perso('categ'); break; case 'authperso' : global $num_page; $frbr_page = new frbr_page($num_page); $parametres_perso = new custom_parametres_perso("authperso","authperso", $frbr_page->get_parameter_value('authperso')); break; default : $parametres_perso = new parametres_perso($type_object); break; } $main_fields[] = array( 'var' => "customs", 'desc' => $msg['authority_champs_perso'], 'children' => authority::prefix_var_tree($parametres_perso->get_format_data_structure(),"customs") ); $main_fields[] = array( 'var' => "concepts", 'desc' => $msg['ontology_skos_concept'], 'children' => authority::prefix_var_tree(skos_concept::get_format_data_structure(),"concepts[i]") ); //TODO Autorités liées //TODO Notices liées return $main_fields; } public function format_datas(){ $formatted_data = array( 'id' => $this->get_id(), 'num_object' => $this->get_num_object(), 'statut' => $this->get_statut_label(), 'thumbnail_url' => $this->get_thumbnail_url(), 'thumbnail' => $this->get_thumbnail() ); //CP $type_object = $this->get_string_type_object(); switch ($type_object) { case 'titre_uniforme' : $parametres_perso = new parametres_perso('tu'); break; case 'category' : $parametres_perso = new parametres_perso('categ'); break; case 'authperso' : $parametres_perso = new custom_parametres_perso("authperso","authperso", $this->get_object_instance()->info['authperso_num']); break; default : $parametres_perso = new parametres_perso($type_object); break; } $formatted_data['customs'] = $parametres_perso->get_out_values($this->get_num_object()); $skos_concept = new skos_concept($this->get_num_object()); $formatted_data['concepts'] = $skos_concept->format_datas(); //TODO Autorités liées //TODO Notices liées return $formatted_data; } public static function update_records_index($query, $datatype = 'all') { global $include_path; $notices_ids = array(); $found = pmb_mysql_query($query); while ( ($mesNotices = pmb_mysql_fetch_object($found)) ) { $notices_ids[] = $mesNotices->notice_id; } if(count($notices_ids)) { if(!isset(static::$indexation_record)) { static::$indexation_record = new indexation_record($include_path."/indexation/notices/champs_base.xml", 'notices'); } static::$indexation_record->delete_objects_index($notices_ids, $datatype); notice::set_deleted_index(true); foreach ($notices_ids as $notice_id) { notice::majNoticesGlobalIndex($notice_id); notice::majNoticesMotsGlobalIndex($notice_id, $datatype); } notice::set_deleted_index(false); } } public function get_isbd() { global $msg, $include_path; if (!empty($this->isbd)) { return $this->isbd; } $this->isbd = $this->get_object_instance()->get_isbd(); $template_path = ''; if (file_exists($include_path.'/templates/authorities/isbd/'.$this->get_string_type_object().'.html')) { $template_path = $include_path.'/templates/authorities/isbd/'.$this->get_string_type_object().'.html'; } if (file_exists($include_path.'/templates/authorities/isbd/'.$this->get_string_type_object().'_subst.html')) { $template_path = $include_path.'/templates/authorities/isbd/'.$this->get_string_type_object().'_subst.html'; } if($template_path){ $h2o = new H2o($template_path); $isbd = $h2o->render(array('authority' => $this)); $this->isbd = str_replace(array("\n", "\t", "\r"), '', strip_tags($isbd)); } return $this->isbd; } }