2017-12-16 4 views
0

私は10月のMailサービスを使用しています。しかし、プラグインまたはテーマで新しいMail Layoutを作成することが可能な場合はドキュメントに記載されていることはわかりませんが、レイアウトをデータベースに保存するのは最適な方法ではないと思います。メールレイアウト、またはメールレイアウトのプラグイン(これは私の場合)です。OctoberCMSカスタムメールレイアウト/メールパーシャルを作成する

カスタム(Mail LayoutsおよびMail Partials)をコードから作成する方法はありますか(バックエンドを使用する必要はありません)?

注:私はメールテンプレートとメール(レイアウト/部分)の違いについて本当に気づいています。バックエンドを通して私と一緒に働くので、プラグインと一緒にバンドルする方法が必要です。

答えて

1

プラグインの移行ファイルを使用してメールレイアウトを登録することができます。今のところ、プラグインの設定ファイルから直接登録する方法はありません。

あなたはレイアウトに 参照を挿入する方法:https://github.com/octobercms/october/issues/2000

を使用すると、部分的なメールに対して同じことを行うことができます。そのモデルは\

\System\Models\MailPartial::create([ 
    'is_custom' => true, 
    'name'   => 'Default', 
    'code'   => 'default', 
    'content_html' => $html, 
    'content_text' => $text, 
]); 

、あなたはプラグインのviewディレクトリ内メールディレクトリにあなたのメールテンプレートを置くことができ、テンプレート/ビュー用MailPartial

システム\モデルです。

参照:ここでは、メール内のhttps://octobercms.com/docs/services/mail#mail-views

は、あなたが移行ファイルを使用して手動で挿入したあなたのレイアウト名を定義したことができます。それをレイアウトとして使用します。

メールテンプレートを登録するplugin.php設定ファイル。

public function registerMailTemplates() 
{ 
    return [ 
     'rainlab.user::mail.activate' => 'Activation mail sent to new users.', 
     'rainlab.user::mail.restore' => 'Password reset instructions for front-end users.' 
    ]; 
} 

'rainlab.user :: mail.activate' => {プラグイン名} :: {メール。 < template-name>}あなたの主題を入力してください。

今あなたがプラグインをインストールするときに、

  1. 移行ファイルは、データベースへのあなたのレイアウトを挿入します
  2. プラグインの登録を使用すると、registerMailTemplates
  3. は、今あなたが使用方法で定義されたビューを登録しますこのテンプレートでは、のレイアウトを既に使用しています。"layout = 'your-layout-code'"テンプレート。

あなたのすべてのレイアウトとテンプレートはテンプレート内にあります。プラグインをインストールすると、レイアウトとテンプレートも登録されます。

質問があればコメントしてください。

+0

考えてみましたか? –

+0

''content_html' => $ htmlの場合、メールレイアウトがビューディレクトリにある場合は' views/mail/layouts/awesome-layout.htm' soそれをロードするには 'file_get_content'、もっと良いアイデアですか? –

+0

今のところ私は他の方法がないので、私は自分の道を作る必要があるので、私は良いアイデアはありません。これは私の自己によって見つけることが最高です –

関連する問題