Yii Framework Forum: sablon alapú levelezés - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

sablon alapú levelezés custom mail template Rate Topic: -----

#1 User is offline   Rajcsányi Zoltán 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 46
  • Joined: 10-November 09
  • Location:Hungary, Zalaegerszeg

Posted 03 April 2012 - 07:50 AM

A saját készítésű webshop rendszeremhez szükségem van sablon alapú levelezőre. A rendszer többnyelvű és különböző kontrollerek is folytatnak levelezést.
Továbbá a levelek két féle formában gondoltam, hogy kimennek egyenlőre.

A topikot azért nyitom, hogy ötletelhessünk, illetve a haladó Yii programozók kedvet éreznek, tanácsokat adhassanak a témához.

Regisztráció
1. sablon > felhasználónak megerősítési kérés
1. sablon > felhasználónak visszajelzés a regisztráció elfogadására
2. sablon > felhasználói regisztráció jelzése az admin részére


Jelszó módosítás
1. sablon > jelzés a felhasználó számára

Jelszó emlékeztető
1. sablon: email a felhasználó számára a linkkel
1. sablon: email az új jelszóval

Megrendelés a webshop-ban:
1. sablon: 8-10 fajta levél
2. sablon: 3-4 fajta levél


Mivel a rendszer többnyelvű, többféle levél formátumról van szó és karbantarthatónak illene lennie mindenképpen az adatbázisba érdemes rakni a sablonokat.

Látható, hogy levelenként más és más típusú adatokra van szükség, amik ezek között egészen komplex generált html kódok is lehetnek. Ez azt jelenti, hogy egy adott kontroller, előfordulhat, hogy a sablon egy részét egy másik view-ból fogja generálni.

A levelezéshez a PHPMailer osztályt látom megfelelőnek.

EMail küldő felépítése:

Sablonfájlok a levelek törzsének (body rész, embeded css):
/view/mail_template/sablon_user.php
/view/mail_template/sablon_admin.ph

Adatbázis (nyelvenként, azonosítóként és a megadható címkék)
//database/mail_template
//database/languages
//lang_mail_template
Lásd melléklet!

Felhasználása más kontrollerben (pl. regisztráció)
/controllers/registration
/views/mail_userdata_details

A regisztráció leírása:

- felhasználó kitölti a regisztrációs űrlapot (controller/registration.php)
- a rendszer regisztráció megerősítésére egy emailt küld a felhasználó részére
> - controller/registration.php rendereli a view/registration/mail_user_details.php
> - controller meghívja a modules/mailer.php-t és rendereli az adott nyelv sablonfájlát
> - a controller betölti a levél küldö modult, beálítja a keret_sablont (/view/mail_template/sablon_user.php)
> - a levél küldő modul kicseréli a cimkéket a korábban betöltött adatokra
...

A cimkézéshez a dupla kapcsos zárójelet gondoltam. {{cimke}}

Akkor várom a visszajelzéseiteket, ötleteiteket!

Attached File(s)


---
Zoltan Rajcsanyi
homepage: http://ezmegaz.hu
skype: zolones7666

0

#2 User is offline   gyz 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 17-March 11

Posted 08 April 2012 - 03:10 AM

Szia

Én a saját CRM rendszerembe úgy oldottam meg a riportkezelést (ezen belül a hasonló emaileket is ezzel küldöm), hogy integráltam a smarty-t, adatbázisba tárolom a sablonokat (szétválasztottam a keretet és a content rész is, hogy ha változás van, vagy egy cégnek más a logója pl., akkor könnyebb legyen) és egy osztállyal generálom a html kimenetet. (plusz még csatolható PDF ill. excel is. Amit ugyanígy állítok elő: html->pdf konverter illetve ha a smarty kimenete csv, akkor csv->excel konverter, az UTF8 BOM bug miatt)
Levelet pedig kétféleképpen tudok küldeni: adatváltozás esetén, vagy időzítve.
Az adatvátozáshoz kötött küldést ezzel készítettem: AuditTrial

Ezzel gyakorlatilag bármilyen adat változáshoz lehet rendelni riportot. (pl. új rendelés)

Az időzítést pedig egy saját osztállyal, amit cronból hívogatok. (Console Applications)

