meta données pour cette page
  •  

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
demo:bureaucracy [2011/03/29 00:49]
ztrulphcs [Bureaucracy]
demo:bureaucracy [2011/06/21 06:10]
ztrulphcs [Modification]
Ligne 14: Ligne 14:
 Pour l'action mail, on peut, pour cacher l'adresse dans le source de la page (ce qui permet de laisser le code source d'une page disponible), utiliser un nom qui est défini dans la page [[:private:emails]], qui ne doit être accessible par personne. Seul l'administrateur du site y aura accès, car il est administrateur. Si la page [[:private:emails]] est accessible par d'autres personnes (et surtout par des internautes anonymes), alors elle perd sa raison d'être. Pour l'action mail, on peut, pour cacher l'adresse dans le source de la page (ce qui permet de laisser le code source d'une page disponible), utiliser un nom qui est défini dans la page [[:private:emails]], qui ne doit être accessible par personne. Seul l'administrateur du site y aura accès, car il est administrateur. Si la page [[:private:emails]] est accessible par d'autres personnes (et surtout par des internautes anonymes), alors elle perd sa raison d'être.
  
 +Il suffit de remplacer le fichier ''lib/plugins/bureaucracy/actions/mail.php par''
 +++++cette version|
 +<code php mail.php>
 +<?php
 +/**
 + * Action sendemail for DokuWiki plugin bureaucracy
 + */
 +
 +class syntax_plugin_bureaucracy_action_mail extends syntax_plugin_bureaucracy_action {
 +
 +    /**
 +     * Build a nice email from the submitted data and send it
 +     */
 +    function run($data, $thanks, $argv) {
 +        global $ID;
 +
 +        // get recipient address(es)
 + if( file_exists( $f=wikiFN( ':private:emails' ))) {
 + $mailads = array();
 + $lines = file($f);
 + foreach($lines as $line){
 + $line = preg_replace('/#.*$/','',$line); //ignore comments
 + $line = trim($line);
 + if(empty($line)) continue;
 +
 + $row = split( "=", $line, 2 );
 + $mails[trim($row[0])] = trim($row[1]);
 + }
 + foreach( $argv as $mailad ) {
 + if( array_key_exists( $mailad, $mails)) {
 + $mailads[] = $mails[ $mailad ];
 + }
 + else {
 + $mailads[] = $mailad;
 + }
 + }
 + $to = join(',',$mailads);
 + }
 + else
 + $to = join(',',$argv);
 +
 +        $sub = sprintf($this->getLang('mailsubject'),$ID);
 +        $txt = sprintf($this->getLang('mailintro')."\n\n\n", dformat());
 +
 +        foreach($data as $opt){
 +            $value = $opt->getParam('value');
 +            $label = $opt->getParam('label');
 +
 +            switch($opt->getFieldType()){
 +                case 'fieldset':
 +                    $txt .= "\n====== ".hsc($label)." ======\n\n";
 +                    break;
 +                default:
 +                    if($value === null || $label === null) break;
 +                    $txt .= $label."\n";
 +                    $txt .= "\t\t$value\n";
 +            }
 +        }
 +
 +        global $conf;
 +        if(!mail_send($to, $sub, $txt, $conf['mailfrom'])) {
 +            throw new Exception($this->getLang('e_mail'));
 +        }
 +        return $thanks;
 +    }
 +
 +}
 +// vim:ts=4:sw=4:et:enc=utf-8:
 +</code>
 +++++
  
  --- //[[schplurtz@free.fr|schplurtz le déboulonné]] 2011/03/12 15:27//  --- //[[schplurtz@free.fr|schplurtz le déboulonné]] 2011/03/12 15:27//