Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 04-02-2010 11:13:42

loriv
Membre
Date d'inscription: 10-11-2009
Messages: 22

[résolu]Zend_Mail - Notification

bonjour,
je souhaiterais mettre en place un système de notification par e-mail lorsque qu'une personne fait une demande en ligne pour un service particulier.

Lorsque la demande est créée, un mail est transmis au service compétent pour les prévenir de la demande et le demandeur se voit également destinataire de ce mail pour accuser réception de sa demande.

Ma question :

Où créer le script de notification sachant qu'il est appelé depuis une action d'un controller ?
Doit-il être sous la forme d'une action dans le même controller ?
Doit-il être sous la forme d'une aide d'action ?
Ou sous une autre forme ?

Merci de m'éclairer de vos lumières bien avisées ;-).

Dernière modification par loriv (12-02-2010 15:31:20)


-----------------------------------------------------------------------------------------------------------

ZF 1.9.6 + WXP + Xampp 1.7.2 (Php5.3.0  Apache2.2.12 PhpMyadmin3.2.0.1)

Hors ligne

 

#2 04-02-2010 12:58:21

elec
Membre
Date d'inscription: 16-10-2009
Messages: 118

Re: [résolu]Zend_Mail - Notification

Bonjour,

Cela fais quelques jours que j'ai crée une application semblable,bon la meilleur méthode c'est de créer une classe indépendant puis tu appelle les fonctions de cet classe dans les actions de ton contrôleur  comme ça tu auras un code plus propre et en plus tu éviteras d'avoir "The Fat Stupid Ugly Controller"....

si tu auras besoin d'une autre aide à propos de l'application alors tu n'as qu'à le poser.

A+.Nll

Dernière modification par elec (04-02-2010 12:59:06)

Hors ligne

 

#3 04-02-2010 13:11:16

loriv
Membre
Date d'inscription: 10-11-2009
Messages: 22

Re: [résolu]Zend_Mail - Notification

Merci Elec pour ta réponse et l'aide que me proposes.
Je vais de ce pas créer une classe 'notification.php'dans le répertoire suivant :

MonProjet___
                 |__Application
                 |__library
                         |
                         |-----Notification.php


-----------------------------------------------------------------------------------------------------------

ZF 1.9.6 + WXP + Xampp 1.7.2 (Php5.3.0  Apache2.2.12 PhpMyadmin3.2.0.1)

Hors ligne

 

#4 04-02-2010 15:30:50

elec
Membre
Date d'inscription: 16-10-2009
Messages: 118

Re: [résolu]Zend_Mail - Notification

Bonsoir,

De rien,mais une petite remarque il ne faut pas mettre ta classe dans "library" mais plutôt "application/models" ou en général dans "/application" ou un dossier comme "application/notification"(enfin selon ta configuration) ,dans le dossier "library" on met par exemple la librairie Zend ou Plugins...

Voilà deux liens très importants pour toi :

Data mapping

Un site très important

Enfin pour connaitre mieux la configuration de Zend et le POO en PHP.

A+.Nll

Dernière modification par elec (04-02-2010 16:13:14)

Hors ligne

 

#5 04-02-2010 16:18:00

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: [résolu]Zend_Mail - Notification

Une classe comme Notification fait vraiment partie du Model ? Ne peut -il pas créer une librairie propre à _cette_ application dans laquelle il met toutes les classes qu'il a besoin ? Une sorte de boite à outils..

