openeuropa / oe_oembed
OpenEuropa Drupal oEmbed 组件。
Requires
- php: >=8.1
- drupal/core: ^10
- drupal/embed: ~1.7.0
Requires (Dev)
- composer/installers: ^1.5
- drupal/ckeditor: ^1.0
- drupal/codesnippet: ^1.9
- drupal/config_devel: ^1.8
- drupal/core-composer-scaffold: ^10
- drupal/core-dev: ^10
- drupal/http_request_mock: ^1.1
- drush/drush: ^12
- nikic/php-parser: ^4
- openeuropa/code-review: ^2.0.0-alpha6
- openeuropa/oe_media: ^1.23
- openeuropa/task-runner-drupal-project-symlink: ^1.0-beta6
- phpspec/prophecy-phpunit: ^2
This package is auto-updated.
Last update: 2024-09-08 05:49:00 UTC
README
OpenEuropa oEmbed 模块允许以非 Drupal(通用)方式将实体嵌入到内容中。
为此,它包括两个主要元素:WYSIWYG 嵌入按钮和过滤器插件。此外,它还允许网站管理员定义哪些可用的视图显示也可以嵌入(以及它们是否应内嵌或作为块嵌入)。
WYSIWYG 按钮
使用嵌入 WYSIWYG 按钮,编辑者可以选择要嵌入的实体。选择实体后,将在内容中插入基于 oEmbed 的嵌入代码。此代码遵循 oEmbed 协议,因此其他客户端也能理解。以下是一个嵌入代码示例(针对媒体实体)
<p data-oembed="https://oembed.ec.europa.eu?url=https%3A//data.ec.europa.eu/ewp/media/118a06e9-e7df-4b7b-8ab2-5f5addc2f0b3">
<a href="https://data.ec.europa.eu/ewp/media/118a06e9-e7df-4b7b-8ab2-5f5addc2f0b3">The media title</a>
</p>
其中 118a06e9-e7df-4b7b-8ab2-5f5addc2f0b3
是媒体实体的 UUID。
对于节点,它看起来像这样
<p data-oembed="https://oembed.ec.europa.eu?url=https%3A//data.ec.europa.eu/ewp/node/118a06e9-e7df-4b7b-8ab2-5f5addc2f0b3">
<a href="https://data.ec.europa.eu/ewp/node/118a06e9-e7df-4b7b-8ab2-5f5addc2f0b3">The node title</a>
</p>
而内嵌嵌入看起来像这样
<a data-oembed="https://oembed.ec.europa.eu?url=https%3A//data.ec.europa.eu/ewp/media/118a06e9-e7df-4b7b-8ab2-5f5addc2f0b3" href="https://data.ec.europa.eu/ewp/media/118a06e9-e7df-4b7b-8ab2-5f5addc2f0b3">sdasd</a>
此外,还有一个 [OpenEuropa oEmbed 服务器] 子模块,当网站期望其内容被需要理解嵌入代码的外部系统读取时可以用来。本质上,它充当网站媒体资源的 oEmbed 提供者。
文本过滤器
由 WYSIWYG 按钮提供的嵌入代码由过滤器插件 FilterOembed
转换为渲染的实体。将此添加到文本格式后,将用渲染的实体替换嵌入标签。
可嵌入的视图显示
网站管理员需要定义哪些可用的视图模式也可以通过上述工具嵌入。这是通过在每个可用媒体包的显示模式配置页面中选择可用的视图显示来完成的。
使用方法
为了使用模块的功能,请按照以下步骤操作
-
创建一个使用
Drupal 实体
嵌入类型的嵌入按钮。 -
创建一个文本格式。您可以通过导航到
/admin/config/content/formats
并点击“添加文本格式”按钮来完成此操作。 -
将嵌入按钮添加到您的活动工具栏。您可以在创建文本格式时或通过导航到文本格式配置表单(
/admin/config/content/formats/manage/TEXT_FORMAT_ID
)来完成此操作。请确保您选择 CKEditor 作为您的文本格式的文本编辑器,并将按钮从“可用按钮”部分移动到活动工具栏。 -
启用“使用 oEmbed 格式嵌入实体”过滤器。此过滤器需要启用并放置在过滤器处理顺序的最后。(警告:如果您希望将 oEmbed 特定的 URL 转换为内部别名,这是非常重要的)
-
使视图显示可嵌入。完成前一步后,导航到要嵌入的包的显示模式配置,并选择哪些可用的视图显示可用于嵌入。例如,要配置哪些图像媒体类型的视图显示可用于嵌入,您需要导航到
/admin/structure/media/manage/image/display
。
开发设置
您可以通过以下步骤构建开发站点
- 安装 Composer 依赖项
composer install
在 composer install
之后,会自动触发一个后命令钩子(drupal:site-setup
)。它将确保在开发站点中正确设置必要的符号链接。它还将在开发配置文件(如 behat.yml.dist
)中执行令牌替换。
请注意:测试站点内部通过使用OpenEuropa Task Runner的Drupal项目符号链接命令来符号链接项目文件和目录。
如果您在项目的根目录中添加了新的文件或目录,您需要重新运行drupal:site-setup
以确保它们能够正确地被符号链接。
如果您不想重新运行完整的站点设置,您可以直接运行
$ ./vendor/bin/run drupal:symlink-project
- 通过运行以下命令安装测试站点
./vendor/bin/run drupal:site-install
开发站点的Web根目录应位于build
目录中。
使用Docker Compose
或者,您可以使用提供的配置通过Docker和Docker Compose来构建一个开发站点。
Docker提供了必要的服务和技术,如Web服务器和数据库服务器,以便无论您的本地主机配置如何,都可以使站点运行。
需求
配置
默认情况下,Docker Compose读取两个文件,一个是docker-compose.yml
,另一个是可选的docker-compose.override.yml
文件。按照惯例,docker-compose.yml
包含您的基配置,默认提供。覆盖文件,如其名称所示,可以包含现有服务或全新的服务的配置覆盖。如果服务在两个文件中都有定义,Docker Compose将合并配置。
有关Docker Compose扩展机制的更多信息,请参阅官方Docker Compose文档。
使用方法
开始,运行
docker-compose up
建议不要将docker-compose
守护化,这样您可以在完成工作后快速将其关闭(CTRL+C
)。但是,如果您想将其守护化,您必须添加-d
标志
docker-compose up -d
然后
docker-compose exec web composer install docker-compose exec web ./vendor/bin/run drupal:site-install
使用默认配置,开发站点的文件应位于build
目录中,并且开发站点应可通过以下地址访问:http://127.0.0.1:8080/build。
运行测试
要运行grumphp检查
docker-compose exec web ./vendor/bin/grumphp run
要运行phpunit测试
docker-compose exec web ./vendor/bin/phpunit
要运行behat测试
docker-compose exec web ./vendor/bin/behat
逐步调试
要启用从命令行的逐步调试,将XDEBUG_SESSION
环境变量设置为其任意值传递给容器
docker-compose exec -e XDEBUG_SESSION=1 web <your command>
请注意,从XDebug 3开始,如果设置了变量但您的客户端没有监听调试连接,控制台将输出连接错误消息。错误消息将导致PHPUnit测试的假阴性。
要从浏览器中启动逐步调试,请使用浏览器扩展或类似https://www.jetbrains.com/phpstorm/marklets/生成的书签来设置正确的cookie。
贡献
请阅读完整文档以了解我们的行为准则以及向我们提交拉取请求的过程。