Changeset 16351 in spip-zone


Ignore:
Timestamp:
Oct 26, 2007, 10:04:19 AM (13 years ago)
Author:
cedric@…
Message:

"versions tout en squelette, remise au gout du jour"

Location:
_plugins_/_test_/recommander
Files:
10 added
3 edited

Legend:

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

    r13167 r16351  
    33if (!defined("_ECRIRE_INC_VERSION")) return;
    44
    5 define ('_SECRET', '1234');  # trouver une meilleure methode pour definir le secret... un meta() dans la base...
    6 
    7 
     5// initaliser le secret la premiere fois : md5 de l'url et de la date
     6if (!isset($GLOBALS['meta']['recommander_secret'])){
     7        include_spip('inc/meta');
     8        ecrire_meta('recommander_secret',md5(self().date('Y-m-d H:i:s')));
     9        ecrire_metas();
     10}
    811
    912function verifier_email_ou_erreur($email) {
    1013        if (!$email = trim($email))
    11                 return '<div class="erreur">'._T('form_prop_indiquer_email').'</div>';
     14                return _T('form_prop_indiquer_email');
    1215        if (!email_valide($email))
    13                 return '<div class="erreur">'
    14                         . _T('pass_erreur_non_valide',
     16                return _T('pass_erreur_non_valide',
    1517                                array(
    1618                                'email_oubli' => htmlspecialchars($email)
    1719                                )
    18                         ).'</div>';
     20                        );
    1921}
    2022
     
    3537        // envoyer le mail
    3638        include_spip('inc/filtres');
    37         include_spip('inc/mail');
    3839#       var_dump($contexte_inclus);
    3940
     
    4849# i18n
    4950# _T('recommander_lecture', array('from' => _request('recommander_from')))
    50         $body = "Bonjour,\n\n"
    51                 . _request('recommander_from')
    52                 . " vous recommande la lecture de cet article :\n\n"
    53                 . "* ". textebrut($contexte_inclus['titre'])." *\n\n"
    54                 . textebrut($contexte_inclus['texte'])."\n\n"
    55                 . ' -> '.url_absolue(sinon ($contexte_inclus['url'], self()))
    56                 . "\n\n"
    57                 . _request('recommander_message')
    58                 . "\n\n-- "._T('envoi_via_le_site')
    59                 . " ".supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site']))
    60                 . " (".$GLOBALS['meta']['adresse_site']."/) --\n";
     51        $contexte = array(
     52                'titre'=>$contexte_inclus['titre'],
     53                'texte'=>$contexte_inclus['texte'],
     54                'url'=>$contexte_inclus['url']?$contexte_inclus['url']:self(),
     55                'recommander_from'=>_request('recommander_from'),
     56                'recommander_to'=>_request('recommander_to'),
     57                'recommander_message'=>_request('recommander_message'),
     58        );
     59        include_spip('public/assembler');
     60        $body = recuperer_fond('recommander/email',$contexte);
    6161
    6262        lang_dselect();
    6363
    64         if (!envoyer_mail(
     64        $envoyer_mail = charger_fonction('envoyer_mail','inc');
     65        if (!$envoyer_mail(
    6566                _request('recommander_to'),
    6667                $subject,
     
    6970                "X-Originating-IP: ".$GLOBALS['ip']
    7071        ))
    71                 return "<div class='erreur'>"._L("Erreur lors de l'envoi du message.")."</div>";
     72                return _L("Erreur lors de l'envoi du message.");
    7273
    7374}
    7475
    7576
    76 function action_fragment_recommander() {
     77function action_fragment_recommander($return = false, $contexte_inclus = array()) {
    7778        if (!_request('recommander_env')
    78         OR (_request('recommander_cle') <> md5(_SECRET._request('recommander_env')))
     79        OR (_request('recommander_cle') <> md5($GLOBALS['meta']['recommander_secret']._request('recommander_env')))
    7980        OR $erreur = envoi_recommander(
    8081                @unserialize(base64_decode(_request('recommander_env'))))
    8182        ) {
    82 
    83                 $r = $erreur;
    84 
    85                 $r .= "<form method='post' action='".self()."'>";
    86 
    87                 $r .= "<p><label for='recommander_from'>"._T('form_pet_votre_email')."</label>";
    88                 $r .= " <input type='text' id='recommander_from' name='recommander_from'
    89                 value='".htmlspecialchars(_request('recommander_from'))."'  class='forml' /></p>";
    90                 $r .= "<p><label for='recommander_to'>"._T('recommander:destinataire')."</label>";
    91                 $r .= " <input type='text' id='recommander_to' name='recommander_to' class='forml'
    92                 value='".htmlspecialchars(_request('recommander_to'))."' class='formo' /></p>";
    93                 $r .= "<p><label for='recommander_message'>"._T('forum_texte')."</label>";
    94                 $r .= " <textarea id='recommander_message' name='recommander_message' class='forml'
    95                 value='".htmlspecialchars(_request('recommander_message'))."' class='forml'></textarea></p>";
    96                 $r .= "<div class='spip_bouton'><input type='submit' name='recommander_email' value='"._T('recommander:recommander_message')."' /></div>";
    97 
    9883                if (!_request('recommander_cle')) {
    99                         $contexte = base64_encode(serialize($GLOBALS['contexte_inclus']));
    100                         $cle = md5(_SECRET.$contexte);
     84                        $contexte = base64_encode(serialize($contexte_inclus));
     85                        $cle = md5($GLOBALS['meta']['recommander_secret'].$contexte);
    10186                } else {
    10287                        $contexte = htmlspecialchars(_request('recommander_env'));
    10388                        $cle = htmlspecialchars(_request('recommander_cle'));
    10489                }
    105                 $r .= "<input type='hidden' name='recommander_env' value='$contexte' />\n";
    106                 $r .= "<input type='hidden' name='recommander_cle' value='$cle' />\n";
    107                 $r .= "</form>";
     90               
     91                $contexte = array(
     92                        'erreur' =>$erreur,
     93                        'recommander_env'=>$contexte,
     94                        'recommander_cle'=>$cle,
     95                        'recommander_from'=>_request('recommander_from'),
     96                        'recommander_to'=>_request('recommander_to'),
     97                        'recommander_message'=>_request('recommander_message'),
     98                        'titre'=>$contexte_inclus['titre'],
     99                        'texte'=>$contexte_inclus['texte'],
     100                        'url'=>$contexte_inclus['url'],
     101                        'self'=>self()
     102                );
     103                include_spip('public/assembler');
     104                $r = recuperer_fond('recommander/formulaire',$contexte);
    108105        }
    109106       
    110107        else {
    111                 $r = _T('form_prop_message_envoye');
     108                $contexte = array(
     109                        'recommander_from'=>_request('recommander_from'),
     110                        'recommander_to'=>_request('recommander_to'),
     111                        'recommander_message'=>_request('recommander_message'),
     112                        'titre'=>$contexte_inclus['titre'],
     113                        'texte'=>$contexte_inclus['texte'],
     114                        'url'=>$contexte_inclus['url'],
     115                );
     116                include_spip('public/assembler');
     117                $r = recuperer_fond('recommander/envoye',$contexte);
    112118        }
    113119
    114         echo $r;
     120        if ($return)
     121                return $r;
     122        else
     123                echo $r;
    115124}
    116125
  • _plugins_/_test_/recommander/plugin.xml

    r12246 r16351  
    1616        Fonction recommander un article &#224; un ami.
    1717
    18 On l'ajoute dans n'importe quel squelette en pr&#233;cisant comme param&#232;tres d'inclusion :
    19 - le titre de la page;
    20 - l'url de la page;
    21 - le texte a afficher.
     18On l'ajoute dans n'importe quel squelette sous la forme :
     19{#RECOMMANDER{titre de la page,url de la page,intro de la page,sujet}}
     20_ par exemple
     21{#RECOMMANDER{#TITRE,#URL_ARTICLE,#INTRODUCTION}}
     22_ l'url, l'intro et le sujets sont facultatifs
    2223
    23 Sous la forme :
    24 {&lt;INCLURE(recommander.php) {titre=#TITRE} {url=#URL_ARTICLE}
    25  {texte=#INTRODUCTION}&gt;}
    26 
    27 On peut ajouter <code>{subject=xxxx}</code> si on veut fixer le sujet,
    28 sinon par d&#233;faut c'est <code>"A lire sur #NOM_SITE -- #ENV{titre}"</code>.
    29 
    30 Bonus : si {{jQuery}} est pr&#233;sent, l'interface est en ahah.
     24L'interface est en ahah.
    3125        </description>
    3226        <lien></lien> <!-- URI de documentation -->
  • _plugins_/_test_/recommander/recommander.php

    r7357 r16351  
    44//
    55
    6 // TODO :
    7 // - internationalisation
    8 // - presentation + cache (squelette ?)
    9 // - previsualisation et explications (on va envoyer ce message de votre part)
    10 
    116/*
    12 >È Message envoyŽ !
    13 Mensagem enviada!
    14 >È Erreur lors de l'envoi du message.
    15 Erro no envio da mensagem
     7Obsolete : pour compat uniquement
    168*/
    179
    1810if (!defined("_ECRIRE_INC_VERSION")) return;
    1911
    20 
    21 
    22 //
    23 // Fonction de base de cet INCLURE
    24 //
    25 // Dans la variable $contexte_inclus on trouve les donnees de l'article
    26 // dans _request() les donnees du visiteur
    27 function main_recommander() {
    28         if (!$f = charger_fonction('fragment_recommander', 'action', true))
    29                 die('erreur fragment_recommander absent');
    30 
    31         lang_select($GLOBALS['contexte_inclus']['lang']);
    32 
    33         echo "<div id='recommander' class='formulaire_spip'>\n"
    34         . "<h2 class='menu-titre'>"
    35         . _T("recommander:recommander")."</h2>"
    36         . "<div id='formulaire_recommander'>";
    37 
    38         echo $f();
    39 
    40         $searching_div = '<div style="float: '.$GLOBALS['spip_lang_right'].'; z-index:2;"><img src="'._DIR_IMG_PACK.'searching.gif'.'" /></div>';
    41 
    42         echo "</div>"
    43         . "</div>";
    44 
    45         echo '
    46 <script type="text/javascript"><!--
    47 if (typeof jQuery == "function") {
    48         var ajax_image_searching = "'.addslashes($searching_div).'";'
    49         .<<<EOS
    50         $("div#formulaire_recommander").hide();
    51         function recommander_js() {
    52                 $("div#formulaire_recommander").css("height","");
    53                 $("div#formulaire_recommander form")
    54                 .prepend(
    55                         "<input name='action' value='fragment_recommander' type='hidden' />"
    56                 )
    57                 .ajaxForm({"target":"#formulaire_recommander",
    58                         "after":recommander_js,
    59                         "before":function() {
    60                                 $("#formulaire_recommander").prepend(ajax_image_searching);
    61                         }
    62                 });
    63         }
    64         recommander_js();
    65         $("#recommander>h2").click(function(){
    66                 $("div#formulaire_recommander:visible").slideUp("slow");
    67                 $("div#formulaire_recommander:hidden").slideDown("slow");
    68         });
    69 }
    70 // --></script>
    71 EOS;
    72 
    73         lang_dselect();
    74 
    75 }
    76 
    77 // main()
    78 echo main_recommander();
     12$fond='recommander';
     13$delai=0;
     14include 'ecrire/public.php';
    7915
    8016?>
Note: See TracChangeset for help on using the changeset viewer.