public static function get_form($item_uri, $property, $restrictions, $datas, $instance_name, $flag)
 {
     global $msg, $charset, $ontology_tpl, $lang, $composed;
     $object_id = onto_common_uri::get_id($item_uri);
     if ($object_id) {
         $vedette_id = vedette_link::get_vedette_id_from_object($object_id, TYPE_CONCEPT_PREFLABEL);
     } else {
         $vedette_id = 0;
     }
     $vedette_ui = new vedette_ui($vedette_id);
     $form = $ontology_tpl['skos_concept_card_ui_wrapper'];
     // Si on a une vedette composée, on ne veut pas de valeur dans les champs classiques
     if ($composed == 'composed' || $vedette_id) {
         $datas = array();
     }
     $form = str_replace("!!skos_concept_card_ui_parent_form!!", parent::get_form($item_uri, $property, $restrictions, $datas, $instance_name, $flag), $form);
     $form = str_replace("!!skos_concept_card_ui_derived_form!!", $vedette_ui->get_form($property, 0, $instance_name), $form);
     $form = str_replace("!!onto_row_label!!", htmlentities($property->label, ENT_QUOTES, $charset), $form);
     $form = str_replace("!!instance_name!!", htmlentities($instance_name, ENT_QUOTES, $charset), $form);
     $form = str_replace("!!property_name!!", htmlentities($property->pmb_name, ENT_QUOTES, $charset), $form);
     if ($composed == 'composed' || $vedette_id) {
         $form = str_replace("!!skos_concept_card_ui_btn_value!!", $msg['skos_concept_card_ui_btn_parent'], $form);
         $form = str_replace("!!skos_concept_card_ui_parent_visible!!", "style='display:none'", $form);
         $form = str_replace("!!skos_concept_card_ui_derived_visible!!", "", $form);
         $form = str_replace("!!is_composed!!", "composed", $form);
     } else {
         $form = str_replace("!!skos_concept_card_ui_btn_value!!", $msg['skos_concept_card_ui_btn_derived'], $form);
         $form = str_replace("!!skos_concept_card_ui_parent_visible!!", "", $form);
         $form = str_replace("!!skos_concept_card_ui_derived_visible!!", "style='display:none'", $form);
         $form = str_replace("!!is_composed!!", "", $form);
     }
     return $form;
 }
 public function get_db_id()
 {
     if (!$this->db_id) {
         $this->db_id = onto_common_uri::get_id($this->id);
     }
     return $this->db_id;
 }
Exemplo n.º 3
0
 public function get_form($prefix_url = "", $flag = "", $action = "save")
 {
     $form = parent::get_form($prefix_url, $flag, $action);
     if ($flag != "concept_selector_form") {
         $aut_link = new aut_link(AUT_TABLE_CONCEPT, onto_common_uri::get_id($this->get_uri()));
         $form = str_replace('<!-- aut_link -->', $aut_link->get_form(onto_common_uri::get_name_from_uri($this->get_uri(), $this->onto_class->pmb_name)), $form);
     } else {
         $form = str_replace('<!-- aut_link -->', "", $form);
     }
     return $form;
 }
 public function get_statut_id()
 {
     global $dbh;
     $query_statut = 'select num_statut from authorities where num_object = "' . onto_common_uri::get_id($this->get_uri()) . '" and type_object=' . AUT_TABLE_CONCEPT;
     $result = pmb_mysql_query($query_statut, $dbh);
     $statut = 1;
     if ($result) {
         $data = pmb_mysql_fetch_object($result);
         $statut = $data->num_statut;
     }
     return $statut;
 }
 /**
  * Renvoie l'affichage html de la liste
  *
  * @param onto_common_controler $controler
  * @param onto_param $params
  */
 public static function get_list($controler, $params)
 {
     global $msg, $charset, $ontology_tpl;
     $elements = $controler->get_list_elements($params);
     $list = $ontology_tpl['list'];
     $list = str_replace("!!list_header!!", htmlentities($msg['103'], ENT_QUOTES, $charset), $list);
     $list_content = '';
     foreach ($elements['elements'] as $uri => $item) {
         $line = $ontology_tpl['list_line'];
         $line = str_replace("!!list_line_href!!", './' . $controler->get_base_resource() . 'categ=' . $params->categ . '&sub=' . $params->sub . '&action=edit&id=' . onto_common_uri::get_id($uri), $line);
         $line = str_replace("!!list_line_libelle!!", htmlentities(isset($item[substr($lang, 0, 2)]) ? $item[substr($lang, 0, 2)] : $item['default'], ENT_QUOTES, $charset), $line);
         $list_content .= $line;
     }
     $list = str_replace("!!list_content!!", $list_content, $list);
     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));
     }
     $list = str_replace("!!list_onclick!!", 'document.location=\'./' . $controler->get_base_resource() . 'categ=' . $params->categ . '&sub=' . $params->sub . '&id=&action=edit\'', $list);
     $list = str_replace("!!list_value!!", htmlentities($add_msg, ENT_QUOTES, $charset), $list);
     $list = str_replace("!!list_pagination!!", aff_pagination("./" . $controler->get_base_resource() . "categ=" . $params->categ . "&sub=" . $params->sub . "&action=" . $params->action, $elements['nb_total_elements'], $elements['nb_onto_element_per_page'], $params->page, 10, true, true), $list);
     return $list;
 }
Exemplo n.º 6
0
 function save_form()
 {
     global $dbh;
     //max_aut_link
     //f_aut_link_typexxx
     //f_aut_link_tablexxx
     //f_aut_link_idxxx
     global $max_aut_link;
     global $include_path;
     if (!$this->aut_table && !$this->id) {
         return;
     }
     $this->delete_link();
     for ($i = 0; $i < $max_aut_link; $i++) {
         eval("global \$f_aut_link_table" . $i . ";\$f_aut_link_table= \$f_aut_link_table{$i};");
         eval("global \$f_aut_link_id" . $i . ";\$f_aut_link_id= \$f_aut_link_id{$i};");
         eval("global \$f_aut_link_type" . $i . ";\$f_aut_link_type= \$f_aut_link_type{$i};");
         eval("global \$f_aut_link_reciproc" . $i . ";\$f_aut_link_reciproc= \$f_aut_link_reciproc{$i};");
         eval("global \$f_aut_link_comment" . $i . ";\$f_aut_link_comment= \$f_aut_link_comment{$i};");
         // Les selecteurs de concept retourne l'uri et non id
         if ($f_aut_link_table == AUT_TABLE_CONCEPT && !is_numeric($f_aut_link_id)) {
             $f_aut_link_id = onto_common_uri::get_id($f_aut_link_id);
         }
         if ($f_aut_link_reciproc) {
             $f_aut_link_reciproc = 1;
         }
         if ($f_aut_link_id && $f_aut_link_table && $f_aut_link_type && !($this->aut_table == $f_aut_link_table && $this->id == $f_aut_link_id)) {
             $requete = "INSERT INTO aut_link (aut_link_from, aut_link_from_num, aut_link_to,aut_link_to_num , aut_link_type, aut_link_reciproc, aut_link_comment) \n\t \t\t\tVALUES ('" . $this->aut_table . "', '" . $this->id . "','" . $f_aut_link_table . "', '" . $f_aut_link_id . "', '" . $f_aut_link_type . "', '" . $f_aut_link_reciproc . "','" . $f_aut_link_comment . "')";
             pmb_mysql_query($requete);
         }
         if ($f_aut_link_reciproc) {
             $indexation_authority = new indexation_authority($include_path . "/indexation/authorities/titres_uniformes/champs_base.xml", "authorities", AUT_TABLE_TITRES_UNIFORMES);
             $indexation_authority->maj($f_aut_link_id, 'aut_link');
         }
     }
 }
Exemplo n.º 7
0
 public function get_classes_for_concepts()
 {
     global $lang;
     $classes = array();
     $this->init_ontostore();
     $query = "select * where {\n \t\t\t?useInConcept pmb_onto:useInConcept ?prop .\n\t\t\t?useInConcept rdf:type owl:Class .\n\t\t\t?useInConcept rdfs:label ?label .\n\t\t\t?useInConcept pmb:name ?pmbname\n \t\t}";
     if ($this->ontostore->query($query, $this->ontopmbnamespaces)) {
         $results = $this->ontostore->get_result();
         foreach ($results as $result) {
             $found = false;
             for ($i = 0; $i < count($classes); $i++) {
                 if ($classes[$i]['id'] == onto_common_uri::get_id($result->useInConcept)) {
                     $found = true;
                     if ($result->label_lang == substr($lang, 0, 2)) {
                         $classes[$i]['name'] = $result->label . " (" . $this->get_name() . ")";
                     }
                 }
             }
             if (!$found) {
                 $classes[] = array('ontology_id' => $this->get_id(), 'id' => onto_common_uri::get_id($result->useInConcept), 'name' => $result->label . " (" . $this->get_name() . ")", 'pmbname' => $result->pmbname);
             }
         }
     }
     return $classes;
 }
 public function set_vedette_element_from_database()
 {
     $ontology = new ontology($this->params['id_ontology']);
     $this->isbd = $ontology->get_instance_label(onto_common_uri::get_uri($this->id));
 }
Exemplo n.º 9
0
 function save_form()
 {
     global $dbh;
     //max_aut_link
     //f_aut_link_typexxx
     //f_aut_link_tablexxx
     //f_aut_link_idxxx
     global $max_aut_link;
     if (!$this->aut_table && !$this->id) {
         return;
     }
     $this->delete_link();
     for ($i = 0; $i < $max_aut_link; $i++) {
         eval("global \$f_aut_link_table" . $i . ";\$f_aut_link_table= \$f_aut_link_table{$i};");
         eval("global \$f_aut_link_id" . $i . ";\$f_aut_link_id= \$f_aut_link_id{$i};");
         eval("global \$f_aut_link_type" . $i . ";\$f_aut_link_type= \$f_aut_link_type{$i};");
         eval("global \$f_aut_link_reciproc" . $i . ";\$f_aut_link_reciproc= \$f_aut_link_reciproc{$i};");
         eval("global \$f_aut_link_comment" . $i . ";\$f_aut_link_comment= \$f_aut_link_comment{$i};");
         // Les selecteurs de concept retourne l'uri et non id
         if ($f_aut_link_table == AUT_TABLE_CONCEPT && !is_numeric($f_aut_link_id)) {
             $f_aut_link_id = onto_common_uri::get_id($f_aut_link_id);
         }
         if ($f_aut_link_reciproc) {
             $f_aut_link_reciproc = 1;
         }
         if ($f_aut_link_id && $f_aut_link_table && $f_aut_link_type && !($this->aut_table == $f_aut_link_table && $this->id == $f_aut_link_id)) {
             $requete = "INSERT INTO aut_link (aut_link_from, aut_link_from_num, aut_link_to,aut_link_to_num , aut_link_type, aut_link_reciproc, aut_link_comment) \n\t \t\t\tVALUES ('" . $this->aut_table . "', '" . $this->id . "','" . $f_aut_link_table . "', '" . $f_aut_link_id . "', '" . $f_aut_link_type . "', '" . $f_aut_link_reciproc . "','" . $f_aut_link_comment . "')";
             pmb_mysql_query($requete);
         }
     }
 }
Exemplo n.º 10
0
 public static function replace_temp_uri($temp_uri, $class_uri, $uri_prefix = "")
 {
     global $dbh;
     if ($uri_prefix) {
         $class_uri = $uri_prefix;
     }
     $last_uri = "";
     $max = 1;
     //On cherche le max des id + 1
     $query = 'SELECT MAX(uri_id)+1 FROM onto_uri';
     $result = pmb_mysql_query($query, $dbh);
     if (pmb_mysql_num_rows($result)) {
         $max = pmb_mysql_result($result, 0, 0);
     }
     $query = 'SELECT 1 FROM onto_uri WHERE uri="' . addslashes($class_uri . $max) . '"';
     $result = pmb_mysql_query($query, $dbh);
     if (!pmb_mysql_error($dbh) && !pmb_mysql_num_rows($result)) {
         $last_uri = $class_uri . $max;
     } else {
         do {
             $max++;
             $query = 'SELECT 1 FROM onto_uri WHERE uri="' . addslashes($class_uri . $max) . '"';
             $result = pmb_mysql_query($query, $dbh);
         } while (pmb_mysql_num_rows($result));
     }
     $last_uri = $class_uri . $max;
     $query = 'update onto_uri SET uri="' . addslashes($last_uri) . '" where uri="' . $temp_uri . '"';
     pmb_mysql_query($query, $dbh);
     //On initialise last_uri.
     self::$last_uri = $last_uri;
     return self::$last_uri;
 }
