diff --git a/base/roles_gis.php b/base/roles_gis.php index a54d9da..0be2604 100755 --- a/base/roles_gis.php +++ b/base/roles_gis.php @@ -1,15 +1,18 @@ "role", - "roles_titres" => array( + 'roles_colonne' => 'role', + 'roles_titres' => array( 'action' => 'gis_roles:role_action', 'informatif' => 'gis_roles:role_informatif', ), - "roles_objets" => array( + 'roles_objets' => array( 'cartes' => array( 'choix' => array('action','informatif'), 'defaut' => 'action' @@ -22,6 +25,6 @@ function roles_gis_declarer_tables_objets_sql($tables){ function roles_gis_declarer_tables_auxiliaires($tables) { $tables['spip_gis_liens']['field']['role'] = "varchar(30) NOT NULL DEFAULT ''"; - $tables['spip_gis_liens']['key']['PRIMARY KEY'] = "id_gis,id_objet,objet,role"; + $tables['spip_gis_liens']['key']['PRIMARY KEY'] = 'id_gis,id_objet,objet,role'; return $tables; -} \ No newline at end of file +} diff --git a/roles_gis_administrations.php b/roles_gis_administrations.php index b370339..4e63728 100755 --- a/roles_gis_administrations.php +++ b/roles_gis_administrations.php @@ -1,47 +1,52 @@ 'action'),array('role=' .sql_quote(''))) ); - + include_spip('base/upgrade'); maj_plugin($nom_meta_base_version, $version_cible, $maj); } function roles_gis_vider_tables($nom_meta_base_version) { - - // tant qu'il existe des doublons, on supprime une ligne doublonnée - // sinon on ne pourra pas modifier la cle primaire ensuite - // cet algo est certainement a optimiser - while ($doublons = sql_allfetsel( - array('id_gis', 'id_objet', 'objet', 'role'), - array('spip_gis_liens'), - '', 'id_gis,id_objet,objet', '', '', 'COUNT(*) > 1')) - { - foreach ($doublons as $d) { - $where = array(); - foreach ($d as $cle=>$valeur) { - $where[] = "$cle=".sql_quote($valeur); - } - sql_delete('spip_gis_liens', $where); + // tant qu'il existe des doublons, on supprime une ligne doublonnée + // sinon on ne pourra pas modifier la cle primaire ensuite + // cet algo est certainement a optimiser + while ($doublons = sql_allfetsel( + array('id_gis', 'id_objet', 'objet', 'role'), + array('spip_gis_liens'), + '', + 'id_gis,id_objet,objet', + '', + '', + 'COUNT(*) > 1' + )) { + foreach ($doublons as $d) { + $where = array(); + foreach ($d as $cle => $valeur) { + $where[] = "$cle=".sql_quote($valeur); } + sql_delete('spip_gis_liens', $where); } - - // supprimer la clé primaire, la colonne rôle, et remettre l'ancienne clé primaire - sql_alter("TABLE spip_gis_liens DROP PRIMARY KEY"); - sql_alter("TABLE spip_gis_liens DROP COLUMN role"); - sql_alter("TABLE spip_gis_liens ADD PRIMARY KEY (id_gis,id_objet,objet)"); - - effacer_meta($nom_meta_base_version); - } \ No newline at end of file + } + + // supprimer la clé primaire, la colonne rôle, et remettre l'ancienne clé primaire + sql_alter('TABLE spip_gis_liens DROP PRIMARY KEY'); + sql_alter('TABLE spip_gis_liens DROP COLUMN role'); + sql_alter('TABLE spip_gis_liens ADD PRIMARY KEY (id_gis,id_objet,objet)'); + + effacer_meta($nom_meta_base_version); +}