Changeset 5639 in spip-zone


Ignore:
Timestamp:
Sep 24, 2006, 10:41:17 AM (15 years ago)
Author:
fil@…
Message:

recommander passe en jquery, bien nettoye, encore a amliorer

Location:
_plugins_/_test_/recommander
Files:
2 deleted
4 edited
1 copied

Legend:

Unmodified
Added
Removed
  • _plugins_/_test_/recommander/action/fragment_recommander.php

    r4284 r5639  
    11<?php
    2         function action_fragment_recommander() {
    3                 include_spip('recommander');
     2
     3
     4if (!defined("_ECRIRE_INC_VERSION")) return;
     5
     6define ('_SECRET', '1234');  # trouver une meilleure methode pour definir le secret... un meta() dans la base...
     7
     8
     9//
     10// Fonction appelee des qu'il y a un $_POST avec le bouton 'recommander'
     11//
     12function envoi_recommander($contexte_inclus) {
     13        include_spip('inc/filtres');
     14        $retour = '';
     15
     16        lang_select($contexte_inclus['lang']);
     17
     18        // verifier que le formulaire est bien rempli
     19        if (!email_valide(_request('recommander_from')))
     20                $retour .= '<div class="erreur">'
     21                        . _T('pass_erreur_non_valide',
     22                                array(
     23                                'email_oubli' => htmlspecialchars(_request('recommander_from'))
     24                                )
     25                        ).'</div>';
     26
     27        if (!email_valide(_request('recommander_to')))
     28                $retour .= '<div class="erreur">'
     29                        ._T('pass_erreur_non_valide',
     30                                array(
     31                                'email_oubli' => htmlspecialchars(_request('recommander_to'))
     32                                )
     33                        ).'</div>';
     34
     35        if ($retour)
     36                return $retour;
     37
     38        // envoyer le mail
     39        include_spip('inc/filtres');
     40        include_spip('inc/mail');
     41#       var_dump($contexte_inclus);
     42
     43# i18n
     44# _T('recommander_titre', array('nom_site' =>
     45# supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site'])))
     46        $subject = sinon ($contexte_inclus['subject'],
     47                _L("A lire sur ").lire_meta('nom_site')." -- "
     48                .sinon($contexte_inclus['titre'], _request('recommander_titre'))
     49        );
     50
     51# i18n
     52# _T('recommander_lecture', array('from' => _request('recommander_from')))
     53        $body = "Bonjour,\n\n"
     54                . _request('recommander_from')
     55                . " vous recommande la lecture de cet article :\n\n"
     56                . "* ". textebrut($contexte_inclus['titre'])." *\n\n"
     57                . textebrut($contexte_inclus['texte'])."\n\n"
     58                . ' -> '.url_absolue(sinon ($contexte_inclus['url'], self()))
     59                . "\n\n"
     60                . _request('recommander_message')
     61                . "\n\n-- "._T('envoi_via_le_site')
     62                . " ".supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site']))
     63                . " (".$GLOBALS['meta']['adresse_site']."/) --\n";
     64
     65        lang_dselect();
     66
     67        if (!envoyer_mail(
     68                _request('recommander_to'),
     69                $subject,
     70                $body,
     71                _request('recommander_from'),
     72                "X-Originating-IP: ".$GLOBALS['ip']
     73        ))
     74                return "<div class='erreur'>"._L("Erreur lors de l'envoi du message.")."</div>";
     75
     76}
     77
     78
     79function action_fragment_recommander() {
     80        if (!_request('recommander_env')
     81        OR (_request('recommander_cle') <> md5(_SECRET._request('recommander_env')))
     82        OR $erreur = envoi_recommander(
     83                @unserialize(base64_decode(_request('recommander_env'))))
     84        ) {
     85
     86                $r = $erreur;
     87
     88                $r .= "<form method='post' action='".self()."'>";
     89
     90                $r .= "<div><label for='recommander_from'>"._T('form_pet_votre_email')."</label>";
     91                $r .= " <input type='text' id='recommander_from' name='recommander_from'
     92                value='".htmlspecialchars(_request('recommander_from'))."'  class='forml' /></div>";
     93                $r .= "<div><label for='recommander_to'>"._T('recommander:destinataire')."</label>";
     94                $r .= " <input type='text' id='recommander_to' name='recommander_to' class='forml'
     95                value='".htmlspecialchars(_request('recommander_to'))."' class='formo' /></div>";
     96                $r .= "<div><label for='recommander_message'>"._T('forum_texte')."</label>";
     97                $r .= " <input type='text' id='recommander_message' name='recommander_message' class='forml'
     98                value='".htmlspecialchars(_request('recommander_message'))."' class='forml' /></div>";
     99                $r .= "<div class='spip_bouton'><input type='submit' name='recommander_email' value='"._T('recommander:recommander_message')."' /></div>";
     100
     101                if (!_request('recommander_cle')) {
     102                        $contexte = base64_encode(serialize($GLOBALS['contexte_inclus']));
     103                        $cle = md5(_SECRET.$contexte);
     104                } else {
     105                        $contexte = htmlspecialchars(_request('recommander_env'));
     106                        $cle = htmlspecialchars(_request('recommander_cle'));
     107                }
     108                $r .= "<input type='hidden' name='recommander_env' value='$contexte' />\n";
     109                $r .= "<input type='hidden' name='recommander_cle' value='$cle' />\n";
     110                $r .= "</form>";
    4111        }
     112       
     113        else {
     114                $r = _T('form_prop_message_envoye');
     115        }
     116
     117        echo $r;
     118}
     119
    5120?>
  • _plugins_/_test_/recommander/lang/recommander_fr.php

    r4277 r5639  
    88'recommander_titre' => 'A lire sur @nom_site@ --',
    99'recommander_lecture'=> "Bonjour, @from@ vous recommande la lecture de cet article : ",
    10 'recommander_message'=> "Recommander",
     10'recommander_message'=> "Recommander"
    1111);
    1212
  • _plugins_/_test_/recommander/lang/recommander_pt_br.php

    r5633 r5639  
    44
    55$GLOBALS[$GLOBALS['idx_lang']] = array(
    6 'recommander' => 'Recommander cet article',
    7 'destinataire' => "destinataire :",
    8 'recommander_titre' => 'A lire sur @nom_site@ --',
    9 'recommander_lecture'=> "Bonjour, @from@ vous recommande la lecture de cet article : ",
    10 'recommander_message'=> "Recommander",
     6'recommander' => 'Recomenda a leitura',  // ???
     7'destinataire' => "Destinat&aacute;rio:",
     8'recommander_titre' => 'Ler em @nom_site@ --',
     9'recommander_lecture'=> "Bom dia, @from@ recomenda a leitura deste texto: ", // ??
     10'recommander_message'=> "Recomanda"
    1111);
    1212
  • _plugins_/_test_/recommander/plugin.xml

    r4492 r5639  
    88        </auteur>
    99        <version>
    10         0.1
     10        0.2
    1111        </version>
    1212        <etat>
    13         stable
     13        test
    1414        </etat>
    1515        <description>
    16         Fonction recommander un article &agrave; un ami
     16        Fonction recommander un article &agrave; un ami.
     17
     18On l'ajoute dans n'importe quel squelette en pr&eacute;cisant comme param&egrave;tres d'inclusion :
     19- le titre de la page;
     20- l'url de la page;
     21- le texte a afficher.
     22
     23Sous la forme :
     24<code><INCLURE(recommander.php) {titre=#TITRE} {url=#URL_ARTICLE}
     25 {texte=#INTRODUCTION}></code>
     26
     27On peut ajouter <code>{subject=xxxx}</code> si on veut fixer le sujet,
     28sinon par d&eacute;faut c'est <code>"A lire sur #NOM_SITE -- #ENV{titre}"</code>.
     29
     30Bonus : si {{jQuery}} est pr&eacute;sent, l'interface est en ahah.
    1731        </description>
    18         <prefix> 
     32        <prefix>
    1933        recommander
    2034        </prefix>
  • _plugins_/_test_/recommander/recommander.php

    r4492 r5639  
    33// Envoyer cet article par email
    44//
    5 // On l'ajoute dans n'importe quel squelette en precisant
    6 // comme parametre d'inclusion :
    7 // - le titre de la page
    8 // - l'url de la page
    9 // - le texte a afficher
    10 //
    11 // <INCLURE(recommander.php) {titre=#TITRE} {url=#URL_ARTICLE}
    12 //   {texte=#INTRODUCTION} {lang}>
    13 //
    14 // On peut ajouter {subject=xxxx} si on veut fixer le sujet,
    15 // sinon par defaut c'est "A lire sur #NOM_SITE -- #ENV{titre}"
    165
    176// TODO :
    187// - internationalisation
    19 // - presentation (squelette ?)
     8// - presentation + cache (squelette ?)
    209// - previsualisation et explications (on va envoyer ce message de votre part)
    2110
    2211/*
    23 >È A lire sur XXXXXX                                                           
    24 Ler em XXXXX
    25 >                                                                               
    26 >                                                                               
    27 >È Message envoyŽ !                                                             
     12>È Message envoyŽ !
    2813Mensagem enviada!
    29 >                                                                               
    30 >È destinataire :                                                               
    31 Destinat‡rio:
    32 >                                                                               
    33 >                                                                               
    34 >È XXXX vous recommande la lecture de cet article :                             
    35 XXXXXX recomenda a leitura deste texto
    36 >                                                                               
    37 >                                                                               
    3814>È Erreur lors de l'envoi du message.                                           
    3915Erro no envio da mensagem
     
    4218if (!defined("_ECRIRE_INC_VERSION")) return;
    4319
    44 define ('_SECRET', '1234');  # trouver une meilleure methode pour definir le secret... un meta() dans la base...
    45 
    46 //
    47 // Fonction appelee des qu'il y a un $_POST avec le bouton 'recommander'
    48 //
    49 function recommander($contexte_inclus) {
    50         include_spip('inc/filtres');
    51         $retour = '';
    52 
    53         lang_select($contexte_inclus['lang']);
    54 
    55         // verifier que le formulaire est bien rempli
    56         if (!email_valide(_request('recommander_from')))
    57                 $retour .= _T('pass_erreur_non_valide',
    58                         array(
    59                         'email_oubli' => htmlspecialchars(_request('recommander_from'))
    60                         )
    61                 ).'from:'._request('recommander_from');
    62 
    63         if (!email_valide(_request('recommander_to')))
    64                 $retour .= _T('pass_erreur_non_valide',
    65                         array(
    66                         'email_oubli' => htmlspecialchars(_request('recommander_to'))
    67                         )
    68                 ).'to:'._request('recommander_to');
    69 
    70         if ($retour)
    71                 return $retour;
    72 
    73         // envoyer le mail
    74         include_spip('inc/filtres');
    75         include_spip('inc/mail');
    76 #       var_dump($contexte_inclus);
    77 
    78 # i18n
    79 # _T('recommander_titre', array('nom_site' =>
    80 # supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site'])))
    81         $subject = sinon ($contexte_inclus['subject'],
    82                 _L("A lire sur ").lire_meta('nom_site')." -- "
    83                 .sinon($contexte_inclus['titre'], _request('recommander_titre'))
    84         );
    85 
    86 # i18n
    87 # _T('recommander_lecture', array('from' => _request('recommander_from')))
    88         $body = "Bonjour,\n\n"
    89                 . _request('recommander_from')
    90                 . " vous recommande la lecture de cet article :\n\n"
    91                 . "* ". textebrut($contexte_inclus['titre'])." *\n\n"
    92                 . textebrut($contexte_inclus['texte'])."\n\n"
    93                 . ' -> '.url_absolue(sinon ($contexte_inclus['url'], self()))
    94                 . "\n\n"
    95                 . _request('recommander_message')
    96                 . "\n\n-- "._T('envoi_via_le_site')
    97                 . " ".supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site']))
    98                 . " (".$GLOBALS['meta']['adresse_site']."/) --\n";
    99 
    100         if (!envoyer_mail(
    101                 _request('recommander_to'),
    102                 $subject,
    103                 $body,
    104                 _request('recommander_from'),
    105                 "X-Originating-IP: ".$GLOBALS['ip']
    106         ))
    107                 return "Erreur lors de l'envoi du message.";
    108 
    109 }
    11020
    11121
     
    11626// dans _request() les donnees du visiteur
    11727function main_recommander() {
    118         $erreur ='';
    119         include_spip('inc/lang');
    120         include_spip('inc/layer');
     28        if (!$f = charger_fonction('fragment_recommander', 'action', true))
     29                die('erreur fragment_recommander absent');
     30
    12131        lang_select($GLOBALS['contexte_inclus']['lang']);
    122         if (!_request('recommander_env')
    123         OR (_request('recommander_cle') <> md5(_SECRET._request('recommander_env')))
    124         OR $erreur = recommander(@unserialize(base64_decode(_request('recommander_env'))))) {
    12532
    126                 $r = "";
    127                 // le formulaire normal
    128                 $r .=  "<span class='recommander_titre'><a href='#formulaire_recommander' onclick=\"toggle_formulaire_recommander();return false;\" >"._T("recommander:recommander")."</a></span>";
    129                 $r .= "<div id='formulaire_recommander' class='bloc_invisible'>";
    130                 $r .= "<form method='post' action='".self()."'
    131                 onsubmit=\"ahahform('spip.php', 'recommander');return false;\">";
     33        echo "<div id='recommander' class='formulaire_spip'>\n"
     34        . "<span class='recommander_titre'>"
     35        . _T("recommander:recommander")."</span>"
     36        . "<div id='formulaire_recommander'>";
    13237
    133                 $r .= "<div><label for='recommander_from'>"._T('form_pet_votre_email')."</label>";
    134                 $r .= " <input type='text' id='recommander_from' name='recommander_from'
    135                 value='".htmlspecialchars(_request('recommander_from'))."' class='formo' /></div>";
    136                 $r .= "<div><label for='recommander_to'>"._T('recommander:destinataire')."</label>";
    137                 $r .= " <input type='text' id='recommander_to' name='recommander_to'
    138                 value='".htmlspecialchars(_request('recommander_to'))."' class='formo' /></div>";
    139                 $r .= "<div><label for='recommander_message'>"._T('forum_texte')."</label>";
    140                 $r .= " <input type='text' id='recommander_message' name='recommander_message'
    141                 value='".htmlspecialchars(_request('recommander_message'))."' class='forml' /></div>";
    142                 $r .= "<div class='spip_bouton'><input type='submit' name='recommander_email' value='"._T('recommander:recommander_message')."' /></div>";
     38        echo $f();
    14339
    144                 if (!_request('recommander_cle')) {
    145                         $contexte = base64_encode(serialize($GLOBALS['contexte_inclus']));
    146                         $cle = md5(_SECRET.$contexte);
    147                 } else {
    148                         $contexte = htmlspecialchars(_request('recommander_env'));
    149                         $cle = htmlspecialchars(_request('recommander_cle'));
    150                 }
    151                 $r .= "<input type='hidden' name='recommander_env' value='$contexte' />\n";
    152                 $r .= "<input type='hidden' name='recommander_cle' value='$cle' />\n";
    153                 $r .= "</form>";
    154                 $r .= "<span class='waiting'>$erreur</span>";# pour l'icone "searching..."
    155                 $r .= '</div>';
    156                 $r .= '<script type="text/javascript">
    157                 $(document).ready(function(){$("div#formulaire_recommander").hide();});
    158                 function toggle_formulaire_recommander(){
    159       var p = $("div#formulaire_recommander");
    160       if (p.is(":hidden")) p.slideDown("fast");
    161       /*else p.slideUp("fast");*/ // fait planter safari ? pas vraiment utile en plus
    162                 }
    163                 </script>';
     40        echo "</div>"
     41        . "</div>\n"
     42        . <<<EOS
     43<script type="text/javascript"><!--
     44if (typeof jQuery == "function") {
     45        $("div#formulaire_recommander").hide();
     46        function recommander_js() {
     47                $("div#formulaire_recommander").css("height","");
     48                $("div#formulaire_recommander form")
     49                .prepend(
     50                        "<input name='action' value='fragment_recommander' type='hidden' />"
     51                )
     52                .submit(function(){
     53                        $(this)
     54                        .ajaxSubmit("#formulaire_recommander", recommander_js);
     55                        return false;
     56                });
     57        }
     58        recommander_js();
     59        $("span.recommander_titre").oneclick(function(){
     60                $("div#formulaire_recommander:hidden").slideDown("slow");
     61        });
     62}
     63// --></script>
     64EOS;
    16465
    165         } else {
    166                 $r .= _T('form_prop_message_envoye');
    167         }
    16866        lang_dselect();
    16967
    170         return $r;
    17168}
    17269
    17370// main()
    174 echo "<script type='text/javascript' src='".find_in_path('recommander_ahah.js')."'></script>\n",
    175         "<div id='recommander' class='formulaire_spip'>\n",
    176         main_recommander(),
    177         "</div>\n";
     71echo main_recommander();
    17872
    17973?>
Note: See TracChangeset for help on using the changeset viewer.