Exemplo n.º 11
0
 public function maj($object_id, $object_uri = "", $datatype = "all")
 {
     if ($object_id == 0 && $object_uri != "") {
         $object_id = onto_common_uri::get_id($object_uri);
     }
     if ($object_id != 0 && !$object_uri) {
         $object_uri = onto_common_uri::get_uri($object_id);
     }
     if (!count($this->tab_code_champ)) {
         $this->init();
     }
     $tab_words_insert = $tab_fields_insert = array();
     $this->get_sparql_result($object_uri);
     $this->delete_index($object_id, $datatype);
     //on a un tableau de résultat, on peut le travailler...
     foreach ($this->tab_code_champ as $field_id => $element) {
         foreach ($element as $column => $infos) {
             if (isset($this->sparql_result[$column])) {
                 $field_order = 1;
                 foreach ($this->sparql_result[$column] as $key => $values) {
                     foreach ($values as $key2 => $value) {
                         if (is_string($value)) {
                             $language = $key;
                             //fields (contenu brut)
                             $tab_fields_insert[] = "('" . $object_id . "','" . $infos['champ'] . "','" . $infos['ss_champ'] . "','" . $field_order . "','" . addslashes($value) . "','" . $language . "','" . $infos['pond'] . "','" . $autority_num . "')";
                             //words (contenu éclaté)
                             $tab_tmp = explode(' ', strip_empty_words($value));
                             $word_position = 1;
                             foreach ($tab_tmp as $word) {
                                 $num_word = indexation::add_word($word, $language);
                                 $tab_words_insert[] = "(" . $object_id . "," . $infos["champ"] . "," . $infos["ss_champ"] . "," . $num_word . "," . $infos["pond"] . ",{$field_order},{$word_position})";
                                 $word_position++;
                             }
                         } else {
                             $language = $key2;
                             $autority_num = onto_common_uri::get_id($key);
                             foreach ($value as $val) {
                                 //fields (contenu brut)
                                 $tab_fields_insert[] = "('" . $object_id . "','" . $infos['champ'] . "','" . $infos['ss_champ'] . "','" . $field_order . "','" . addslashes($val) . "','" . $language . "','" . $infos['pond'] . "','" . $autority_num . "')";
                                 //words (contenu éclaté)
                                 $tab_tmp = explode(' ', strip_empty_words($val));
                                 $word_position = 1;
                                 foreach ($tab_tmp as $word) {
                                     $num_word = indexation::add_word($word, $language);
                                     $tab_words_insert[] = "(" . $object_id . "," . $infos["champ"] . "," . $infos["ss_champ"] . "," . $num_word . "," . $infos["pond"] . ",{$field_order},{$word_position})";
                                     $word_position++;
                                 }
                             }
                         }
                         $field_order++;
                     }
                 }
             } else {
                 continue;
             }
         }
     }
     $this->save_elements($tab_words_insert, $tab_fields_insert);
     return true;
 }
 public static function get_values_from_form($instance_name, $property, $uri_item)
 {
     $datatypes = array();
     $var_name = $instance_name . "_" . $property->pmb_name;
     global ${$var_name};
     if (${$var_name} && count(${$var_name})) {
         global ${$var_name . "_is_composed"};
         if (!${$var_name . "_is_composed"}) {
             // Ce n'est pas une vedette composée
             //On va supprimer une éventuelle vedette précédente
             global ${$var_name . "_composed"};
             foreach (${$var_name . "_composed"} as $order => $data) {
                 if ($data["id"]) {
                     $vedette_composee = new vedette_composee($data["id"]);
                     $vedette_composee->delete();
                 }
             }
             // On va chercher les valeurs actuelles
             foreach (${$var_name} as $order => $data) {
                 $data = stripslashes_array($data);
                 if ($data["value"]) {
                     $data_properties = array();
                     if ($data["lang"]) {
                         $data_properties["lang"] = $data["lang"];
                     }
                     if ($data["type"] == "http://www.w3.org/2000/01/rdf-schema#Literal") {
                         $data_properties["type"] = "literal";
                     } else {
                         $data_properties["type"] = "uri";
                     }
                     if ($data["display_label"]) {
                         $data_properties["display_label"] = $data["display_label"];
                     }
                     $class_name = get_called_class();
                     $datatypes[$property->uri][] = new $class_name($data["value"], $data["type"], $data_properties);
                 }
             }
         } else {
             // C'est une vedette composée
             global ${$var_name . "_composed"};
             foreach (${$var_name . "_composed"} as $order => $data) {
                 $data = stripslashes_array($data);
                 if ($data["elements"]) {
                     $vedette_composee = new vedette_composee($data["id"]);
                     if ($data["value"]) {
                         $vedette_composee->set_label($data["value"]);
                     }
                     // On commence par réinitialiser le tableau des éléments de la vedette composée
                     $vedette_composee->reset_elements();
                     // On remplit le tableau des éléments de la vedette composée
                     foreach ($data["elements"] as $subdivision => $elements) {
                         if ($elements["elements_order"] !== "") {
                             $elements_order = explode(",", $elements["elements_order"]);
                             foreach ($elements_order as $position => $num_element) {
                                 if ($elements[$num_element]["id"] && $elements[$num_element]["label"]) {
                                     $velement = $elements[$num_element]["type"];
                                     $available_field_class_name = $vedette_composee->get_at_available_field_class_name($velement);
                                     if ($available_field_class_name['params']) {
                                         $vedette_element = new $velement($available_field_class_name['params'], $available_field_class_name["num"], $elements[$num_element]["id"], $elements[$num_element]["label"]);
                                     } else {
                                         $vedette_element = new $velement($available_field_class_name["num"], $elements[$num_element]["id"], $elements[$num_element]["label"]);
                                     }
                                     $vedette_composee->add_element($vedette_element, $subdivision, $position);
                                 }
                             }
                         }
                     }
                     $vedette_composee_id = $vedette_composee->save();
                 }
                 if ($vedette_composee_id) {
                     vedette_link::save_vedette_link($vedette_composee, onto_common_uri::get_id($uri_item), TYPE_CONCEPT_PREFLABEL);
                     if ($data["value"]) {
                         $data_properties = array();
                         if ($data["type"] == "http://www.w3.org/2000/01/rdf-schema#Literal") {
                             $data_properties["type"] = "literal";
                         } else {
                             $data_properties["type"] = "uri";
                         }
                         $class_name = get_called_class();
                         $datatypes[$property->uri][] = new $class_name($data["value"], $data["type"], $data_properties);
                     }
                 }
             }
         }
     }
     return $datatypes;
 }
