source: spip-zone/_plugins_/coordonnees/trunk/coordonnees_administrations.php @ 70500

Last change on this file since 70500 was 70500, checked in by tcharlss@…, 6 years ago

Portage complet du plugin en SPIP 3.

Réorganisation des répertoires
==============================

  • prive/exec, prive/boite => prive/squelettes/contenu
  • prive/liste => prive/objets/liste
  • prive/infos : supprimé, aucun lien ne mène vers les fiches des coordonnées, donc a priori on n'a pas besoin des boite infos correspondantes.
  • images => prive/themes/spip/images

Images
======
nouvelles icônes & suppression des icônes redondantes (supprimer-16.png, edition-16.png)

Pipelines
=========

  • liste_objets_coordonnées : supprimée, une saisie "liste_objets" suffit.
  • affiche_milieu : remplacée par "afficher_fiche_objet".

formulaires d'édition / boutons d'action
=======================================
On utilise l'API d'édition de liens.

  • Une seule action mutualisée "dissocier_supprimer_coordonnee" à la place de "supprimer_[adresse/numero/email]"
  • Plus besoin des actions editer_[adresse/numero/email]

Boite dans la fiche d'un objet
==============================
Réécrite complète afin de l'ajaxer et de la rendre plus concise visuellement.
On affiche donc la boite *en complément* de la fiche d'un objet, et non plus dans la fiche elle même (cf. note pipelines).
Les liens d'ajout sont affichés en permanence, au lieu du survol.

Et je crois que c'est tout.

File size: 5.7 KB
Line 
1<?php
2/**
3 * Plugin Coordonnees
4 * Licence GPL (c) 2010 - Marcimat / Ateliers CYM
5 */
6
7if (!defined('_ECRIRE_INC_VERSION')) return;
8
9
10/**
11 * Fonction d'installation du plugin et de mise à jour.
12**/
13function coordonnees_upgrade($nom_meta_base_version, $version_cible) {
14        $maj = array();
15        $maj['create'] = array(
16                array('maj_tables', array('spip_adresses')),
17                array('maj_tables', array('spip_adresses_liens')),
18                array('maj_tables', array('spip_numeros')),
19                array('maj_tables', array('spip_numeros_liens')),
20                array('maj_tables', array('spip_emails')),
21                array('maj_tables', array('spip_emails_liens')),
22                array('ecrire_meta', 'coordonnees', serialize(array('objets'=>array('spip_auteurs'))))
23        );
24        $maj['1.1'] = array(
25                array('sql_update', array(array("voie" => "CONCAT(numero, ' ', voie)"),array("numero IS NOT NULL", "numero <> ''"))),
26                array('sql_alter', "TABLE spip_adresses DROP COLUMN numero")
27        );
28
29        $maj['1.2'] = array(
30                array('sql_alter', 'TABLE spip_adresses CHANGE type_adresse titre varchar(255) not null default ""'),
31                array('sql_alter', 'TABLE spip_numeros CHANGE type_numero titre varchar(255) not null default ""'),
32                array('sql_alter', 'TABLE spip_emails CHANGE type_email titre varchar(255) not null default ""')
33        );
34
35        // On passe les pays en code ISO, beaucoup plus génériques que les ids SQL
36        $maj['1.3'] = array(
37                array('sql_alter', 'TABLE spip_adresses ADD pays_code varchar(2) not null default ""'),
38                array('coordonnees_upgrade_1_3'),
39                array('sql_alter', 'TABLE spip_adresses DROP pays'),
40                array('sql_alter', 'TABLE spip_adresses CHANGE pays_code pays varchar(2) not null default ""'),
41        );
42
43        // On avait supprime les types, mais ils reviennent en force mais dans les LIENS
44        $maj['1.4'] = array(
45                        array('sql_alter', 'TABLE spip_adresses_liens ADD type varchar(25) not null default ""'),
46                        array('sql_alter', 'TABLE spip_adresses_liens DROP PRIMARY KEY'),
47                        array('sql_alter', 'TABLE spip_adresses_liens ADD PRIMARY KEY (id_adresse, id_objet, objet, type)'),
48                        array('sql_alter', 'TABLE spip_numeros_liens ADD type varchar(25) not null default ""'),
49                        array('sql_alter', 'TABLE spip_numeros_liens DROP PRIMARY KEY'),
50                        array('sql_alter', 'TABLE spip_numeros_liens ADD PRIMARY KEY (id_numero, id_objet, objet, type)'),
51                        array('sql_alter', 'TABLE spip_emails_liens ADD type varchar(25) not null default ""'),
52                        array('sql_alter', 'TABLE spip_emails_liens DROP PRIMARY KEY'),
53                        array('sql_alter', 'TABLE spip_emails_liens ADD PRIMARY KEY (id_email, id_objet, objet, type)'),
54
55                        );
56        // mettre les auteurs par defaut comme objet «coordonnable»
57        $maj['1.5'] = array(
58                array('ecrire_meta','coordonnees', serialize(array('objets'=>array('auteur')))),
59        );
60
61        // ajout du champs region a la table adresses
62        $maj['1.6'] = array(
63                array('maj_tables', array('spip_adresses')),
64        );
65
66        // migration de certaines valeurs pour pouvoir faire fonctionner les selecteurs pendant l'edition
67        //!\ comme on n'est pas certain de tous les migrer il y a donc rupture de compatibilite ? :-S
68        $maj['1.7'] = array(
69                array('sql_updateq', "spip_adresses_liens", array('type'=>'work'), "LOWER(type) LIKE 'pro%'"),
70                array('sql_updateq', "spip_numeros_liens", array('type'=>'work'), "LOWER(type) LIKE 'pro%'"),
71                array('sql_updateq', "spip_adresses_liens", array('type'=>'home'), "LOWER(type) LIKE 'perso%'"),
72                array('sql_updateq', "spip_adresses_liens", array('type'=>'home'), "LOWER(type) LIKE 'dom%'"),
73                array('sql_updateq', "spip_numeros_liens", array('type'=>'home'), "LOWER(type) LIKE 'perso%'"),
74                array('sql_updateq', "spip_numeros_liens", array('type'=>'cell'), "LOWER(type) LIKE 'cel%'"),
75                array('sql_updateq', "spip_numeros_liens", array('type'=>'cell'), "LOWER(type) LIKE 'mob%'"),
76        );
77
78        // Definition des tables principales par declarer_tables_objets_sql au lieu de declarer_tables_principales
79        $maj['1.8'] = array(
80                array('maj_tables', array('spip_adresses', 'spip_adresses_liens', 'spip_numeros', 'spip_numeros_liens', 'spip_emails', 'spip_emails_liens')),
81        );
82        // Oublié le champ 'type' dans les tables de liens
83        $maj['1.8.1'] = array(
84                array('maj_tables', array('spip_adresses_liens', 'spip_numeros_liens', 'spip_emails_liens')),
85        );
86
87        // Metas : conversion des objets «coordonnables» : on utilise les noms des tables (auteur -> spip_auteurs)
88        $maj['1.8.2']= array(
89                array('coordonnees_upgrade_1_8_2'),
90        );
91
92        include_spip('base/upgrade');
93        maj_plugin($nom_meta_base_version, $version_cible, $maj);
94}
95
96
97/**
98 * Fonction de désinstallation du plugin.
99**/
100function coordonnees_vider_tables($nom_meta_base_version) {
101
102        sql_drop_table("spip_adresses");
103        sql_drop_table("spip_adresses_liens");
104        sql_drop_table("spip_numeros");
105        sql_drop_table("spip_numeros_liens");
106        sql_drop_table("spip_emails");
107        sql_drop_table("spip_emails_liens");
108
109        effacer_meta('coordonnees');
110        effacer_meta($nom_meta_base_version);
111}
112
113
114/**
115 * Fonction mise a jour vers 1.3
116**/
117function coordonnees_upgrade_1_3() {
118        // On parcourt les adresses pour remplir le code du pays
119        $adresses = sql_allfetsel('id_adresse,pays', 'spip_adresses');
120        if ($adresses and is_array($adresses)){
121                foreach ($adresses as $adresse){
122                        $ok &= sql_update(
123                                'spip_adresses',
124                                array('pays_code' => '(SELECT code FROM spip_pays WHERE id_pays='.intval($adresse['pays']).')'),
125                                'id_adresse='.intval($adresse['id_adresse'])
126                        );
127                }
128        }
129}
130
131
132/**
133 * Fonction mise a jour vers 1.8.2
134 * Metas : conversion des objets «coordonnables» : on utilise les noms des tables (auteur -> spip_auteurs)
135**/
136function coordonnees_upgrade_1_8_2() {
137        include_spip('inc/config');
138        if ( $objets = lire_config('coordonnees/objets', null, true) AND is_array($objets) AND count($objets) > 0 ) {
139                foreach ($objets as $objet) $objets_sql[] = table_objet_sql($objet);
140                effacer_config('coordonnees/objets');
141                ecrire_config('coordonnees/objets', $objets_sql);
142        }
143}
144
145?>
Note: See TracBrowser for help on using the repository browser.