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; }
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; }
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'); } } }
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)); }
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); } } }
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; }
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; }
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())); } }
/** * 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; }
/** * 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; }
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; }
/** * * 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; }