inspiredminds / contao-address-verification
Contao 扩展,提供地址验证模块。
Requires
- php: ^7.2 || ^8.0
- codefog/contao-haste: ^4.25
- contao/core-bundle: ^4.9 || ^5.0
- inspiredminds/contao-backend-forms: ^0.3.3 || ^1.0
- league/csv: ^9.7
- symfony/config: ^4.4 || ^5.2 || ^6.1
- symfony/dependency-injection: ^4.4 || ^5.2 || ^6.1
- symfony/http-foundation: ^4.4 || ^5.2 || ^6.1
- symfony/http-kernel: ^4.4 || ^5.2 || ^6.1
- symfony/routing: ^4.4 || ^5.2 || ^6.1
- terminal42/contao-node: ^1.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
README
此扩展允许您在后台管理地址,然后在前端进行验证。
该扩展提供了一个模块,前端访客可以在其中输入他们的地址。该地址将与存储的地址进行验证,并根据验证结果显示不同的内容(或执行不同的重定向),模块还默认提供了一个简单的自动完成脚本。所有在后台输入的地址都将提供自动完成功能,用于地址的街道输入字段。所选的自动完成结果将填充到所有输入字段(街道、号码、公寓、城市和国家)。
地址管理
地址通过地址组进行划分。每个地址组都有一个名称,您还可以通过节点定义自定义内容,该内容将在选中组验证地址时显示。每个地址目前包含以下属性
- 街道
- 号码(门牌号)
- 公寓(公寓号或居住单位)
- 邮政编码
- 城市(注意:仅使用邮政编码进行验证)
- 国家(可以可选地包含在验证中)
当编辑地址组时,您还可以通过CSV文件批量导入地址。CSV文件需要以下格式
street,number,apartment,postal code,city,country
国家或城市和国家可以省略在CSV文件中。
注意:国家需要使用ISO 3166-1 Alpha-2格式,例如,“at”代表奥地利,“de”代表德国等。(大小写不区分)。
前端模块
该扩展目前提供两个模块:一个用于实际的地址验证,另一个模块用于在没有开始地址验证会话的情况下自动重定向到重定向页面。
地址验证
此模块处理实际的地址验证过程,并在前端显示表单以及随后内容。它提供了以下设置
- 地址组:在后台,地址被分组,例如类似于新闻存档。选择要验证输入地址的地址组。
- 包含国家:包含国家在表单的输出中,并在验证过程中也包含它。
- 节点:用于验证地址或未验证地址的内容。
- 重定向页面:直接重定向到定义的页面,而不是显示节点内容。
需要地址验证会话
此模块提供了一个可能性,在未开始地址验证会话的情况下,在前端重定向到定义的页面,即前端访客尚未通过地址验证模块输入地址。您可以使用此模块来防止在这种情况下访问某些页面。
会话变量
一旦前端访客输入了他们的地址,就会启动会话,并且输入的地址将通过address-verification
会话变量可用。此变量将包含一个数组,该数组包含输入的地址,然后可以在其他地方使用此地址。
修改表单事件
《地址验证》模块提供了一个 InspiredMinds\ContaoAddressVerification\Event\BuildAddressVerificationFormEvent
事件,您可以使用此事件基于 Haste\Form\Form
来修改表单。您可以使用此事件向表单添加额外的表单字段或验证器等。
自动完成
此扩展集成了 autoComplete.js 用于自动完成,但默认情况下不集成其任何CSS样式,因为您需要自行处理样式。作为起点,您可以下载 autoComplete.js 包,并使用其样式表中的一个来满足自己的需求。样式表也位于 web/bundles/contaoaddressverification/css/
下,因此您也可以将以下代码添加到自定义的 mod_address_verification
模板(或其他地方)
// templates/mod_address_verification.html5 $GLOBALS['TL_CSS'][] = 'bundles/contaoaddressverification/css/autoComplete.02.css'; $this->extend('mod_address_verification');
同样地,如果您想自定义JavaScript本身或脚本的初始化,创建一个 mod_address_verification
模板的副本,并相应地修改JavaScript。