static function import($data)
 {
     // cette méthode prend en entrée un tableau constitué des informations éditeurs suivantes :
     //	$data['name'] 	Nom de la collection
     //	$data['coll_parent']	id de l'éditeur parent de la collection
     //	$data['issn']	numéro ISSN de la collection
     //	$data['statut']	statut de la collection
     global $dbh;
     // check sur le type de  la variable passée en paramètre
     if (!sizeof($data) || !is_array($data)) {
         // si ce n'est pas un tableau ou un tableau vide, on retourne 0
         return 0;
     }
     // check sur les éléments du tableau (data['name'] est requis).
     $long_maxi_name = pmb_mysql_field_len(pmb_mysql_query("SELECT sub_coll_name FROM sub_collections limit 1"), 0);
     $data['name'] = rtrim(substr(preg_replace('/\\[|\\]/', '', rtrim(ltrim($data['name']))), 0, $long_maxi_name));
     //si on a pas d'id, on peut avoir les infos de la collection
     if (!$data['coll_parent']) {
         if ($data['collection']) {
             //on les a, on crée l'éditeur
             $data['coll_parent'] = collection::import($data['collection']);
         }
     }
     if ($data['name'] == "" || $data['coll_parent'] == 0) {
         /* il nous faut impérativement une collection parente */
         return 0;
     }
     // préparation de la requête
     $key0 = addslashes($data['name']);
     $key1 = $data['coll_parent'];
     $key2 = addslashes($data['issn']);
     /* vérification que la collection existe bien ! */
     $query = "SELECT collection_id FROM collections WHERE collection_id='{$key1}' LIMIT 1 ";
     $result = @pmb_mysql_query($query, $dbh);
     if (!$result) {
         die("can't SELECT colections " . $query);
     }
     if (pmb_mysql_num_rows($result) == 0) {
         return 0;
     }
     /* vérification que la sous-collection existe */
     $query = "SELECT sub_coll_id FROM sub_collections WHERE sub_coll_name='{$key0}' AND sub_coll_parent='{$key1}' LIMIT 1 ";
     $result = @pmb_mysql_query($query, $dbh);
     if (!$result) {
         die("can't SELECT sub_collections " . $query);
     }
     $subcollection = pmb_mysql_fetch_object($result);
     /* la sous-collection existe, on retourne l'ID */
     if ($subcollection->sub_coll_id) {
         return $subcollection->sub_coll_id;
     }
     // id non-récupérée, il faut créer la forme.
     $query = 'INSERT INTO sub_collections SET sub_coll_name="' . $key0 . '", ';
     $query .= 'sub_coll_parent="' . $key1 . '", ';
     $query .= 'sub_coll_issn="' . $key2 . '", ';
     $query .= 'subcollection_web="' . addslashes($data['subcollection_web']) . '", ';
     $query .= 'subcollection_comment="' . addslashes($data['comment']) . '", ';
     $query .= 'index_sub_coll=" ' . strip_empty_words($key0) . ' ' . strip_empty_words($key2) . ' " ';
     $result = @pmb_mysql_query($query, $dbh);
     if (!$result) {
         die("can't INSERT into sub_collections" . $query);
     }
     $id = pmb_mysql_insert_id($dbh);
     audit::insert_creation(AUDIT_SUB_COLLECTION, $id);
     //update authority informations
     $authority = new authority(0, $id, AUT_TABLE_SUB_COLLECTIONS);
     $authority->set_num_statut($data['statut']);
     $authority->update();
     subcollection::update_index($id);
     return $id;
 }
Example #2
0
 function update($value, $force_creation = false)
 {
     global $dbh;
     global $msg, $charset;
     global $include_path;
     //si on a pas d'id, on peut avoir les infos de la collection
     if (!$value['parent']) {
         if ($value['collection']) {
             //on les a, on crée l'éditeur
             $value['collection'] = stripslashes_array($value['collection']);
             //La fonction d'import fait les addslashes contrairement à l'update
             $value['parent'] = collection::import($value['collection']);
         }
     }
     if (!$value['name'] || !$value['parent']) {
         return false;
     }
     // nettoyage des valeurs en entrée
     $value['name'] = clean_string($value['name']);
     // construction de la requête
     $requete = "SET sub_coll_name='{$value['name']}', ";
     $requete .= "sub_coll_parent='{$value['parent']}', ";
     $requete .= "sub_coll_issn='{$value['issn']}', ";
     $requete .= "subcollection_web='{$value['subcollection_web']}', ";
     $requete .= "subcollection_comment='{$value['comment']}', ";
     $requete .= "index_sub_coll=' " . strip_empty_words($value[name]) . " " . strip_empty_words($value["issn"]) . " '";
     if ($this->id) {
         // update
         $requete = 'UPDATE sub_collections ' . $requete;
         $requete .= ' WHERE sub_coll_id=' . $this->id . ' ';
         if (mysql_query($requete, $dbh)) {
             $requete = "select collection_parent from collections WHERE collection_id='" . $value[parent] . "' ";
             $res = mysql_query($requete, $dbh);
             $ed_parent = mysql_result($res, 0, 0);
             $requete = "update notices set ed1_id='{$ed_parent}', coll_id='" . $value[parent] . "' WHERE subcoll_id='" . $this->id . "' ";
             $res = mysql_query($requete, $dbh);
             $aut_link = new aut_link(AUT_TABLE_SUB_COLLECTIONS, $this->id);
             $aut_link->save_form();
             $aut_pperso = new aut_pperso("subcollection", $this->id);
             $aut_pperso->save_form();
             audit::insert_modif(AUDIT_SUB_COLLECTION, $this->id);
             subcollection::update_index($this->id);
             return TRUE;
         } else {
             require_once "{$include_path}/user_error.inc.php";
             warning($msg[178], htmlentities($msg[182] . " -> " . $this->display, ENT_QUOTES, $charset));
             return FALSE;
         }
     } else {
         if (!$force_creation) {
             // création : s'assurer que la sous-collection n'existe pas déjà
             if ($id_subcollection_exists = subcollection::check_if_exists($value)) {
                 $subcollection_exists = new subcollection($id_subcollection_exists);
                 require_once "{$include_path}/user_error.inc.php";
                 warning($msg[177], htmlentities($msg[219] . " -> " . $subcollection_exists->display, ENT_QUOTES, $charset));
                 return FALSE;
             }
         }
         $requete = 'INSERT INTO sub_collections ' . $requete . ';';
         if (mysql_query($requete, $dbh)) {
             $this->id = mysql_insert_id();
             $aut_link = new aut_link(AUT_TABLE_SUB_COLLECTIONS, $this->id);
             $aut_link->save_form();
             $aut_pperso = new aut_pperso("subcollection", $this->id);
             $aut_pperso->save_form();
             audit::insert_creation(AUDIT_SUB_COLLECTION, $this->id);
             return TRUE;
         } else {
             require_once "{$include_path}/user_error.inc.php";
             warning($msg[177], htmlentities($msg[182] . " -> " . $requete, ENT_QUOTES, $charset));
             return FALSE;
         }
     }
 }