Version 8 — Octobre 2016 — 78.242.xx.xx
Cet article n’est pas finalisé mais j’aimerais quand même avoir des retours, faites les modifs nécessaires, no blem ! éventuellement à mettre dans carnet le temps d’y travailler ?
merci
Comment modifier un formulaire de l’espace privé ?
http://forum.spip.org/fr_244581.html
Quelques propositions pour comprendre les possibilités :
Vous devez formuler clairement et en amont ce que vous souhaitez, pour choisir la meilleure méthode.
Les formulaires SPIP sont constitués d’une paire de fichier html et php.
Chaque formulaire fonctionne 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
Pour changer uniquement l’intitulé d’un champ, par exemple changer sur titre
pour Lieu
. Il faut retrouver la chaine de langue dans le fichier du formulaire html inscrit sous la forme <:ma_chaine:>
ici ce sera donc <:texte_sur_titre:>
puis créer un fichier lang/local_fr.php
dans lequel il y aura
<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
$GLOBALS[$GLOBALS['idx_lang']] = array(
'texte_sur_titre' => "Lieu",
);
?>
Il est possible d’agir sur les css et de faire ’disparaitre’ de l’affichage un champ, assurez vous auparavant que celui-ci ne soit pas obligatoire !
ICI METHODE CSS PRIVE /PUBLIC
En SPIP3, le plus radical est de recopier le couple php/html du formulaire en respectant leur 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 :
<code style=« color : rgb(255, 255, 255) ; background-color : rgb(0, , ) ; display : block ; padding:6px ; »>cp ">cp prive/formulaires/editer_article.html squelettes/formulaires/editer_article.html
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é.
<code style=« color : rgb(255, 255, 255) ; background-color : rgb(0, , ) ; display : block ; padding:6px ; »>cp ">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.
<code style="color: rgb(255, 255, 255); background-color: rgb(0, 0, 0); display: block; ">cp prive/formulaires/editer_article.html squelettes/formulaires/editer_article-2.html
Lorsque vous souhaitez rajouter un champ à votre objet dans votre base de données et le voir apparaitre dans le formulaire en plus de le traiter automatiquement lors de sa saisie, le plus facile et rapide est d’utiliser le plugin champs_extra.
Dans la grande cuisine web, 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 tuyau avec des robinets d’accès marquant chaque étape du mélange, si vous souhaitez agir avec un nappage final au chocolat, choisissez le pipeline qui convient !
Avec SPIP, pour modifier le formulaire d’un article, ces pipelines vont être divers, il y a les pipelines liés à CVT comme formulaire_charger verifier ou traiter, ou soit avant soit après le traitement en base comme post_insertion ou encore pour l’affichage comme affichage_final. 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.
- Voir la liste des pipelines
- Voir comment utiliser les pipelines
Sur la plupart des formulaires (à vérifier) existe une balise <!--extra-->
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