traw / powermailcaptcha
Powermail 验证码扩展
Requires
- php: ^8.1
- in2code/powermail: ^12.0
README
用于TYPO3 powermail的验证码扩展,用于防止垃圾邮件
依赖
- powermail >= 8.0
- TYPO3 11 或 12
安装
只需通过composer安装此扩展 composer require traw/powermailcaptcha
Google Recaptcha
- 将您的域名注册到 www.google.com/recaptcha/
- 与reCAPTCHA版本2兼容
- 将sitekey和secretkey添加到TypoScript常量中(以下为示例)
- 在TypoScript常量中,将验证码方法设置为
recaptcha
(这是默认设置)
友好的验证码
- 将您的域名注册到 friendlycaptcha.com
- 将sitekey和secretkey添加到TypoScript常量中(以下为示例)
- 在TypoScript常量中,将验证码方法设置为
friendlycaptcha
hCaptcha
- 将您的域名注册到 hcaptcha.com
- 将sitekey和secretkey添加到TypoScript常量中(以下为示例)
- 在TypoScript常量中,将验证码方法设置为
hcaptcha
Cloudflare
- 将您的域名注册到 cloudflare.com
- 将sitekey和secretkey添加到TypoScript常量中(以下为示例)
- 在TypoScript常量中,将验证码方法设置为
cloudflare
Prosopo Procaptcha
- 将您的域名注册到 prosopo.io
- 将sitekey和secretkey添加到TypoScript常量中(以下为示例)
- 在TypoScript常量中,将验证码方法设置为
procaptcha
通用
- 确保已启用spamshield(见下文)
- 将Powermailcaptcha类型的字段添加到您的powermail表单中
- 祝您玩得开心
TypoScript常量示例
plugin.tx_powermailcaptcha.captchaMethod = recaptcha
plugin.tx_powermailcaptcha.captchaMethod = friendlycaptcha
plugin.tx_powermailcaptcha.captchaMethod = hcaptcha
plugin.tx_powermailcaptcha.captchaMethod = cloudflare
plugin.tx_powermailcaptcha.captchaMethod = procaptcha
plugin.tx_powermailcaptcha.sitekey = 6LdsBBUTAAAAAKMhI67inzeAvzBh5JdRRxlCwbTz
plugin.tx_powermailcaptcha.secretkey = 6LdsBBUTAAAAAKMhaaaainzeAvzBh5JdRRxlCwbyy
禁用验证码
从版本 >= 1.3.0
如果您希望暂时禁用验证码,只需将以下行添加到您的typoscript常量中:plugin.tx_powermailcaptcha.enable = 0
您也可以在常量编辑器中找到此选项。
验证码语言
从版本 >=1.1.0
当前语言通过语言参数添加到验证码中,该参数来自您的网站配置。
要禁用此行为,请将以下内容添加到您的Typoscript常量中
plugin.tx_powermailcaptcha.useSiteLanguage = 0
根据您的网站语言,并非所有语言都支持每个验证码方法。阅读
有关支持的语言代码的更多信息。
常见陷阱和最佳实践
在powermail中启用spamshield(TypoScript设置)
plugin.tx_powermail.settings.setup.spamshield._enable = 1
保持powermail识别垃圾邮件的更新(TypoScript设置)
# Get an email if spam was recognized
plugin.tx_powermail.settings.setup.spamshield.email = spamreceiver@yourdomain.de
# Write to a logfile when spam was recognized
plugin.tx_powermail.settings.setup.spamshield.logfileLocation = typo3temp/logs/powermailSpam.log
通过将以下内容添加到您的Page TSConfig中删除默认验证码字段:TCEFORM.tx_powermail_domain_model_field.type.removeItems = captcha
破坏性更改 - 从 <1.5.0 升级到 >=1.5.0
typoscript之前在预设typoscript设置文件中自动加载。然而,现在不再是这种情况。在多站环境中,如果某些网站不使用powermail,则不需要typoscript。
在某些情况下,很难覆盖在预设typoscript中设置的设置(例如:ext_typoscript_setup.typoscript)。
因此,从版本1.5.0开始,必须手动将typoscript添加到您的网站的静态模板中。
从1.0.x升级到 >=1.1.x
如果您在自己的扩展中覆盖了powermail的局部Partial/Form/Page.html
,请确保将变量languageIso
添加到字段(f:render)中。
例如:
<f:render partial="Form/Field/{vh:String.Upper(string:field.type)}" arguments="{field:field, languageIso:languageIso}"/>
如果您在自己的扩展中覆盖了powermail的FormController,请参阅EXT:powermailcaptcha/Classes/Controller/FormController.php
以了解此扩展如何添加语言变量。
致谢
本扩展基于einpraegsam的EXT:powermailrecaptcha。