brilliance/algolia-sync

使用他们的API与Algolia同步元素

安装: 518

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 3

类型:craft-plugin


README

使用他们的API与Algolia同步元素

Screenshot

要求

此插件需要Craft CMS 3.4.18或更高版本。

安装

要安装此插件,请按照以下说明操作。

  1. 打开您的终端并转到您的Craft项目

     cd /path/to/project
    
  2. 然后告诉Composer加载插件

     composer require brilliancenw/craft-algolia-sync
    
  3. 在控制面板中,转到设置 → 插件,并点击“安装”按钮安装Algolia Sync。

  4. 在您的.env文件中,加载Algolia应用程序ID、搜索只读API密钥和管理API密钥。

  5. 选择应与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三个字段。

  1. 日期的Unix时间戳
  2. 日期的“友好”视图(美国格式 m/d/Y
  3. 日期午夜的时间戳。这有助于搜索与日期相关的范围

类别/用户/条目字段

对于这些字段中的每一个,值作为记录标题的数组发送。此外,还为这些记录中的每一个发送一个元素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/