source: spip-zone/_plugins_/base/gestion_base.php @ 31412

Last change on this file since 31412 was 31412, checked in by fdm@…, 12 years ago

Mise à jour spip 2.0

File size: 7.5 KB
Line 
1<?php
2
3function genespip_install(){
4    genespip_verifier_base();
5}
6
7function genespip_verifier_base(){
8    $version_base =  $GLOBALS['genespip_version'];; //version actuelle
9    $current_version = 0.0;
10   
11    if (   (!isset($GLOBALS['meta']['genespip_base_version']) )
12        | (($current_version = $GLOBALS['meta']['genespip_base_version'])!=$version_base)){
13               
14                include_spip('base/genespip');
15               
16        if ($current_version==0.0){ 
17            include_spip('base/create');
18            include_spip('base/abstract_sql');
19            creer_base();
20            $date_init=date("Y-m-d H:i:s");
21            $action2=spip_query("INSERT INTO spip_genespip_type_evenements (type_evenement , clair_evenement) VALUES ('BIRT', 'Naissance'), ('DEAT', 'D&eacute;c&egrave;s'), ('MARR', 'Mariage')");
22            $action3=spip_query("INSERT INTO spip_genespip_lieux (ville, pays) VALUES ('','xx')");
23                       
24            ecrire_meta('genespip_base_version',$current_version=$version_base);
25        }
26               
27        if ($current_version<0.1){
28                        //Création table spip_genespip_Lieu
29            spip_query("CREATE TABLE spip_genespip_lieux (id_lieu INT NOT NULL auto_increment , ville TEXT NOT NULL , code_departement INT NOT NULL , departement TEXT NOT NULL , region TEXT NOT NULL , pays TEXT NOT NULL, PRIMARY KEY (id_lieu)) TYPE=MyISAM") or die ("Requête spip_genespip_lieu invalide");
30            $action3=spip_query("INSERT INTO spip_genespip_lieux (ville, pays) VALUES ('','xx')");
31            echo "Base lieux cr&eacute;&eacute;e.<br />";
32                        //récupération des lieux (naissance, deces, mariage)
33            $result = spip_query("SELECT naissancelieu, naissancedep, naissancepays FROM spip_genespip_individu where poubelle<>1 group by naissancelieu");
34            while ($naissance = spip_fetch_array($result)) {
35                                spip_query("INSERT INTO spip_genespip_lieux (ville , code_departement, pays) VALUES ('".$naissance['naissancelieu']."', '".$naissance['naissancedep']."', '".$naissance['naissancepays']."')");
36            }
37            $result = spip_query("SELECT ville, deceslieu, decesdep, decespays FROM spip_genespip_individu, spip_genespip_lieux where spip_genespip_mariage.deceslieu<>spip_genespip_lieux.ville group by deceslieu");
38            while ($deces = spip_fetch_array($result)) {
39                                spip_query("INSERT INTO spip_genespip_lieux (ville , code_departement, pays) VALUES ('".$deces['deceslieu']."', '".$deces['decesdep']."', '".$deces['decespays']."')");
40            }
41            $result = spip_query("SELECT ville, marlieu, mardep, marpays FROM spip_genespip_mariage, spip_genespip_lieux where spip_genespip_mariage.marlieu<>spip_genespip_lieux.ville group by marlieu");
42            while ($mar = spip_fetch_array($result)) {
43                                spip_query("INSERT INTO spip_genespip_lieux (ville , code_departement, pays) VALUES ('".$mar['marlieu']."', '".$mar['mardep']."', '".$mar['marpays']."')");
44            }
45                        //Création table spip_genespip_type_evenement
46            spip_query("CREATE TABLE spip_genespip_type_evenements (id_type_evenement INT NOT NULL auto_increment ,type_evenement TEXT NOT NULL ,clair_evenement TEXT NOT NULL ,PRIMARY KEY (id_type_evenement)) TYPE=MyISAM") or die ("Requête spip_genespip_type_evenement invalide");
47            echo "Base type Evenement cr&eacute;&eacute;e.<br />";
48            spip_query("INSERT INTO spip_genespip_type_evenements (type_evenement , clair_evenement) VALUES ('BIRT', 'Naissance'), ('DEAT', 'D&eacute;c&egrave;s'), ('MARR', 'Mariage')");
49                        //Création table spip_genespip_evenement
50            spip_query("CREATE TABLE spip_genespip_evenements (id_evenement INT NOT NULL auto_increment ,id_individu INT NOT NULL ,id_type_evenement INT NOT NULL ,date_evenement DATE NOT NULL , precision_date TEXT NOT NULL ,id_lieu INT NOT NULL DEFAULT '1',id_epoux INT NOT NULL ,date_update DATETIME NOT NULL ,PRIMARY KEY (id_evenement)) TYPE=MyISAM") or die ("Requête spip_genespip_evenement invalide");
51            echo "Base Evenement cr&eacute;&eacute;e.<br />";
52            $result = spip_query("SELECT id_individu, naissance, id_lieu FROM spip_genespip_individu, spip_genespip_lieux where poubelle<>1 and ville=naissancelieu group by id_individu") or die ("Requête insert evenement naissance invalide");
53            while ($naissance = spip_fetch_array($result)) {
54                                spip_query("INSERT INTO spip_genespip_evenements (id_individu , id_type_evenement, date_evenement, id_lieu) VALUES ('".$naissance['id_individu']."', '1', '".$naissance['naissance']."', '".$naissance['id_lieu']."')");
55            }
56            $result = spip_query("SELECT id_individu, deces, id_lieu FROM spip_genespip_individu, spip_genespip_lieux where poubelle<>1 and ville=deceslieu group by id_individu") or die ("Requête insert evenement deces invalide");
57            while ($deces = spip_fetch_array($result)) {
58                                spip_query("INSERT INTO spip_genespip_evenements (id_individu , id_type_evenement, date_evenement, id_lieu) VALUES ('".$deces['id_individu']."', '2', '".$deces['deces']."', '".$deces['id_lieu']."')");
59            }
60            $result = spip_query("SELECT individu, mar, epoux, id_lieu FROM spip_genespip_mariage, spip_genespip_lieux where ville=marlieu group by id_mariage") or die ("Requête insert evenement mariage invalide");
61            while ($mar = spip_fetch_array($result)) {
62                                spip_query("INSERT INTO spip_genespip_evenements (id_individu , id_type_evenement, date_evenement, id_lieu, id_epoux) VALUES ('".$mar['individu']."', '3', '".$mar['mar']."', '".$mar['id_lieu']."', '".$mar['epoux']."')");
63            }
64                        //Nettoyage champs spip_genespip_lieux non utilisés
65            $result = spip_query("SELECT * FROM spip_genespip_lieux order by ville");
66            while ($lieux = spip_fetch_array($result)) {
67                                $resultnb = spip_query("SELECT * FROM spip_genespip_evenements where id_lieu=".$lieux['id_lieu']);
68                                if(mysql_num_rows($resultnb)==0){
69                                        spip_query("DELETE FROM spip_genespip_lieux WHERE id_lieu = ".$lieux['id_lieu']);
70                                }
71                        }
72                        //Ajout du champ limitation dans spip_genespip_individu
73            spip_query("ALTER TABLE spip_genespip_individu ADD limitation INT(3) NOT NULL ");
74                        //Suppression des anciens champs de spip_genespip_individu
75            spip_query("ALTER TABLE spip_genespip_individu DROP naissance ,DROP naissancelieu ,DROP naissancedep ,DROP naissancepays ,DROP deces ,DROP deceslieu ,DROP decesdep ,DROP decespays");
76            echo "Suppression des champs inutile de la table individu<br />";
77                        //Suppression table spip_genespip_mariage
78            spip_query("DROP TABLE spip_genespip_mariage");
79            echo "Suppression de la table mariage remplac&eacute; par la table &eacute;v&egrave;nements.<br />";
80                        //Ajout du champ limitation dans spip_genespip_individu
81            spip_query("ALTER TABLE spip_genespip_individu ADD format_signature TEXT NOT NULL");
82                        //Ajout de la table journal
83           spip_query("CREATE TABLE spip_genespip_journal (id_journal INT NOT NULL AUTO_INCREMENT, action TINYTEXT NOT NULL, descriptif TEXT NOT NULL, id_individu INT NOT NULL, id_auteur INT NOT NULL, date_update DATETIME NOT NULL, PRIMARY KEY (id_journal)) TYPE=MyISAM") or die ("Requête spip_genespip_journal invalide");
84           echo "Base journal cr&eacute;&eacute;e.<br />";
85                       
86            ecrire_meta('genespip_base_version',$current_version=0.1);
87        }
88               
89                if ($current_version>0.6){
90                        //Suppression spip_genespip_parametres
91            spip_query("DROP TABLE spip_genespip_parametres");
92            ecrire_meta('genespip_base_version',$current_version=0.6);
93        }
94        ecrire_metas();
95    }
96}
97?>
Note: See TracBrowser for help on using the repository browser.