dpc-sdp/tide_demo_content

为 Tide 模块创建演示内容。

安装量: 39,541

依赖项: 1

建议者: 0

安全性: 0

星标: 1

关注者: 13

分支: 5

开放性问题: 5

类型:drupal-module


README

为 Tide 模块提供演示内容。

CircleCI

本文件内容

  • 简介
  • 要求
  • 使用方法
  • 开发者

简介

Tide 演示内容模块利用 Yaml 内容模块为 Tide 模块提供默认的演示内容。它还允许有权限的用户通过管理界面导入 YAML 内容。

要求

使用方法

  • Tide 演示内容在安装时导入所有演示内容。
  • 当它被卸载时,它也会删除所有导入的演示内容。
  • 拥有“手动导入演示内容”权限的特权用户可以通过 UI 导入 YAML 内容文件:管理 > 内容 > 导入演示内容。
  • 要构建 YAML 内容文件,请参考以下资源

为开发者

Tide 演示内容模块利用 Yaml 内容模块导入其自己的演示内容定义。

  • Yaml 内容模块 模块的 Drush 命令将无法识别在 Tide 演示内容结构下定义的演示内容,因此它们不会导入这些演示内容。
  • Tide 演示内容模块不会删除由 Yaml 内容模块的 Drush 命令导入的标准 YAML 内容。
  • 可以在 yourmodule.tide_demo_content.yml 中定义自定义演示内容。每个演示内容集合都可以有以下键
    • dependencies 声明集合的要求
      1. modules:所需模块的列表。如果至少有一个所需模块未启用,则 Tide 演示内容将忽略该集合。
      2. collections:在导入此集合之前要导入的演示内容集合列表。如果缺少所需的集合,则将忽略此集合。
    • content 声明集合的 .content.yml 文件列表。
      • Tide 演示内容模块将在您的模块的 demo_content/content/ 目录下查找 .content.yml 文件以导入。
      • 如果 content 键有一个目录,则该目录下的所有内容都将递归导入。
      • content 键的所有项将以集合中定义的相同顺序导入。
      • 图像和文件将从 demo_content/imagesdemo_content/data_files 目录导入。

示例

mymodule 的结构

 |- demo_content
 |  |- content
 |     |- taxonomy_term
 |     |  |- mymodule.tags.yml
 |     |  |- mymodule.topic.yml
 |     |- mymodule.extra.content
 |     |- mymodule.media.content.yml
 |     |- mymodule.node.content.yml  
 |- mymodule.info.yml
 |- mymodule.install
 |- mymodule.module
 |- mymodule.tide_demo_content.yml   

mymodule.tide_demo_content.yml

mymodule.demo:
  dependencies:
    modules:
      - mymodule
      - tide_core
    collections:
      - tide_demo_content:tide_core.demo
      - tide_demo_content:tide_site.demo
  content:
    - taxonomy_term
    - mymodule.media.content.yml
    - mymodule.node.content.yml
mymodule.extra_demo:
  dependencies:
    modules:
      - mymodule
      - tide_core
    collections:
      - mymodule:mymodule.demo
  content:
    - mymodule.extra.content.yml

mymodule 模块定义了 2 个演示内容集合

  1. mymodule.demo
    • 需要 2 个模块:mymodule 和 tide_core。
    • 依赖于 tide_demo_content 模块中的 2 个演示集合 tide_core.demotide_site.demo
    • Tide 演示内容将按以下顺序导入 mymodule.demo.content.yml 文件
      1. taxonomy_term/*
      2. mymodule.media.content.yml
      3. mymodule.node.content.yml
  2. mymodule.extra_demo
    • 需要 2 个模块:mymodule 和 tide_core。
    • 依赖于并将在 mymodule.demo 之后导入

自定义 YAML 内容处理插件

  • URI引用:从引用过程插件中派生。它接受reference过程插件的全部参数,并返回找到的实体的uri而不是ID。此插件可用于链接字段或菜单项。
  field_external_link:
    - uri: https://www.vic.gov.au
      title: Victorian Government
  field_internal_link:
    - '#process':
        callback: uri_reference
        args:
          - node
          - type: page
            title: Demo Page 
      title: 'Read more'  

钩子

  • hook_tide_demo_content_collection_ignore在Tide演示内容导入演示内容集合之前被调用。它允许其他模块排除不想要的演示内容集合。当集合被忽略时,由于其缺失依赖项,所有依赖项也会自动忽略。忽略tide_demo_content:tide_media.demotide_demo_content:tide_site.demo将排除Tide模块中的所有默认演示内容,除了演示用户。
  • hook_tide_demo_content_entity_imported在Tide演示内容导入一个演示实体后被调用。

已知问题