フォーム内の選択フィールドの選択に応じて、powermail フォームを異なる受信者に送信する必要があることがよくあります。TYPO3 7.6.x と Powermail 3.3.0 を使用していますが、これを行うにはどうすればよいですか?
3 に答える
EXT:powermail の slackchannel で @alex-kellner の助けを借りて、非常に簡単な解決策を見つけました。
基本的に2つのステップが必要です:
ステップ1
選択フィールドのオプションの値。選択フィールドのオプションに値を追加する必要があります。これは|
、オプションにパイプを追加し、値を追加するだけで実行できます
MyRecieverEmail 1 | 1
MyRecieverEmail 2 | 2
MyRecieverEmail 3 | 3
それに加えて、フィールドのマーカー/変数/個々のフィールド名を知る必要があります。extended
フィールドのタブでその名前を見つけることができます。
必要に応じて、このフィールドに「独自の」変数名を付けることもできます。変数はラップされて{}
いますが、ステップ 2 ではこれらを使用しません。
ステップ2
setupfield に TS を追加する必要があります。
背景情報: 基本的に、これはフォームの受信者を変更します:
plugin.tx_powermail.settings.setup.receiver.overwrite.email = TEXT
plugin.tx_powermail.settings.setup.receiver.overwrite.email.value = your@email.com
ここで、フォームでどのオプションが選択されたかを確認する必要があります。これは、グローバル条件によって行われます。
[globalString = GP:tx_powermail_pi1|field|yourVariableFieldname = 1]
フィールド内のタブyourVariableFieldname
からの個々のフィールド名であり、最初のオプションの値です ( MyRecieverEmail 1)extended
1
この TS を使用すると、フォームで最初のオプションが選択されている場合、フォームは your@email.com に送信されますMyRecieverEmail 1
。
[globalString = GP:tx_powermail_pi1|field|yourVariableFieldname = 1]
plugin.tx_powermail.settings.setup.receiver.overwrite.email = TEXT
plugin.tx_powermail.settings.setup.receiver.overwrite.email.value = your@email.com
[global]
必要なだけ条件を追加できるようになりました。完全な例は次のようになります。
[globalString = GP:tx_powermail_pi1|field|yourVariableFieldname = 1]
plugin.tx_powermail.settings.setup.receiver.overwrite.email = TEXT
plugin.tx_powermail.settings.setup.receiver.overwrite.email.value = yourfirst@email.com
[global]
[globalString = GP:tx_powermail_pi1|field|yourVariableFieldname = 2]
plugin.tx_powermail.settings.setup.receiver.overwrite.email = TEXT
plugin.tx_powermail.settings.setup.receiver.overwrite.email.value = yoursecond@email.com
[global]
[globalString = GP:tx_powermail_pi1|field|yourVariableFieldname = 3]
plugin.tx_powermail.settings.setup.receiver.overwrite.email = TEXT
plugin.tx_powermail.settings.setup.receiver.overwrite.email.value = yourthird@email.com
[global]
これは、この TS が考慮される TYPO3-Install のフィールド名 {yourVariableFieldname} を持つすべてのフィールドを担当することに注意してください。これは、複数のフォームでこのフィールドをまったく同じように使用する場合に役立ちます。これを担当させたくない場合は、これを回避するための 2 つのオプションがあります。
TS は、フォームが配置されているページにのみ配置してください。
これをグローバル条件に追加できます。
&& [globalString = GP:tx_powermail_pi1|メール|フォーム = 123]
123
フォームの ID はどこにありますか。
これは次のようになります。
[globalString = GP:tx_powermail_pi1|field|yourVariableFieldname = 2] && [globalString = GP:tx_powermail_pi1|mail|form = 123]