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; }
/** * Détruit une instance (l'ensemble de ses déclarations) * * @param onto_common_item $item Instance à supprimer (l'ensemble de ses déclarations) * @param bool $force_delete Si false, renvoie un tableau des assertions où l'item est objet. Si true, supprime toutes les occurences de l'item * * @return bool * @access public */ public function delete($item, $force_delete = false) { global $dbh; // On stockera dans un tableau tous les triplets desquels l'item est l'objet $is_object_of = array(); $query = "select * where {\n\t\t\t?subject ?predicate <" . $item->get_uri() . ">\n\t\t}"; $this->data_store->query($query); $result = $this->data_store->get_result(); foreach ($result as $assertion) { $is_object_of[] = new onto_assertion($assertion->subject, $assertion->predicate, $item->get_uri()); } if ($force_delete || !count($is_object_of)) { $query = "delete {\n\t\t\t\t<" . $item->get_uri() . "> ?prop ?obj\n\t\t\t}"; $this->data_store->query($query); if ($errs = $this->data_store->get_errors()) { print "<br>Erreurs: <br>"; print "<pre>"; print_r($errs); print "</pre><br>"; } else { $query = "delete {\n\t\t\t\t\t?subject ?predicate <" . $item->get_uri() . ">\n\t\t\t\t}"; $result = $this->data_store->query($query); if ($errs = $this->data_store->get_errors()) { print "<br>Erreurs: <br>"; print "<pre>"; print_r($errs); print "</pre><br>"; } else { // On met à jour l'index $index = new onto_index(); $index->set_handler($this); $index->maj(0, $item->get_uri()); if (count($is_object_of)) { foreach ($is_object_of as $object) { $index->maj(0, $assertion->subject); } } //on a tout viré on supprime aussi l'URI dans la table $query = "delete from onto_uri where uri = '" . $item->get_uri() . "'"; pmb_mysql_query($query, $dbh); } } } return $is_object_of; }