richardsjoqvist/silverstripe-embedder

此包最新版本(1.1.1)没有可用的许可信息。

Embedder 允许在内容字段区域嵌入媒体,类似于WordPress中的嵌入功能

安装数: 2,627

依赖项: 0

建议者: 0

安全: 0

星标: 10

关注者: 2

分支: 4

类型:silverstripe-module

1.1.1 2015-01-20 10:59 UTC

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
  • Instagram
  • 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