richardsjoqvist / silverstripe-embedder
Embedder 允许在内容字段区域嵌入媒体,类似于WordPress中的嵌入功能
Requires
- php: >=5.3.2
- composer/installers: *
- silverstripe/framework: ~3.1
This package is not auto-updated.
Last update: 2024-09-20 21:41:49 UTC
README
Embedder 允许在内容字段区域嵌入,类似于WordPress中的嵌入功能,并且可以从粘贴的链接和HTML代码中嵌入媒体。
需求
- SilverStripe 4
安装
将模块放入您的 SilverStripe 项目中,并运行 /dev/build
使用方法
想法是将媒体(如 YouTube、Vimeo)的 URL 转换为嵌入媒体。例如以下文本
<p> Best Video ever !</p>
<p>https://www.youtube.com/watch?v=9bZkp7q19f0</p>
将被转换为
<p> Best Video ever !</p>
<p><div class="fluid-width-video-wrapper" style="padding-top: 56.2667%;"><iframe src="https://www.youtube.com/embed/9bZkp7q19f0?feature=oembed" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen="" name="fitvid2"></iframe></div></p>
在内容字段上启用 Embedder
Embedder 必须在项目 _config.php 中激活。这通过注册 Embedder 应在哪些 pagetypes 上的哪些字段上工作来完成。以下示例将使 Embedder 在“Page”类型的页面上的“Content”字段上启用
RichardsJoqvist\silverstripeEmbedder\Embedder:
fields:
Page:
- Content
以下示例将使 Embedder 在所有页面类型上的“Intro”字段上启用
RichardsJoqvist\silverstripeEmbedder\Embedder:
fields:
all
- Intro;
指定嵌入媒体大小
将以下内容添加到设置从链接嵌入的媒体宽度
RichardsJoqvist\silverstripeEmbedder\Embedder:
width: 750
maxWidth: 750
以下方法包括用于控制嵌入大小的功能
- setWidth([int])
- setHeight([int])
- setMaxWidth([int])
- setMaxHeight([int])
大小将以保持宽高比的方式计算。
注册媒体提供者
包含几个预包装的提供者(内容站点)。它们必须分别注册为提供者
RichardsJoqvist\silverstripeEmbedder\Embedder:
providers:
- \RichardsJoqvist\silverstripeEmbedder\Youtube
- \RichardsJoqvist\silverstripeEmbedder\Vimeo
- \RichardsJoqvist\silverstripeEmbedder\Instagram
以下提供者包括
- Flickr
- Viddler
- Vimeo
- Youtube
您可以轻松添加更多符合 oEmbed 规范的自定义提供者。只需将包含的提供者类之一复制到您的项目目录中,并根据您的需求修改它,然后运行 /dev/build 以将提供者类注册到 SilverStripe 并在您的 _config.php 中启用它。有关更多信息,请参阅oEmbed 网站。
注册 HTML 标签
Embedder 还可以根据标签名称渲染粘贴的 HTML 代码
RichardsJoqvist\silverstripeEmbedder\Embedder:
tags:
- object
- iframe
- embed
这会将 <object>、<iframe> 和 <embed> 标签注册为要渲染的对象而不是 HTML 实体。例如,如果以下代码在启用了 Embedder 的字段中粘贴,它将被渲染为 iframe
<iframe width="640" height="390"
src="http://www.youtube.com/embed/dQw4w9WgXcQ"
frameborder="0" allowfullscreen></iframe>
完整配置示例
此文件将被称为 embedder.yml
RichardsJoqvist\silverstripeEmbedder\Embedder:
width: 750
maxWidth: 750
fields:
SilverStripe\Blog\Model\BlogPost:
- Content
Page:
- Content
AnotherPageType:
- Content
- Another HTML Field
providers:
- \RichardsJoqvist\silverstripeEmbedder\Youtube
- \RichardsJoqvist\silverstripeEmbedder\Vimeo
- \RichardsJoqvist\silverstripeEmbedder\Instagram