Identité Extra

Un plugin tout simple pour SPIP qui étend la configuration de l’identité du site, en ajoutant par exemple une adresse, un numéro de téléphone,... enfin ce que vous voulez.

Avant-propos

Ce plugin est inspiré d’une discussion sur le site de phenix et d’un besoin récurrent de créer des champs supplémentaires sur la configuration d’identité du site, mais aussi donner la possibilité de les personnaliser facilement.

depuis la version 1.4 du plugin le comportement change.

Installation

Il suffit de suivre la procédure habituelle d’installation via le gestionnaire des plugins.

Utilisation

Par défaut le plugin propose ces nouvelles entrées : nom_organisation, telephone, adresse, ville, code_postal, region, pays ;

Une fois les champs renseignés sur la page de configuration d’identité du site (?exec=configurer_identite), à vous d’utiliser les balises dans vos squelettes ainsi :

#IDENTITE_TELEPHONE
#IDENTITE_PAYS
...

Vous disposez également d’un modèle qui reprend les informations par défaut suivant un micro format de schema.org

#MODELE{identite_extra}

Champs personnalisés

Pour la version < 1.4
Le plugin vous donne la possibilité de créer vos propres champs en surchargeant la globale $GLOBALS['identite_extra'] dans le fichier config/mes_options.php de votre site ou bien dans le fichier prefixe_options.php de votre plugin.

Exemple :

La surcharge suivante

# Champs supplémentaires pour l'identité du site
$GLOBALS['identite_extra'] = array('raison_sociale','code_ape','siret','capital')

Générera le formulaire ci-dessous

Pour la version > 1.4

Nouvelle méthode de déclaration.
Le comportement à été un peu modifié afin de pouvoir utiliser des pipelines. quand bien même une déclaration de GLOBALS reste toujours fonctionnelle, celle-ci ne surchargera pas les champs initialement prévus, mais les complétera.

Pour les créateurs de plugins, pas de soucis, par contre si vous êtes habitués à utiliser un dossier squelettes, il faudra déclarer un pipeline :

// config/mes_options.php
$GLOBALS['spip_pipeline']['identite_extra_champs'] .= "|mes_champs_identite";

Puis la fonction :

// squelettes/mes_fonctions.php
function mes_champs_identite($champs){
     
    $nouveaux_champs = array(
        'facebook',
        'twitter',
        'instagram'
    );
     
    // on complète la liste
    // $champs = array_merge($champs, $nouveaux_champs);
     
    // ou on la remplace
    $champs = $nouveaux_champs;
     
    return $champs;
}

(merci tcharlss !)

Balises IDENTITE_XXX

Chaque champ disponible et déclaré par identite_extra possède sa balise préfixée de #IDENTITE_ utilisable en squelette.

#IDENTITE_RAISON_SOCIALE
#IDENTITE_CODE_APE
#IDENTITE_SIRET
#IDENTITE_CAPITAL
#IDENTITE_MONCHAMP

A noter qu’un message de debug squelette apparaîtra si votre champ n’est pas déclaré correctement.
Exemple avec la balise #IDENTITE_LOL qui n’est pas déclarée dans $GLOBALS['identite_extra'] :

Cette solution permet une mise en place rapide. Pour une utilisation plus poussée, reportez vous aux plugins dédiés : Contacts et organisations pour les carnets d’adresses, GIS pour la géolocalisation, Liens sociaux, Champs extra pour les objets, ...

Discussion

3 discussions

  • 2

    Bonjour,

    Y aurait-il la possibilité de ne donner accès au formulaire Identité-Extra qu’au seul Webmestre ?
    Ainsi les « simples » administrateurs ne pourraient pas modifier ces champs extras ;-)

    Merci,
    françois

    • On peut bien sûr surcharger ./prive/formulaires/configurer_identite_extra.html pour ajouter une condition de statut dans la BOUCLE :

      <BOUCLE_data(DATA){source table,#ENV{identite_extra}}{si #SESSION{webmestre}|=={oui}}>
      ...
      </BOUCLE_data>
    • Bonjour,

      J’ai une demande similaire (mais différente...)
      Je voudrais autoriser les admin complets (non webmestres) à modifier les champs identité extra.

      J’avais noté cette fonction :
      // autoriser admin complet identite site function autoriser_identite_configurer($faire, $type, $id, $qui, $opt) {      return $qui['statut'] == '0minirezo' AND !$qui['restreint']; }

      mais cela ne semble plus fonctionner - ou alors j’ai mal noté.

      Si quelqu’un ici sait me dire.
      Merci
      dd

    Répondre à ce message

  • Bonjour,

    J’ai suggéré une évolution pour ce plugin ici https://git.spip.net/spip-contrib-extensions/identite_extra/issues/1 afin de pouvoir utiliser des Saisies (par exemple, champ avec plusieurs lignes).

    Je vous invite à commenter le ticket.

    Répondre à ce message

  • 3

    Bonjour,
    J’ai fais les deux ajouts (appel dans mes_options.php & la fonction dans squelettes/mes_fonctions.php) mais la fameuse fonction n’est pas appelée..
    J’ai mal lu et oublié quelque-chose ?
    Le plugin est bien installé, j’ai testé avec l’ancienne méthode et les champs sont bien ajoutés à la suite des autres.
    Merci :)

    • Salut,
      Oui, ça devrait fonctionner.
      -  Penser à bien vider les caches de spip
      -  Vérifier que les chemins des fichiers sont ok :

      config/mes_options.php
      squelettes/mes_fonctions.php

      Tu devrais nous coller le contenu *ET* le chemin de tes 2 fichiers

      Cordialement.

    • Merci pour la réponse express !
      Effectivement ça venait du cache, c’est étrange sachant que j’ai define(’_NO_CACHE’, -1) ; dans ma config..
      Bonne journée et merci pour le plugin :)

    • Oui, il s’agit du cache des squelettes.
      Pour les fonctions/options/pipelines il y a des fichiers de cache générés et gérés un peu différemment :
      tmp/charger_pipelines.php
      tmp/charger_plugins_fonctions.php
      ...

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom