OpenCart 3.0.x PHP 8.0 / 8.1 Fájlalapú szerkesztő

Email Sablon Szerkesztő

Admin felületen szerkeszthető rendelési email sablonok – fájlrendszeri hozzáférés vagy kódszerkesztő nélkül. A modul lehetővé teszi a rendelés-visszaigazoló és a rendelési státuszváltozás emailek Twig sablonjainak közvetlen módosítását az OpenCart admin paneljéből. Figyelem csak hozzáértés esetén használd!

Mit csinál?

A kiegészítő egy admin felületi szerkesztőt ad az OpenCart bővítmények menüjébe, amellyel két email sablon szerkeszthető közvetlenül a böngészőből:

  • Rendelés visszaigazolás (order_add.twig) – a vásárlás után automatikusan kiküldött email, amely tartalmazza a teljes rendelési összeírást: termékek, mennyiségek, árak, szállítási és fizetési adatok, összesítők.
  • Rendelési státuszváltozás (order_edit.twig) – az admin által manuálisan kiváltott státuszváltáskor küldött email, amely státuszonként eltérő üzenetet jelenít meg (pl. Feldolgozott, Csomag elkészítve, Rendelés átvehető, Elállás stb.).

A mentett tartalom azonnal érvényes: a következő kiküldött email már a módosított sablont használja. Nincs adatbázis, nincs cache – a modul közvetlenül a szerveren lévő .twig fájlokat írja.

Hogyan működik?

1

Sablon betöltése

Az admin felület megnyitásakor a controller a file_get_contents() függvénnyel beolvassa mindkét .twig fájl tartalmát a szerverről, és átadja a nézetnek. A fájlok elérési útja a controlleren belül van rögzítve, relatívan az OpenCart gyökérkönyvtárához képest.

2

Szerkesztés az adminban

A sablon HTML forrása két fülön (Rendelés visszaigazolás / Státuszváltozás) szerkeszthető <textarea>-ban jelenik meg, monospace betűtípussal. A szerkesztő nyers HTML + Twig forrást mutat – a változók ({{ order_id }}, {% if order_status == ... %} stb.) itt szövegesen láthatók és szerkeszthetők.

3

Mentés és validáció

Mentéskor a controller ellenőrzi, hogy a felhasználónak van-e modify jogosultsága az extension/module/email_editor erőforrásra, és hogy a célfájlok írhatók-e (is_writable()). Ha mindkét feltétel teljesül, a file_put_contents() a POST tartalmát közvetlenül a fájlba írja. Hibás jogosultság esetén hibaüzenet jelenik meg, mentés nem történik.

4

Email kiküldés

Amikor az OpenCart rendelési emailt küld, a Twig engine rendereli a módosított sablonfájlt az aktuális rendelési adatokkal (változók: order_id, order_status, products, totals stb.). A kimenet HTML email törzseként kerül kiküldésre – feltéve, hogy az OpenCart mail controllerben a setHtml() hívás van beállítva (lásd: Core kód módosítása).

Követelmények

KomponensVerzióStátusz
OpenCart 3.0.x Kompatibilis
PHP 8.x Kompatibilis
Fájlírási jog A webszerver folyamatának írási jogosultsággal kell rendelkeznie a két .twig fájlra

Telepítés

1. lépés – Fájlok másolása

Másold az upload/ mappa tartalmát az OpenCart gyökérkönyvtárába:

upload/
  ├── admin/controller/extension/module/
  │   └── email_editor.php Admin controller – betöltés, mentés, jogosultságellenőrzés
  ├── admin/language/en-gb/extension/module/
  │   └── email_editor.php Angol nyelvfájl
  ├── admin/language/hu-hu/extension/module/
  │   └── email_editor.php Magyar nyelvfájl
  ├── admin/view/template/extension/module/
  │   └── email_editor.twig Admin felület sablonja – két fül, textarea szerkesztők
  └── catalog/view/theme/default/template/mail/
      ├── order_add.twig Rendelés-visszaigazoló email sablonja
      └── order_edit.twig Rendelési státuszváltozás email sablonja
Tipp: Másolás előtt készíts biztonsági mentést az esetlegesen meglévő eredeti order_add.twig és order_edit.twig fájlokról.

2. lépés – Modul aktiválás az adminban

1

Telepítés

Admin → Bővítmények → Bővítmények → Típus: Modulok → keresed az Email Sablon Szerkesztő bejegyzést → kattints a Telepítés (zöld +) gombra.

2

Szerkesztő megnyitása

