brilliance / algolia-sync
使用他们的API与Algolia同步元素
Requires
- v5.x-dev
- 5.0.0-alpha
- v4.x-dev
- 4.5.0-beta
- 4.1.8
- 4.1.7
- 4.1.6
- 4.1.5
- v4.1.4
- v4.1.3
- v4.1.2
- v4.1.1
- v4.1.0
- v4.0.2
- v4.0.1
- v4.0.0
- v3.x-dev
- 3.2.14-beta
- 3.2.13-beta
- 3.2.12-beta
- 3.2.11-beta
- 3.2.10-beta
- 3.2.9-beta
- 3.2.8-beta
- 3.2.7-beta
- 3.2.6-beta
- 3.2.5-beta
- 3.2.4-beta
- 3.2.3-beta
- 3.2.2-beta
- 3.2.1-beta
- 3.2.0-beta
- v3.1.14
- v3.1.13
- v3.1.12
- v3.1.11
- v3.1.10
- v3.1.9
- v3.1.8
- v3.1.7
- v3.1.6
- v3.1.5
- v3.1.4
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- dev-develop-5
- dev-develop-4
- dev-94c0dependabot/composer/craftcms/cms-tw-5
- dev-beta-3
- dev-develop-3
- dev-beta-4
- dev-v4-user-patch
- dev-dependabot
This package is auto-updated.
Last update: 2024-09-16 19:18:47 UTC
README
使用他们的API与Algolia同步元素
要求
此插件需要Craft CMS 3.4.18或更高版本。
安装
要安装此插件,请按照以下说明操作。
-
打开您的终端并转到您的Craft项目
cd /path/to/project
-
然后告诉Composer加载插件
composer require brilliancenw/craft-algolia-sync
-
在控制面板中,转到设置 → 插件,并点击“安装”按钮安装Algolia Sync。
-
在您的.env文件中,加载Algolia应用程序ID、搜索只读API密钥和管理API密钥。
-
选择应与Algolia同步的元素类型。如果默认索引名称不适用于您,请输入要同步的索引名称。这些值可以按环境设置。
Algolia同步信息
当任何记录被添加、编辑或删除时,Algolia同步插件将被通知。如果该元素类型配置为同步,则它将包装这些值并将其发送到相关的Algolia索引。
在发送数据之前,有一个宣布的事件 - 您可以拦截数据并对放入Algolia索引中的内容进行更改。您可以在不实际更改Craft中的数据的情况下添加、编辑或删除该记录中的任何数据。
以下是一个更新具有处理程序 myCustomFieldHandle
的字段值的示例
Event::on(
\brilliance\algoliasync\services\AlgoliaSyncService::class,
\brilliance\algoliasync\services\AlgoliaSyncService::EVENT_BEFORE_ALGOLIA_SYNC,
function (\brilliance\algoliasync\events\beforeAlgoliaSyncEvent $event) {
$event->recordUpdate['attributes']['myCustomFieldHandle'] = "Updating the content of this field";
// to prevent a record from being added, edited or deleted in Algolia
// set the following flag.
// $event->recordUpdate['processAlgoliaSync'] = false;
}
);
一些特定的字段类型
资产字段
当记录具有资产字段时,如果只添加了一个资产,它将是资产的URL字符串。如果在记录的该字段中添加了多个资产,它将是资产的URL数组。这使得在Algolia中配置为记录图像的特色图像非常有用。
日期字段
对于每个日期字段,都会发送到Algolia三个字段。
- 日期的Unix时间戳
- 日期的“友好”视图(美国格式
m/d/Y
) - 日期午夜的时间戳。这有助于搜索与日期相关的范围
类别/用户/条目字段
对于这些字段中的每一个,值作为记录标题的数组发送。此外,还为这些记录中的每一个发送一个元素ID数组。例如:如果记录包含一个名称为“Genre”的类别字段,并且我选择了3个类别,则发送的数据将是
Genre ['标题 1', '标题 2', '标题 3']
AND GenreIds [1,2,3]
这可以用于在instantsearch的显示中对搜索结果进行一些非常复杂的JS工作。
Algolia同步路线图
要完成的事情和潜在功能的想法
- 配置以从同步中排除特定字段(例如:在用户记录中,不要将电子邮件地址发送到Algolia)
- 支持矩阵字段
- 支持第三方字段类型(地图、表格等)
- 为每个日期字段自定义日期格式
欢迎提交拉取请求、功能请求和错误报告 - 请提交到Git仓库:https://github.com/brilliancenw/craft-algolia-sync
由Brilliance提供 https://www.brilliancenw.com/