示例#1
0
 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;
 }
示例#2
0
 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;
 }