protected function proceed_selector_save() { $this->item->get_values_from_form(); $saved = $this->handler->save($this->item); $query = "select ?scheme ?broader ?broaderScheme where{\n\t\t\t<" . $this->item->get_uri() . "> rdf:type skos:Concept .\n\t\t\t<" . $this->item->get_uri() . "> skos:inScheme ?scheme .\n\t\t\toptional {\n\t\t\t\t<" . $this->item->get_uri() . "> skos:broader ?broader .\n\t\t\t\t?broader skos:inScheme ?broaderScheme\n\t\t\t}\n\t\t} order by ?scheme ?broader"; $this->handler->data_query($query); if ($this->handler->data_num_rows()) { $results = $this->handler->data_result(); $lastScheme = $results[0]->scheme; $flag = true; foreach ($results as $result) { if ($result->scheme == $result->broaderScheme) { $flag = false; } if ($lastScheme != $result->scheme) { if ($flag) { $query = "insert into <pmb> {<" . $this->item->get_uri() . "> pmb:showInTop <" . $lastScheme . ">}"; $this->handler->data_query($query); } $flag = true; $lastScheme = $result->scheme; } } if ($flag) { $query = "insert into <pmb> {<" . $this->item->get_uri() . "> pmb:showInTop <" . $lastScheme . ">}"; $this->handler->data_query($query); } } else { $query = "select * where{\n\t\t\t<" . $this->item->get_uri() . "> rdf:type skos:Concept .\n\t\t\toptional{\n\t\t\t <" . $this->item->get_uri() . "> skos:inScheme ?scheme .\n\t\t\t} . filter(!bound(?scheme)) .\n\t\t\t optional {\n\t\t\t\t<" . $this->item->get_uri() . "> skos:broader ?broader .\n\t\t\t\t?broader skos:inScheme ?broaderScheme\n\t\t\t} filter (!bound(?broaderScheme))\n\t\t} "; $this->handler->data_query($query); if (!$this->handler->data_num_rows()) { $query = "insert into <pmb> {<" . $this->item->get_uri() . "> pmb:showInTop owl:Nothing}"; $this->handler->data_query($query); } } $ui_class_name = self::resolve_ui_class_name($this->params->sub, $this->handler->get_onto_name()); //ils sont nouveaux dont pas encore utilisé...pas besoin du hook pour les notices... if ($saved !== true) { $ui_class_name::display_errors($this, $saved); } else { // $this->proceed_list(); $this->params->action = "list_selector"; $this->params->deb_rech = "\"" . $this->item->get_label("http://www.w3.org/2004/02/skos/core#prefLabel") . "\""; // $this->params->parent_id = $_SESSION['onto_skos_concept_selector_last_parent_id']; return parent::proceed(); } }