(C'est une question que je me pose également pour mon application)

Hors ligne

 

#6 04-02-2010 17:04:44

loriv
Membre
Date d'inscription: 10-11-2009
Messages: 22

Re: [résolu]Zend_Mail - Notification

Je pars effectivement sur un répertoire comme ceci :

MonProjet___
                 |__Application
                 |__library
                         |-------MonProjet
                                        |--------classNotification.php

Justement pour ne pas pourrir les scripts MVC.
A la rigueur, si ça se complique, je pourrais même y créer un package Notification .

Merci et à +


-----------------------------------------------------------------------------------------------------------

ZF 1.9.6 + WXP + Xampp 1.7.2 (Php5.3.0  Apache2.2.12 PhpMyadmin3.2.0.1)

Hors ligne

 

#7 05-02-2010 11:43:16

elec
Membre
Date d'inscription: 16-10-2009
Messages: 118

Re: [résolu]Zend_Mail - Notification

Bonjour,

Je suis d'accord avec Slaughter,mais enfin c'est ton choix!!

A+.Nll

Hors ligne

 

#8 05-02-2010 13:54:40

loriv
Membre
Date d'inscription: 10-11-2009
Messages: 22

Re: [résolu]Zend_Mail - Notification

dès que je termine ma classe 'Notification', si j'y arrive, je la mets sur cette discussion , on en reparle et je flaggerai à [résolu] le post.

Merci à vous.
A+


-----------------------------------------------------------------------------------------------------------

ZF 1.9.6 + WXP + Xampp 1.7.2 (Php5.3.0  Apache2.2.12 PhpMyadmin3.2.0.1)

Hors ligne

 

#9 12-02-2010 15:30:56

loriv
Membre
Date d'inscription: 10-11-2009
Messages: 22

Re: [résolu]Zend_Mail - Notification

Appel depuis un controller :

Code:

         .............
         .............
// Sauvegarde des informations
    $lastId=$interv->save();

//Notifier au demandeur la création ou l'update
            $c=new ZF01LR_Notification($lastId);
            if ($c->notifOK){
                $flashMessenger=$this->_helper->getHelper('FlashMessenger');
                $flashMessenger->setNameSpace('notification');
                $flashMessenger->addMessage($c->notifOK);
            }

ci dessous mon fichier 'Notification.php'

Code:

class ZF01LR_Notification {
    
    public $notifOK;
    protected $idInterv;
    protected $rowInterv;
    
    function __construct($Interv){

        $this->idInterv=array('txtNumInterv'=>$Interv);
                       
        $TInterv = new Model_DbTable_TInterv();

        $this->rowInterv = $TInterv->getList($this->idInterv);

        $this->getContent();
        
    
    }
    
    function getContent(){
    // Construction du detail de la demande
     // Pour le corps du message.
         $url=Zend_Controller_Front::getInstance()->getBaseUrl();
         $htmlContent="<a href= 'http://ledomaine.fr".$url."/interv/edit/i/".$this->idInterv['txtNumInterv']."'>http://ledomaine.fr".$url."/interv/edit/i/".$this->idInterv['txtNumInterv']."</a>";        
        $htmlContent.="<br><br><html><body><div><strong>Description de la demande</strong></div><br>
<span style='font-weight:bold;  text-decoration:underline; '>Objet:</span>".$this->rowInterv[0]['objet']."<br>
<span style='font-weight:bold;  text-decoration:underline; '>Demandeur:</span>".$this->rowInterv[0]['melDemandeur']."<br>
<span style='font-weight:bold;  text-decoration:underline; '>Description:</span><br>".nl2br($this->rowInterv[0]['description'])."<br>
</body></html>

";

        // Destinataire
        $email = Zend_Auth::getInstance()->getIdentity()->email."@ledomaine.fr";
              
        // Transport à utiliser pour l'envoi
        $transport = new Zend_Mail_Transport_Smtp('smail.ledomaine.fr',array('auth'=>'plain',
                                                                                            'username'=>'loriv',
                                                                                            'password'=>'pwdloriv')
        );

        // Construction de l'e-mail
        $mail = new Zend_Mail('UTF-8');
        $mail->setSubject('[ZF01LR #'.$this->idInterv['txtNumInterv'].']')
        ->setFrom('ne_pas_repondre@ledomaine.fr', 'ne pas repondre')
        ->addTo($email)
        ->setBodyHtml($htmlContent,'UTF-8',ZEND_MIME::ENCODING_8BIT);

        // Envoi
        try{
        $mail->send($transport);
        }catch(Zend_Mail_Exception $e){
            //TODO Des fois que le serveur SMTP soit aux fraises
        }

        $this->notifOK="Un message de confirmation sera envoyé à l'adresse suivante :".$email;
    }
        
    
    
    
}

S'il y a des remarques, je prends ...

A+


-----------------------------------------------------------------------------------------------------------

ZF 1.9.6 + WXP + Xampp 1.7.2 (Php5.3.0  Apache2.2.12 PhpMyadmin3.2.0.1)

Hors ligne

 

#10 17-05-2011 17:41:04

missna04
Nouveau membre
Date d'inscription: 14-03-2011
Messages: 7

Re: [résolu]Zend_Mail - Notification

Bonjour loriv

Il y'a t- il pas de faute sur la première ligne du controller. j'ai essayé d’intégrer ce code dans mon projet il m'affiche un Warning a ce niveau $lastId=$interv->save();  en soulignant en jaune $interv.


Merci

Hors ligne

 

#11 18-05-2011 09:28:04

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: [résolu]Zend_Mail - Notification

Le code n'est pas à utiliser tel quel,
$lastId=$interv->save(); sert à faire une insertion en base et à récupéré l'id si tu n'as pas d'enregistrement en base à faire cette ligne n'est pas utile (et dans tous les cas il faudrait l'adapter et déclarer $interv, etc auparavant).

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages