action== 'list_selector' && $params->parent_id != 0){ // //dans le cas des concepts, on veut le parent // $elements = $controler->get_hierarchized_list($controler->get_class_uri($params->element),$params); // }else{ // switch($params->action){ // case "search" : // $elements = $controler->get_searched_list($params); // break; // case "list" : // $elements = $controler->get_hierarchized_list($controler->get_class_uri($params->sub),$params); // break; // default : // $elements = parent::get_list_from_controler($controler,$params); // break; // } // } // //@todo : ajouter une factory pour déterminer quelle liste remonter? // if($this->) // return $elements; // } /** * Construit et retourne le selecteur de schema * * @param onto_common_controler $controler * @param onto_param $params * @param bool $empty * @param string $onchange * @param string $name * @param string $id * * @return string $selector */ public static function get_scheme_list_selector($controler,$params,$empty=false,$onchange='',$name='',$id=''){ global $msg,$charset,$lang,$base_path,$ontology_tpl; if($params->action=='list_selector'){ $list=$controler->get_scheme_list(); if($params->unique_scheme && $params->concept_scheme != -1){ return ""; } $selector_options = ''; $option=''; // Ajout de l'option "Tous les concepts" $option = $ontology_tpl['scheme_radio_selector']; $option = str_replace("!!scheme_list_selector_options_value!!",'-1' , $option); $option = str_replace("!!scheme_list_selector_options_label!!", $msg["onto_skos_concept_all_concepts"], $option); $option = str_replace("!!scheme_list_selector_name!!",$name , $option); $option = str_replace("!!scheme_list_selector_onchange!!", $onchange , $option); $selected=''; if($params->concept_scheme == -1){ $selected='checked'; } $option= str_replace("!!scheme_list_selector_options_selected!!", $selected, $option); $selector_options.=$option; // Ajout de l'option "Sans schéma" $option = $ontology_tpl['scheme_radio_selector']; $option = str_replace("!!scheme_list_selector_options_value!!",'0' , $option); $option = str_replace("!!scheme_list_selector_options_label!!", $msg["onto_skos_concept_no_scheme"], $option); $option = str_replace("!!scheme_list_selector_name!!",$name , $option); $option = str_replace("!!scheme_list_selector_onchange!!", $onchange , $option); $selected=''; if($params->concept_scheme == 0){ $selected = 'checked'; } $option = str_replace("!!scheme_list_selector_options_selected!!", $selected, $option); $selector_options.= $option; foreach($list['elements'] as $uri=>$scheme){ $option = $ontology_tpl['scheme_radio_selector']; $scheme_id = onto_common_uri::get_id($uri); $selected = ''; if($scheme_id==$params->concept_scheme){ $selected = 'checked'; } if(isset($scheme[$lang]) && $scheme[$lang] != ''){ $display_label = $scheme[$lang]; }else{ $display_label = $scheme['default']; } $option = str_replace("!!scheme_list_selector_name!!", $name , $option); $option = str_replace("!!scheme_list_selector_onchange!!", $onchange , $option); $option = str_replace("!!scheme_list_selector_options_selected!!", $selected , $option); $option = str_replace("!!scheme_list_selector_options_value!!", $scheme_id , $option); $option = str_replace("!!scheme_list_selector_options_label!!", htmlentities($display_label, ENT_QUOTES, $charset) , $option); $selector_options.= $option; } return $selector_options; }else{ $selector=$ontology_tpl['scheme_list_selector']; $selector = str_replace("!!scheme_list_selector_onchange!!",$onchange , $selector); $selector = str_replace("!!scheme_list_selector_name!!",$name , $selector); $selector = str_replace("!!scheme_list_selector_id!!",$id , $selector); $list=$controler->get_scheme_list(); if(isset($params->unique_scheme) && $params->unique_scheme && $params->concept_scheme !=-1){ return ""; } $selector_options=''; $option=''; // Ajout de l'option "Tous les concepts" $option=$ontology_tpl['scheme_list_selector_option']; $option= str_replace("!!scheme_list_selector_options_value!!",'-1' , $option); $option= str_replace("!!scheme_list_selector_options_label!!", $msg["onto_skos_concept_all_concepts"], $option); $selected=''; if($params->concept_scheme == -1){ $selected='selected="selected"'; } $option= str_replace("!!scheme_list_selector_options_selected!!", $selected, $option); $selector_options.=$option; // Ajout de l'option "Sans schéma" $option=$ontology_tpl['scheme_list_selector_option']; $option= str_replace("!!scheme_list_selector_options_value!!",'0' , $option); $option= str_replace("!!scheme_list_selector_options_label!!", $msg["onto_skos_concept_no_scheme"], $option); $selected=''; if($params->concept_scheme == 0){ $selected='selected="selected"'; } $option= str_replace("!!scheme_list_selector_options_selected!!", $selected, $option); $selector_options.=$option; foreach($list['elements'] as $uri=>$scheme){ $option=$ontology_tpl['scheme_list_selector_option']; $scheme_id=onto_common_uri::get_id($uri); $selected=''; if($scheme_id==$params->concept_scheme){ $selected='selected="selected"'; } if(isset($scheme[$lang]) && $scheme[$lang]!=''){ $display_label=$scheme[$lang]; }else{ $display_label=$scheme['default']; } $option= str_replace("!!scheme_list_selector_options_selected!!",$selected , $option); $option= str_replace("!!scheme_list_selector_options_value!!",$scheme_id , $option); $option= str_replace("!!scheme_list_selector_options_label!!",htmlentities($display_label,ENT_QUOTES,$charset) , $option); $selector_options.=$option; } $selector = str_replace("!!scheme_list_selector_options!!",$selector_options , $selector); return $selector; } } /** * Renvoie la construction du fil de navigation * * @param onto_common_controler $controler * @param onto_param $params * * @return string return */ public static function get_breadcrumb($controler,$params){ global $base_path; $breadcrumb=$controler->handle_breadcrumb(); $return=''; if(is_array($breadcrumb) && count($breadcrumb)) { foreach($breadcrumb as $key=>$parent_id){ if($return){ $return.=' > '; } $return.="".$controler->get_data_label(onto_common_uri::get_uri($parent_id)).''; } } return $return; } /** * Renvoie le formulaire de recherche dans les concepts * * @param onto_common_controler $controler * @param onto_param $params * * @return string $form */ public static function get_search_form($controler,$params){ global $msg,$charset,$base_path,$ontology_tpl, $authority_statut; $title = ''; $classes = $controler->get_classes(); foreach($classes as $class){ if($class->pmb_name == $params->sub){ $title.= $controler->get_label($class->pmb_name); } } $onchange_scheme_list_selector = ''; $name_scheme_list_selector = 'concept_scheme'; $id_scheme_list_selector = 'id_concept_scheme'; $form = $ontology_tpl['skos_concept_search_form']; $form = str_replace('!!skos_concept_search_form_action!!', $base_path.'/'.$controler->get_base_resource().'categ='.$params->categ.'&sub='.$params->sub.'&id=&action=search', $form); $form = str_replace('!!skos_concept_search_form_last_concepts_link!!', $base_path.'/'.$controler->get_base_resource().'categ='.$params->categ.'&sub='.$params->sub.'&id=&action=last', $form); $form = str_replace('!!skos_concept_search_form_title!!', $title, $form); $form = str_replace('', authorities_statuts::get_form_for(AUT_TABLE_CONCEPT, ($authority_statut+0), true), $form); $form = str_replace('!!skos_concept_search_form_selector!!', self::get_scheme_list_selector($controler, $params,false,$onchange_scheme_list_selector,$name_scheme_list_selector,$id_scheme_list_selector), $form); $onchange_only_top_concepts = ''; $checked_only_top_concepts = ''; if ($params->only_top_concepts) { $checked_only_top_concepts = 'checked="checked"'; } $form = str_replace('!!only_top_concepts_onchange!!', $onchange_only_top_concepts, $form); $form = str_replace('!!only_top_concepts_checked!!', $checked_only_top_concepts, $form); if(isset($msg['onto_'.$controler->get_onto_name().'_add_'.$params->sub])){ $add_msg = $msg['onto_'.$controler->get_onto_name().'_add_'.$params->sub]; }else{ $add_msg = sprintf($msg['onto_common_add'], $controler->get_label($params->sub)); } $form = str_replace('!!skos_concept_search_form_user_input!!',stripslashes(htmlentities($params->user_input,ENT_QUOTES,$charset)),$form); $form = str_replace('!!skos_concept_search_form_concept_onclick!!','document.location=\'./'.$controler->get_base_resource().'categ='.$params->categ.'&sub='.$params->sub.'&id=&action=edit&concept_scheme='.$params->concept_scheme.'&parent_id='.$params->parent_id.'\'', $form); $form = str_replace('!!skos_concept_search_form_concept_value!!',htmlentities($add_msg,ENT_QUOTES,$charset), $form); $form = str_replace('!!skos_concept_search_form_composed_onclick!!','document.location=\'./'.$controler->get_base_resource().'categ='.$params->categ.'&sub='.$params->sub.'&id=&action=edit&composed=composed&concept_scheme='.$params->concept_scheme.'&parent_id='.$params->parent_id.'\'', $form); $form = str_replace('!!skos_concept_search_form_href!!', $base_path.'/'.$controler->get_base_resource().'categ='.$params->categ.'&sub='.$params->sub.'&action='.$params->action.'&concept_scheme='.$params->concept_scheme, $form); $form = str_replace('!!skos_concept_search_form_breadcrumb!!', self::get_breadcrumb($controler,$params) ,$form); return $form; } /** * Renvoie l'affichage html de la liste hierarchisée * * @param onto_common_controler $controler * @param onto_param $params */ public static function get_list($controler,$params){ global $msg,$charset,$base_path,$ontology_tpl,$lang; global $authority_statut; global $concept_scheme; if ($params->action != 'last') { $elements = $controler->get_list_elements($params); } else { $elements = $controler->get_last_elements(); } $list="