Archives de la liste a​i​d​e​@p​a​h​e​k​o​.c​l​o​u​d​

Bug avec les snippets?

Timothy Armes

08/11/2023 12:45:33

Bonjour,

J'ai un comportement que je trouve très étrange. J'ai créé un snippet
markdown pour avoir un formulaire de contact. Ce snippet prend comme paramètre
l'adresse email du destinataire. ex:

<<contact email="xx@x.x">>

Tout semble marcher parfaitement. Je peux le mettre cela dans un article, le formulaire
est affiché et les mails envoyés.

Maintenant, je crée une deuxième page avec une autre adresse de destinataire :

<<contact email="yy@y.y">>

Quand on envoie un mail depuis cette page, deux mails sont envoyés, un à xx@x.x et
l'autre à yy@y.y ! Je ne vois pas comment c'est possible, c'est comme si
les deux instances de mon snippet sont appelées, mais elles sont sur des pages
différentes.

Pour info, voici mon snippet contact.html:

<section>
	<form id="contact-form" method="post"
action="#contact-form">
			{{if $err}}
					<p class="error">{{$err}}</p>
			{{/if}}

			<label for="f_name">Votre nom&nbsp;:</label></dt>
			<input type="text" id="f_name" name="name"
value="{{$_POST.name}}" required="required" /></dd>
			<label for="f_email">Votre adresse
e-mail&nbsp;:</label></dt>
			<input type="email" id="f_email" name="email"
value="{{$_POST.email}}" required="required" /></dd>
			<label for="f_message">Message&nbsp;:</label>
			<textarea name="message" id="f_message" cols="70"
rows="10"
required="required">{{$_POST.message}}</textarea></dd>

			{{:captcha html=true}}

			<p>{{:button type="submit" label="Envoyer le message"
name="send" class="site-button"}}</p>
	</form>

	{{#form on="send"}}
		{{:captcha verify="true" assign_error="error"}}
		{{if $error}}
			{{:error message="Captcha incorrect"}}
		{{else}}
			{{if $_POST.name|trim == ""}}
					{{:error message="Il faut renseigner un nom."}}
			{{elseif $_POST.message|trim == ""}}
					{{:error message="Le message est vide ?"}}
			{{elseif !$_POST.email|check_email}}
					{{:error message="L'adresse e-mail n'a pas l'air valide."}}
			{{else}}
					{{:assign body="Message de %s - <%s> : \n\n%s\n\nIMPORTANT : Ce message a
été envoyé par Paheko. Ne répondez pas directement à ce message, il faut répondre à
l'adresse e-mail marquée
dessus."|args:$_POST.name:$_POST.email:$_POST.message}}
					{{:mail to=$params.email  subject="Message depuis le formulaire de
contact" body=$body}}
					<p class="success">Votre message nous a bien été transmis
!</p>
			{{/if}}
		{{/if}}
	{{else}}
		{{:form_errors}}
	{{/form}}
</section>

Tim

Bug avec les snippets?

BohwaZ/Paheko

08/11/2023 22:22:30

Je te dirais de vérifier que ta page n'a pas une autre section (via
éventuellement un include) articles qui ne chargerait pas ton premier
article dans la même page ?

Même si le snippet n'est pas affiché (par exemple si juste les titres
des articles sont affichés), il sera quand même appelé si la page est
listée quelque part.

Je pense à ça en premier.

Bref, ce n'est pas vraiment fait pour faire des choses interactives,
plutôt pour générer du contenu dans ton article. Pour un usage
interactif ça serait mieux d'avoir ton formulaire de contact directement
dans un squelette :)