我正在使用TYPO3 6.2.11
,tt_address 2.3.5
和direct_mail 4.0.1
,并从内部TYPO3页面向我发送了一些测试新闻简报。一切正常。
现在,我想从我的tt_address
- 表格中发送一些数据字段,例如name
或title
。
tt_address-MARKER的名称是什么,我将在我的页面内容中使用?
我还在direct_mail-Extension中添加了以下[basic.addRecipFields]
:
name,first_name,last_name,email,description,title
但没有任何反应。我无法在我的direct_mail简报中使用tt_address-fields。我希望有人可以帮助我,谢谢。
另一个机会是使用fe_user
- 我的简报数据(felogin)。如何在我的模板中使用password
或username
之类的felogin字段?
答案 0 :(得分:3)
您需要在字段前添加USER_
前缀,并将标记包装在###
中。所以例如如果您想使用电子邮件地址,请编写###USER_email###
。您可以在Direct Mail documentation中找到所有可能性。
关于发送密码的说明:这将是一个巨大的安全风险,但无论如何都不可能,因为fe_users的密码至少存储在数据库中(现在也是加密的)。但您可以使用###SYS_AUTHCODE###
标记生成可在“编辑个人资料”扩展程序中使用的身份验证代码,以便用户更新其订阅。
如果您需要动态计算其他来源或数据的字段,您还可以创建自己的扩展并实现Direct Mail mailMarkersHook。
<强> ext_localconf.php:强>
// Direct Mail personalization hook
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/direct_mail']['res/scripts/class.dmailer.php']['mailMarkersHook']['userunilunewsletterrendering'] =
'My\Extension\Hook\DirectMail->mailMarkersHook';
<强> EXT:扩展/类别/钩/ DirectMail.php:强>
<?php
namespace My\Extension\Hook;
class DirectMail {
public function mailMarkersHook($params, \DirectMailTeam\DirectMail\Dmailer $dmailer) {
$params['markers']['###USER_SALUTATION###'] = $this->getPersonalizedSalutation($params['row']);
return $params;
}
/**
* @param $row
* @return string
*/
protected function getPersonalizedSalutation($row) {
$personalizedSalutation = 'Dear Sir or Madam';
if (!empty($row['last_name']) && !empty($row['gender'])) {
if ($row['gender'] === 'm') {
$personalizedSalutation = 'Dear Mr. ' . $row['last_name'];
} elseif ($row['gender'] === 'f') {
$personalizedSalutation = 'Dear Ms. ' . $row['last_name'];
}
}
return $personalizedSalutation;
}
}