Je cherche un solution simple (codé en dur) pour ajouter le champ de saisie Nom et son label sur le formulaire par défaut « Inscription à la newsletter » (#FORMULAIRE_NEWSLETTER_SUBSCRIBE) de MailSubscribers sans avoir à installer Formidable ou Champ Extras et toute la flopée de plugins dépendants.
Sachant que dans la liste « Inscrits aux envois par email » le champ « Nom » existe déjà:
Email
Nom
Langue
Listes
Je suppose qu’il me faut ajouter quelques lignes de code dans les fichiers:
/mailsubscribers/formulaires/newsletter_subscribe.php
/mailsubscribers/formulaires/newsletter_subscribe.html
Champs extras ne nécessite pas formidable, et si tu souhaites te passer de champs extras qui est le plugin fait pour ça, alors il te faudra bidouiller à la main et maintenir le code en question. À toi de voir ce qui te semble le plus pérenne et le plus simple…
Merci beaucoup b_b !
En fait je suis étonné que le champ Nom ne soit pas sur le formulaire par défaut du plugins MailSubscribers. Peut être une histoire de RGPD ?
Et visiblement je ne suis pas le seul à chercher cette simple option vu les commentaires sur SpipContrib.
Je souhaite effectivement une solution codée en dur car je trouve dommage d’avoir à installer le plugins Champ Extras (ou Formidable)… et toute sa « flopée » de plugins dépendants.
Merci beaucoup pour ton aide b_b !
Suivant tes conseils, je viens de jeter un œil à la doc Champs Extras.
Mais cela est bien plus complexe que je ne l’avais imaginé…
En fait dans le plugin MailSubscribers je souhaite simplement ajouter à formulaires/newsletter_subscribe.html un <input> correspondant dans la base de données à la colonne nom de la table spip_mailsubscribers.
Quelque chose comme ceci :
<div class='formulaire_spip formulaire_newsletter formulaire_[(#FORM)] ajax'>
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
[(#ENV{editable})
<form method='post' action='#ENV{action}'><div>
[(#REM) Champ de saisie du NOM ]
#ACTION_FORMULAIRE{#ENV{action}}
<div class="editer-groupe">
#SET{name_nom,session_nom}#SET{obli,'obligatoire'}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name_nom}}}
<div class="editer editer_[(#GET{name_nom})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
<label for="#GET{name_nom}"><:newsletter:label_name:></label>[
<span class='erreur_message'>(#GET{erreurs})</span>
]<input type="text" name="#GET{name_nom}" class="nom text" value="#ENV*{#GET{name_nom}}" id="#GET{name_nom}" [(#HTML5|et{#GET{obli}})required='required']/>
</div>
</div>
[(#REM) Champ de saisie de EMAIL ]
#ACTION_FORMULAIRE{#ENV{action}}
<div class="editer-groupe">
#SET{name,session_email}#SET{obli,'obligatoire'}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<div class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
<label for="#GET{name}"><:newsletter:label_email_subscribe:></label>[
<span class='erreur_message'>(#GET{erreurs})</span>
]<input type="email" name="#GET{name}" class="email text" value="#ENV*{#GET{name}}" id="#GET{name}" [(#HTML5|et{#GET{obli}})required='required']/>
</div>
[(#ENV{_listes_choix}|oui)
<INCLURE{fond=formulaires/inc-subscribing-options,env,label=<:newsletter:label_subscribe_lists:>} />
]
</div>
[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
<!--extra-->
[(#REM) S'il y a plusieurs choix possibles, on change le label ]
[(#SET{bouton, #ENV{_listes_choix}|count|>{1}|et{#ENV{_checkable}}|?{<:newsletter:bouton_subscribe_multiples|attribut_html:>, <:newsletter:bouton_subscribe|attribut_html:>}})]
<p class="boutons"><input type="submit" class="submit" value="#GET{bouton}" /></p>
</div></form>
]
</div>
Là ou cela se complique c’est en PHP pour faire en sorte que ça fonctionne correctement dans le fichier formulaires/newsletter_subscribe.php …
J’ai pu créer un nouveau formulaire d’inscription à la newsletter avec les champs Nom et Email en utilisant le plugin Formidable (Mailsubscriber).
Mais pour que cela fonctionne il m’a fallu installer toute cette flopée de plugin
Formidable
SPIP Bonux
Saisies pour formulaires
API de vérification
YAML
NoSPAM
Archiviste
Select2
Dommage que le champ Nom ne soit pas nativement dans le formulaire d’inscription du plugin Mailsubscribers qui lui ne nécessite que Facteur pour fonctionner.
Un grand merci à tous pour le développement de SPIP et pour vos conseils !