Ejemplo n.º 1
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;
 }
Ejemplo n.º 2
0
 /**
  * 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;
 }