heimrichhannot/contao-form-autocomplete-bundle

此插件为Contao CMS中的表单字段添加HTML5属性“autocomplete”的功能。

1.3.1 2024-05-21 12:35 UTC

This package is auto-updated.

Last update: 2024-09-21 13:24:13 UTC


README

此插件为Contao CMS中的表单字段添加HTML5属性autocomplete的功能。

autocomplete属性在以下情况下使用

  1. 浏览器使用它为设置了不同autocomplete值的字段提供不同的自动完成选项。
  2. 屏幕阅读器会口头表达它,因此设置它们是一种好的做法。

功能

  • 将HTML5 autocomplete属性添加到表单字段
  • 支持
    • Contao表单生成器
    • 使用Widget::parse()生成的所有表单字段(使用getAttributesFromDca钩子)

安装

  1. 通过composer安装: composer require heimrichhannot/contao-form-autocomplete-bundle

它是如何工作的?

表单生成器

默认支持表单生成器。根据字段名称猜测autocomplete值。该值基于插件配置中定义的映射进行猜测。您可以在项目中扩展此映射(见以下章节)。

Dca字段

以下是可以将autocomplete值添加到字段的以下支持方法(优先级按降序排列)

  1. DCA定义在其eval部分设置
    // tl_my_table.php
    'myFirstnameField' => [
       'label' => &$GLOBALS['TL_LANG']['tl_my_table']['myFirstnameField'],
       // ...
       'eval' => [
           'autocomplete' => 'given-name'
       ]
    ]
    
  2. 如果没有找到DCA定义或相关上下文(例如,在表单生成器中没有DCA上下文),插件尝试根据在此插件中定义的字段名到autocomplete值的映射进行猜测。您可以在项目中扩展此映射(见以下章节)。

技术细节

扩展给定的映射

只需根据您的需求将以下代码添加到您的app/config/config.yml(Contao 4.4)或config/config.yml

huh_form_autocomplete:
  mapping:
    given-name:
      synonyms:
        - my-new-value
    new-autocomplete-name:
      synonyms:
        - brand-new-autocomplete-name

字段名和自动完成值是如何匹配的?

该算法目前非常简单。基本工作方式如下

  1. 如果字段在DCA中设置了autocomplete值,则使用该值。
  2. src/Resources/config/config.yml中的映射包含HTML5 autocomplete字段当前所有可能的值。如果字段名等于这些值之一,则使用该值。
  3. 如果前面的步骤不满足,则算法迭代autocomplete值的定义同义词。如果找到匹配项,则使用相应的autocomplete值。
  4. 如果上述步骤中没有满足条件,则返回false

比较仅考虑字符。忽略特殊字符和分隔符,如-_。因此,同义词some-name在此比较中等于someName