Changeset 82260 in spip-zone


Ignore:
Timestamp:
May 7, 2014, 1:56:39 PM (5 years ago)
Author:
tcharlss@…
Message:

Report du trunk sur la branche v2
============================

Le trunk a reçu pas mal de changements depuis le branchage (r70498).
Les changements ont consisté à finir le portage SPIP 3 (nomenclature des fichiers/répertoires/fonctions) et à revoir un peu l'interface.
Tout ça étant arrivé à maturité, il est temps de reporter tout ça sur la branche stable pour SPIP 3 avec un merge.
Pour les détails, se reporter aux numéros de révisions indiqués.

Incrémentation du numéro de version : 2.2.2

  • Révision de l'interface et de la nomenclature des répertoires (r70500).

Les coordonnées associées à un objet sont affichées via la pipeline "afficher_fiche_objet" au lieu de "affiche_milieu".
L'idée, c'est qu'utiliser "affiche_milieu" est logique pour une fiche auteur, mais maintenant qu'on peut associer des coordonnées à n'importe quel objet éditorial, ce n'est pas la place appropriée.
Comme la liste peut s'allonger, mieux vaut la placer en bas de la fiche.
On peut ajouter/éditer/retirer des coordonées sur place, sans quitter la fiche de l'objet.

Location:
_plugins_/coordonnees/branches/v2
Files:
6 deleted
15 edited
16 copied

Legend:

Unmodified
Added
Removed
  • _plugins_/coordonnees/branches/v2/base/coordonnees.php

    r70425 r82260  
    11<?php
    22/**
    3  * Plugin Coordonnees pour Spip 2.1
     3 * Plugin Coordonnees
    44 * Licence GPL (c) 2010 - Marcimat / Ateliers CYM
    55 */
    66
    7 function coordonnees_declarer_tables_interfaces($interface){
     7if (!defined('_ECRIRE_INC_VERSION')) return;
    88
    9         $interface['table_des_tables']['adresses'] = 'adresses';
    10         $interface['table_des_tables']['numeros'] = 'numeros';
    11         $interface['table_des_tables']['emails'] = 'emails';
    129
    13         $interface['tables_jointures']['spip_auteurs'][] = 'adresses_liens';
    14         $interface['tables_jointures']['spip_adresses'][] = 'adresses_liens';
     10/**
     11 * Déclaration des alias de tables et filtres automatiques de champs
     12 */
     13function coordonnees_declarer_tables_interfaces($interfaces) {
    1514
    16         $interface['tables_jointures']['spip_auteurs'][] = 'numeros_liens';
    17         $interface['tables_jointures']['spip_numeros'][] = 'numeros_liens';
     15        $interfaces['table_des_tables']['adresses'] = 'adresses';
     16        $interfaces['table_des_tables']['numeros'] = 'numeros';
     17        $interfaces['table_des_tables']['emails'] = 'emails';
    1818
    19         $interface['tables_jointures']['spip_auteurs'][] = 'emails_liens';
    20         $interface['tables_jointures']['spip_emails'][] = 'emails_liens';
     19        $interfaces['tables_jointures']['spip_auteurs'][] = 'adresses_liens';
     20        $interfaces['tables_jointures']['spip_auteurs'][] = 'numeros_liens';
     21        $interfaces['tables_jointures']['spip_auteurs'][] = 'emails_liens';
    2122
    22         $interface['table_des_traitements']['VILLE'][] = _TRAITEMENT_TYPO;
     23        $interfaces['table_des_traitements']['VILLE'][] = _TRAITEMENT_TYPO;
    2324
    24         return $interface;
     25        return $interfaces;
    2526}
     27
    2628
    2729/**
     
    3032function coordonnees_declarer_tables_objets_sql($tables) {
    3133
     34        /* ADRESSES */
    3235        $tables['spip_adresses'] = array(
    33                 'type' => 'adresse',
    34                 'principale' => "oui",
     36                'type'                   => 'adresse',
     37                'principale'             => "oui",
    3538                'field'=> array(
    36                         "id_adresse"         => "bigint(21) NOT NULL",
    37                         "titre"              => "varchar(255) NOT NULL DEFAULT ''", // perso, pro, vacance...
    38                         "voie"               => "tinytext NOT NULL", // p. ex. 21 rue de cotte
    39                         "complement"         => "tinytext NOT NULL", // p. ex. 3e etage
    40                         "boite_postale"      => "varchar(40) NOT NULL DEFAULT ''",
    41                         "code_postal"        => "varchar(40) NOT NULL DEFAULT ''",
    42                         "ville"              => "tinytext NOT NULL",
    43                         "region"             => "varchar(40) NOT NULL DEFAULT ''",
    44                         "pays"               => "varchar(3) NOT NULL DEFAULT ''",
    45                         "maj"                => "TIMESTAMP"
     39                        "id_adresse"       => "bigint(21) NOT NULL",
     40                        "titre"            => "varchar(255) NOT NULL DEFAULT ''", // perso, pro, vacance...
     41                        "voie"             => "tinytext NOT NULL", // p. ex. 21 rue de cotte
     42                        "complement"       => "tinytext NOT NULL", // p. ex. 3e etage
     43                        "boite_postale"    => "varchar(40) NOT NULL DEFAULT ''",
     44                        "code_postal"      => "varchar(40) NOT NULL DEFAULT ''",
     45                        "ville"            => "tinytext NOT NULL",
     46                        "region"           => "varchar(40) NOT NULL DEFAULT ''",
     47                        "pays"             => "varchar(3) NOT NULL DEFAULT ''",
     48                        "maj"              => "TIMESTAMP"
    4649                ),
    4750                'key' => array(
    48                         "PRIMARY KEY"        => "id_adresse",
    49                         "KEY iso3166"        => "pays",
    50                         "KEY zip"            => "region, code_postal"
     51                        "PRIMARY KEY"      => "id_adresse",
     52                        "KEY iso3166"      => "pays",
     53                        "KEY zip"          => "region, code_postal"
    5154                ),
    5255                'titre' => "titre AS titre, '' AS lang",
    53                  #'date' => "",
    54                 'champs_editables'  => array('titre', 'voie', 'complement', 'boite_postale', 'code_postal', 'ville', 'region', 'pays'),
    55                 'champs_versionnes' => array(),
    56                 'rechercher_champs' => array(),
    57                 'tables_jointures'  => array('spip_adresses_liens'),
    58                 'texte_objets' => "coordonnees:adresses"
    59 
    60 
     56                'champs_editables'       => array('titre', 'voie', 'complement', 'boite_postale', 'code_postal', 'ville', 'region', 'pays'),
     57                'champs_versionnes'      => array(),
     58                'rechercher_champs'      => array('pays'=>8, 'titre'=>5, 'voie'=>3, 'region'=>3, 'region'=>3, 'ville'=>3),
     59                'tables_jointures'       => array('spip_adresses_liens'),
     60                /* Les textes standard */
     61                'texte_modifier'         => 'coordonnees:modifier_adresse',
     62                'texte_ajouter'          => 'coordonnees:ajouter_adresse',
     63                'texte_logo_objet'       => 'coordonnees:logo_adresse',
     64                'texte_creer'            => 'coordonnees:nouvelle_adresse',
     65                'texte_objet'            => 'coordonnees:adresse',
     66                'texte_objets'           => 'coordonnees:adresses',
     67                'info_aucun_objet'       => 'coordonnees:info_aucune_adresse',
     68                'info_1_objet'           => 'coordonnees:info_1_adresse',
     69                'info_nb_objets'         => 'coordonnees:info_nb_adresses',
    6170        );
    6271
     72        /* NUMEROS DE TELEPHONE */
    6373        $tables['spip_numeros'] = array(
    64                 'type' => 'numero',
    65                 'principale' => "oui",
     74                'type'                   => 'numero',
     75                'principale'             => "oui",
    6676                'field'=> array(
    67                         "id_numero"          => "bigint(21) NOT NULL",
    68                         "titre"              => "varchar(255) NOT NULL DEFAULT ''", // peut etre domicile, bureau, portable
    69                         "numero"             => "varchar(255) NOT NULL DEFAULT ''",
    70                         "maj"                => "TIMESTAMP"
     77                        "id_numero"        => "bigint(21) NOT NULL",
     78                        "titre"            => "varchar(255) NOT NULL DEFAULT ''", // domicile, bureau, etc.
     79                        "numero"           => "varchar(255) NOT NULL DEFAULT ''",
     80                        "maj"              => "TIMESTAMP"
    7181                ),
    7282                'key' => array(
    73                         "PRIMARY KEY"        => "id_numero",
    74                   "KEY numero"         => "numero" // on ne met pas unique pour le cas ou 2 contacts partagent le meme numero generique
     83                        "PRIMARY KEY"      => "id_numero",
     84                        "KEY numero"       => "numero" // on ne met pas unique pour le cas ou 2 contacts partagent le meme numero generique
    7585                ),
    7686                'titre' => "titre AS titre, '' AS lang",
    77                  #'date' => "",
    78                 'champs_editables'  => array( 'titre', 'numero'),
    79                 'champs_versionnes' => array(),
    80                 'rechercher_champs' => array(),
    81                 'tables_jointures'  => array('spip_numeros_liens'),
    82                 'texte_objets' => "coordonnees:numeros"
    83 
    84 
     87                'champs_editables'       => array( 'titre', 'numero' ),
     88                'champs_versionnes'      => array(),
     89                'rechercher_champs'      => array('titre'=>5, 'numero'=>5),
     90                'tables_jointures'       => array('spip_numeros_liens'),
     91                /* Les textes standard */
     92                'texte_modifier'         => 'coordonnees:modifier_numero',
     93                'texte_ajouter'          => 'coordonnees:ajouter_numero',
     94                'texte_logo_objet'       => 'coordonnees:logo_numero',
     95                'texte_creer'            => 'coordonnees:nouveau_numero',
     96                'texte_objet'            => 'coordonnees:numero',
     97                'texte_objets'           => 'coordonnees:numeros',
     98                'info_aucun_objet'       => 'coordonnees:info_aucun_numero',
     99                'info_1_objet'           => 'coordonnees:info_1_numero',
     100                'info_nb_objets'         => 'coordonnees:info_nb_numeros',
    85101        );
    86102
     103        /* EMAILS */
    87104        $tables['spip_emails'] = array(
    88                 'type' => 'email',
    89                 'principale' => "oui",
     105                'type'                   => 'email',
     106                'principale'             => "oui",
    90107                'field'=> array(
    91                         "id_email"           => "bigint(21) NOT NULL",
    92                         "titre"              => "varchar(255) NOT NULL DEFAULT ''", // peut etre perso, boulot, etc.
    93                         "email"              => "varchar(255) NOT NULL DEFAULT ''",
    94                         "maj"                => "TIMESTAMP"
     108                        "id_email"         => "bigint(21) NOT NULL",
     109                        "titre"            => "varchar(255) NOT NULL DEFAULT ''", // perso, boulot, etc.
     110                        "email"            => "varchar(255) NOT NULL DEFAULT ''",
     111                        "maj"              => "TIMESTAMP"
    95112                ),
    96113                'key' => array(
    97                         "PRIMARY KEY"        => "id_email",
    98                 "KEY email"              => "email" // on ne met pas unique pour le cas ou 2 contacts partagent le meme mail generique
     114                        "PRIMARY KEY"      => "id_email",
     115                        "KEY email"        => "email" // on ne met pas unique pour le cas ou 2 contacts partagent le meme mail generique
    99116                ),
    100117                'titre' => "titre AS titre, '' AS lang",
    101                  #'date' => "",
    102                 'champs_editables'  => array( 'titre', 'email'),
    103                 'champs_versionnes' => array(),
    104                 'rechercher_champs' => array(),
    105                 'tables_jointures'  => array('spip_emails_liens'),
    106                 'texte_objets' => "coordonnees:emails"
    107 
    108 
     118                'champs_editables'       => array( 'titre', 'email' ),
     119                'champs_versionnes'      => array(),
     120                'rechercher_champs'      => array('titre'=>5, 'email'=>5),
     121                'tables_jointures'       => array('spip_emails_liens'),
     122                /* Les textes standard */
     123                'texte_modifier'         => 'coordonnees:modifier_email',
     124                'texte_ajouter'          => 'coordonnees:ajouter_email',
     125                'texte_logo_objet'       => 'coordonnees:logo_email',
     126                'texte_creer'            => 'coordonnees:nouvel_email',
     127                'texte_objet'            => 'coordonnees:email',
     128                'texte_objets'           => 'coordonnees:emails',
     129                'info_aucun_objet'       => 'coordonnees:info_aucun_email',
     130                'info_1_objet'           => 'coordonnees:info_1_email',
     131                'info_nb_objets'         => 'coordonnees:info_nb_emails',
    109132        );
    110133
     
    120143        $tables['spip_adresses_liens'] = array(
    121144                'field' => array(
    122                         "id_adresse"         => "bigint(21) DEFAULT '0' NOT NULL",
    123                         "id_objet"           => "bigint(21) DEFAULT '0' NOT NULL",
    124                         "objet"              => "VARCHAR(25) DEFAULT '' NOT NULL", // peut etre un compte ou un contact
    125                         "type"               => "VARCHAR(25) DEFAULT '' NOT NULL",
    126                         "vu"                 => "VARCHAR(6) DEFAULT 'non' NOT NULL"
     145                        "id_adresse"        => "bigint(21) DEFAULT '0' NOT NULL",
     146                        "id_objet"          => "bigint(21) DEFAULT '0' NOT NULL",
     147                        "objet"             => "VARCHAR(25) DEFAULT '' NOT NULL",
     148                        "type"              => "VARCHAR(25) DEFAULT '' NOT NULL",
     149                        "vu"                => "VARCHAR(6) DEFAULT 'non' NOT NULL"
    127150                ),
    128151                'key' => array(
    129                         "PRIMARY KEY"        => "id_adresse,id_objet,objet,type", // on rajoute le type car on en rajoute un par liaison et qu'il peut y en avoir plusieurs
    130                         "KEY id_adresse"     => "id_adresse"
     152                        "PRIMARY KEY"       => "id_adresse,id_objet,objet,type", // on rajoute le type car on en rajoute un par liaison et qu'il peut y en avoir plusieurs
     153                        "KEY id_adresse"    => "id_adresse"
    131154                )
    132155        );
    133156        $tables['spip_numeros_liens'] = array(
    134157                'field' => array(
    135                         "id_numero"          => "bigint(21) DEFAULT '0' NOT NULL",
    136                         "id_objet"           => "bigint(21) DEFAULT '0' NOT NULL",
    137                         "objet"              => "VARCHAR(25) DEFAULT '' NOT NULL", // peut etre un contact ou un compte
    138                         "type"               => "VARCHAR(25) DEFAULT '' NOT NULL",
    139                         "vu"                 => "VARCHAR(6) DEFAULT 'non' NOT NULL"
     158                        "id_numero"         => "bigint(21) DEFAULT '0' NOT NULL",
     159                        "id_objet"          => "bigint(21) DEFAULT '0' NOT NULL",
     160                        "objet"             => "VARCHAR(25) DEFAULT '' NOT NULL",
     161                        "type"              => "VARCHAR(25) DEFAULT '' NOT NULL",
     162                        "vu"                => "VARCHAR(6) DEFAULT 'non' NOT NULL"
    140163                ),
    141164                'key' => array(
    142                         "PRIMARY KEY"        => "id_numero,id_objet,objet,type", // on rajoute le type car on en rajoute un par liaison et qu'il peut y en avoir plusieurs
    143                         "KEY id_numero"      => "id_numero"
     165                        "PRIMARY KEY"       => "id_numero,id_objet,objet,type", // on rajoute le type car on en rajoute un par liaison et qu'il peut y en avoir plusieurs
     166                        "KEY id_numero"     => "id_numero"
    144167                )
    145168        );
    146169        $tables['spip_emails_liens'] = array(
    147170                'field' => array(
    148                         "id_email"           => "bigint(21) DEFAULT '0' NOT NULL",
    149                         "id_objet"           => "bigint(21) DEFAULT '0' NOT NULL",
    150                         "objet"              => "VARCHAR(25) DEFAULT '' NOT NULL", // peut etre un contact ou un compte
    151                         "type"               => "VARCHAR(25) DEFAULT '' NOT NULL",
    152                         "vu"                 => "VARCHAR(6) DEFAULT 'non' NOT NULL"
     171                        "id_email"          => "bigint(21) DEFAULT '0' NOT NULL",
     172                        "id_objet"          => "bigint(21) DEFAULT '0' NOT NULL",
     173                        "objet"             => "VARCHAR(25) DEFAULT '' NOT NULL",
     174                        "type"              => "VARCHAR(25) DEFAULT '' NOT NULL",
     175                        "vu"                => "VARCHAR(6) DEFAULT 'non' NOT NULL"
    153176                ),
    154177                'key' => array(
    155                         "PRIMARY KEY"        => "id_email,id_objet,objet,type", // on rajoute le type car on en rajoute un par liaison et qu'il peut y en avoir plusieurs
    156                         "KEY id_email"       => "id_email"
     178                        "PRIMARY KEY"       => "id_email,id_objet,objet,type", // on rajoute le type car on en rajoute un par liaison et qu'il peut y en avoir plusieurs
     179                        "KEY id_email"      => "id_email"
    157180                )
    158181        );
  • _plugins_/coordonnees/branches/v2/coordonnees_administrations.php

    r70498 r82260  
    11<?php
    22/**
    3  * Plugin Coordonnees pour Spip 3
    4  * Licence GPL (c) 2010 - Marcimat / Ateliers CYM
     3 * Fichier gérant l'installation et désinstallation du plugin Coordonnees
     4 *
     5 * @plugin     Coordonnees
     6 * @copyright  2013
     7 * @author     Marcimat / Ateliers CYM
     8 * @licence    GNU/GPL
     9 * @package    SPIP\Coordonnees\Installation
    510 */
    611
    7 function coordonnees_upgrade($nom_meta_base_version, $version_cible){
     12if (!defined('_ECRIRE_INC_VERSION')) return;
    813
    914
     15/**
     16 * Fonction d'installation et de mise à jour du plugin Coordonnees
     17 *
     18 * @param string $nom_meta_base_version
     19 *     Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
     20 * @param string $version_cible
     21 *     Version du schéma de données dans ce plugin (déclaré dans paquet.xml)
     22 * @return void
     23 */
     24function coordonnees_upgrade($nom_meta_base_version, $version_cible) {
    1025        $maj = array();
    1126        $maj['create'] = array(
     
    1631                array('maj_tables', array('spip_emails')),
    1732                array('maj_tables', array('spip_emails_liens')),
    18                 array('ecrire_meta', 'coordonnees', serialize(array('objets'=>array('auteur'))))
     33                array('ecrire_meta', 'coordonnees', serialize(array('objets'=>array('spip_auteurs'))))
    1934        );
    2035        $maj['1.1'] = array(
     
    3752        );
    3853
    39         // On avait supprimer les types, mais ils reviennent en force mais dans les LIENS
     54        // On avait supprime les types, mais ils reviennent en force mais dans les LIENS
    4055        $maj['1.4'] = array(
    4156                        array('sql_alter', 'TABLE spip_adresses_liens ADD type varchar(25) not null default ""'),
     
    5267        // mettre les auteurs par defaut comme objet «coordonnable»
    5368        $maj['1.5'] = array(
    54                 array('ecrire_meta','coordonnees', serialize(array('objets'=>array('auteur'))))
     69                array('ecrire_meta','coordonnees', serialize(array('objets'=>array('spip_auteurs')))),
    5570        );
    5671
     
    7287        );
    7388
    74   // Definition des tables principales par declarer_tables_objets_sql au lieu de declarer_tables_principales
     89        // Definition des tables principales par declarer_tables_objets_sql au lieu de declarer_tables_principales
    7590        $maj['1.8'] = array(
    7691                array('maj_tables', array('spip_adresses', 'spip_adresses_liens', 'spip_numeros', 'spip_numeros_liens', 'spip_emails', 'spip_emails_liens')),
     
    8196        );
    8297
     98        // Metas : conversion des objets «coordonnables» : on utilise les noms des tables (auteur -> spip_auteurs)
     99        $maj['1.8.2']= array(
     100                array('coordonnees_upgrade_1_8_2'),
     101        );
    83102
    84103        include_spip('base/upgrade');
     
    87106
    88107
    89 function coordonnees_upgrade_1_3()
    90 {
    91                         // On parcourt les adresses pour remplir le code du pays
    92                 $adresses = sql_allfetsel('id_adresse,pays', 'spip_adresses');
    93                 if ($adresses and is_array($adresses)){
    94                         foreach ($adresses as $adresse){
    95                                 $ok &= sql_update(
    96                                         'spip_adresses',
    97                                         array('pays_code' => '(SELECT code FROM spip_pays WHERE id_pays='.intval($adresse['pays']).')'),
    98                                         'id_adresse='.intval($adresse['id_adresse'])
    99                                 );
    100                         }
    101                 }
    102 }
    103 
    104 
     108/**
     109 * Fonction de désinstallation du plugin Coordonnees
     110 *
     111 * @param string $nom_meta_base_version
     112 *     Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
     113 * @return void
     114 */
    105115function coordonnees_vider_tables($nom_meta_base_version) {
    106116
     
    116126}
    117127
     128
     129/**
     130 * Fonction mise a jour du plugin Coordonnees vers 1.3
     131 * @return void
     132 */
     133function coordonnees_upgrade_1_3() {
     134        // On parcourt les adresses pour remplir le code du pays
     135        $adresses = sql_allfetsel('id_adresse,pays', 'spip_adresses');
     136        if ($adresses and is_array($adresses)){
     137                foreach ($adresses as $adresse){
     138                        $ok &= sql_update(
     139                                'spip_adresses',
     140                                array('pays_code' => '(SELECT code FROM spip_pays WHERE id_pays='.intval($adresse['pays']).')'),
     141                                'id_adresse='.intval($adresse['id_adresse'])
     142                        );
     143                }
     144        }
     145}
     146
     147
     148/**
     149 * Fonction mise a jour du plugin Coordonnees vers 1.8.2
     150 * Metas : conversion des objets «coordonnables» : on utilise les noms des tables (auteur -> spip_auteurs)
     151 * @return void
     152 */
     153function coordonnees_upgrade_1_8_2() {
     154        include_spip('inc/config');
     155        if ( $objets = lire_config('coordonnees/objets', null, true) AND is_array($objets) AND count($objets) > 0 ) {
     156                foreach ($objets as $objet) $objets_sql[] = table_objet_sql($objet);
     157                effacer_config('coordonnees/objets');
     158                ecrire_config('coordonnees/objets', $objets_sql);
     159        }
     160}
     161
    118162?>
  • _plugins_/coordonnees/branches/v2/coordonnees_autorisations.php

    r70498 r82260  
    11<?php
    22/**
    3  * Plugin Coordonnees
    4  * Licence GPL (c) 2010 Matthieu Marcillaud
    5 **/
     3 * Définit les autorisations du plugin Coordonnees
     4 *
     5 * @plugin     Coordonnees
     6 * @copyright  2013
     7 * @author     Marcimat / Ateliers CYM
     8 * @licence    GNU/GPL
     9 * @package    SPIP\Coordonnees\Autorisations
     10 */
    611
     12
     13if (!defined('_ECRIRE_INC_VERSION')) return;
     14
     15/**
     16 * Fonction d'appel pour le pipeline
     17 * @pipeline autoriser */
    718function coordonnees_autoriser(){}
    819
     20
     21// --------------
     22// Objet Adresses
     23
     24// creer
     25function autoriser_adresse_creer_dist($faire, $type, $id, $qui, $opt) {
     26        return in_array($qui['statut'], array('0minirezo', '1comite'));
     27}
     28
     29// voir les fiches completes
     30function autoriser_adresse_voir_dist($faire, $type, $id, $qui, $opt) {
     31        return true;
     32}
     33
     34// modifier
     35function autoriser_adresse_modifier_dist($faire, $type, $id, $qui, $opt) {
     36        return in_array($qui['statut'], array('0minirezo', '1comite'));
     37}
     38
     39// supprimer
     40// uniquement les orphelins
     41function autoriser_adresse_supprimer_dist($faire, $type, $id, $qui, $opt) {
     42        include_spip('action/editer_liens');
     43        return !count(objet_trouver_liens(array('adresse'=>$id),'*')) AND ($qui['statut'] == '0minirezo' OR $qui['restreint']);
     44}
     45
     46// associer (lier / delier)
     47function autoriser_associeradresses_dist($faire, $type, $id, $qui, $opt) {
     48        return $qui['statut'] == '0minirezo' OR $qui['restreint'];
     49}
     50
     51
     52// --------------
     53// Objet numeros
     54
     55// creer
     56function autoriser_numero_creer_dist($faire, $type, $id, $qui, $opt) {
     57        return in_array($qui['statut'], array('0minirezo', '1comite'));
     58}
     59
     60// voir les fiches completes
     61function autoriser_numero_voir_dist($faire, $type, $id, $qui, $opt) {
     62        return true;
     63}
     64
     65// modifier
     66function autoriser_numero_modifier_dist($faire, $type, $id, $qui, $opt) {
     67        return in_array($qui['statut'], array('0minirezo', '1comite'));
     68}
     69
     70// supprimer
     71// uniquement les orphelins
     72function autoriser_numero_supprimer_dist($faire, $type, $id, $qui, $opt) {
     73        include_spip('action/editer_liens');
     74        return !count(objet_trouver_liens(array('numero'=>$id),'*')) AND ($qui['statut'] == '0minirezo' OR $qui['restreint']);
     75}
     76
     77// associer (lier / delier)
     78function autoriser_associernumeros_dist($faire, $type, $id, $qui, $opt) {
     79        return $qui['statut'] == '0minirezo' OR $qui['restreint'];
     80}
     81
     82
     83// ------------
     84// Objet emails
     85
     86// creer
     87function autoriser_email_creer_dist($faire, $type, $id, $qui, $opt) {
     88        return in_array($qui['statut'], array('0minirezo', '1comite'));
     89}
     90
     91// voir les fiches completes
     92function autoriser_email_voir_dist($faire, $type, $id, $qui, $opt) {
     93        return true;
     94}
     95
     96// modifier
     97function autoriser_email_modifier_dist($faire, $type, $id, $qui, $opt) {
     98        return in_array($qui['statut'], array('0minirezo', '1comite'));
     99}
     100
     101// supprimer
     102// uniquement les orphelins
     103function autoriser_email_supprimer_dist($faire, $type, $id, $qui, $opt) {
     104        include_spip('action/editer_liens');
     105        return !count(objet_trouver_liens(array('emails'=>$id),'*')) AND ($qui['statut'] == '0minirezo' OR $qui['restreint']);
     106}
     107
     108
     109// associer (lier / delier)
     110function autoriser_associeremails_dist($faire, $type, $id, $qui, $opt) {
     111        return $qui['statut'] == '0minirezo' OR $qui['restreint'];
     112}
     113
     114
     115
    9116?>
  • _plugins_/coordonnees/branches/v2/coordonnees_fonctions.php

    r71238 r82260  
    11<?php
    22/**
    3  * Plugin Coordonnees
    4  * Licence GPL (c) 2010 Matthieu Marcillaud
     3 * Fonctions utiles au plugin Coordonnées
     4 *
     5 * @plugin     Coordonnees
     6 * @copyright  2013
     7 * @author     Marcimat / Ateliers CYM
     8 * @licence    GNU/GPL
     9 * @package    SPIP\Coordonnees\Fonctions
     10 */
     11
     12if (!defined('_ECRIRE_INC_VERSION')) return;
     13
     14/**
     15 * Lister l'ensemble des types de liaisons d'une coordonnée, ou la chaîne de langue d'un type de liaison donné.
     16 *
     17 * Fonction privée mutualisée utilisée par les fonctions `filtre_coordonnees_lister_types_xxx()`.
     18 * Si on veut tous les types, ignorer le paramètre `$type` : la fonction renvoie un tableau contenant les couples types/chaînes de langue de la coordonnée.
     19 * Si on veut un seul type en utilisant le paramètre éponyme, elle renvoie la chaîne de langue du type donné.
     20 *
     21 * adresses : RFC2426/CCITT.X520 :         dom home intl parcel postal pref work
     22 * numéros :  RFC2426/CCITT.X500 :         bbs car cell fax home isdn modem msg pager pcs pref video voice work
     23 *            RFC6350/CCITT.X520.1988 :    cell fax pager text textphone video voice x-... (iana-token)
     24 *                                         +dsl
     25 * emails :   RFC2426/IANA :               internet pref x400
     26 *            RFC6350/CCITT.X520+RFC5322 : home (perso) intl work (pro)
     27 *
     28 * @note
     29 * Quand la paramètre `$type` n'est pas `NULL`, mais qu'il est vide,
     30 * ça veut dire qu'on a utilisé `#TYPE|coordonnees_lister_types_xxx` avec un `#TYPE` vide.
     31 * Dans ce cas là il ne faut rien retourner.
     32 *
     33 * @param string $coordonnee
     34 *     Coordonnée dont on veut retourner les types
     35 *     adresse | numero | email
     36 *     à éviter : adr | tel | mel
     37 * @param string $type
     38 *     Type de liaison dont on veut retourner la chaîne de langue
     39 *     A utiliser lorsqu'on ne veut retourner qu'une seule chaîne de langue
     40 * @return array|int
     41 *     Couples types/chaînes de langues
     42 *     ou chaîne de langue d'un type donné
     43 *     ou type tel quel si on ne trouve pas sa chaîne de langue
     44 */
     45function coordonnees_lister_types_coordonnees($coordonnee='', $type=null) {
     46
     47        // cf. note
     48        if (!strlen($coordonnee) or (!is_null($type) and !strlen($type))) return;
     49
     50        // On veut définir une liste avec pour chaque objet coordonnée, ses types et les chaînes de langue correspondantes
     51        // Or les chaînes de langue suivent la norme : type_{coordonnee}_{type}
     52        // On s'en sert pour se simplifier la tâche en remplissant automatiquement le tableau
     53
     54        // Définition des types
     55        $types = array(
     56                'adresse' => array('work','home','pref','postal','dom','intl','parcel'),
     57                'numero'  => array('voice','work','home','msg','pref','fax','cell','dsl','video','pager','bbs','modem','car','isdn','pcs'),
     58                'email'   => array('work','home','internet','pref','x400')
     59        );
     60
     61        // Attention, les chaînes de langue ne sont pas "type_adresse_xxx", mais "type_adr_xxx" etc.
     62        // Il faut donc établir une correspondance abbréviation/coordonnée
     63        $abbr = array(
     64                'adr'    => 'adresse',
     65                'tel'    => 'numero',
     66                'mel'    => 'email',
     67                'email'  => 'email'
     68        );
     69        $coord2abbr = array_flip($abbr);
     70
     71        // Vérification au cas-où
     72        if (!in_array($coordonnee,$abbr) and !in_array($coordonnee,$coord2abbr)) return;
     73
     74        // Pour compatibilité si on utilise les abbréviations : adr etc.
     75        if (in_array($coordonnee,$coord2abbr))
     76                $coordonnee = $abbr[$coordonnee];
     77
     78        // Remplissage de la liste
     79        foreach ($types as $coord=>$types_coord)
     80                foreach ($types_coord as $type_coord)
     81                        $liste[$coord][$type_coord] = _T('coordonnees:type_'.$coord2abbr[$coordonnee].'_'.$type_coord);
     82
     83        // Envoyer aux plugins pour qu'ils complètent (ou altèrent) la liste
     84        $liste = pipeline('types_coordonnees', $liste);
     85
     86        // Par défaut, renvoyer un tableau de tous les types
     87        if (is_null($type))
     88                return $liste[$coordonnee];
     89        // S'il y a un type, renvoyer sa chaîne de langue ou à défaut, tel quel
     90        else if ($type)
     91                if ($langue=$liste[$coordonnee][$type])
     92                        return $langue;
     93                else
     94                        return $type;
     95        else return;
     96
     97}
     98
     99
     100/*
     101 * Filtre renvoyant les couples types d'adresses/chaînes de langue ou la chaîne de langue d'une type en particulier
     102 *
     103 * @note
     104 * Quand on veut lister les types d'adresses depuis un squelette, utiliser
     105 * ```#EVAL{null}``` au lieu de ```#REM```
     106 *
     107 * @uses coordonnees_lister_types_coordonnees()
     108 *
     109 * @filtre
     110 * @param string $type
     111 *     Type dont on veut retourner la chaîne de langue
     112 * @return array|int
     113 *     Couples types/chaînes de langues
     114 *     ou chaîne de langue d'un type donné
    5115**/
    6 
    7 if (!defined('_ECRIRE_INC_VERSION')) return;
    8 
    9 /**
    10  * Fonction privee mutualisee utilisee par les filtres logo_type_xx
    11  *
    12  * @param string $id
    13  *  Suffixe du xx du filtre logo_type_xx appelant ;
    14  *  Infixe du logo "images/type_xx_yy.???" a associer ;
    15  *  Correspond normalement a la classe vCard : adr, tel, email
    16  * @param string $val
    17  *  Valeur associee transmise par le filtre logo_type_xx ;
    18  *  Suffixe du logo "images/type_xx_yy.???" a associer ;
    19  *  Correspond au "type" de liaison de la la coordonnee (home, work, etc.)
     116function filtre_coordonnees_lister_types_adresses($type=null) {
     117        return coordonnees_lister_types_coordonnees('adresse',$type);
     118}
     119
     120/*
     121 * Filtre renvoyant les couples types de numéros/chaînes de langue ou la chaîne de langue d'une type en particulier
     122 *
     123 * @note
     124 * Quand on veut lister les types de numéros depuis un squelette, utiliser
     125 * ```#EVAL{null}``` au lieu de ```#REM```
     126 *
     127 * @uses coordonnees_lister_types_coordonnees()
     128 *
     129 * @filtre
     130 * @param string $type
     131 *     Type dont on veut retourner la chaîne de langue
     132 * @return array|int
     133 *     Couples types/chaînes de langues
     134 *     ou chaîne de langue d'un type donné
     135**/
     136function filtre_coordonnees_lister_types_numeros($type=null) {
     137        return coordonnees_lister_types_coordonnees('numero',$type);
     138}
     139
     140/*
     141 * Filtre renvoyant les couples types d'emails/chaînes de langue ou la chaîne de langue d'une type en particulier
     142 *
     143 * @note
     144 * Quand on veut lister les types d'emails depuis un squelette, utiliser
     145 * ```#EVAL{null}``` au lieu de ```#REM```
     146 *
     147 * @uses coordonnees_lister_types_coordonnees()
     148 *
     149 * @filtre
     150 * @param string $type
     151 *     Type dont on veut retourner la chaîne de langue
     152 * @return array|int
     153 *     Couples types/chaînes de langues
     154 *     ou chaîne de langue d'un type donné
     155**/
     156function filtre_coordonnees_lister_types_emails($type=null) {
     157        return coordonnees_lister_types_coordonnees('email',$type);
     158}
     159
     160/**
     161 * Affichage du type de liaison d'une coordonnée
     162 *
     163 * Fonction privee mutualisée utilisée par les filtres logo_type_xx
     164 *
     165 * @note
     166 * Nomenclature des fichiers d'images :
     167 *
     168 * - avec le paramètre `$coordonnee` : `type_${coordonnee}_${type}.ext`
     169 *   ex: `type_adresse_home.png`
     170 * - sans le paramètre `$coordonnee` : `type_${type}.ext`
     171 *   ex: `type_home.png`
     172 *
     173 * @note
     174 * http://www.alsacreations.com/tuto/lire/1222-microformats-design-patterns.html
     175 * http://www.alsacreations.com/tuto/lire/1223-microformats-composes.html
     176 *
     177 * @param string $coordonnee
     178 *     Suffixe du du filtre logo_type_${coordonnee} appelant ;
     179 *     Infixe du logo "type_${coordonnee}_${type}.???" correspondant ;
     180 *     adresse | numero | email
     181 *     à éviter : adr | tel | mel
     182 * @param string $type
     183 *     Valeur associée transmise par le filtre logo_type_${coordonnee} ;
     184 *     Suffixe du logo "type_${coordonnee}_${type}.???" correspondant ;
     185 *     Correspond au "type" de liaison de la la coordonnée (home, work, etc.)
    20186 * @return string
    21  *  Balise <IMG> (s'il existe un logo "images/type_$id_$val") ou <ABBR> (sinon),
    22  * avec classes semantiques micro-format et traduction des valeurs cles RFC2426
    23  * @note
    24  *  http://www.alsacreations.com/tuto/lire/1222-microformats-design-patterns.html
    25  *  http://www.alsacreations.com/tuto/lire/1223-microformats-composes.html
    26  *
    27 **/
    28 function logo_type_($id='', $val='') {
     187 *     Balise `<IMG>` ou `<ABBR>` (sinon),
     188 *     avec classes semantiques micro-format et traduction des valeurs clés RFC2426
     189 */
     190function logo_type_($coordonnee='', $type='') {
     191
     192        include_spip('inc/utils');
     193        include_spip('inc/filtres');
    29194        global $formats_logos;
    30         $type = strtolower($val);
    31         $lang = _T( ($id ? ('coordonnees:type_'. $id) : 'perso:type' )  . '_'.$type ); // les types libres sont traites par le fichier de langue perso
    32         foreach ($formats_logos as $format) { // inspiration source: ecrire/inc/chercher_logo.php
    33                 $fichier = 'images/type'. ($id ? ('_' . $id) : '') . ($type ? ('_' . $type) : '') . '.' . $format;
    34                 if ( $chemin = find_in_path($fichier) )
    35                         $im = $chemin;
     195
     196        // compatibilité : correspondance abbréviation/coordonnée
     197        $abbr = array(
     198                'adr'    => 'adresse',
     199                'tel'    => 'numero',
     200                'mel'    => 'email',
     201                'email'  => 'email'
     202        );
     203        $coord2abbr = array_flip($abbr);
     204        if (in_array($coordonnee,$coord2abbr))
     205                $coordonnee = $abbr[$coordonnee];
     206
     207        // chaîne de langue
     208        $type = strtolower($type);
     209        $langue_coordonnee = coordonnees_lister_types_coordonnees($coordonnee,$type);
     210        $langue_perso = _T("perso:type_${type}",'',array('force'=>false));
     211        $langue = ($type) ? ($coordonnee) ? $langue_coordonnee : $langue_perso : '';
     212
     213        // fichier image
     214        $fichier_coordonnee = "type_${coordonnee}_${type}";
     215        $fichier_abbr = "type_" .$coord2abbr[$coordonnee] ."_${type}";
     216        $fichier_perso = "type_${type}";
     217        foreach ($formats_logos as $ext) {
     218                if ($coordonnee) {
     219                        if     ($image = chemin_image($fichier_coordonnee.'.'.$ext)) break;
     220                        elseif ($image = chemin_image($fichier_abbr.'.'.$ext)) break;
     221                } else {
     222                        if     ($image = chemin_image($fichier_perso.'.'.$ext)) break;
     223                }
    36224        }
    37         if ($im)
    38                 return '<img class="type" src="' . $im . '" alt="' . $type . '" title="' . $lang . '" />';
    39         elseif ($type)
    40                 return '<abbr class="type" title="' . $type . '">' . $lang . '</abbr>';
    41         else
     225
     226        if($langue){
     227                if (isset($image))
     228                        return inserer_attribut(filtre_balise_img_dist($image,$type),'title',$langue);
     229                elseif ($type)
     230                        return inserer_attribut(inserer_attribut(wrap($langue,'<abbr>'),'title',$type),'class','type');
     231                else
     232                        return '';
     233        } else
    42234                return '';
    43235}
     
    46238 * Filtre d'affichage du type d'une adresse
    47239 *
     240 * @uses logo_type_()
     241 * @filtre
     242 *
    48243 * @param string $type_adresse
    49  *  Valeur du type de liaison (cf. logo_type_).
    50  *  Les valeurs nativement prises en compte sont les codes normalisees
    51  * CCITT.X520/RFC2426 (section 3.2.1) : dom home intl parcel postal pref work
     244 *     Valeur du type de liaison (cf. logo_type_).
     245 *     Les valeurs nativement prises en compte sont les codes normalisés
     246 *     CCITT.X520/RFC2426 (section 3.2.1) : dom home intl parcel postal pref work
    52247 * @return string
    53  *  Balise HTML micro-format (cf. logo_type_)
    54 **/
     248 *     Balise HTML micro-format (cf. logo_type_)
     249 */
     250function filtre_logo_type_adresse($type_adresse) {
     251        return logo_type_('adresse', $type_adresse);
     252}
     253/**
     254 * @deprecated
     255 * @uses filtre_logo_type_adresse()
     256 */
    55257function filtre_logo_type_adr($type_adresse) {
    56         return logo_type_('adr', $type_adresse);
     258        return filtre_logo_type_adresse($type_adresse);
    57259}
    58260
     
    60262 * Filtre d'affichage du type d'un numero
    61263 *
     264 * @uses logo_type_()
     265 * @filtre
     266 *
    62267 * @param string $type_numero
    63  *  Valeur du type de liaison (cf. logo_type_).
    64  *  Les valeurs nativement prises en compte sont les codes normalisees
    65  * CCITT.X500/RFC2426 (section 3.3.1) : bbs car cell fax home isdn modem msg pager pcs pref video voice work
    66  * CCITT.X520.1988/RFC6350 (section 6.4.1) : cell fax pager text textphone video voice x-... (iana-token)
    67  * ainsi que : dsl <http://fr.wikipedia.org/wiki/Digital_Subscriber_Line#Familles>
     268 *     Valeur du type de liaison (cf. logo_type_).
     269 *     Les valeurs nativement prises en compte sont les codes normalisés
     270 *     CCITT.X500/RFC2426 (section 3.3.1) :      bbs car cell fax home isdn modem msg pager pcs pref video voice work
     271 *     CCITT.X520.1988/RFC6350 (section 6.4.1) : cell fax pager text textphone video voice x-... (iana-token)
     272 *     ainsi que :                               dsl
     273 *     (<http://fr.wikipedia.org/wiki/Digital_Subscriber_Line#Familles>)
    68274 * @return string
    69  *  Balise HTML micro-format (cf. logo_type_)
    70 **/
     275 *     Balise HTML micro-format (cf. logo_type_)
     276 */
     277function filtre_logo_type_numero($type_numero) {
     278        return logo_type_('numero', $type_numero);
     279}
     280/**
     281 * @deprecated
     282 * @uses filtre_logo_type_numero()
     283 */
    71284function filtre_logo_type_tel($type_numero) {
    72         return logo_type_('tel', $type_numero);
     285        return filtre_logo_type_numero($type_numero);
    73286}
    74287
     
    76289 * Filtre d'affichage du type d'un courriel
    77290 *
     291 * @uses logo_type_()
     292 * @filtre
     293 *
    78294 * @param string $type_email
    79  *  Valeur du type de liaison (cf. logo_type_).
    80  *  Les valeurs nativement prises en compte sont les codes normalisees
    81  * IANA/RFC2426 (section 3.3.2) : internet pref x400
     295 *     Valeur du type de liaison (cf. logo_type_).
     296 *     Les valeurs nativement prises en compte sont les codes normalisés
     297 *     IANA/RFC2426 (section 3.3.2) :               internet pref x400
     298 *     CCITT.X520+RFC5322/RFC6350 (section 6.4.2) : home (perso) intl work (pro)
    82299 * @return string
    83  *  Balise HTML micro-format (cf. logo_type_)
     300 *     Balise HTML micro-format (cf. logo_type_)
    84301**/
    85302function filtre_logo_type_email($type_email) {
    86303        return logo_type_('email', $type_email);
    87304}
    88 
    89 /**
    90  * Filtre d'affichage du type (usage) d'un courriel
    91  *
    92  * @param string $type_email
    93  *  Valeur du type de liaison (cf. logo_type_).
    94  *  Les valeurs nativement prises en compte sont les codes normalisees
    95  * CCITT.X520+RFC5322/RFC6350 (section 6.4.2) : home (perso) intl work (pro)
    96 **/
     305/**
     306 * @deprecated
     307 * @uses filtre_logo_type_email()
     308 */
    97309function filtre_logo_type_mel($type_email) {
    98         return logo_type_('mel', $type_email);
     310        return filtre_logo_type_email($type_email);
    99311}
    100312
  • _plugins_/coordonnees/branches/v2/coordonnees_pipelines.php

    r70726 r82260  
    11<?php
     2/**
     3 * Pipelines du plugin Coordonnees
     4 *
     5 * @plugin     Coordonnees
     6 * @copyright  2013
     7 * @author     Marcimat / Ateliers CYM
     8 * @licence    GNU/GPL
     9 * @package    SPIP\Coordonnees\Pipelines
     10 */
     11
     12if (!defined('_ECRIRE_INC_VERSION')) return;
     13
    214
    315/**
    4  * Plugin Coordonnees
    5  * Licence GPL (c) 2010 Matthieu Marcillaud
     16 * Ajout des coordonnées (adresses, mails, numéros)
     17 * sur la page de visualisation des objets associes
    618**/
     19function coordonnees_afficher_fiche_objet($flux) {
     20        $texte = "";
     21        $exec = isset($flux['args']['exec']) ? $flux['args']['exec'] : _request('exec');
     22        $e = trouver_objet_exec($exec);
     23        $type = $flux['args']['type'];
    724
    8 /**
    9  * Informations sur les objets où peut s'appliquer les coordonnees
    10  *
    11  * @param String $quoi info que l'on veut recuperer (sinon tout le tableau)
    12  * @return Array Liste d'objet et quelques définitions (titre, url_voir)
    13 **/
    14 function liste_objets_coordonnees($quoi = '') {
    15 
    16         $liste = lister_tables_objets_sql(); // tableau de donnees de TOUTES les tables...
    17         unset($liste['spip_adresses'], $liste['spip_emails'], $liste['spip_numeros'], $liste['spip_pays'], $liste['spip_documents'], $liste['spip_messages']); // ...donc on retire ceux du plugin coordonnees ! ...ainsi que ceux de : pays requis (revoir sa declaration pour ne pas avoir a faire ceci), documents (comme pays n'a pas de page de vue) et messages (ca fait etrange, tout comme les mots-cles et groupes de mots-cles...)
    18         foreach ($liste as $tab=>$inf) {
    19                 if (!$liste[$tab]['principale'] OR !$liste[$tab]['editable']) {
    20                         // on ne prendra pas en compte les objets non editables...
    21                         // (ceci vire donc spip_forum spip_petitions spip_signatures spip_syndic_articles spip_depots spip_plugins spip_paquets etc.)
    22                         unset($liste[$tab]);
    23                 } else {
    24                         $type = $liste[$tab]['type'];
    25                         $liste[$type] = $liste[$tab]; // le plugin-ci utilise comme cle le type d'objet alors que le tableau renvoye a comme cle le nom de table, donc on recree l'entree...
    26                         unset($liste[$tab]); // ...et on supprime l'ancienne entree histoire de ne pas allourdir le tableau en memoire
    27                         $liste[$type]['titre'] = _T($liste[$type]['texte_objet']); // on rajoute le titre traduit pour etre affiche par la configuration (je ne sais pas utiliser directement "texte_objet")
    28                 }
     25        if (!$e['edition'] AND in_array(table_objet_sql($type),lire_config('coordonnees/objets')) ) {
     26                $texte .= recuperer_fond('prive/squelettes/contenu/coordonnees_fiche_objet', array(
     27                        'objet' => $type,
     28                        'id_objet' => intval($flux['args']['id']),
     29                        ),
     30                        array('ajax'=>'coordonnees')
     31                );
    2932        }
    3033
    31         if (!$quoi) {
    32                 return $liste;
     34        if ($texte) {
     35                if ($p=strpos($flux['data'],"<!--afficher_fiche_objet-->"))
     36                        $flux['data'] = substr_replace($flux['data'],$texte,$p,0);
     37                else
     38                        $flux['data'] .= $texte;
    3339        }
    3440
    35         $listeq = array();
    36         foreach ($liste as $c=>$v) {
    37                 $listeq[$c] = $v[$quoi];
    38         }
    39         return $listeq;
     41        return $flux;
    4042}
    4143
    4244
    43 
    4445/**
    45  * Ajout des informations de coordonnées (adresses, mails, numéros)
    46  * sur la page de visualisation d'un objet
     46 * Liste des coordonnées d'un auteur sur la page "infos_perso"
    4747**/
    48 function coordonnees_affiche_milieu($flux) {
    49 
     48function coordonnees_affiche_auteurs_interventions($flux) {
     49        $texte = "";
    5050        $exec = isset($flux['args']['exec']) ? $flux['args']['exec'] : _request('exec');
    51 
    52 
    53         $objet_exec = trouver_objet_exec($exec);
    54 
    55         // pas en édition
    56         if ($objet_exec['edition']) {
    57                 return $flux;
     51        if ($id_auteur = intval($flux['args']['id_auteur']) AND $exec != 'auteur') {
     52                $texte .= recuperer_fond('prive/squelettes/contenu/coordonnees_fiche_objet', array(
     53                        'objet' => 'auteur',
     54                        'id_objet' => $id_auteur,
     55                        ),
     56                        array('ajax'=>'coordonnees')
     57                );
    5858        }
    59 
    60         // recuperation de l'id
    61         $_id = $objet_exec['id_table_objet'];
    62         // type d'objet
    63         $type = $objet_exec['type'];
    64         // liste des exec de visualisation pour les objets declares
    65         $liste = liste_objets_coordonnees('url_voir');
    66 
    67         if (isset($type) and isset($liste[$type])){
    68                 // c'est un exec que l'on peut afficher
    69                 // verifions qu'il est coche dans la conf
    70                 $conf = unserialize($GLOBALS['meta']['coordonnees']);
    71                 if (is_array($conf['objets']) AND in_array($type, $conf['objets'])) {
    72                         // on doit l'afficher
    73                         // seulement si on a un identifiant
    74                         if (!isset($_id)) {
    75                                 $_id = id_table_objet($type);
    76                         }
    77 
    78                         if (isset($flux['args'][$_id]) and $id = $flux['args'][$_id]) {
    79                                 include_spip('inc/presentation');
    80                                 $contexte = array(
    81                                         'objet' => $type,
    82                                         'id_objet' => $id,
    83                                         'id_adresse' => _request('id_adresse'),
    84                                         'id_numero' => _request('id_numero'),
    85                                         'id_email' => _request('id_email')
    86 
    87                                 );
    88                                 $flux['data'] .= recuperer_fond('prive/boite/coordonnees', $contexte, array('ajax'=>true));
    89                         }
    90                 }
     59        if ($texte) {
     60                $flux['data'] .= $texte;
    9161        }
    9262
    9363        return $flux;
    94 
    9564}
    9665
    9766
     67/**
     68 * Liaisons avec les objets
     69 * sur la page de visualisation des coordonnées
     70**/
     71function coordonnees_affiche_gauche($flux) {
     72        $texte = "";
     73        $exec = isset($flux['args']['exec']) ? $flux['args']['exec'] : _request('exec');
     74        $e = trouver_objet_exec($exec);
     75        if (
     76                !$e['edition']
     77                and $type = $e['type']
     78                and in_array($type,array('adresse','email','numero'))
     79                and $id_coordonnee = $flux['args']["id_${type}"]
     80        ) {
     81                $texte .= recuperer_fond("prive/squelettes/contenu/utilisations_${type}", array(
     82                        "id_${type}" => intval($id_coordonnee)
     83                        ),
     84                        array('ajax'=>true)
     85                );
     86        }
     87
     88        if ($texte) {
     89                $flux['data'] .= $texte;
     90        }
     91
     92        return $flux;
     93}
     94
     95
     96/**
     97 * Optimiser la base de donnees en supprimant les liens orphelins
     98 * de l'objet vers quelqu'un et de quelqu'un vers l'objet.
     99 *
     100 * @param int $n
     101 * @return int
     102 */
     103function coordonnees_optimiser_base_disparus($flux){
     104        include_spip('action/editer_liens');
     105        $flux['data'] += objet_optimiser_liens(array('adresse'=>'*', 'numero'=>'*', 'email'=>'*'),'*');
     106        return $flux;
     107}
     108
     109
     110/**
     111 * Déclaration du pipeline qui liste les types des coordonnées
     112 */
     113function coordonnees_types_coordonnees($flux) { return $flux; }
     114
     115
    98116?>
  • _plugins_/coordonnees/branches/v2/formulaires/configurer_coordonnees.html

    r67817 r82260  
    1 <div class="formulaire_spip formulaire_cfg formulaire_configurer formulaire_#FORM">
     1<div class="formulaire_spip formulaire_configurer formulaire_#FORM">
    22
    3 [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
    4 [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
    5 <form method='post' action='#ENV{action}'><div>
    6         #ACTION_FORMULAIRE{#ENV{action}}
    7         <ul>
    8                 [(#SAISIE{checkbox,objets,
     3        <h3 class="titrem"><:coordonnees:configuration_coordonnees:></h3>
     4
     5        [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
     6        [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
     7
     8        <form method="post" action="#ENV{action}">
     9        <div>
     10                #ACTION_FORMULAIRE{#ENV{action}}
     11
     12                <ul>
     13                [(#REM) choix des objets ]
     14                [(#SAISIE{choisir_objets, objets,
    915                        label=<:coordonnees:label_objets_actifs:>,
    1016                        explication=<:coordonnees:explication_objets_actifs:>,
    11                         datas=[(#VAL{titre}|liste_objets_coordonnees)]})]
    12         </ul>
    13         <p class='boutons'><input type='submit' class='submit' value='<:bouton_enregistrer:>' /></p>
    14 </div></form>
     17                        exclus=#LISTE{spip_adresses,spip_numeros,spip_emails}
     18                })]
     19                </ul>
     20
     21                <p class="boutons"><span class="image_loading">&nbsp;</span><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></p>
     22        </div>
     23        </form>
    1524</div>
  • _plugins_/coordonnees/branches/v2/formulaires/editer_adresse.html

    r71065 r82260  
    1 <div class='formulaire_spip formulaire_#FORM formulaire_#FORM-#ENV{id_adresse,nouveau}'>
    2 
     1<div class='formulaire_spip formulaire_editer formulaire_#FORM formulaire_#FORM-#ENV{id_adresse,nouveau}'>
     2        [(#CHEMIN_IMAGE{adresse-24.png}|balise_img{<:coordonnees:adresses:>,cadre-icone})]
    33        [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
    44        [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
    55
    6         [(#ENV{editable}|oui)
    7                 <form method='post' action='[(#ENV{action})]'><div>
    8                         #ACTION_FORMULAIRE{#ENV{action}}
    9                         <input type='hidden' name='id_adresse' value='#ENV{id_adresse}' />
    10                         <input type='hidden' name='objet' value='#ENV{objet}' />
    11                         <input type='hidden' name='id_objet' value='#ENV{id_objet}' />
    12                         <ul>
    13                                 [(#SAISIE{input, titre, label=<:coordonnees:label_titre:>})]
    14                         [(#ENV{id_objet}|oui)
    15                                 [(#INCLURE{fond=inclure/saisie_type_adresse})]
    16                         ]
    17                                 [(#SAISIE{input, voie, label=<:coordonnees:label_voie:>})]
    18                                 [(#SAISIE{input, complement, label=<:coordonnees:label_complement:>})]
    19                                 [(#SAISIE{input, boite_postale, label=<:coordonnees:label_boite_postale:>})]
    20                                 [(#SAISIE{input, code_postal, label=<:coordonnees:label_code_postal:>})]
    21                                 [(#SAISIE{input, ville, label=<:coordonnees:label_ville:>})]
    22                                 [(#SAISIE{input, region, label=<:coordonnees:label_region:>})]
    23                         [(#PLUGIN{pays}|?{
    24                                 [(#SAISIE{pays, pays, code_pays=oui, label=<:coordonnees:label_pays:>, defaut=FR})]
    25                         ,
    26                                 [(#SAISIE{input, pays, label=<:coordonnees:label_pays:>, defaut=FR, maxlength=3, size=2, explication=<:coordonnees:code_ISO_3166:> })]
    27                         })]
    28                         </ul>
    29                         [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
    30                         <!--extra-->
    31                         <p class='boutons'>
    32                                 <input type='submit' class='submit' name='enregistrer' value='<:bouton_enregistrer:>' />
    33                         </p>
    34 
    35                 </div></form>
     6        [(#ENV{editable})
     7        <form method='post' action='#ENV{action}'><div>
     8                #ACTION_FORMULAIRE{#ENV{action}}
     9                <input type='hidden' name='id_adresse' value='#ENV{id_adresse}' />
     10                <ul>
     11                        #GENERER_SAISIES{#ENV{_saisies}}
     12                </ul>
     13                [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
     14                <!--extra-->
     15                <p class="boutons">
     16                        <input type='submit' class='submit' value="<:bouton_enregistrer:>" />
     17                </p>
     18        </div></form>
    3619        ]
    3720</div>
     21[(#ENV**{message_ok}|oui)
     22<script type="text/javascript">jQuery(document).ready(function($) { ajaxReload('coordonnees', {args:{coordonnee:'', id_coordonnee:''}}); });</script>
     23]
  • _plugins_/coordonnees/branches/v2/formulaires/editer_adresse.php

    r66485 r82260  
    11<?php
    2 
    3 if (!defined("_ECRIRE_INC_VERSION")) return;
     2/**
     3 * Gestion du formulaire de d'édition d'une adresse
     4 *
     5 * @plugin     Coordonnees
     6 * @copyright  2014
     7 * @author     Marcimat / Ateliers CYM
     8 * @licence    GNU/GPL
     9 * @package    SPIP\Coordonnees\Formulaires
     10 */
     11if (!defined('_ECRIRE_INC_VERSION')) return;
    412
    513include_spip('inc/actions');
    614include_spip('inc/editer');
    715
    8 function formulaires_editer_adresse_charger_dist($id_adresse='new', $objet='', $id_objet='', $retour=''){
    9         $valeurs = formulaires_editer_objet_charger('adresse', $id_adresse, '', '', $retour, '');
    10         $valeurs['objet'] = $objet;
    11         $valeurs['id_objet'] = $id_objet;
    12         $valeurs['type'] = sql_getfetsel('type', 'spip_adresses_liens', 'objet='.sql_quote($objet).' AND id_objet='.intval($id_objet).' AND id_adresse='.intval($id_adresse) );
     16/**
     17 * Definition des saisies du formulaire
     18 *
     19 * @param int|string $id_adresse
     20 *     Identifiant de l'adresse. 'new' pour une nouvelle adresse.
     21 * @param string $retour
     22 *     URL de redirection après le traitement
     23 * @param string $associer_objet
     24 *     Éventuel `objet|x` indiquant de lier l'adresse créée à cet objet,
     25 *     tel que `article|3`
     26 * @return array
     27 *     Tableau des saisies
     28 */
     29function formulaires_editer_adresse_saisies_dist($id_adresse='new', $retour='', $associer_objet=''){
     30        $saisies = array (
     31                array (
     32                        'saisie' => 'input',
     33                        'options' => array (
     34                                'nom' => 'titre',
     35                                'label' => _T('coordonnees:label_titre'),
     36                                'placeholder' => _T('coordonnees:placeholder_titre_adresse')
     37                        )
     38                ),
     39                array (
     40                        'saisie' => 'input',
     41                        'options' => array (
     42                                'nom' => 'voie',
     43                                'label' => _T('coordonnees:label_voie')
     44                        )
     45                ),
     46                array (
     47                        'saisie' => 'input',
     48                        'options' => array (
     49                                'nom' => 'complement',
     50                                'label' => _T('coordonnees:label_complement'),
     51                                'placeholder' => _T('coordonnees:placeholder_complement_adresse')
     52                        )
     53                ),
     54                array (
     55                        'saisie' => 'input',
     56                        'options' => array (
     57                                'nom' => 'boite_postale',
     58                                'label' => _T('coordonnees:label_boite_postale'),
     59                        )
     60                ),
     61                array (
     62                        'saisie' => 'input',
     63                        'options' => array (
     64                                'nom' => 'code_postal',
     65                                'label' => _T('coordonnees:label_code_postal')
     66                        ),
     67                        // decommenter ces lignes quand les codes postaux
     68                        // internationaux seront pris en compte par 'verifier'
     69                        /*'verifier' => array (
     70                                'type' => 'code_postal'
     71                        )*/
     72                ),
     73                array (
     74                        'saisie' => 'input',
     75                        'options' => array (
     76                                'nom' => 'region',
     77                                'label' => _T('coordonnees:label_region')
     78                        )
     79                ),
     80                array (
     81                        'saisie' => 'input',
     82                        'options' => array (
     83                                'nom' => 'ville',
     84                                'label' => _T('coordonnees:label_ville')
     85                        )
     86                ),
     87                array (
     88                        'saisie' => 'pays',
     89                        'options' => array (
     90                                'nom' => 'pays',
     91                                'label' => _T('coordonnees:label_pays'),
     92                                'obligatoire' => 'oui',
     93                                'class' => 'chosen',
     94                                'defaut' => 'FR',
     95                                'code_pays' => 'oui'
     96                        )
     97                ),
     98        );
     99
     100        // si on associe l'adresse à un objet, rajouter la saisie 'type'
     101        if($associer_objet) {
     102                $saisie_type = array(
     103                        array (
     104                        'saisie' => 'type_adresse',
     105                        'options' => array (
     106                                'nom' => 'type',
     107                                'label' => _T('coordonnees:label_type_adresse'),
     108                                )
     109                        )
     110                );
     111                $saisies = array_merge($saisie_type,$saisies);
     112        }
     113
     114        return $saisies;
     115}
     116
     117/**
     118 * Identifier le formulaire en faisant abstraction des paramètres qui ne représentent pas l'objet edité
     119 *
     120 * @param int|string $id_adresse
     121 *     Identifiant de l'adresse. 'new' pour une nouvelle adresse.
     122 * @param string $retour
     123 *     URL de redirection après le traitement
     124 * @param string $associer_objet
     125 *     Éventuel `objet|x` indiquant de lier l'adresse créée à cet objet,
     126 *     tel que `article|3`
     127 * @param int $lier_trad
     128 *     Identifiant éventuel d'une adresse source d'une traduction
     129 * @param string $config_fonc
     130 *     Nom de la fonction ajoutant des configurations particulières au formulaire
     131 * @param array $row
     132 *     Valeurs de la ligne SQL de l'adresse, si connu
     133 * @param string $hidden
     134 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
     135 * @return string
     136 *     Hash du formulaire
     137 */
     138function formulaires_editer_adresse_identifier_dist($id_adresse='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
     139        return serialize(array(intval($id_adresse), $associer_objet));
     140}
     141
     142/**
     143 * Chargement du formulaire d'édition d'une adresse
     144 *
     145 * Déclarer les champs postés et y intégrer les valeurs par défaut
     146 *
     147 * @uses formulaires_editer_objet_charger()
     148 *
     149 * @param int|string $id_adresse
     150 *     Identifiant de l'adresse. 'new' pour une nouvelle adresse.
     151 * @param string $retour
     152 *     URL de redirection après le traitement
     153 * @param string $associer_objet
     154 *     Éventuel `objet|x` indiquant de lier l'adresse créée à cet objet,
     155 *     tel que `article|3`
     156 * @param int $lier_trad
     157 *     Identifiant éventuel d'une adresse source d'une traduction
     158 * @param string $config_fonc
     159 *     Nom de la fonction ajoutant des configurations particulières au formulaire
     160 * @param array $row
     161 *     Valeurs de la ligne SQL de l'adresse, si connu
     162 * @param string $hidden
     163 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
     164 * @return string
     165 *     Hash du formulaire
     166 */
     167function formulaires_editer_adresse_charger_dist($id_adresse='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
     168        $valeurs = formulaires_editer_objet_charger('adresse',$id_adresse,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
     169
     170        // valeur de la saisie "type" dans la table de liens
     171        if ( $associer_objet ) {
     172                list($objet, $id_objet) = explode('|', $associer_objet);
     173                $valeurs['type'] = sql_getfetsel('type', 'spip_adresses_liens', 'objet='.sql_quote($objet).' AND id_objet='.intval($id_objet).' AND id_adresse='.intval($id_adresse) );
     174        }
     175
    13176        return $valeurs;
    14177}
    15178
    16 function formulaires_editer_adresse_verifier_dist($id_adresse='new', $objet='', $id_objet='', $retour=''){
    17         $erreurs = formulaires_editer_objet_verifier('adresse', $id_adresse);
     179/**
     180 * Vérifications du formulaire d'édition d'une adresse
     181 *
     182 * Vérifier les champs postés et signaler d'éventuelles erreurs
     183 *
     184 * @uses formulaires_editer_objet_verifier()
     185 *
     186 * @param int|string $id_adresse
     187 *     Identifiant de l'adresse. 'new' pour une nouvelle adresse.
     188 * @param string $retour
     189 *     URL de redirection après le traitement
     190 * @param string $associer_objet
     191 *     Éventuel `objet|x` indiquant de lier l'adresse créée à cet objet,
     192 *     tel que `article|3`
     193 * @param int $lier_trad
     194 *     Identifiant éventuel d'une adresse source d'une traduction
     195 * @param string $config_fonc
     196 *     Nom de la fonction ajoutant des configurations particulières au formulaire
     197 * @param array $row
     198 *     Valeurs de la ligne SQL de l'adresse, si connu
     199 * @param string $hidden
     200 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
     201 * @return string
     202 *     Hash du formulaire
     203 */
     204function formulaires_editer_adresse_verifier_dist($id_adresse='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
     205        // verification generique
     206        $erreurs = formulaires_editer_objet_verifier('adresse',$id_adresse);
     207
    18208        return $erreurs;
    19209}
    20210
    21 function formulaires_editer_adresse_traiter_dist($id_adresse='new', $objet='', $id_objet='', $retour=''){
    22         // si redirection demandee, on refuse le traitement en ajax
    23 //      if ($retour) refuser_traiter_formulaire_ajax();
    24         return formulaires_editer_objet_traiter('adresse', $id_adresse, '', '', $retour, '');
    25 }
     211/**
     212 * Traitement du formulaire d'édition d'une adresse
     213 *
     214 * Traiter les champs postés
     215 *
     216 * @uses formulaires_editer_objet_traiter()
     217 *
     218 * @param int|string $id_adresse
     219 *     Identifiant de l'adresse. 'new' pour une nouvelle adresse.
     220 * @param string $retour
     221 *     URL de redirection après le traitement
     222 * @param string $associer_objet
     223 *     Éventuel `objet|x` indiquant de lier l'adresse créée à cet objet,
     224 *     tel que `article|3`
     225 * @param int $lier_trad
     226 *     Identifiant éventuel d'une adresse source d'une traduction
     227 * @param string $config_fonc
     228 *     Nom de la fonction ajoutant des configurations particulières au formulaire
     229 * @param array $row
     230 *     Valeurs de la ligne SQL de l'adresse, si connu
     231 * @param string $hidden
     232 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
     233 * @return string
     234 *     Hash du formulaire
     235 */
     236function formulaires_editer_adresse_traiter_dist($id_adresse='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
     237        $res = formulaires_editer_objet_traiter('adresse',$id_adresse,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
     238
     239        // Un lien a prendre en compte ?
     240        if ($associer_objet AND $id_adresse = $res['id_adresse']) {
     241                list($objet, $id_objet) = explode('|', $associer_objet);
     242                if ($objet AND $id_objet == intval($id_objet)) {
     243                        include_spip('action/editer_liens');
     244                        objet_associer(array('adresse' => $id_adresse), array($objet => $id_objet), array('type'=>_request('type')));
     245                        if (isset($res['redirect'])) {
     246                                $res['redirect'] = parametre_url ($res['redirect'], 'id_adresse', '', '&');
     247                        }
     248                }
     249        }
     250        return $res;
     251
     252}
     253
    26254
    27255?>
  • _plugins_/coordonnees/branches/v2/formulaires/editer_email.html

    r71000 r82260  
    1 
    2 <div class='formulaire_spip formulaire_#FORM formulaire_#FORM-#ENV{id_email,nouveau}'>
    3 
     1<div class='formulaire_spip formulaire_editer formulaire_#FORM formulaire_#FORM-#ENV{id_email,nouveau}'>
     2        [(#CHEMIN_IMAGE{email-24.png}|balise_img{<:coordonnees:emails:>,cadre-icone})]
    43        [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
    54        [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
    65
    7         [(#ENV{editable}|oui)
    8                 <form method='post' action='[(#ENV{action})]'><div>
    9                         #ACTION_FORMULAIRE{#ENV{action}}
    10                         <input type='hidden' name='id_email' value='#ENV{id_email}' />
    11                         <input type='hidden' name='objet' value='#ENV{objet}' />
    12                         <input type='hidden' name='id_objet' value='#ENV{id_objet}' />
    13                         <ul>
    14                                 [(#SAISIE{input, titre, label=<:coordonnees:label_titre:>})]
    15                         [(#ENV{id_objet}|oui)
    16                                 [(#INCLURE{fond=inclure/saisie_type_email})]
    17                         ]
    18                                 [(#SAISIE{input, email, label=<:coordonnees:label_email:>})]
    19                         </ul>
    20                         [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
    21                         <!--extra-->
    22                         <p class='boutons'>
    23                                 <input type='submit' name='enregistrer' value='<:bouton_enregistrer:>' />
    24                         </p>
    25 
    26                 </div></form>
     6        [(#ENV{editable})
     7        <form method='post' action='#ENV{action}'><div>
     8                #ACTION_FORMULAIRE{#ENV{action}}
     9                <input type='hidden' name='id_email' value='#ENV{id_email}' />
     10                <ul>
     11                        #GENERER_SAISIES{#ENV{_saisies}}
     12                </ul>
     13                [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
     14                <!--extra-->
     15                <p class="boutons"><input type='submit' class='submit' value='<:bouton_enregistrer:>' /></p>
     16        </div></form>
    2717        ]
    2818</div>
     19[(#ENV**{message_ok}|oui)
     20<script type="text/javascript">jQuery(document).ready(function($) { ajaxReload('coordonnees', {args:{coordonnee:'', id_coordonnee:''}}); });</script>
     21]
  • _plugins_/coordonnees/branches/v2/formulaires/editer_email.php

    r66485 r82260  
    11<?php
    2 
    3 if (!defined("_ECRIRE_INC_VERSION")) return;
     2/**
     3 * Gestion du formulaire de d'édition d'un email
     4 *
     5 * @plugin     Coordonnees
     6 * @copyright  2014
     7 * @author     Marcimat / Ateliers CYM
     8 * @licence    GNU/GPL
     9 * @package    SPIP\Coordonnees\Formulaires
     10 */
     11if (!defined('_ECRIRE_INC_VERSION')) return;
    412
    513include_spip('inc/actions');
    614include_spip('inc/editer');
    715
    8 function formulaires_editer_email_charger_dist($id_email='new', $objet='', $id_objet='', $retour=''){
    9         $valeurs = formulaires_editer_objet_charger('email', $id_email, '', '', $retour, '');
    10         $valeurs['objet'] = $objet;
    11         $valeurs['id_objet'] = $id_objet;
    12         $valeurs['type'] = sql_getfetsel('type', 'spip_emails_liens', 'objet='.sql_quote($objet).' AND id_objet='.intval($id_objet).' AND id_email='.intval($id_email) );
     16/**
     17 * Definition des saisies du formulaire
     18 *
     19 * @param int|string $id_email
     20 *     Identifiant du email. 'new' pour un nouveau email.
     21 * @param string $retour
     22 *     URL de redirection après le traitement
     23 * @param string $associer_objet
     24 *     Éventuel `objet|x` indiquant de lier le email crée à cet objet,
     25 *     tel que `article|3`
     26 * @return array
     27 *     Tableau des saisies
     28 */
     29function formulaires_editer_email_saisies_dist($id_email='new', $retour='', $associer_objet=''){
     30        $saisies = array (
     31                array (
     32                        'saisie' => 'input',
     33                        'options' => array (
     34                                'nom' => 'titre',
     35                                'label' => _T('coordonnees:label_titre'),
     36                                'placeholder' => _T('coordonnees:placeholder_titre_email')
     37                        )
     38                ),
     39                array (
     40                        'saisie' => 'input',
     41                        'options' => array (
     42                                'nom' => 'email',
     43                                'label' => _T('coordonnees:label_email'),
     44                                /*'placeholder' => _T('coordonnees:placeholder_email'),*/
     45                                'obligatoire' => 'oui'
     46                        ),
     47                        'verifier' => array (
     48                                'type' => 'email',
     49                                'options' => array (
     50                                        'mode' => 'normal'
     51                                )
     52                        )
     53                ),
     54        );
     55
     56        // si on associe l'email à un objet, rajouter la saisie 'type'
     57        if($associer_objet) {
     58                $saisie_type = array(
     59                        array (
     60                        'saisie' => 'type_email',
     61                                'options' => array (
     62                                        'nom' => 'type',
     63                                        'label' => _T('coordonnees:label_type_email'),
     64                                )
     65                        )
     66                );
     67                $saisies = array_merge($saisie_type,$saisies);
     68        }
     69
     70        return $saisies;
     71}
     72
     73/**
     74 * Identifier le formulaire en faisant abstraction des paramètres qui ne représentent pas l'objet edité
     75 *
     76 * @param int|string $id_email
     77 *     Identifiant de l'email. 'new' pour un nouveau email.
     78 * @param string $retour
     79 *     URL de redirection après le traitement
     80 * @param string $associer_objet
     81 *     Éventuel `objet|x` indiquant de lier le email créé à cet objet,
     82 *     tel que `article|3`
     83 * @param int $lier_trad
     84 *     Identifiant éventuel d'une email source d'une traduction
     85 * @param string $config_fonc
     86 *     Nom de la fonction ajoutant des configurations particulières au formulaire
     87 * @param array $row
     88 *     Valeurs de la ligne SQL du email, si connu
     89 * @param string $hidden
     90 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
     91 * @return string
     92 *     Hash du formulaire
     93 */
     94function formulaires_editer_email_identifier_dist($id_email='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
     95        return serialize(array(intval($id_email), $associer_objet));
     96}
     97
     98/**
     99 * Chargement du formulaire d'édition d'une email
     100 *
     101 * Déclarer les champs postés et y intégrer les valeurs par défaut
     102 *
     103 * @uses formulaires_editer_objet_charger()
     104 *
     105 * @param int|string $id_email
     106 *     Identifiant de l'email. 'new' pour un nouveau email.
     107 * @param string $retour
     108 *     URL de redirection après le traitement
     109 * @param string $associer_objet
     110 *     Éventuel `objet|x` indiquant de lier le email créé à cet objet,
     111 *     tel que `article|3`
     112 * @param int $lier_trad
     113 *     Identifiant éventuel d'une email source d'une traduction
     114 * @param string $config_fonc
     115 *     Nom de la fonction ajoutant des configurations particulières au formulaire
     116 * @param array $row
     117 *     Valeurs de la ligne SQL du email, si connu
     118 * @param string $hidden
     119 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
     120 * @return string
     121 *     Hash du formulaire
     122 */
     123function formulaires_editer_email_charger_dist($id_email='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
     124        $valeurs = formulaires_editer_objet_charger('email',$id_email,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
     125
     126        // valeur de la saisie "type" dans la table de liens
     127        if ( $associer_objet ) {
     128                list($objet, $id_objet) = explode('|', $associer_objet);
     129                $valeurs['type'] = sql_getfetsel('type', 'spip_emails_liens', 'objet='.sql_quote($objet).' AND id_objet='.intval($id_objet).' AND id_email='.intval($id_email) );
     130        }
     131
    13132        return $valeurs;
    14133}
    15134
    16 function formulaires_editer_email_verifier_dist($id_email='new', $objet='', $id_objet='', $retour=''){
    17         $erreurs = formulaires_editer_objet_verifier('email', $id_email);
     135/**
     136 * Vérifications du formulaire d'édition d'un email
     137 *
     138 * Vérifier les champs postés et signaler d'éventuelles erreurs
     139 *
     140 * @uses formulaires_editer_objet_verifier()
     141 *
     142 * @param int|string $id_email
     143 *     Identifiant de l'email. 'new' pour un nouveau email.
     144 * @param string $retour
     145 *     URL de redirection après le traitement
     146 * @param string $associer_objet
     147 *     Éventuel `objet|x` indiquant de lier le email créé à cet objet,
     148 *     tel que `article|3`
     149 * @param int $lier_trad
     150 *     Identifiant éventuel d'une email source d'une traduction
     151 * @param string $config_fonc
     152 *     Nom de la fonction ajoutant des configurations particulières au formulaire
     153 * @param array $row
     154 *     Valeurs de la ligne SQL du email, si connu
     155 * @param string $hidden
     156 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
     157 * @return string
     158 *     Hash du formulaire
     159 */
     160function formulaires_editer_email_verifier_dist($id_email='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
     161        // verification generique
     162        $erreurs = formulaires_editer_objet_verifier('email',$id_email);
     163
    18164        return $erreurs;
    19165}
    20166
    21 function formulaires_editer_email_traiter_dist($id_email='new', $objet='', $id_objet='', $retour=''){
    22         // si redirection demandee, on refuse le traitement en ajax
    23         //if ($retour) refuser_traiter_formulaire_ajax();
    24         return formulaires_editer_objet_traiter('email', $id_email, '', '', $retour, '');
    25 }
     167/**
     168 * Traitement du formulaire d'édition d'un email
     169 *
     170 * Traiter les champs postés
     171 *
     172 * @uses formulaires_editer_objet_traiter()
     173 *
     174 * @param int|string $id_email
     175 *     Identifiant de l'email. 'new' pour un nouveau email.
     176 * @param string $retour
     177 *     URL de redirection après le traitement
     178 * @param string $associer_objet
     179 *     Éventuel `objet|x` indiquant de lier le email créé à cet objet,
     180 *     tel que `article|3`
     181 * @param int $lier_trad
     182 *     Identifiant éventuel d'une email source d'une traduction
     183 * @param string $config_fonc
     184 *     Nom de la fonction ajoutant des configurations particulières au formulaire
     185 * @param array $row
     186 *     Valeurs de la ligne SQL du email, si connu
     187 * @param string $hidden
     188 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
     189 * @return string
     190 *     Hash du formulaire
     191 */
     192function formulaires_editer_email_traiter_dist($id_email='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
     193        $res = formulaires_editer_objet_traiter('email',$id_email,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
     194
     195        // Un lien a prendre en compte ?
     196        if ($associer_objet AND $id_email = $res['id_email']) {
     197                list($objet, $id_objet) = explode('|', $associer_objet);
     198                if ($objet AND $id_objet == intval($id_objet)) {
     199                        include_spip('action/editer_liens');
     200                        objet_associer(array('email' => $id_email), array($objet => $id_objet), array('type'=>_request('type')));
     201                        if (isset($res['redirect'])) {
     202                                $res['redirect'] = parametre_url ($res['redirect'], 'id_email', '', '&');
     203                        }
     204                }
     205        }
     206        return $res;
     207
     208}
     209
    26210
    27211?>
  • _plugins_/coordonnees/branches/v2/formulaires/editer_numero.html

    r71000 r82260  
    1 
    2 <div class='formulaire_spip formulaire_#FORM formulaire_#FORM-#ENV{id_numero,nouveau}'>
    3 
     1<div class='formulaire_spip formulaire_editer formulaire_#FORM formulaire_#FORM-#ENV{id_telephone,nouveau}'>
     2        [(#CHEMIN_IMAGE{numero-24.png}|balise_img{<:coordonnees:numeros:>,cadre-icone})]
    43        [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
    54        [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
    65
    7         [(#ENV{editable}|oui)
    8                 <form method='post' action='[(#ENV{action})]'><div>
    9                         #ACTION_FORMULAIRE{#ENV{action}}
    10                         <input type='hidden' name='id_numero' value='#ENV{id_numero}' />
    11                         <input type='hidden' name='objet' value='#ENV{objet}' />
    12                         <input type='hidden' name='id_objet' value='#ENV{id_objet}' />
    13                         <ul>
    14                                 [(#SAISIE{input, titre, label=<:coordonnees:label_titre:>})]
    15                         [(#ENV{id_objet}|oui)
    16                                 [(#INCLURE{fond=inclure/saisie_type_numero})]
    17                         ]
    18                                 [(#SAISIE{input, numero, label=<:coordonnees:label_numero:>})]
    19                         </ul>
    20                         [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
    21                         <!--extra-->
    22                         <p class='boutons'>
    23                                 <input type='submit' name='enregistrer' value='<:bouton_enregistrer:>' />
    24                         </p>
    25 
    26                 </div></form>
     6        [(#ENV{editable})
     7        <form method='post' action='#ENV{action}'><div>
     8                #ACTION_FORMULAIRE{#ENV{action}}
     9                <input type='hidden' name='id_numero' value='#ENV{id_numero}' />
     10                <ul>
     11                        #GENERER_SAISIES{#ENV{_saisies}}
     12                </ul>
     13                [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
     14                <!--extra-->
     15                <p class="boutons"><input type='submit' class='submit' value='<:bouton_enregistrer:>' /></p>
     16        </div></form>
    2717        ]
    2818</div>
     19[(#ENV**{message_ok}|oui)
     20<script type="text/javascript">jQuery(document).ready(function($) { ajaxReload('coordonnees', {args:{coordonnee:'', id_coordonnee:''}}); });</script>
     21]
  • _plugins_/coordonnees/branches/v2/formulaires/editer_numero.php

    r66485 r82260  
    11<?php
    2 
    3 if (!defined("_ECRIRE_INC_VERSION")) return;
     2/**
     3 * Gestion du formulaire de d'édition d'un numero
     4 *
     5 * @plugin     Coordonnees
     6 * @copyright  2014
     7 * @author     Marcimat / Ateliers CYM
     8 * @licence    GNU/GPL
     9 * @package    SPIP\Coordonnees\Formulaires
     10 */
     11if (!defined('_ECRIRE_INC_VERSION')) return;
    412
    513include_spip('inc/actions');
    614include_spip('inc/editer');
    715
    8 function formulaires_editer_numero_charger_dist($id_numero='new', $objet='', $id_objet='', $retour=''){
    9         $valeurs = formulaires_editer_objet_charger('numero', $id_numero, '', '', $retour, '');
    10         $valeurs['objet'] = $objet;
    11         $valeurs['id_objet'] = $id_objet;
    12         $valeurs['type'] = sql_getfetsel('type', 'spip_numeros_liens', 'objet='.sql_quote($objet).' AND id_objet='.intval($id_objet).' AND id_numero='.intval($id_numero) );
     16/**
     17 * Definition des saisies du formulaire
     18 *
     19 * @param int|string $id_numero
     20 *     Identifiant du numero. 'new' pour un nouveau numero.
     21 * @param string $retour
     22 *     URL de redirection après le traitement
     23 * @param string $associer_objet
     24 *     Éventuel `objet|x` indiquant de lier le numero crée à cet objet,
     25 *     tel que `article|3`
     26 * @return array
     27 *     Tableau des saisies
     28 */
     29function formulaires_editer_numero_saisies_dist($id_numero='new', $retour='', $associer_objet=''){
     30        $saisies = array (
     31                array (
     32                        'saisie' => 'input',
     33                        'options' => array (
     34                                'nom' => 'titre',
     35                                'label' => _T('coordonnees:label_titre'),
     36                                'placeholder' => _T('coordonnees:placeholder_titre_numero')
     37                        )
     38                ),
     39                array (
     40                        'saisie' => 'input',
     41                        'options' => array (
     42                                'nom' => 'numero',
     43                                'label' => _T('coordonnees:label_numero'),
     44                                'obligatoire' => 'oui'
     45                        ),
     46                        // decommenter ces lignes quand les numeros
     47                        // internationaux seront pris en compte par 'verifier'
     48                        /*'verifier' => array (
     49                                'type' => 'telephone'
     50                        )*/
     51                ),
     52        );
     53
     54        // si on associe le numéro à un objet, rajouter la saisie 'type'
     55        if($associer_objet) {
     56                $saisie_type = array(
     57                        array (
     58                        'saisie' => 'type_numero',
     59                                'options' => array (
     60                                        'nom' => 'type',
     61                                        'label' => _T('coordonnees:label_type_numero'),
     62                                )
     63                        )
     64                );
     65                $saisies = array_merge($saisie_type,$saisies);
     66        }
     67
     68        return $saisies;
     69}
     70
     71/**
     72 * Identifier le formulaire en faisant abstraction des paramètres qui ne représentent pas l'objet edité
     73 *
     74 * @param int|string $id_numero
     75 *     Identifiant de l'numero. 'new' pour un nouveau numero.
     76 * @param string $retour
     77 *     URL de redirection après le traitement
     78 * @param string $associer_objet
     79 *     Éventuel `objet|x` indiquant de lier le numero créé à cet objet,
     80 *     tel que `article|3`
     81 * @param int $lier_trad
     82 *     Identifiant éventuel d'une numero source d'une traduction
     83 * @param string $config_fonc
     84 *     Nom de la fonction ajoutant des configurations particulières au formulaire
     85 * @param array $row
     86 *     Valeurs de la ligne SQL du numero, si connu
     87 * @param string $hidden
     88 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
     89 * @return string
     90 *     Hash du formulaire
     91 */
     92function formulaires_editer_numero_identifier_dist($id_numero='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
     93        return serialize(array(intval($id_numero), $associer_objet));
     94}
     95
     96/**
     97 * Chargement du formulaire d'édition d'une numero
     98 *
     99 * Déclarer les champs postés et y intégrer les valeurs par défaut
     100 *
     101 * @uses formulaires_editer_objet_charger()
     102 *
     103 * @param int|string $id_numero
     104 *     Identifiant de l'numero. 'new' pour un nouveau numero.
     105 * @param string $retour
     106 *     URL de redirection après le traitement
     107 * @param string $associer_objet
     108 *     Éventuel `objet|x` indiquant de lier le numero créé à cet objet,
     109 *     tel que `article|3`
     110 * @param int $lier_trad
     111 *     Identifiant éventuel d'une numero source d'une traduction
     112 * @param string $config_fonc
     113 *     Nom de la fonction ajoutant des configurations particulières au formulaire
     114 * @param array $row
     115 *     Valeurs de la ligne SQL du numero, si connu
     116 * @param string $hidden
     117 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
     118 * @return string
     119 *     Hash du formulaire
     120 */
     121function formulaires_editer_numero_charger_dist($id_numero='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
     122        $valeurs = formulaires_editer_objet_charger('numero',$id_numero,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
     123
     124        // valeur de la saisie "type" dans la table de liens
     125        if ( $associer_objet ) {
     126                list($objet, $id_objet) = explode('|', $associer_objet);
     127                $valeurs['type'] = sql_getfetsel('type', 'spip_numeros_liens', 'objet='.sql_quote($objet).' AND id_objet='.intval($id_objet).' AND id_numero='.intval($id_numero) );
     128        }
     129
    13130        return $valeurs;
    14131}
    15132
    16 function formulaires_editer_numero_verifier_dist($id_numero='new', $objet='', $id_objet='', $retour=''){
    17         $erreurs = formulaires_editer_objet_verifier('numero', $id_numero);
     133/**
     134 * Vérifications du formulaire d'édition d'un numero
     135 *
     136 * Vérifier les champs postés et signaler d'éventuelles erreurs
     137 *
     138 * @uses formulaires_editer_objet_verifier()
     139 *
     140 * @param int|string $id_numero
     141 *     Identifiant de l'numero. 'new' pour un nouveau numero.
     142 * @param string $retour
     143 *     URL de redirection après le traitement
     144 * @param string $associer_objet
     145 *     Éventuel `objet|x` indiquant de lier le numero créé à cet objet,
     146 *     tel que `article|3`
     147 * @param int $lier_trad
     148 *     Identifiant éventuel d'une numero source d'une traduction
     149 * @param string $config_fonc
     150 *     Nom de la fonction ajoutant des configurations particulières au formulaire
     151 * @param array $row
     152 *     Valeurs de la ligne SQL du numero, si connu
     153 * @param string $hidden
     154 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
     155 * @return string
     156 *     Hash du formulaire
     157 */
     158function formulaires_editer_numero_verifier_dist($id_numero='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
     159        // verification generique
     160        $erreurs = formulaires_editer_objet_verifier('numero',$id_numero);
     161
    18162        return $erreurs;
    19163}
    20164
    21 function formulaires_editer_numero_traiter_dist($id_numero='new', $objet='', $id_objet='', $retour=''){
    22         // si redirection demandee, on refuse le traitement en ajax
    23         //if ($retour) refuser_traiter_formulaire_ajax();
    24         $res=formulaires_editer_objet_traiter('numero', $id_numero, '', '',$retour, '');
     165/**
     166 * Traitement du formulaire d'édition d'un numero
     167 *
     168 * Traiter les champs postés
     169 *
     170 * @uses formulaires_editer_objet_traiter()
     171 *
     172 * @param int|string $id_numero
     173 *     Identifiant de l'numero. 'new' pour un nouveau numero.
     174 * @param string $retour
     175 *     URL de redirection après le traitement
     176 * @param string $associer_objet
     177 *     Éventuel `objet|x` indiquant de lier le numero créé à cet objet,
     178 *     tel que `article|3`
     179 * @param int $lier_trad
     180 *     Identifiant éventuel d'une numero source d'une traduction
     181 * @param string $config_fonc
     182 *     Nom de la fonction ajoutant des configurations particulières au formulaire
     183 * @param array $row
     184 *     Valeurs de la ligne SQL du numero, si connu
     185 * @param string $hidden
     186 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
     187 * @return string
     188 *     Hash du formulaire
     189 */
     190function formulaires_editer_numero_traiter_dist($id_numero='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
     191        $res = formulaires_editer_objet_traiter('numero',$id_numero,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
     192
     193        // Un lien a prendre en compte ?
     194        if ($associer_objet AND $id_numero = $res['id_numero']) {
     195                list($objet, $id_objet) = explode('|', $associer_objet);
     196                if ($objet AND $id_objet == intval($id_objet)) {
     197                        include_spip('action/editer_liens');
     198                        objet_associer(array('numero' => $id_numero), array($objet => $id_objet), array('type'=>_request('type')));
     199                        if (isset($res['redirect'])) {
     200                                $res['redirect'] = parametre_url ($res['redirect'], 'id_numero', '', '&');
     201                        }
     202                }
     203        }
    25204        return $res;
    26 }
     205
     206}
     207
    27208
    28209?>
  • _plugins_/coordonnees/branches/v2/lang/coordonnees_fr.php

    r76126 r82260  
    1010        'adresse_pro' => 'Professionnel',
    1111        'adresses' => 'Adresses',
     12        'adresse' => 'Adresse',
    1213        'ajouter_adresse' => 'Ajouter une adresse',
    1314        'ajouter_email' => 'Ajouter un email',
    1415        'ajouter_telephone' => 'Ajouter un numéro',
     16        'ajouter_adresse_court' => 'Ajouter adresse',
     17        'ajouter_email_court' => 'Ajouter email',
     18        'ajouter_telephone_court' => 'Ajouter numéro',
     19
     20        // B
     21        'bouton_dissocier_adresse' => 'Retirer cette adresse',
     22        'bouton_dissocier_email' => 'Retirer cet email',
     23        'bouton_dissocier_numero' => 'Retirer ce numéro',
     24        'bouton_dissocier' => 'Retirer',
    1525
    1626        // C
     
    3545        'info_gauche_numero_numero' => 'N° Numéro',
    3646        'info_numero_utilise_par' => 'Numéro utilisé par :',
     47        'info_aucune_adresse' => 'Aucune adresse',
     48        'info_1_adresse' => '1 adresse',
     49        'info_nb_adresses' => '@nb@ adresses',
     50        'info_aucun_numero' => 'Aucun numero',
     51        'info_1_numero' => '1 numero',
     52        'info_nb_numeros' => '@nb@ numeros',
     53        'info_aucun_email' => 'Aucun courriel',
     54        'info_1_email' => '1 courriel',
     55        'info_nb_emails' => '@nb@ courriels',
    3756        'item_nouveau_numero' => 'Nouveau numéro',
    3857        'item_nouvel_email' => 'Nouveau courriel',
     
    5574        'label_ville' => 'Ville',
    5675        'label_voie' => 'N<sup>o</sup> & voie',
     76        'logo_adresse' => 'Logo de l\'adresse',
     77        'logo_numero' => 'Logo du numero',
     78        'logo_email' => 'Logo du courriel',
    5779
    5880        // M
     
    6688        'nouvelle_adresse' => 'Nouvelle adresse',
    6789        'numeros' => 'Numéros',
     90        'numero' => 'Numéro',
     91
     92        // P
     93        'placeholder_titre_adresse' => 'Un nom pour identifier l\'adresse',
     94        'placeholder_titre_numero' => 'Un nom pour identifier le numéro de téléphone',
     95        'placeholder_titre_email' => 'Un nom pour identifier l\'email',
     96        'placeholder_complement_adresse' => 'étage, n° du bâtiment...',
     97        'placeholder_email' => 'email@site.com',
    6898
    6999        // S
     
    84114        'type_email_pref' => 'Préféré',
    85115        'type_email_x400' => 'X.400',
     116        'type_email_home' => 'Personnel',
     117        'type_email_intl' => 'International',
     118        'type_email_work' => 'Professionnel',
    86119        'type_mel_home' => 'Personnel',
    87120        'type_mel_intl' => 'International',
  • _plugins_/coordonnees/branches/v2/paquet.xml

    r78158 r82260  
    22        prefix="coordonnees"
    33        categorie="auteur"
    4         version="2.0.19"
    5         schema="1.8.1"
     4        version="2.2.2"
     5        schema="1.8.2"
    66        etat="test"
    7         compatibilite="[3.0.5;3.0.*]"
    8         logo="images/addressbook-128.png"
     7        compatibilite="[3.0.0;3.0.*]"
     8        logo="prive/themes/spip/images/addressbook-128.png"
    99        documentation="http://www.spip-contrib.net/Plugin-Coordonnees"
    1010>
    1111
    12         <nom>Coordonn&eacute;es</nom>
    13 
     12        <nom>Coordonnées</nom>
    1413        <auteur>Matthieu Marcillaud</auteur>
    1514        <auteur lien="http://www.cym.fr">Cyril MARION</auteur>
    16 
    1715        <licence>GNU/GPL</licence>
    1816        <traduire gestionnaire="salvatore" module="coordonnees" reference="fr" />
    1917
    20 
    21 
    22 
    23 
     18        <necessite nom="saisies" compatibilite="[1.24.0;]" />
     19        <necessite nom="pays" compatibilite="[1.0.5;]" />
     20        <necessite nom="verifier" compatibilite="[0.1.15;]" />
    2421
    2522        <!-- Declaration des tables -->
     
    2724        <pipeline nom="declarer_tables_interfaces" inclure="base/coordonnees.php" />
    2825        <pipeline nom="declarer_tables_auxiliaires" inclure="base/coordonnees.php" />
    29 
    3026        <!-- Autorisations -->
    3127        <pipeline nom="autoriser" inclure="coordonnees_autorisations.php" />
     28        <!-- Éléments d'interface -->
     29        <pipeline nom="afficher_fiche_objet" inclure="coordonnees_pipelines.php" />
     30        <pipeline nom="affiche_auteurs_interventions" inclure="coordonnees_pipelines.php" />
     31        <pipeline nom="affiche_gauche" inclure="coordonnees_pipelines.php" />
     32        <!-- optimiser liens -->
     33        <pipeline nom="optimiser_base_disparus" inclure="coordonnees_pipelines.php" />
     34        <!-- définition des types des coordonnées -->
     35        <pipeline nom="types_coordonnees" inclure="coordonnees_pipelines.php" action=""/>
    3236
    33         <!-- &#201;l&#233;ments d'interface -->
    34         <pipeline nom="affiche_milieu" inclure="coordonnees_pipelines.php" />
    35 
    36 
    37 
    38         <necessite nom="saisies" compatibilite="[1.14.0;]" />
    39         <necessite nom="pays" compatibilite="[1.0.5;]" />
     37        <menu nom="coordonnees" titre="coordonnees:titre_coordonnees" parent="menu_edition" icone="images/addressbook-16.png" action="coordonnees" />
    4038
    4139</paquet>
  • _plugins_/coordonnees/branches/v2/prive/style_prive_plugin_coordonnees.html

    r45486 r82260  
    1 [(#REM)
    2 
    3         Ce squelette definit les styles de l'espace prive
    4 
    5         Note: l'entete "Vary:" sert a repousser l'entete par
    6         defaut "Vary: Cookie,Accept-Encoding", qui est (un peu)
    7         genant en cas de "rotation du cookie de session" apres
    8         un changement d'IP (effet de clignotement).
    9 
    10         ATTENTION: il faut absolument le charset sinon Firefox croit que
    11         c'est du text/html !
    12 ]
    13 #CACHE{3600*100,cache-client}
     1#CACHE{0}
     2[(#REM)<style>]
    143#HTTP_HEADER{Content-Type: text/css; charset=iso-8859-15}
    154#HTTP_HEADER{Vary: Accept-Encoding}
    165
    17 .liste-elements.adresses .type_adresse,                 
    18 .liste-elements.numeros .type_numero,                   
    19 .liste-elements.emails .type_email {
    20         width:20px;
    21 }               
     6#SET{claire,##ENV{couleur_claire,edf3fe}}
     7#SET{foncee,##ENV{couleur_foncee,3874b0}}
     8
     9/*===================================================
     10  === BOITE DES COORDONNEES ASSOCIEES A UN OBJET  ===
     11  ===================================================*/
     12
     13/* icones ajouter */
     14.icones-ajouter                 { position: absolute; right: .4em; top: .2em; }
     15.coordonnee.icone.ajouter.right { clear: none; padding-right: 0; }
     16.coordonnee.icone.ajouter.right a img {
     17                                position: static;
     18                                float: #ENV{left};
     19                                margin-top: auto;
     20                                margin-#ENV{left}: .7em;
     21                                margin-#ENV{right}: .3em;
     22                                }
     23
     24/* formulaire creation */
     25.coordonnees .creer .formulaire_spip { margin: 0; }
     26.coordonnees .bouton_fermer     { display: block; text-align: #ENV{right}; }
     27
     28/* listes */
     29.liste-objets.coordonnees.lies  { margin: .7em 0 0; }
     30.liste-objets.coordonnees img   { vertical-align: middle; }
     31.liste-objets.coordonnees .liste tr:first-child td{ border-top: 0; }
     32.liste-objets.coordonnees .liste tr:last-child td{ border-bottom: 0; }
     33.liste-objets.coordonnees .picto{ width: 30px;
     34                                border-bottom: 0;
     35                                border-right: 1px solid #ddd;
     36                                background-color: #eee;
     37                                background-color:rgba(0,0,0,.05);
     38                                background-position: center center;
     39                                background-repeat: no-repeat;
     40                                }
     41.numeros.lies .liste .picto     { background-image: url([(#CHEMIN_IMAGE{numero-24.png})]); }
     42.adresses.lies .liste .picto    { background-image: url([(#CHEMIN_IMAGE{adresse-24.png})]); }
     43.emails.lies .liste .picto      { background-image: url([(#CHEMIN_IMAGE{email-24.png})]); }
     44.liste-objets.coordonnees .titre{ width: 30%; }
     45.liste-objets.coordonnees .link { border: 0; background: none; }
Note: See TracChangeset for help on using the changeset viewer.