terminal42/contao-dam-integrator

为 Contao 开源 CMS 添加对不同资产管理提供商的支持

1.0.2 2024-09-05 11:47 UTC

This package is auto-updated.

Last update: 2024-09-05 11:47:56 UTC


README

此包将不同的资产管理解决方案直接集成到 Contao 中。它通过在常规文件选择标签旁边添加新标签页来实现,您可以在其中选择配置的资产管理提供商的资产。您可以搜索和筛选资产,然后从文件树小部件中下载并选择它们。

目前支持两种集成

如果我仍然需要将所有文件下载到系统中,我还需要这个吗?

这种方法仍然有一个很大的优势,即您可以在一个中心位置管理您的文件,并在多个内容管理系统或多个 Contao 设置中使用它。

安装

  1. 安装包
$ composer require terminal42/contao-dam-integrator
  1. 配置包

编辑您的 config.yml 文件并添加必要的配置参数。每个 DAM 提供商都有不同的选项,请确保根据您的需要选择。当然,您可以启用多个 DAM 提供商,并允许用户使用多个。同时,请确保在后台设置中启用 DAM 集成!

一些设置在不同的提供商之间是相同的,只是其中的值可能不同。常见的设置在此描述

  • metadata.mapper:集成允许您以最适合您的方式导入元数据。由于所有 DAM 提供商都支持配置自定义属性,因此可以使用 Twig 模板字符串导入您喜欢的属性。这也允许您组合多个字段或使用 Twig 函数进行高级用例。请注意,因为我们处于 Symfony 配置中,如果您正在使用 {% if ... %} 语句,则需要转义 % 以确保 Symfony 不会寻找参数。所以请写成 {%% if ... %%}
  • metadata.cronjob.expression:默认情况下,cronjob 已禁用,但如果您想定期更新资产的元数据,则可以在此配置表达式。例如,如果您想每周一更新所有文件的元数据,可以使用例如
     metadata:
        cronjob:
           expression: '42 5 * * 1'
    请注意,如果没有配置 metadata.mapper,cronjob 不会做任何事情。资产是通过 Contao 内置的 Symfony Messenger 集成进行队列的,因此更新将在后台发生。为了加快速度并提高可靠性,建议您配置后台工作者(或 Contao 的 Cronjob 框架,它将为您完成此操作)。

Bynder

首先,配置您的 Bynder 账户。创建一个永久令牌并将其配置为 token。为了不下载过大的(在大小和像素上),在 Bynder 中配置一个“衍生品”并将其名称用作 derivative_name

terminal42_contao_dam_integrator:
    bynder:
        domain: 'foobar.getbynder.com'
        # You can get the permanent token as described on https://support.bynder.com/hc/en-us/articles/360013875300-Permanent-Tokens
        token: '2a7a5243548…32739e624dc'
        # The target dir the bundle downloads assets to. Make sure it is RELATIVE to your specified contao.upload_path (In that case it would be default store the images in "files/bynder_assets")
        target_dir: 'bynder_assets'
        derivative_name: Contao
        metadata:
            mapper:
                de:
                    title: '{{ name }}'
                    alt: "{{ tags|join(', ') }}"
                    caption: '© {{ property_copyright }}. {{ property_lizenzart }}'
            cronjob:
                expression: '42 5 * * 1'

使用 metadata.mapper,您可以配置从 Bynder 导入元数据到 Contao 元数据小部件的方式。Bynder 集成自动转换您的自定义媒体属性并基于语言获取正确的值。它还将检查媒体属性是否配置为允许多个或单个值。因此,您不必担心将只有一个值的数组转换为字符串。模板期望有效的 Twig 字符串,因此您也可以

Celum

首先,配置您的Celum账户。请确保已安装brix:anura扩展。此捆绑包依赖于其API。为了防止下载巨大的文件(在大小和像素方面),在Celum中配置“下载格式”,并使用其ID作为download_format_id

terminal42_contao_dam_integrator:
    celum:
        base_uri: 'https://dam.example.com/anura/'
        token: 'nTLf…kosEtr90qVk'
        # The target dir the bundle downloads assets to. Make sure it is RELATIVE to your specified contao.upload_path (In that case it would be default store the images in "files/celum_assets")
        target_dir: 'celum_assets'
        download_format_id: 42
        metadata:
            mapper:
                de:
                    title: '{{ name }}'
                    alt: "{{ info_371|default('') }}" # Info field ID 371 is "Description" in our case
                    caption: '{%% if info_373 ?? false %%}© {{ info_373 }} {%% endif %%}'  # Note the escaping of "%" if you work with if statements
            cronjob:
                expression: '42 5 * * 1'

使用metadata.mapper,您可以配置从Celum导入到Contao元数据小部件的方式。所有来自general的资产详细信息以及所有信息字段值都可用。

terminal42/contao-bynder升级

此捆绑包是terminal42/contao-bynder的后继产品。与其他捆绑包不同,此捆绑包提供了比Bynder更多的DAM提供商的集成。为了使从terminal42/contao-bynder迁移到terminal42/contao-dam-integrator变得容易,此捆绑包包含自动迁移功能。

  1. 在运行迁移之前,请确保已升级到terminal42/contao-bynder的版本2。
  2. 卸载terminal42/contao-bynder - 不要运行数据库迁移。
  3. 安装terminal42/contao-dam-integrator - 不要运行数据库迁移。
  4. 将您的config.yaml从旧格式迁移到新格式。配置密钥几乎相同
    1. terminal42_contao_bynder迁移到terminal42_contao_dam_integrator.bynder
    2. metaDataMapper移动到metadata.mapper
    3. 从驼峰命名法转换为蛇形命名法(例如,derivativeName -> derivative_name)。
    4. 已删除对derivativeOptions的支持,因此不再支持“即时”衍生物。配置一个永久性衍生物,并使用derivative_name来使用它。
  5. 运行contao:migrate(或使用Contao Manager来运行数据库迁移)
  6. 在用户组中启用集成。默认情况下,所有集成现在都隐藏给非管理员用户。