Carnet Wiki

Surcharger un formulaire du privé

Version 3 — Mars 2014 YannX

Utiliser Utiliser des pipelines pour surcharger un formulaire de l’espace privé SPIP 3.

L’interface privée de SPIP 3 est complètement écrit en formulaires CVT avec une topologie Z : cela rend facile à un webmestre de personnaliser ses écrans privés, mais au risque de perdre les éventuelles améliorations apparaissant dans de nouvelles versions.

Une solution plus propre serait d’utiliser des pipelines spécialisés : voyons la démarche de mise en place à partir d’un exemple.

Le besoin s’est fait jour sur l’utilisation du plugin Mes Préférences, qui posait un problème de fonctionnement sur son design « Elastic » ; et la référence étudiée s’appuie sur le plugin Polices Privées

La surcharge classique de formulaires

Grace au système des formulaires CVT, il est facile de personnaliser des formulaires dans l’’espace public, et dans l’espace privé : dans ce dernier cas, il suffit de créer un sous-dossier < code >. recharger /prive/formulaires/ dans votre répertoire de squelettes, et d’y coller des copies des deux fichiers ( configurer_preferences.html et configurer_preferences.php depuis leur dossier d’origine ./prive/formulaires/ de la racine de SPIP). Le sytème de surcharge de chemin de SPIP va donc donner la pré-éminence à vos nouvelles copies (chargées dans notre cas depuis [./plugins/mes_preferences/privés/formulaires/->http://zone.spip.org/trac/spip-zone/browser/_plugins_/mes_preferences/trunk/formulaires].

Notez bien que dans ce cas, on annule et remplace les fichiers d’origine !
Ce n’est pas très pérenne [1].

Activer un pipeline

Une solution propre consiste à rajouter par pipelines le bloc de code correspondant aux champs supplémentaires voulus : comment ce fait-se ?

Les plugins savent facilement activer des pipelines, identifiés par leur nom :
le terme de pipeline désigne un pré/ou/post-traitement (une fonction php) appliqué automatiquement par le compilateur SPIP au squelette résultant, ici au HTML généré par un #FORMULAIRE_.. ; il faut différentier dans cette interprétation :
-  le point d’entrée défini dans le core de SPIP par ses développeurs,
(voir la liste , issue du code de pipelines existants. )
-  la fonction utilisateur activant ce traitement pour un cas d’usage

La déclaration des pipelines activés s’inscrit dans paquet.xml en SPIP 3 :

        
        
        
        

lugins