Aller au contenu

Sujets conseillés

Posté

Bonjour à tous,

Sur un site sous Spip, il serait utile à mes auteurs de savoir, immédiatement en recevant un message,

quel est l'article qui a déclenché cette prise de contact en incluant dans l'envoi à l'auteur le titre de l'article (#TITRE) .

Je cherche, sans succès, comment afficher cette info. supplémentaire (#TITRE) via le "formulaire écrire auteur" qui ne renvoie que

l'e-mail de l'internaute, le "sujet" et le "texte de son message" ?

J'ai placé la balise #FORMULAIRE_ECRIRE_AUTEUR (de la Dist) à la fin de chacun des articles du site et essayé des boucles Spip dans le formulaire mais ce n'est pas apparemment la solution...

D'avance merci pour les solutions que vous voudrez bien m'envoyer.

Posté

Je n'utilise pas Spip du tout, mais en théorie, tu as peux le faire en PHP:

- soit avec le referrer, tu mets cette information dans un input de type hidden, mais l'inconvénient c'est que le referrer peut être désactivé, d'où la solution 2°

- soit sur le lien de "Contact" tu rajoutes un paramètre qui te donne la page courante, et lorsque le visiteur envoit la page, tu récupéras l'URL de la page.

- peut-être une autre méthode, mais je ne l'ai pas en tête encore :blushing:

Par contre, comme je l'ai dit, je ne connais pas du tout SPIP, donc je ne sais pas du tout comment faire pour mettre en application.

Bonne chance!

Posté

Salut Jean,

Toutes les balises de type "Formulaire" de SPIP sont gérées par un couple de fichier dont :

- un se trouve dans dist/formulaires/ qui s'occupe de gérer l'affichage html de ton formulaire, simple à changer si tu veux personaliser ton code html

- et un autre se trouvant dans ecrire/balise qui s'occupe de gérer les données envoyées au formulaire en php

Si tu veux intervenir sur l'un de ces deux fichiers, de façon à ne pas toucher aux fichiers "core", recopie les dans le repertoire squelettes de cette façon :

- le formulaire html : squelettes/formulaires/ecrire_auteur.html

- le php : squelettes/balise/formulaire_ecrire_auteur.php

Dans ton cas si tu veux récupérer le #TITRE de ton article il ne semble nécessaire que de modifier le fichier php.

Tu verras que dans la fonction balise_FORMULAIRE_ECRIRE_AUTEUR_dyn() SPIP passe l'id_article en argument ce qui te permettra facilement de récupérer ton titre en faisant une requête dans ta fonction.

Posté

Bonjour Yuston,

Merci pour ta réponse et

Bonne chance!
pour ton voeu.

Je vais en avoir besoin... je ne connais rien au php.

Posté

Bonjour Klelugi,

Merci de m'avoir répondu.

dans la fonction balise_FORMULAIRE_ECRIRE_AUTEUR_dyn() SPIP passe l'id_article en argument ce qui te permettra facilement de récupérer ton titre en faisant une requête dans ta fonction.

Comme je l'indique plus haut à Yuston "je ne connais rien au php" mais j'ai essayé en m'inspirant du code des autres requêtes présentes (En me souhaitant aussi bonne chance).

// http://doc.spip.org/@balise_FORMULAIRE_ECRIRE_AUTEUR_dyn
function balise_FORMULAIRE_ECRIRE_AUTEUR_dyn($id_auteur, $id_article, $mail) {
include_spip('inc/texte');
$puce = definir_puce();
[b]// MODIF : Ajout requete renvoi du titre de l'article qui utilise le formulaire ecrire auteur
$titre = _request('titre'.$id);[/b]

// id du formulaire (pour en avoir plusieurs sur une meme page)
$id = ($id_auteur ? '_'.$id_auteur : '_ar'.$id_article);
#spip_log("id formulaire = $id, "._request("valide".$id));
$sujet = _request('sujet_message_auteur'.$id);
$texte = _request('texte_message_auteur'.$id);
$adres = _request('email_message_auteur'.$id);
[b]// MODIF : Ajout requete renvoi du titre de l'article qui utilise le formulaire ecrire auteur
$titre = _request('titre'.$id);[/b]

if (_request('valide')) {
$mailko = !email_valide($adres);
$sujetko = !(strlen($sujet)>3);
$texteko = !(strlen($texte)>10);
[b]// MODIF : Ajout requete renvoi du titre de l'article qui utilise le formulaire ecrire auteur
$titreko = !(strlen($titre)>10);[/b]
}

et/ou

// doit-on envoyer le mail ?
if ($validable
AND $id == _request('num_formulaire_ecrire_auteur')
AND _request('confirmer'.$id)) {

[b]$titre = _request('titre'.$id);[/b]

$texte .= "\n\n-- "._T('envoi_via_le_site')." ".supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site']))." (".$GLOBALS['meta']['adresse_site']."/) --\n";
include_spip('inc/mail');
envoyer_mail($mail, $sujet, $texte, $adres,
"X-Originating-IP: ".$GLOBALS['ip']);
$mailenvoye = _T('form_prop_message_envoye');
}

Et d'autres dans le même genre... mais sans résultat (Je m'y attendais...).

Sans abuser de ta gentillesse, un complément d'information serait le bien venu, j'y suis depuis ce matin.

  • 2 semaines plus tard...
Posté
Salut Jean,

Toutes les balises de type "Formulaire" de SPIP sont gérées par un couple de fichier dont :

- un se trouve dans dist/formulaires/ qui s'occupe de gérer l'affichage html de ton formulaire, simple à changer si tu veux personaliser ton code html

- et un autre se trouvant dans ecrire/balise qui s'occupe de gérer les données envoyées au formulaire en php

Si tu veux intervenir sur l'un de ces deux fichiers, de façon à ne pas toucher aux fichiers "core", recopie les dans le repertoire squelettes de cette façon :

- le formulaire html : squelettes/formulaires/ecrire_auteur.html

- le php : squelettes/balise/formulaire_ecrire_auteur.php

Dans ton cas si tu veux récupérer le #TITRE de ton article il ne semble nécessaire que de modifier le fichier php.

Tu verras que dans la fonction balise_FORMULAIRE_ECRIRE_AUTEUR_dyn() SPIP passe l'id_article en argument ce qui te permettra facilement de récupérer ton titre en faisant une requête dans ta fonction.

Bonjour,

Je n'y arrive vraiment pas. C'est d'autant plus frustrant (et vexant) que c'est annoncé comme facile. :shutup:

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...