You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
Cerdic b06345827b fix: mapper correctement les fonctions fallback deprecated car leur usage provoque des erreurs du fait d'un fonctionnement incorrect 4 weeks ago
action fix: mapper correctement les fonctions fallback deprecated car leur usage provoque des erreurs du fait d'un fonctionnement incorrect 4 weeks ago
base feat: étendre aux coordonnées web 3 months ago
formulaires feat(ux): scroller aux bons endroits lors de l'édition des coordonnées liées 3 months ago
inc fix: autocomplétion des identifiants 3 months ago
inclure Revert des modifs de Coordonnées. 8 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é 3 years ago
lang [Salvatore] [source:lang/ coordonnees] Export depuis https://trad.spip.net de la langue en 2 months ago
prive fix: une icône manquante 3 months ago
saisies refactor: saisies relatives aux types des coordonnées 3 months ago
test prépa trunk/base 12 years ago
vendor build: up librairies 3 months ago
CHANGELOG.md docs(changelog): release 4.2.0 2 months ago
README.md spip.net est maintenant en https, donc, j'ajoute le "s" à http 6 years ago
composer.json build: up librairies 3 months ago
composer.lock build: up librairies 3 months ago
coordonnees-xx.svg chore: supprimer les icônes png 3 months ago
coordonnees_administrations.php feat: étendre aux coordonnées web 3 months ago
coordonnees_autorisations.php feat: étendre aux coordonnées web 3 months ago
coordonnees_fonctions.php feat: `#TYPE_COORDONNEE` peut s'utiliser en dehors d'une boucle 2 months ago
coordonnees_options.php Rendre dynamique le pays par défaut des adresses 3 years ago
coordonnees_pipelines.php fix: associer aussi les coordonnées urls en post_insertion et pre_edition 2 months ago
paquet.xml fix: mapper correctement les fonctions fallback deprecated car leur usage provoque des erreurs du fait d'un fonctionnement incorrect 4 weeks 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
        )
    );
}