A marty sokféle paramétert kaphat nálam. Rendszer paramétereket, (pl.: ki van bejelentkezve ha bevan) plusz attól függően, hogy honnan jött a riport végrehajtás (adatváltozás vagy időzítés), SQL lekérdezés kimenetét is összerakom bemenő paraméternek.

De magánál a riportnál is fel lehet venni bármennyi SQL lekérdezést, mint smarty bemenő paraméter.
Ezért gyakorlatilag a rendszerből bármit le tudok kérdezni és átadni a smarty-nak.

Az ütemezett riportnál még betettem egy módosító SQL-t is, ami lefut ha kiküldte a riportot, hogy pl tudjak státuszt váltani. (kiküldve=1)

Remélem adtam ötleteket a sablonkezelő rendszerhez.


Üdv
0

#3 User is offline   Rajcsányi Zoltán 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 46
  • Joined: 10-November 09
  • Location:Hungary, Zalaegerszeg

Posted 09 April 2012 - 06:18 AM

View Postgyz, on 08 April 2012 - 03:10 AM, said:

Szia

Én a saját CRM rendszerembe úgy oldottam meg a riportkezelést (ezen belül a hasonló emaileket is ezzel küldöm), hogy integráltam a smarty-t, adatbázisba tárolom a sablonokat (szétválasztottam a keretet és a content rész is, hogy ha változás van, vagy egy cégnek más a logója pl., akkor könnyebb legyen) és egy osztállyal generálom a html kimenetet. (plusz még csatolható PDF ill. excel is. Amit ugyanígy állítok elő: html->pdf konverter illetve ha a smarty kimenete csv, akkor csv->excel konverter, az UTF8 BOM bug miatt)
Levelet pedig kétféleképpen tudok küldeni: adatváltozás esetén, vagy időzítve.
Az adatvátozáshoz kötött küldést ezzel készítettem: AuditTrial

Ezzel gyakorlatilag bármilyen adat változáshoz lehet rendelni riportot. (pl. új rendelés)

Az időzítést pedig egy saját osztállyal, amit cronból hívogatok. (Console Applications)

A marty sokféle paramétert kaphat nálam. Rendszer paramétereket, (pl.: ki van bejelentkezve ha bevan) plusz attól függően, hogy honnan jött a riport végrehajtás (adatváltozás vagy időzítés), SQL lekérdezés kimenetét is összerakom bemenő paraméternek.

De magánál a riportnál is fel lehet venni bármennyi SQL lekérdezést, mint smarty bemenő paraméter.
Ezért gyakorlatilag a rendszerből bármit le tudok kérdezni és átadni a smarty-nak.

Az ütemezett riportnál még betettem egy módosító SQL-t is, ami lefut ha kiküldte a riportot, hogy pl tudjak státuszt váltani. (kiküldve=1)

Remélem adtam ötleteket a sablonkezelő rendszerhez.


Üdv


Köszönöm a válaszod. Tetszik, hogy ütemezve is lehet indítani levélküldést. A smarty-t, sql alapú riportot és a mellékleteket most nem készítem el ebben az impementációban, de később majd szükség lesz rá biztosan.

A levelek formázásával szoktam gondban lenni, mert csak az embedded css működik szépen, amit meg az adminisztrátor nem feltétlen fog tudni használni megfelelő módon. Azaz a szerveren is érdemes tárolni valami levél másolatot, hogy a weboldalon is megnézhesse a felhasználó a levelet. Ez nem yii probléma alapvetően.
---
Zoltan Rajcsanyi
homepage: http://ezmegaz.hu
skype: zolones7666

0

#4 User is offline   Speeedfire 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 192
  • Joined: 02-March 12

Posted 27 September 2012 - 09:59 AM

Nem tudom aktuális-e még vagy sem, de a body-nak add meg a renderpartial.

$body = $this->renderPartial('view_elerese', array('model'=>$model), true);

0

#5 User is offline   Rajcsányi Zoltán 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 46
  • Joined: 10-November 09
  • Location:Hungary, Zalaegerszeg

Posted 25 October 2012 - 03:43 PM

Köszi mindenkinek a választ. Kissé későn reagáltam, igen az ötleteket összeszedve elkészítettem a sablonozót. Nagyon kellemes és a felhasználók és ügyfél által is kellemes levelező technika lett belőle.
---
Zoltan Rajcsanyi
homepage: http://ezmegaz.hu
skype: zolones7666

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users