So, nun habe ich herausgefunden, wie ich ein Email-Template aufrufe, mit Daten fülle und absende… so weit so gut… Aber wie kann ich in meinem Plugin ein Email-Template installieren ? Es soll nach der Installation des Plugins in den Email Vorlagen unter User-Emails erscheinen. Jemand ne Idee ? Ist das irgendwo dokumentiert ? Hab hier nix gefunden… Beste Grüße Jürgen
Aus der Wühlkiste: // read from our files $content = file\_get\_contents( $this-\>Path() . "Install/email\_template\_content.txt" ); $html = file\_get\_contents( $this-\>Path() . "Install/email\_template\_html.txt" ); // create a new object $mail = new \Shopware\Models\Mail\Mail(); // set all parameters $mail-\>setName( $name ); $mail-\>setFromMail( "{config name=mail}" ); $mail-\>setFromName( "{config name=shopName}" ); $mail-\>setSubject( "Überschrift {config name=shopName}" ); $mail-\>setContent( $content ); $mail-\>setContentHtml( $html ); $mail-\>setIsHtml( true ); $mail-\>setMailtype( 1 ); $mail-\>setContext( null ); // save it Shopware()-\>Models()-\>persist( $mail ); Shopware()-\>Models()-\>flush();
Viele Grüße
Vielen Dank… das funktioniert super… und wie bekomm ich das wieder wech ? Wenn das Plugin deinstalliert wird, dann soll auch das Template entfernt werden. Um es löschen zu können muß ich es zunächst lesen, brauch dazu aber die id … Ich hab aber nur den Namen. $mail = Shopware()-\>Models()-\>find('\Shopware\Models\Mail\Mail', ???); if(!is\_null($mail)) Shopware()-\>Models()-\>remove($mail);
Vielleicht noch nen Tipp aus der Wühlkiste ?
Da würde ich nach dem Namen gehen, da der idR. nicht geändert wird. $mail = Shopware()-\>Models()-\>getRepository( '\Shopware\Models\Mail\Mai' )-\>findOneBy( array( 'name' =\> "der name der mail" ) );
Viele Grüße
Nochmals vielen Dank… ich hab das etwas umständlicher gelöst: $builder = Shopware()-\>Models()-\>createQueryBuilder(); $builder-\>select(array('mail'))-\>from('Shopware\Models\Mail\Mail', 'mail')-\>where('mail.name = :mailName'); $builder-\>setParameter('mailName', Constants::EMAIL\_TEMPLATE\_PROT); $mail = $builder-\>getQuery()-\>getOneOrNullResult();
Die Lösung über das Repository ist aber schöner und wird gleich mal ausprobiert… Beste Grüße Jürgen