Exemplo n.º 13
0
 protected function proceed_delete($force_delete = false)
 {
     global $dbh, $msg;
     // On déclare un flag pour savoir si on peut continuer la suppression
     $deletion_allowed = true;
     $message = $this->item->get_label($this->handler->get_display_label($this->handler->get_class_uri($this->params->categ)));
     // on  déjà vérifier l'utilisation dans les notices d'un concept
     $query = "select num_object from index_concept where type_object =1 and num_concept = " . onto_common_uri::get_id($this->item->get_uri());
     $result = pmb_mysql_query($query, $dbh);
     if (pmb_mysql_num_rows($result)) {
         $deletion_allowed = false;
         $message .= "<br/>" . $msg['concept_use_in_notices_cant_delete'];
     }
     // On regarde si l'autorité est utilisée dans des vedettes composées
     $attached_vedettes = vedette_composee::get_vedettes_built_with_element(onto_common_uri::get_id($this->item->get_uri()), "concept");
     if (count($attached_vedettes)) {
         // Cette autorité est utilisée dans des vedettes composées, impossible de la supprimer
         $deletion_allowed = false;
         $message .= "<br/>" . $msg['vedette_dont_del_autority'];
     }
     if ($deletion_allowed) {
         // On peut continuer la suppression
         $id_vedette = vedette_link::get_vedette_id_from_object(onto_common_uri::get_id($this->item->get_uri()), TYPE_CONCEPT_PREFLABEL);
         $vedette = new vedette_composee($id_vedette);
         $vedette->delete();
         //suppression des autorités liées...
         // liens entre autorités
         if (get_class($this->item) == "onto_skos_concept_item") {
             $aut_link = new aut_link(AUT_TABLE_CONCEPT, onto_common_uri::get_id($this->item->get_uri()));
             $aut_link->delete();
         }
         parent::proceed_delete($force_delete);
     } else {
         error_message($msg[132], $message, 1, "./autorites.php?categ=concepts&sub=concept&action=edit&id=" . onto_common_uri::get_id($this->item->get_uri()));
     }
 }
Exemplo n.º 14
0
 /**
  * Retourne le détail d'un concept
  * @return array Tableau des différentes propriétés du concept
  */
 public function get_details()
 {
     global $lang;
     $details = array();
     $query = "select * where {\n\t\t\t\t<" . $this->uri . "> rdf:type skos:Concept .\n\t\t\t\t<" . $this->uri . "> skos:prefLabel ?label .\t\t\n\t\t\t\toptional {\n\t\t\t\t\t<" . $this->uri . "> skos:altLabel ?altlabel\n\t\t\t\t} . \n\t\t\t\toptional {\n\t\t\t\t\t<" . $this->uri . "> skos:note ?note\n\t\t\t\t} .\n\t\t\t\toptional {\n\t\t\t\t\t<" . $this->uri . "> <http://www.w3.org/2004/02/skos/core#Note> ?notebnf\n\t\t\t\t} .\t\t\t\n\t\t\t\toptional {\n\t\t\t\t\t<" . $this->uri . "> skos:related ?related .\n\t\t\t\t\toptional {\t\t\n\t\t\t\t\t\t?related skos:prefLabel ?relatedlabel\t\n\t\t\t\t\t}\n\t\t\t\t} .\n\t\t\t\toptional {\n\t\t\t\t\t<" . $this->uri . "> skos:related ?related .\n\t\t\t\t\toptional {\t\t\n\t\t\t\t\t\t?related skos:prefLabel ?relatedlabel\t\n\t\t\t\t\t}\n\t\t\t\t} .\n\t\t\t\toptional {\n\t\t\t\t\t<" . $this->uri . "> owl:sameAs ?sameas .\n\t\t\t\t\toptional {\t\t\n\t\t\t\t\t\t?sameas skos:prefLabel ?sameaslabel\t\n\t\t\t\t\t}\n\t\t\t\t} .\n\t\t\t\toptional {\n\t\t\t\t\t<" . $this->uri . "> rdfs:seeAlso ?seealso .\n\t\t\t\t\toptional {\t\t\n\t\t\t\t\t\t?seealso skos:prefLabel ?seealsolabel\t\n\t\t\t\t\t}\n\t\t\t\t} .\n\t\t\t\toptional {\n\t\t\t\t\t<" . $this->uri . "> skos:exactMatch ?exactmatch .\n\t\t\t\t\toptional {\t\t\n\t\t\t\t\t\t?exactmatch skos:prefLabel ?exactmatchlabel\t\n\t\t\t\t\t}\n\t\t\t\t} .\n\t\t\t\toptional {\n\t\t\t\t\t<" . $this->uri . "> skos:closeMatch ?closematch .\n\t\t\t\t\toptional {\t\t\n\t\t\t\t\t\t?closematch skos:prefLabel ?closematchlabel\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}";
     skos_datastore::query($query);
     if (skos_datastore::num_rows()) {
         $results = skos_datastore::get_result();
         foreach ($results as $result) {
             foreach ($result as $property => $value) {
                 switch ($property) {
                     //cas des literaux
                     case "altlabel":
                         if (!isset($details['http://www.w3.org/2004/02/skos/core#altLabel'])) {
                             $details['http://www.w3.org/2004/02/skos/core#altLabel'] = array();
                         }
                         if (isset($result->{$propery . "_lang"}) == substr($lang, 0, 2)) {
                             if (!in_array($value, $details['http://www.w3.org/2004/02/skos/core#altLabel'])) {
                                 $details['http://www.w3.org/2004/02/skos/core#altLabel'][] = $value;
                             }
                             break;
                         } else {
                             if (!in_array($value, $details['http://www.w3.org/2004/02/skos/core#altLabel'])) {
                                 $details['http://www.w3.org/2004/02/skos/core#altLabel'][] = $value;
                             }
                         }
                         break;
                     case "hiddenlabel":
                         if (!isset($details['http://www.w3.org/2004/02/skos/core#hiddenLabel'])) {
                             $details['http://www.w3.org/2004/02/skos/core#hiddenLabel'] = array();
                         }
                         if (isset($result->hiddenlabel_lang) == substr($lang, 0, 2)) {
                             if (!in_array($value, $details['http://www.w3.org/2004/02/skos/core#hiddenLabel'])) {
                                 $details['http://www.w3.org/2004/02/skos/core#hiddenLabel'][] = $value;
                             }
                             break;
                         } else {
                             if (!in_array($value, $details['http://www.w3.org/2004/02/skos/core#altLabel'])) {
                                 $details['http://www.w3.org/2004/02/skos/core#altLabel'][] = $value;
                             }
                         }
                         break;
                     case "related":
                         if (!isset($details['http://www.w3.org/2004/02/skos/core#related'])) {
                             $details['http://www.w3.org/2004/02/skos/core#related'] = array();
                         }
                         if ($result->related_type == "uri") {
                             //on cherche si l'URI est connu dans notre système
                             $id = onto_common_uri::get_id($value);
                             $detail = array('uri' => $value);
                             if (isset($result->relatedlabel)) {
                                 $detail['label'] = $result->relatedlabel;
                             }
                             if ($id) {
                                 $detail['id'] = $id;
                             }
                             if (!in_array($detail, $details['http://www.w3.org/2004/02/skos/core#related'])) {
                                 $details['http://www.w3.org/2004/02/skos/core#related'][] = $detail;
                             }
                         }
                         break;
                     case "sameas":
                         if (!isset($details['http://www.w3.org/2002/07/owl#sameAs'])) {
                             $details['http://www.w3.org/2002/07/owl#sameAs'] = array();
                         }
                         if ($result->sameas_type == "uri") {
                             //on cherche si l'URI est connu dans notre système
                             $id = onto_common_uri::get_id($value);
                             $detail = array('uri' => $value);
                             if (isset($result->sameaslabel)) {
                                 $detail['label'] = $result->sameaslabel;
                             }
                             if ($id) {
                                 $detail['id'] = $id;
                             }
                             if (!in_array($detail, $details['http://www.w3.org/2002/07/owl#sameAs'])) {
                                 $details['http://www.w3.org/2002/07/owl#sameAs'][] = $detail;
                             }
                         }
                         break;
                     case "note":
                         if (!isset($details['http://www.w3.org/2004/02/skos/core#note'])) {
                             $details['http://www.w3.org/2004/02/skos/core#note'] = array();
                         }
                         if (isset($result->note_lang) == substr($lang, 0, 2)) {
                             if (!in_array($value, $details['http://www.w3.org/2004/02/skos/core#note'])) {
                                 $details['http://www.w3.org/2004/02/skos/core#note'][] = $value;
                             }
                             break;
                         } else {
                             if (!in_array($value, $details['http://www.w3.org/2004/02/skos/core#note'])) {
                                 $details['http://www.w3.org/2004/02/skos/core#note'][] = $value;
                             }
                         }
                         break;
                     case "notebnf":
                         if (!isset($details['http://www.w3.org/2004/02/skos/core#note'])) {
                             $details['http://www.w3.org/2004/02/skos/core#note'] = array();
                         }
                         if (isset($result->notebnf_lang) == substr($lang, 0, 2)) {
                             if (!in_array($value, $details['http://www.w3.org/2004/02/skos/core#note'])) {
                                 $details['http://www.w3.org/2004/02/skos/core#note'][] = $value;
                             }
                             break;
                         } else {
                             if (!in_array($value, $details['http://www.w3.org/2004/02/skos/core#note'])) {
                                 $details['http://www.w3.org/2004/02/skos/core#note'][] = $value;
                             }
                         }
                         break;
                     case "seealso":
                         if (!isset($details['http://www.w3.org/2000/01/rdf-schema#seeAlso'])) {
                             $details['http://www.w3.org/2000/01/rdf-schema#seeAlso'] = array();
                         }
                         if ($result->seealso_type == "uri") {
                             //on cherche si l'URI est connu dans notre système
                             $id = onto_common_uri::get_id($value);
                             $detail = array('uri' => $value);
                             if (isset($result->seealsolabel)) {
                                 $detail['label'] = $result->seealsolabel;
                             }
                             if ($id) {
                                 $detail['id'] = $id;
                             }
                             if (!in_array($detail, $details['http://www.w3.org/2000/01/rdf-schema#seeAlso'])) {
                                 $details['http://www.w3.org/2000/01/rdf-schema#seeAlso'][] = $detail;
                             }
                         }
                         break;
                     case "exactmatch":
                         if (!isset($details['http://www.w3.org/2004/02/skos/core#exactMatch'])) {
                             $details['http://www.w3.org/2004/02/skos/core#exactMatch'] = array();
                         }
                         if ($result->exactmatch_type == "uri") {
                             //on cherche si l'URI est connu dans notre système
                             $id = onto_common_uri::get_id($value);
                             $detail = array('uri' => $value);
                             if (isset($result->exactmatchlabel)) {
                                 $detail['label'] = $result->exactmatchlabel;
                             }
                             if ($id) {
                                 $detail['id'] = $id;
                             }
                             if (!in_array($detail, $details['http://www.w3.org/2004/02/skos/core#exactMatch'])) {
                                 $details['http://www.w3.org/2004/02/skos/core#exactMatch'][] = $detail;
                             }
                         }
                         break;
                     case "closematch":
                         if (!isset($details['http://www.w3.org/2004/02/skos/core#closeMatch'])) {
                             $details['http://www.w3.org/2004/02/skos/core#closeMatch'] = array();
                         }
                         if ($result->closematch_type == "uri") {
                             //on cherche si l'URI est connu dans notre système
                             $id = onto_common_uri::get_id($value);
                             $detail = array('uri' => $value);
                             if (isset($result->closematchlabel)) {
                                 $detail['label'] = $result->closematchlabel;
                             }
                             if ($id) {
                                 $detail['id'] = $id;
                             }
                             if (!in_array($detail, $details['http://www.w3.org/2004/02/skos/core#closeMatch'])) {
                                 $details['http://www.w3.org/2004/02/skos/core#closeMatch'][] = $detail;
                             }
                         }
                         break;
                 }
             }
         }
     }
     return $details;
 }
 public function replace_temp_uri()
 {
     if (onto_common_uri::is_temp_uri($this->get_uri())) {
         $this->uri = onto_common_uri::replace_temp_uri($this->get_uri(), $this->onto_class->uri, $this->onto_class->get_base_uri() . "#" . $this->onto_class->pmb_name);
     }
 }
 /**
  * Instancie les datatypes à partir des données postées du formulaire
  *
  * @return void
  * @access public
  */
 public function get_values_from_form()
 {
     $this->datatypes = array();
     $prefix = onto_common_uri::get_name_from_uri($this->uri, $this->onto_class->pmb_name);
     if (sizeof($this->onto_class->get_properties())) {
         foreach ($this->onto_class->get_properties() as $uri_property) {
             $property = $this->onto_class->get_property($uri_property);
             $datatype_class_name = $this->resolve_datatype_class_name($property);
             $this->datatypes = array_merge($this->datatypes, $datatype_class_name::get_values_from_form($prefix, $property, $this->uri));
         }
     }
     return $this->datatypes;
 }
Exemplo n.º 17
0
 /**
  * Retourne l'item le plus approprié pour définir l'URI passée en paramètre
  *
  * @param string class_uri URI de la classe de l'ontologie à instancier
  * @param string uri URI de l'instance à créer
  *
  * @return onto_common_item $item
  *
  * @access public
  */
 public function get_item($class_uri, $uri)
 {
     $item_class = "onto_" . $this->ontology->name . "_" . $this->get_class_pmb_name($class_uri) . "_item";
     if (!class_exists($item_class)) {
         $item_class = "onto_" . $this->ontology->name . "_item";
     }
     if (!class_exists($item_class)) {
         $item_class = "onto_common_item";
     }
     $item = new $item_class($this->ontology->get_class($class_uri), $uri);
     $item->set_assertions($this->get_assertions($uri));
     if (!$uri) {
         //pas d'uri, on instancie les assertions par défaut...
         $assertions = array();
         foreach ($this->ontology->get_class_properties($class_uri) as $uri_property) {
             $property = $this->ontology->get_property($class_uri, $uri_property);
             if (count($property->default_value)) {
                 global ${$property->default_value['value']};
                 if (isset(${$property->default_value['value']})) {
                     $assertions[] = new onto_assertion($item->get_uri(), $uri_property, onto_common_uri::get_uri(${$property->default_value['value']}), $property->range[0], array('type' => "uri", 'display_label' => $this->get_data_label(onto_common_uri::get_uri(${$property->default_value['value']}))));
                 }
             }
         }
         if (count($assertions)) {
             $item->set_assertions($assertions);
         }
     }
     return $item;
 }
Exemplo n.º 18
0
 public static function get_selector_breadcrumb($controler, $params)
 {
     $breadcrumb = $controler->handle_breadcrumb();
     $return = '';
     if (sizeof($breadcrumb)) {
         foreach ($breadcrumb as $key => $parent_id) {
             if ($return) {
                 $return .= ' > ';
             }
             $return .= "<a href='" . $params->base_url . "&parent_id=" . $parent_id . "'>" . $controler->get_data_label(onto_common_uri::get_uri($parent_id)) . '</a>';
         }
     }
     return $return;
 }
