heimrichhannot / contao-autocompletejs-bundle
此插件为 Contao CMS 提供了 autocomplete.js 的支持。
0.3.15
2024-05-29 12:55 UTC
Requires
- php: ^7.4 || ^8.0
- ext-json: *
- contao/core-bundle: ^4.9
- heimrichhannot/contao-encore-contracts: ^1.0
- heimrichhannot/contao-utils-bundle: ^2.177
- symfony/deprecation-contracts: ^1.0 || ^2.0 || ^3.0
- symfony/event-dispatcher-contracts: ^1.0 || ^2.0 || ^3.0
Suggests
- heimrichhannot/contao-encore-bundle: Manage dependencies with Symfony Webpack Encore.
README
此插件为 Contao CMS 提供了 JavaScript 库 autoComplete.js 的支持。
功能
- 在页面级别激活 autocomplete.js 支持(带有继承和覆盖选项)
- 从 dca 定制选项
- Encore Contracts 支持
安装
通过 composer 安装: composer require heimrichhannot/contao-autocompletejs-bundle
并更新您的数据库。
使用
在页面级别激活或停用 autocomplete.js 支持。您可以从父页面覆盖设置。
DCA 配置
要在 dca 字段上激活 autocomplete.js,请添加
将 autocompletejs
配置添加到 dca 字段的 eval
数组中
'fieldName' => [ 'eval' = [ 'autocompletejs' => [ 'active' => true, 'options' => [] ] ] ]
示例:从 API 加载数据
'fieldName' => [ 'eval' = [ 'autocompletejs' => [ 'active' => true, 'options' => [ 'data' => [ 'url' => 'https://example.org/users/{query}', 'keys' => ['name', 'city'], ] ] ] ] ]
API 的返回值必须是对象数组。在 data.keys
中定义的对象键将用于显示结果。
[ { "name": "John Doe", "city": "New York" }, { "name": "Jane Doe", "city": "Los Angeles" } ]
配置选项
您还可以设置库的所有选项(见 更多)。
自定义配置值
此插件为 searchEngine
选项提供新的值:'none'
如果不应将搜索算法应用于结果列表,请设置 searchEngine : 'none'
。如果您的结果已经搜索过(例如,来自 API 的结果列表),这将很有用。
事件
JavaScript 事件
可以使用以下事件进一步自定义 autocomplete.js 实例
!!!注意!!! 已知限制
当通过控制器获取数据时,请确保返回的数组是数值连续索引的。或者如果使用 key
选项,则数组不应是数值索引的。JSON 应该永远看起来像这样
{ "0" : {"key" : "value"}, "1" : {"key" : "value"}, "3" : {"key" : "value"} }