2014-05-07 121 views
0

SilverStripe 3是否可以創建適用於所有已發送電子郵件的默認電子郵件模板/樣式,而不必分別覆蓋每個電子郵件模板?SilverStripe默認電子郵件樣式

理想情況下,這可以作爲主題的一部分來完成。

我試過定義一個自定義的GenericEmail.ss模板,但它迄今爲止已被忽略。

看着框架的來源,創建一個自定義Email類和重寫parseVariables()可能可以實現它,但它似乎是矯枉過正?

回答

1

剛剛嘗試之後,默認的電子郵件模板可以通過自定義的模板有效地覆蓋。我把我的主題(而不是在任何子文件夾)的「模板」文件夾下,即 /themes/mytheme/templates/GenericEmail.ss

然後在flush = 1後進行測試(以便新模板是拿起)

希望這會有所幫助

+0

它看起來像只要發送的電子郵件尚未有模板,它就會工作。它看起來像'Mailer-> sendHTML()'檢查模板是否有一個開始的''標記,如果不是,插入一個通用包裝,忽略'GenericEmail.ss'。 – mattdwen

+0

我想你可以建立一個自定義的'Mailer'並重寫'sendHTML()'並修改'$ htmlContent'第一個? – mattdwen

+0

用於身體標記丟失的情況下的包裝將重新使用$ htmlContent作爲body標記的innerhtml,因此它將尊重預渲染的電子郵件(在Email @ parseVariables()中)。在GenericEmail.ss中有一個body標籤可以繞過包裝,如果這是一個問題 – jfbarrois