Carnet Wiki

Modifier un formulaire SPIP

Version 4 — Juillet 2012 touti

Comment modifier un formulaire de l’espace privé ?

http://forum.spip.org/fr_244581.html

Qu’est ce que je veux dans mon formulaire ?

Quelques propositions pour comprendre les possibilités :

Car dans SPIP suivant ce que l’on veut on agira différemment !

  1. Je veux changer l’intitulé d’un champ > fichier de lang local personnel
  2. Je veux modifier seulement l’apparence du formulaire > fichier css du formulaire
  3. Je veux ajouter un champ au formulaire > utiliser le plugin facile et automatique avec champs extras
  4. Je veux ajouter une boîte d’info > utiliser le bon pipeline d’affichage les pipelines SPIP
  5. Je veux agir sur le flux des données sans rien modifier > utiliser le bon pipeline de traitement les pipelines SPIP

Vous devez formuler clairement La première et en amont ce que vous souhaitez , pour choisir la meilleure méthode . réponse sera de se reposer la question reformulée qui pourrait devenir  :

Préambule

Comment fonctionnent les formulaires SPIP ?

Les formulaires SPIP sont constitués d’une paire de fichier html et php.
Chaque formulaire fonctionne

Chapitre consacré aux formulaires CVT


Les formulaires fonctionnent en 3 étapes définies par le fichier php : Charger Vérifier Traiter. Une fois que vous aurez compris ce processus il vous sera très facile d’agir sur l’une des trois étapes.

- Les formulaires CVT pas à pas sur programmer.spip.org
-  Formulaires CVT par l’exemple

Diverses méthodes pour modifier un formulaire

Maintenant que je sais ce que je veux

Comment faire pour faire ce que je veux ?

Recopier le formulaire des articles

En SPIP3, le plus radical est de recopier le couple php/html du formulaire html en respectant leur son chemin d’emplacement (le path), vous pouvez choisir uniquement le html , exemple du fichier formulaires/recherche . ). html.
Apparemment sous SPIP3 le dossier /prive semble réservé. Si on choisit de modifier le formulaire d’édition des articles situé dans prive/formulaires/editer_article.html on devra le copier et coller dans squelettes/formulaires/editer_article.html

Dans un terminal unix cette action est beaucoup plus lisible :
cp prive/formulaires/editer_article.html squelettes/formulaires/editer_article.html

Surcharger le formulaire des articles d’une rubrique spécifique

Commencez par faire la même chose que pour « Recopier le formulaire des articles », car vous ne pourrez pas agir sur la rubrique si vous n’avez pas déjà le formulaire par défaut recopié.
cp prive/formulaires/editer_article.html squelettes/formulaires/editer_article.html
Puis recopié à nouveau et renommé votre fichier avec editer_article-2.html si vous souhaitez modifier tous les formulaires d’édition des articles de la rubrique 2 (voir lien avec squelettes).
cp prive/formulaires/editer_article.html squelettes/formulaires/editer_article-2.html

Utiliser les pipelines dans un formulaire

Utiliser les pipelines dans un formulaire, pour les passionnés !

Kesako ?
Dans la grande cuisine webqui ressemble à une usine avec des tuyaux ou transitent vos ingrédients , vous souhaitez réaliser de bons gâteaux !
.
Imaginez que vous souhaitez ajouter de la cannelle au flux de données farine , juste avant de mélanger les oeufs , le pipeline est comme un élément d’une plomberie , dans un tuyau on a le flux des données qui court comme le mélange farine/oeufs , avec des robinets d’accès marquant chaque étape du mélange, si vous souhaitez agir avec un nappage final au chocolat peu de cannelle ou moins de sucre , choisissez avec les pipelines vous agissez sur le pipeline qui convient  ! flux des données .

Avec SPIP, pour le formulaire d’un créer un article, ces pipelines vont être divers : le traitement du texte pour fabriquer des liens, soit avant soit après le traitement en base ou encore pour se composer lors de l’affichage. On peut filtrer ce flux et y injecter de nouvelles données en fonction de critères personnalisés.Les pipelines doivent être déclarés en amont comme ceux qui existent par défaut dans SPIP :
pre_insertion, post_insertion
pre_edition, post_edition
Pour utiliser le flux des pipelines déclarés et le détourner à vos fins, il doit être signalé dans un plugin pour être pris en compte par le compilateur.

Les pipelines doivent être déclarés en amont comme ceux qui existent par défaut dans SPIP :
pre_insertion, post_insertion
pre_edition, post_edition
Pour utiliser le flux des pipelines déclarés et le détourner à vos fins, il doit être signalé dans un plugin pour être pris en compte par le compilateur.
-  Voir la liste des pipelines
-  Voir comment utiliser les pipelines

Par exemple pour Pour rajouter un élément après le contenu prévu au centre de la page utilisez affiche_milieu , http://programmer.spip.org/affiche_milieu

Insérer du contenu sans toucher aux fichiers natifs de SPIP

Sur la plupart des formulaires (à vérifier) existe une balise vous pouvez filtrer le flux et insérer le votre en utilisant le pipeline recuperer_fond et un preg_replace comme ici :

http://zone.spip.org/trac/spip-zone/browser/_plugins_/tickets/trunk/tickets_pipelines.php#L148