You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Miguel 00638f4ae5 [Salvatore] [source:lang/ coordonnees] Export depuis https://trad.spip.net de la langue pt 2 weeks ago
action Faire les rares actions en plus du comportement standard dans des pipelines et du coup vider toutes les actions qui servent à rien et déprécier les vieilles fonctions (en les gardant pour compat mappées sur l'API standard). Ce qui permet d'avoir tous les trucs standards par défaut sans rien manquer et rien maintenir soi-même. 1 year ago
base Index trop grand, surtout si utf8, on réduit à mort 1 year ago
formulaires Structure des formulaires et glitchs visuels en SPIP 4 avec les icones SVG 4 months ago
inc Utilisons un caractère de délimitation de pattern qui ne va jamais être utilisé dedans… 2 months ago
inclure Ces inclusions n'ont pas à être dans ce plugin, mais dans coordonnées... 10 years ago
javascript Encore du débug sur le système d'adresse dynamique, j'espère que cette fois c'est bon :) On ne mappe qu'une fois la fonction de changement sur le champ, on ne le refait pas si déjà mappé 1 year ago
lang [Salvatore] [source:lang/ coordonnees] Export depuis https://trad.spip.net de la langue pt 2 weeks ago
prive Suppression du support des vieux abbr dans les noms de picto de type, et fallback sur le picto generique si pas de picto pour le type demande, ce qui allege 4 months ago
saisies On revoit la fonction `coordonnees_lister_types_coordonnees()` qui bugouillait. 8 years ago
test prépa trunk/base 10 years ago
vendor On retire la déclaration psr4 qui sert à rien puisqu'on fournit aucune classe en plus à déclarer (marcimat) 2 years ago
.gitattributes Rendre dynamique le pays par défaut des adresses 2 years ago
README.md spip.net est maintenant en https, donc, j'ajoute le "s" à http 5 years ago
composer.json On retire la déclaration psr4 qui sert à rien puisqu'on fournit aucune classe en plus à déclarer (marcimat) 2 years ago
composer.lock Ajouter la librairie Composer nécessaire à la personnalisation des adresses suivant le pays. 2 years ago
coordonnees_administrations.php Index trop grand, surtout si utf8, on réduit à mort 1 year ago
coordonnees_autorisations.php Un peu de php-cs-fixer pour unifier. 6 years ago
coordonnees_fonctions.php Suppression du support des vieux abbr dans les noms de picto de type, et fallback sur le picto generique si pas de picto pour le type demande, ce qui allege 4 months ago
coordonnees_options.php Rendre dynamique le pays par défaut des adresses 2 years ago
coordonnees_pipelines.php Refonte de l'iconographie qui se decline en png a partir de la nouvelle base svg 4 months ago
paquet.xml Utilisons un caractère de délimitation de pattern qui ne va jamais être utilisé dedans… 2 months ago

README.md

Coordonnées pour SPIP 3

Ce fichier documente certains aspects et fonctions du plugin qui ne sont pas encore abordés dans la documentation officielle. Ces informations sont valables à partir de la version 2.2.2.

Typage des liaisons

Les tables de liens des objets gérés par le plugin (adresse, email et numero) possèdent une colonne supplémentaire : type. Ce champ sert à qualifier le lien entre une coordonnée et un objet éditorial : par exemple, une adresse liée à auteur avec un lien typé home signifie qu'il s'agit de son adresse personnelle. Il s'agit d'une clé primaire, il est donc possible de lier plusieurs fois une coordonnée au même un objet éditorial en utilisant des types différents. A noter : ce principe est repris par le plugin Rôle de matthieu Marcillaud qui explique en détail la problématique.

Liste des types de liaisons

Les types proposés par le pugin sont les codes normalisés du format vCard. La fonction coordonnees_lister_types_coordonnees() retourne la liste complète des types disponibles pour chaque coordonnée, et les chaînes de langue. On peut éventuellement s'en servir dans les squelettes, mais on préfèrera utiliser les filtres correspondants pour chaque genre de coordonnée : [(#EVAL{null}|coordonnees_lister_types_adresses)] Ce filtre permet également de récupérer la chaîne de langue d'un type en particulier : [(#TYPE|coordonnees_lister_types_adresses)] Les saisies #SAISIE{type_xxx} s'en servent de ce filtre pour récupérer les données du sélecteur. Dans le formulaire d'édition d'une coordonnée, cette saisie n'apparaît que lorsque la paramètre associer|objet est donné (cette saisie n'ayant pas de sens si la coordonnée n'est pas liée à un objet).

Pipeline types_coordonnees

Les autres plugins peuvent compléter (ou altérer) la liste des types en se servant de la pipeline types_coordonnees. Par exemple, le plugin Commandes s'en sert pour rajouter aux adresses les 2 types livraison et faturation.

Dans paquet.xml :

<pipeline nom="types_coordonnees" inclure="commandes_pipelines.php" />

Dans commandes_pipelines.php :

function commandes_types_coordonnees($liste) {
    $types_adresses = $liste['adresse'];
    if (!$types_adresses or !is_array($types_adresses)) $types_adresses = array();
    // on définit les couples types + chaînes de langue à ajouter
    $types_adresses_commandes = array(
        'livraison' => _T('commandes:type_adresse_livraison'),
        'facturation' => _T('commandes:type_adresse_facturation')
    );
    // on les rajoute à la liste des types des adresses
    $liste['adresse'] = array_merge($types_adresses, $types_adresses_commandes);
    return $liste;
}

API editer_liens et limitations

On peut se servir de l'API d'édition de liens pour lier ponctuellement une coordonnée à un objet. Mais il y a une limitation : l'API ne permet de faire qu'un seul lien d'objet à objet. On ne peut pas lier 2 fois une coordonnée au même objet, avec 2 types de liaison différents. Ainsi, avec le code suivant :

include_spip('action/editer_liens');
objet_associer(array('adresse'=>$id_adresse), array('commande'=>$id_commande), array('type'=>'facturation'));
objet_associer(array('adresse'=>$id_adresse), array('commande'=>$id_commande), array('type'=>'livraison'));

Le 2ème lien va écraser le premier. Dans ce cas, il faut procéder sans l'API :

foreach(array('facturation','livraison') as $type){
    sql_insertq( 'spip_adresses_liens', array(
        'id_adresse' => $id_adresse,
        'objet' => 'commande',
        'id_objet' => $id_commande,
        'type' => $type
        )
    );
}