[SPIP Zone] r3573 - in /_contribs_/_formulaires_/envoyer_a_un_ami: ./ envoyer.php

Author: fil@rezo.net
Date: Thu Jun 15 17:12:35 2006
New Revision: 3573

Log:
contrib envoyer a un ami

Added:
    _contribs_/_formulaires_/envoyer_a_un_ami/
    _contribs_/_formulaires_/envoyer_a_un_ami/envoyer.php

Added: _contribs_/_formulaires_/envoyer_a_un_ami/envoyer.php

--- _contribs_/_formulaires_/envoyer_a_un_ami/envoyer.php (added)
+++ _contribs_/_formulaires_/envoyer_a_un_ami/envoyer.php Thu Jun 15 17:12:35 2006
@@ -0,0 +1,105 @@
+<?php
+
+// Envoyer cet article par email
+//
+// On l'ajoute dans n'importe quel squelette en precisant
+// comme parametre d'inclusion :
+// - le titre de la page
+// - l'url de la page
+// - le texte a afficher
+//
+// <INCLURE(envoyer.php) {titre=#TITRE} {url=#URL_ARTICLE}
+// {texte=#INTRODUCTION}>
+//
+// On peut ajouter {subject=xxxx} si on veut fixer le sujet,
+// sinon par defaut c'est "A lire sur #NOM_SITE -- #ENV{titre}"
+
+// TODO :
+// - internationalisation
+// - presentation (squelette ?)
+// - previsualisation et explications (on va envoyer ce message de votre part)
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+//
+// Fonction appelee des qu'il y a un $_POST avec le bouton 'envoyer'
+//
+function envoyer_a_ami($contexte_inclus) {
+ $retour = '';
+
+ // verifier que le formulaire est bien rempli
+ if (!email_valide(_request('envoyer_from')))
+ $retour = "L'adresse d'envoi &laquo;"
+ . htmlspecialchars(_request('envoyer_from'))
+ . "&raquo; n'est pas valide.";
+
+ if (!email_valide(_request('envoyer_to')))
+ $retour = "L'adresse du destinataire &laquo;"
+ . htmlspecialchars(_request('envoyer_to'))
+ . "&raquo; n'est pas valide.";
+
+ if ($retour)
+ return $retour;
+
+ // envoyer le mail
+ include_spip('inc/filtres');
+ include_spip('inc/mail');
+# var_dump($contexte_inclus);
+
+ $subject = sinon ($contexte_inclus['subject'],
+ "A lire sur ".lire_meta('nom_site')." -- "
+ .$contexte_inclus['titre']
+ );
+
+ $body = _request('envoyer_from')
+ . " vous recommande la lecture de cet article :\n\n"
+ . $contexte_inclus['titre']."\n"
+ . url_absolue(sinon ($contexte_inclus['url'], self()))
+ . "\n\n"
+ . _request('envoyer_message')
+ . "\n\n"
+ . "-- Message envoy&eacute; depuis ".$GLOBALS['ip']." --\n";
+
+ if (!envoyer_mail(
+ _request('envoyer_to'),
+ $subject,
+ $body,
+ _request('envoyer_from')
+ ))
+ return "Erreur lors de l'envoi du message.";
+
+}
+
+
+//
+// Fonction de base de cet INCLURE
+//
+// Dans la variable $contexte_inclus on trouve les donnees de l'article
+// dans _request() les donnees du visiteur
+function main_envoyer_a_un_ami() {
+ $erreur ='';
+ if (!_request('envoyer')
+ OR $erreur = envoyer_a_ami($GLOBALS['contexte_inclus'])) {
+
+ echo $erreur;
+
+ // le formulaire normal
+ echo "<form method='post' action='".self()."'>";
+ echo "votre email : <input type='text' name='envoyer_from'
+ value='".htmlspecialchars(_request('envoyer_from'))."' />";
+ echo "<br />destinataire : <input type='text' name='envoyer_to'
+ value='".htmlspecialchars(_request('envoyer_to'))."' />";
+ echo "<br />message : <input type='text' name='envoyer_message'
+ value='".htmlspecialchars(_request('envoyer_message'))."' />";
+ echo "<input type='submit' name='envoyer' value='"._L('envoyer')."' />";
+ echo "</form>";
+
+ } else {
+ echo "Message envoy&eacute;.";
+ }
+}
+
+// main()
+main_envoyer_a_un_ami();
+
+?>

Le 15 juin 06 à 17:12, fil@rezo.net a écrit :

Author: fil@rezo.net
Date: Thu Jun 15 17:12:35 2006
New Revision: 3573

Log:
contrib envoyer a un ami

Added:
    _contribs_/_formulaires_/envoyer_a_un_ami/
    _contribs_/_formulaires_/envoyer_a_un_ami/envoyer.php

Added: _contribs_/_formulaires_/envoyer_a_un_ami/envoyer.php

Mille un merci pour cette contrib.
Je l'utilise incluse dans un article.
Pour la présentation je réutilise le layer.php du dossier ecrire.
(le formulaire est inclus dans un inclure de calcul du layer lui-même inclus dans un bloc de formulaires à son tour inclus dans un article)

