Jean Suila Posté 27 Juin 2008 Posté 27 Juin 2008 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.
yuston Posté 3 Juillet 2008 Posté 3 Juillet 2008 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 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!
klelugi Posté 6 Juillet 2008 Posté 6 Juillet 2008 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.
Jean Suila Posté 7 Juillet 2008 Auteur Posté 7 Juillet 2008 Bonjour Yuston, Merci pour ta réponse et Bonne chance! pour ton voeu.Je vais en avoir besoin... je ne connais rien au php.
Jean Suila Posté 7 Juillet 2008 Auteur Posté 7 Juillet 2008 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_dynfunction 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.
Jean Suila Posté 17 Juillet 2008 Auteur Posté 17 Juillet 2008 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.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant