Changeset 54759 in spip-zone


Ignore:
Timestamp:
Nov 22, 2011, 2:43:01 AM (8 years ago)
Author:
patfr@…
Message:

Mailcrypt : fonction maildecrypt() utilisable par exemple avec #FILTRE{maildecrypt} (idem plugin autonome)
+ Compat avec le plugin Facteur
+ Filtre spécial mailcrypt_email_dist($texte) surchargeable pour #EMAIL
+ Protection #EMAIL en public par défaut, non en privé

Location:
_plugins_/couteau_suisse
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/couteau_suisse/config_outils.php

    r54758 r54759  
    10791079        'code:css' => 'span.spancrypt {background:transparent url(' . url_absolue(find_in_path('img/mailcrypt/leure.gif'))
    10801080                . ') no-repeat scroll 0.1em center; padding-left:12px; text-decoration:none;}',
    1081         'traitement:EMAIL' => 'mailcrypt',
     1081        'traitement:EMAIL' => 'mailcrypt_email_dist',
     1082        // compatibilite avec le plugin facteur
     1083        'pipelinecode:facteur_pre_envoi'   => 'include_spip("public/parametrer"); // charger mes_fonctions
     1084$flux->Body = maildecrypt($flux->Body);
     1085$flux->AltBody = maildecrypt($flux->AltBody);',
    10821086));
    10831087
  • _plugins_/couteau_suisse/cout_pipelines.php

    r50159 r54759  
    202202function couteau_suisse_porte_plume_cs_pre_charger($flux){
    203203        return eval_metas_pipelines($flux, 'porte_plume_cs_pre_charger');
     204}
     205
     206
     207// compatibilite avec le plugin Facteur
     208function couteau_suisse_facteur_pre_envoi($flux){
     209        return eval_metas_pipelines($flux, 'facteur_pre_envoi');
    204210}
    205211
  • _plugins_/couteau_suisse/outils/mailcrypt_fonctions.php

    r27058 r54759  
    11<?php
    22
    3 function mailcrypt($texte) {
     3function mailcrypt_init() {
    44        static $ok = NULL;
    5         if (strpos($texte, '@')===false) return $texte;
    6 
    75        if(is_null($ok)) {
    86                $ok = true;
     
    1816                @define('_mailcrypt_REGEXPR2', ',\b(['._cs_liens_AUTORISE.']+)@([a-zA-Z][a-zA-Z0-9-.]*\.[a-zA-Z]+(\?['._cs_liens_AUTORISE.']*)?),');
    1917        }
     18}
     19
     20// filtre surchargeable pour la balise #EMAIL protegee en public mais pas en prive
     21function mailcrypt_email_dist($texte) {
     22        if(strpos($texte, '@')===false) return $texte;
     23        if(function_exists('mailcrypt_email')) return mailcrypt_email($texte);
     24        return test_espace_prive()?$texte:mailcrypt($texte);
     25}
     26
     27function mailcrypt($texte) {
     28        if(strpos($texte, '@')===false) return $texte;
     29        mailcrypt_init();
    2030
    2131        // echappement des 'input' au cas ou le serveur y injecte des mails persos
     
    2333                $texte = preg_replace_callback(',<input [^<]+/>,Umsi', 'cs_liens_echappe_callback', $texte);
    2434        // echappement des 'protoc://login:mdp@site.ici' afin ne pas les confondre avec un mail
    25         if (strpos($texte, '://')!==false)
     35        if(strpos($texte, '://')!==false)
    2636                $texte = preg_replace_callback(',[a-z0-9]+://['._cs_liens_AUTORISE.']+:['._cs_liens_AUTORISE.']+@,Umsi', 'cs_liens_echappe_callback', $texte);
    2737        // echappement des domaines .htm/.html : ce ne sont pas des mails
    28         if (strpos($texte, '.htm')!==false)
     38        if(strpos($texte, '.htm')!==false)
    2939                $texte = preg_replace_callback(',href=(["\'])[^>]*@[^>]*\.html?\\1,', 'cs_liens_echappe_callback', $texte);
    3040
     
    3545        $texte = preg_replace(',title="[^"]+'._mailcrypt_AROBASE_JSQ.'[^"]+"([^>]+title=[\"\']),', '$1', $texte);
    3646
    37         if (strpos($texte, '@')===false) return echappe_retour($texte, 'LIENS');
     47        if(strpos($texte, '@')===false) return echappe_retour($texte, 'LIENS');
    3848        // protection de tout le reste...
    3949        $texte = preg_replace(_mailcrypt_REGEXPR2, '$1'._mailcrypt_AROBASE.'$2', $texte);
     
    4151}
    4252
     53function maildecrypt($texte) {
     54        if(strpos($texte, 'spancrypt')===false && strpos($texte, 'lancerlien')===false) return $texte;
     55        mailcrypt_init();
     56
     57        // traiter les <span class='spancrypt'>chez</span>
     58        $texte = preg_replace(',<span class=[\'"]spancrypt[\'"]>(.*)</span>,U','@',$texte);
     59        // traiter les liens
     60        $texte = preg_replace(
     61                ',href="#" (title=["\'].*?["\']) onclick="location.href=lancerlien\(\'(\S*?)\'\,\'(\S*?)\'\); return false;",',
     62                '$1 href="mailto:$2@$3"', $texte);
     63        // traiter les title
     64        return str_replace(_mailcrypt_AROBASE_JS, '@', $texte);
     65}
    4366?>
  • _plugins_/couteau_suisse/paquet.xml

    r54741 r54759  
    22        prefix="couteau_suisse"
    33        categorie="maintenance"
    4         version="1.8.48"
     4        version="1.8.49"
    55        etat="stable"
    66        compatibilite="[1.9.2;3.0.99]"
     
    4141        <pipeline nom="porte_plume_barre_pre_charger" inclure="cout_pipelines.php" />
    4242        <pipeline nom="porte_plume_lien_classe_vers_icone" inclure="cout_pipelines.php" />
     43        <pipeline nom="facteur_pre_envoi" inclure="cout_pipelines.php" />
    4344        <!-- pipelines maison -->
    4445        <pipeline nom="pre_description_outil" inclure="cout_pipelines.php" />
  • _plugins_/couteau_suisse/plugin.xml

    r54741 r54759  
    33        <slogan>... ou plus de fonctionnalit&#233;s pour SPIP !</slogan>
    44        <icon>img/couteau-50.gif</icon>
    5         <version>1.8.48</version>
     5        <version>1.8.49</version>
    66        <version_base>1.1</version_base>
    77        <auteur>Patrice Vanneufville
     
    272272        </pipeline>
    273273        <pipeline>
     274                <nom>facteur_pre_envoi</nom>
     275                <inclure>cout_pipelines.php</inclure>
     276        </pipeline>
     277       
     278        <pipeline>
    274279                <nom>pre_description_outil</nom>
    275280                <inclure>cout_pipelines.php</inclure>
Note: See TracChangeset for help on using the changeset viewer.