function update($value) { global $dbh; global $msg; global $include_path; global $pmb_synchro_rdf; global $thesaurus_concepts_active; if (!$value['name']) { return false; } // nettoyage des valeurs en entree $value[name] = clean_string($value[name]); $value[adr1] = clean_string($value[adr1]); $value[adr2] = clean_string($value[adr2]); $value[cp] = clean_string($value[cp]); $value[ville] = clean_string($value[ville]); $value[pays] = clean_string($value[pays]); $value[web] = clean_string($value[web]); // construction de la requete $requete = "SET ed_name='{$value['name']}', "; $requete .= "ed_adr1='{$value['adr1']}', "; $requete .= "ed_adr2='{$value['adr2']}', "; $requete .= "ed_cp='{$value['cp']}', "; $requete .= "ed_ville='{$value['ville']}', "; $requete .= "ed_pays='{$value['pays']}', "; $requete .= "ed_web='{$value['web']}', "; $requete .= "ed_comment='{$value['ed_comment']}', "; $requete .= "index_publisher=' " . strip_empty_chars($value[name] . " " . $value[ville] . " " . $value[pays]) . " '"; if ($this->id) { // update $requete = 'UPDATE publishers ' . $requete; $requete .= ' WHERE ed_id=' . $this->id . ' LIMIT 1;'; if (pmb_mysql_query($requete, $dbh)) { $aut_link = new aut_link(AUT_TABLE_PUBLISHERS, $this->id); $aut_link->save_form(); $aut_pperso = new aut_pperso("publisher", $this->id); $aut_pperso->save_form(); editeur::update_index($this->id); audit::insert_modif(AUDIT_PUBLISHER, $this->id); //mise à jour de l'éditeur dans la base rdf if ($pmb_synchro_rdf) { $synchro_rdf = new synchro_rdf(); $synchro_rdf->updateAuthority($this->id, 'editeur'); } } else { require_once "{$include_path}/user_error.inc.php"; warning($msg[145], $msg[150]); return FALSE; } } else { // s'assurer que l'editeur n'existe pas deja // on teste sur le nom et la ville seulement. voir a l'usage si necessaire de tester plus if (editeur::check_if_exists($value)) { require_once "{$include_path}/user_error.inc.php"; warning($msg[145], $msg[149] . " ({$value['name']})."); return FALSE; } $requete = 'INSERT INTO publishers ' . $requete . ';'; if (pmb_mysql_query($requete, $dbh)) { $this->id = pmb_mysql_insert_id(); $aut_link = new aut_link(AUT_TABLE_PUBLISHERS, $this->id); $aut_link->save_form(); $aut_pperso = new aut_pperso("publisher", $this->id); $aut_pperso->save_form(); audit::insert_creation(AUDIT_PUBLISHER, $this->id); } else { require_once "{$include_path}/user_error.inc.php"; warning($msg[145], $msg[151]); return FALSE; } } if ($thesaurus_concepts_active == 1) { $index_concept = new index_concept($this->id, TYPE_PUBLISHER); $index_concept->save(); } // Mise à jour des vedettes composées contenant cette autorité vedette_composee::update_vedettes_built_with_element($this->id, "publisher"); return TRUE; }
static function import($data) { global $dbh; // check sur le type de la variable passee en parametre if (!sizeof($data) || !is_array($data)) { // si ce n'est pas un tableau ou un tableau vide, on retourne 0 return 0; } // tentative de recuperer l'id associee dans la base (implique que l'autorite existe) // preparation de la requeªte $long_maxi = pmb_mysql_field_len(pmb_mysql_query("SELECT ed_name FROM publishers limit 1"), 0); $key = addslashes(rtrim(substr(preg_replace('/\\[|\\]/', '', rtrim(ltrim($data['name']))), 0, $long_maxi))); $ville = addslashes(trim($data['ville'])); $adr = addslashes(trim($data['adr'])); $adr2 = addslashes(trim($data['adr2'])); $cp = addslashes(trim($data['cp'])); $pays = addslashes(trim($data['pays'])); $web = addslashes(trim($data['web'])); $ed_comment = addslashes(trim($data['ed_comment'])); if ($key == "") { return 0; } /* on laisse tomber les editeurs sans nom !!! exact. FL*/ $query = "SELECT ed_id FROM publishers WHERE ed_name='{$key}' and ed_ville = '{$ville}' "; $result = @pmb_mysql_query($query, $dbh); if (!$result) { die("can't SELECT publisher " . $query); } // resultat // recuperation du resultat de la recherche $tediteur = pmb_mysql_fetch_object($result); // et recuperation eventuelle de l'id if ($tediteur->ed_id) { return $tediteur->ed_id; } // id non-recuperee, il faut creer la forme. $query = 'INSERT INTO publishers SET ed_name="' . $key . '", ed_ville = "' . $ville . '", ed_adr1 = "' . $adr . '", ed_comment="' . $ed_comment . '", ed_adr2="' . $adr2 . '", ed_cp="' . $cp . '", ed_pays="' . $pays . '", ed_web="' . $web . '", index_publisher=" ' . strip_empty_chars($key) . ' " '; $result = @pmb_mysql_query($query, $dbh); if (!$result) { die("can't INSERT into publisher : " . $query); } $id = pmb_mysql_insert_id($dbh); audit::insert_creation(AUDIT_PUBLISHER, $id); //update authority informations $authority = new authority(0, $id, AUT_TABLE_PUBLISHERS); $authority->set_num_statut($data['statut']); $authority->update(); editeur::update_index($id); return $id; }