Exemplo n.º 19
0
 /**
  *
  * Retourne une liste des éléments utilisable pour l'autocomplétion (retourne une liste vide si pas de recherche implémentée pour le type d'item
  *
  * @return array $elements
  */
 public function get_ajax_searched_elements($class_uri)
 {
     $search_class_name = $this->get_searcher_class_name($class_uri);
     $elements = array('label' => "[" . $this->get_label($class_uri) . "]", 'elements' => array());
     if ($this->params->datas && $search_class_name) {
         $searcher = new $search_class_name($this->params->datas . "*");
         if ($searcher->get_nb_results()) {
             $results = $searcher->get_sorted_result("default", 0, 10);
         } else {
             $results = array();
         }
         foreach ($results as $item) {
             $elements['elements'][onto_common_uri::get_uri($item)] = $this->get_data_label(onto_common_uri::get_uri($item));
         }
     }
     return $elements;
 }
 /**
  * 
  *
  * @param onto_common_property $property la propriété concernée
  * @param restriction $restrictions le tableau des restrictions associées à la propriété 
  * @param array datas le tableau des datatypes
  * @param string instance_name nom de l'instance
  * @param string flag Flag
  * @return string
  * @static
  * @access public
  */
 public static function get_form($item_uri, $property, $restrictions, $datas, $instance_name, $flag)
 {
     global $msg, $charset, $ontology_tpl;
     $form = $ontology_tpl['form_row'];
     $form = str_replace("!!onto_row_label!!", htmlentities($property->label, ENT_QUOTES, $charset), $form);
     $range_for_form = "";
     foreach ($property->range as $range) {
         if ($range_for_form) {
             $range_for_form .= "|||";
         }
         $range_for_form .= $range;
     }
     $content = '';
     $content .= $ontology_tpl['form_row_content_input_sel'];
     if ($restrictions->get_max() < $i || $restrictions->get_max() === -1) {
         $content .= $ontology_tpl['form_row_content_input_add_ressource_selector'];
     }
     $content = str_replace("!!property_name!!", rawurlencode($property->pmb_name), $content);
     if (sizeof($datas)) {
         $i = 1;
         $first = true;
         $new_element_order = max(array_keys($datas));
         $form = str_replace("!!onto_new_order!!", $new_element_order, $form);
         foreach ($datas as $key => $data) {
             $row = $ontology_tpl['form_row_content'];
             if ($data->get_order()) {
                 $order = $data->get_order();
             } else {
                 $order = $key;
             }
             $inside_row = $ontology_tpl['form_row_content_resource_selector'];
             $inside_row = str_replace("!!form_row_content_resource_selector_display_label!!", htmlentities($data->get_formated_value(), ENT_QUOTES, $charset), $inside_row);
             $inside_row = str_replace("!!form_row_content_resource_selector_value!!", $data->get_raw_value(), $inside_row);
             $inside_row = str_replace("!!form_row_content_resource_selector_range!!", $data->get_value_type(), $inside_row);
             $inside_row = str_replace("!!onto_current_element!!", onto_common_uri::get_id($item_uri), $inside_row);
             $inside_row = str_replace("!!onto_current_range!!", $range_for_form, $inside_row);
             $row = str_replace("!!onto_inside_row!!", $inside_row, $row);
             $input = '';
             if ($first) {
                 $input .= $ontology_tpl['form_row_content_input_remove'];
             } else {
                 $input .= $ontology_tpl['form_row_content_input_del'];
             }
             $input = str_replace("!!property_name!!", rawurlencode($property->pmb_name), $input);
             $row = str_replace("!!onto_row_inputs!!", $input, $row);
             $row = str_replace("!!onto_row_order!!", $order, $row);
             $content .= $row;
             $first = false;
             $i++;
         }
     } else {
         $form = str_replace("!!onto_new_order!!", "0", $form);
         $row = $ontology_tpl['form_row_content'];
         $inside_row = $ontology_tpl['form_row_content_resource_selector'];
         $inside_row = str_replace("!!form_row_content_resource_selector_display_label!!", "", $inside_row);
         $inside_row = str_replace("!!form_row_content_resource_selector_display_label!!", "", $inside_row);
         $inside_row = str_replace("!!form_row_content_resource_selector_value!!", "", $inside_row);
         $inside_row = str_replace("!!form_row_content_resource_selector_range!!", "", $inside_row);
         $inside_row = str_replace("!!onto_current_element!!", onto_common_uri::get_id($item_uri), $inside_row);
         $inside_row = str_replace("!!onto_current_range!!", $range_for_form, $inside_row);
         $row = str_replace("!!onto_inside_row!!", $inside_row, $row);
         $input = '';
         $input .= $ontology_tpl['form_row_content_input_remove'];
         $input = str_replace("!!property_name!!", rawurlencode($property->pmb_name), $input);
         $row = str_replace("!!onto_row_inputs!!", $input, $row);
         $row = str_replace("!!onto_row_order!!", "0", $row);
         $content .= $row;
     }
     $form = str_replace("!!onto_rows!!", $content, $form);
     $form = str_replace("!!onto_row_id!!", $instance_name . '_' . $property->pmb_name, $form);
     return $form;
 }