A telepítés után a modul megjelenik a bővítmények listájában. A Szerkesztés gombra kattintva megnyílik a sablon szerkesztő felület két füllel.

3

Jogosultság beállítása

Ha más adminisztrátori fióknak is hozzáférést szeretnél adni: Admin → Rendszer → Felhasználók → Felhasználói csoportok → a megfelelő csoportnál add hozzá az extension/module/email_editor erőforrást mind az Elérési jogosultság, mind a Módosítási jogosultság listához.

3. lépés – Core kód módosítása (kötelező az order_edit HTML emailhez)

Az OpenCart alapértelmezés szerint az order_edit státuszváltozás emailt plain text formátumban küldi ki. Ez azt jelenti, hogy a sablon HTML tag-jei (<p>, <strong> stb.) nyers szövegként jelennek meg a vevőknél. A javításhoz egy sort kell módosítani az OpenCart mail controllerében.

📄 catalog/controller/mail/order.php

Keresd meg a fájlban az order_edit sablont betöltő részt (keress rá: order_edit), és változtasd meg a setText hívást setHtml-re:

PHP – ELŐTTE
$mail->setText($this->load->view('mail/order_edit', $data));
PHP – UTÁNA
$mail->setHtml($this->load->view('mail/order_edit', $data));
Figyelem – core fájl módosítás! Ez az OpenCart egyik alap fájlja. OpenCart frissítésekor a változtatás felülíródhat – frissítés után ellenőrizd és ismételd meg a módosítást.
Miért szükséges ez? Az OpenCart mail rendszerében a setText() hívás Content-Type: text/plain emailt eredményez. Ilyen esetben a HTML sablon tartalma renderelés nélkül, nyers szövegként kerül kiküldésre – a vevő a HTML tag-eket látja. A setHtml() text/html típusú emailt küld, amelyet az email kliensek renderelnek.

Hibaelhárítás

A státuszváltozás email nyers HTML tag-eket tartalmaz

  • A catalog/controller/mail/order.php fájlban még setText() van beállítva setHtml() helyett – lásd a Core kód módosítása lépést.

Mentéskor „A fájl nem írható" hibaüzenet jelenik meg

  • A webszerver folyamata (pl. www-data) nem rendelkezik írási jogosultsággal a catalog/view/theme/default/template/mail/ mappára vagy a fájlokra.
  • Javítás: chmod 664 order_add.twig order_edit.twig a szerveren, vagy állítsd be a megfelelő tulajdonost.

A szerkesztő felület nem töltődik be / Twig hiba

  • Ellenőrizd, hogy az admin/view/template/extension/module/email_editor.twig fájl sikeresen másolódott-e a szerverre.
  • Töröld az OpenCart template cache-t: Admin → Dashboard → fogaskerék ikon → Refresh.

A modul telepítése után nem látható a szerkesztő link

  • A felhasználói csoportnak hiányzik az extension/module/email_editor jogosultsága – lásd a Modul aktiválás 3. lépését.
Általános tipp: Minden módosítás után töröld az OpenCart cache-t (Admin → Dashboard → fogaskerék → Refresh) és a böngésző cache-t is (Ctrl+Shift+R / Cmd+Shift+R).
Minimalista megoldás: A két twig és az order.php módosítása már elegendő ha nem akarsz az adminban szerkeszteni.

Fájlszerkezet

order-status-email-editor/
├── docs/
│   ├── email-editor-oc3j3.html Ez a dokumentáció
│   └── docs.css Közös stíluslap
└── upload/
    ├── admin/controller/extension/module/
    │   └── email_editor.php Fő controller: betöltés, mentés, jogosultságellenőrzés, breadcrumb
    ├── admin/language/en-gb/extension/module/
    │   └── email_editor.php Angol nyelvfájl (feliratok, hibaüzenetek)
    ├── admin/language/hu-hu/extension/module/
    │   └── email_editor.php Magyar nyelvfájl (feliratok, hibaüzenetek)
    ├── admin/view/template/extension/module/
    │   └── email_editor.twig Admin felület: két fül, textarea szerkesztők, mentés/mégsem gombok
    └── catalog/view/theme/default/template/mail/
        ├── order_add.twig Rendelés-visszaigazoló email (teljes HTML, termékek táblázata, összesítők)
        └── order_edit.twig Státuszváltozás email (státuszonként eltérő üzenet, {% if order_status %} blokkok)

Változásnapló

VerzióDátumVáltozás
1.0 2026-04-01 Első kiadás. Admin felületi szerkesztő order_add.twig és order_edit.twig sablonokhoz. PHP 8.0/8.1 kompatibilis, OpenCart 3.0.x.