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 le 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

7 discussions

  • 1

    Petit plugin sympa, hélas il ne fait pas ce dont j’aurai besoin à savoir ajouter des champs choisit par mes soin, et notamment des images ou logo additionnel.

    Je demande au cas ou mais.. Ce serait compliqué de simplement ajouter la possibilité d’ajouter des champs avex le plugin champs extra à la partie identitée du site ?

    • En principe oui, en pratique c’est un peu différent. Champs Extras gère des champs supplémentaires sur des objets éditoriaux. hors, le site n’est pas un objet éditorial.

      Si une version 2 du plugin sort, elle sera certainement basés sur saisies et son api de déclaration.

      Pour des logos supplémentaires à voir....

    Répondre à ce message

  • 5

    Bonjour,

    Je tente de surcharger le formulaire, mais les nouveaux champs viennent s’ajouter aux champs par défaut au lieu de les remplacer...
    (Versions : SPIP : 3.1.8 - Identité extra : 1.4.0)

    Je ne rencontre pas ce même souci sur une version locale où le plugin est en 1.3.1.

    Une idée d’où ça peut venir ?

    Sandrine

    • Bonjour,

      Oui, Rastapopoulos à commit des modifs il ya 2 semaines ; il utilise un merge du tableau déclaré plutôt que de le remplacer comme c’était initialement prévu.

      Désormais il y à un pipeline de dispo. Si tu me laisses un peu de temps je peu tenter de mettre à jour la doc. Sinon il est possible de rester en 1.3.1 pour le moment.

    • Merci Pierrox !
      Je vais tranquillement patienter avant de passer en 1.4

    • Salut,

      Tu songes à mettre à jour la doc ?

    • Le pipeline est quand même plus propre et permet de faire bien plus de choses : tout merger ou tout remplacer, en supprimer une partie, changer l’ordre, etc.

      function monplugin_identite_extra_champs($champs){
       
          $nouveaux_champs = array(
              'facebook',
              'twitter',
              'instagram',
          );
       
          // On complète le liste
          $champs = array_merge($champs, $nouveaux_champs);
       
          // Mais on pourrait aussi la remplacer
          //$champs = $nouveaux_champs;
       
          return $champs;
      }
    • J’y songe, mais à la base c’était le plus minimaliste possible. On avait tranché le fait qu’on ne voulait pas donner la possibilité d’étendre les champs, mais *simplement* les surcharger. (bête et méchant)

      La possibilité d’étendre via un pipeline est super, mais la mise en œuvre est moins *accessible* pour celles et ceux qui ne pratique pas le php. Un simple tableau dans mes_options.php et hop ! on à exactement ce qu’on veut.

      Il faut refaire la doc car le comportement initialement prévu ET documenté a changé :p.

      Voilà, merci pour l’exemple en tout cas :)

    Répondre à ce message

  • 1

    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>

    Répondre à ce message

  • 2

    Tellement bien ce plugin. Merci beaucoup !

    Ce qui serait top, ce serait d’avoir la possibilité d’insérer des « intertitres » pour séparer des champs. Donner l’impression d’avoir des groupes.

    Julien

    • On peut y parvenir avec un peu d’astuce, en surchargeant ./prive/formulaires/configurer_identite_extra.html.

      Voilà un exemple qui devrait faire l’affaire (syntaxe SPIP 3.1).

    • Trop bien. Merci !

    Répondre à ce message

  • 1

    Comment créer un champ personnalisé qui recevra une couleur en hexa grâce au plugin Palette ?

    Voici une petite amélioration rendue possible grâce à placido :

    Surcharger le formulaire ./prive/formulaires/configurer_identite_extra.html en modifiant ligne 11 :

    <input type='text' class='text[ (#CLE|match{couleur_}|oui)palette]' ...

    et dans le fichier ..._options.php :

    $GLOBALS['identite_extra'] = array( "couleur_titres","couleur_texte" );

    Ce qui ajoute la class palette à l’input et donc l’accès à la palette de couleur ;-)

    • Salut,

      Il est possible de faire ce genre de boucle qui peut s’avérer très pratique en utilsant le mme préfixe sur certaines clés :

      $GLOBALS['identite_extra'] = array(
          "nom_organisation", 
          "telephone", 
          "adresse", 
          "ville", 
          "code_postal", 
          "region", 
          "pays",
          "reso_facebook",
          "reso_google-plus",
          "reso_flickr", 
          "reso_tumblr"
      );

      Et pour récupérer tous les réseaux :

      <BOUCLE_data(DATA)
                  {source table,#IDENTITE}
                  {cle LIKE reso_%}
                  {valeur != ''}>
              [(#CLE|substr{5})] -> #VALEUR <br/>
      </BOUCLE_data>

      ce qui donne

      facebook -> http://lienfacebook
      google-plus -> http://pagegoogleplus
      flickr -> http://pageflickr
      tumblr -> http://pagetumblr

      {valeur != ''} C’est pour exclure les champs qui ne seraient pas remplis dans le formulaire :)

    Répondre à ce message

  • Concernant le PS : Champ Extra est vraiment extra, masi il ne permet pas malheureusement d’ajouter des champs à l’identité du site, justement ;-)

    Répondre à ce message

  • Bonjour,

    Merci beaucoup pour cet outil qui me faisait défaut ;-)

    françois

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

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

Dernière modification de cette page le 8 novembre 2018