Deux petit soucis :
- les mails sont expédiés avec un peu de retard mais c'est peut-être du au réseau.
- un double-clic est nécessaire pour déplier le formulaire et je ne parviens pas à comprendre pourquoi.

Si vous voulez voir le résultat :
http://s149242290.onlinehome.fr/spip19/spip.php?article1
Codes : Visiteur (2 fois)

@+

Le 22 juin 06 à 20:43, dlatr a écrit :

Le 22 juin 06, à 20:22, Pierre FICHES a écrit :

Le 15 juin 06 à 17:12, fil@rezo.net a écrit :

Author: fil@rezo.net
Date: Thu Jun 15 17:12:35 2006
New Revision: 3573

Log:
contrib envoyer a un ami

Added:
    _contribs_/_formulaires_/envoyer_a_un_ami/
    _contribs_/_formulaires_/envoyer_a_un_ami/envoyer.php

Added: _contribs_/_formulaires_/envoyer_a_un_ami/envoyer.php

Mille un merci pour cette contrib.
Je l'utilise incluse dans un article.
Pour la présentation je réutilise le layer.php du dossier ecrire.
(le formulaire est inclus dans un inclure de calcul du layer lui-même
inclus dans un bloc de formulaires à son tour inclus dans un article)

Deux petit soucis :
- les mails sont expédiés avec un peu de retard mais c'est peut-être
du au réseau.
- un double-clic est nécessaire pour déplier le formulaire et je ne
parviens pas à comprendre pourquoi.

pour moi, il a suffit d'un seul clic (FF 1.0.3 sous Mac) mais il faut viser juste et vite car ça bouge toudis

le mail est parti normalement sans attente

Oui exact je n'avais testé qu'avec safari qui doit avoir un petit soucis.
Par contre effet, ce n'est pas facile de viser avec firefox.
Je vais aller faire un tour du côté des css privé.
Merci pour ces infos.

Pierre

Bonjour,

Pierre FICHES a écrit :

Author: fil@rezo.net
Added:
    _contribs_/_formulaires_/envoyer_a_un_ami/

[...]

- un double-clic est nécessaire pour déplier le formulaire et je ne
parviens pas à comprendre pourquoi.

pour moi, il a suffit d'un seul clic (FF 1.0.3 sous Mac) mais il faut viser juste et vite car ça bouge toudis

[...]

Par contre effet, ce n'est pas facile de viser avec firefox.
Je vais aller faire un tour du côté des css privé.
Merci pour ces infos.

C'est sympa le passage des contrib dans la zone mais c'est dommage que du coup on perde au passage le support des commentaires du forum de spip-contrib :

Pour envoyer un email à un ami je n'ai jamais pu me faire à ce triangle dépliant et je préfère le bon gros lien sur bouton qui ouvre une pop-up dans laquelle on saisit et envoie tout ça.
C'était la contrib originale que j'avais faite et c'est en ce sens que je l'avais remodifiée sur allergique.org avec une 1.8.3.
(exemple en bas de page : PAI BO N° 2003-135 du 8/9/2003 Allergique.org - Actualités des allergies )

_fil_ a bien fait les choses puisque qu'ici il n'y a *que* envoyer.php : il suffit donc d'un lien à partir d'un bouton vers une pop-up avec l'envoi de l'id_article qui va bien.

mes deux cents
--
Philippe Auriol
http://philippe.auriol.free.fr/

Le 23 juin 06 à 07:54, Philippe Auriol a écrit :

Bonjour,

Pierre FICHES a écrit :

Author: fil@rezo.net
Added:
    _contribs_/_formulaires_/envoyer_a_un_ami/

[...]

- un double-clic est nécessaire pour déplier le formulaire et je ne
parviens pas à comprendre pourquoi.

pour moi, il a suffit d'un seul clic (FF 1.0.3 sous Mac) mais il faut viser juste et vite car ça bouge toudis

[...]

Par contre effet, ce n'est pas facile de viser avec firefox.
Je vais aller faire un tour du côté des css privé.
Merci pour ces infos.

C'est sympa le passage des contrib dans la zone mais c'est dommage que du coup on perde au passage le support des commentaires du forum de spip-contrib :

Pour envoyer un email à un ami je n'ai jamais pu me faire à ce triangle dépliant et je préfère le bon gros lien sur bouton qui ouvre une pop-up dans laquelle on saisit et envoie tout ça.
C'était la contrib originale que j'avais faite et c'est en ce sens que je l'avais remodifiée sur allergique.org avec une 1.8.3.
(exemple en bas de page : PAI BO N° 2003-135 du 8/9/2003 Allergique.org - Actualités des allergies )

_fil_ a bien fait les choses puisque qu'ici il n'y a *que* envoyer.php : il suffit donc d'un lien à partir d'un bouton vers une pop-up avec l'envoi de l'id_article qui va bien.

Pas mal ton pop-up :slight_smile: