inspiredminds / contao-youtube-sync
Contao 扩展,用于同步 Contao 新闻存档与 YouTube 播放列表。
1.0.4
2022-10-30 10:41 UTC
Requires
- php: >=7.1
- contao/core-bundle: ^4.9 || ^5.0
- contao/news-bundle: ^4.9 || ^5.0
- doctrine/dbal: ^2.11 || ^3.0
- google/apiclient: ^2.0
- guzzlehttp/guzzle: ^6.0 || ^7.0
- symfony/config: ^4.4 || ^5.1 || ^6.0
- symfony/dependency-injection: ^4.4 || ^5.1 || ^6.0
- symfony/event-dispatcher: ^4.4 || ^5.1 || ^6.0
- symfony/http-foundation: ^4.4 || ^5.1 || ^6.0
- symfony/http-kernel: ^4.4 || ^5.1 || ^6.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16 || ^3.0
README
Contao YouTube Sync
此扩展允许您自动将 YouTube 播放列表中的所有视频导入到 Contao 的新闻条目中。
配置
首先您需要获取一个 Google API 密钥。
- 访问 console.developers.google.com 创建一个项目,或者使用现有的项目。
- 访问 API 库 并搜索 YouTube Data API v3。
- 为您项目启用 YouTube Data API v3。
- 访问您项目的 凭证 并选择 创建凭证 » API 密钥。您也可以使用现有的密钥。
- 复制 API 密钥以备后用。
获取 API 密钥后,可以配置扩展
# config/config.yml contao_youtube_sync: developer_key: <YOUR-API-KEY>
安装此扩展后,您将在 Contao 新闻存档的设置中看到额外的选项
启用同步并设置要导入视频作为新闻条目的 YouTube 播放列表 ID。您还需要定义同步条目的默认作者和下载缩略图的目标目录。可选地,您可以定义新条目是否默认发布,以及已同步的条目是否始终更新(这将不会更新别名或作者)。
同步
同步可以通过三种方式触发
- 计划任务:每小时执行一次。
- 命令:
contao_youtube_sync:sync
- 后端:在文章概览中,使用全局操作中的 YouTube 同步 链接。
事件
每当将 YouTube 视频导入为新闻文章(或每当更新新闻文章时),将触发以下事件
InspiredMinds\ContaoYouTubeSync\Event\NewsYouTubeSyncEvent
此事件允许您获取要保存到数据库的 \Contao\NewsModel
以及 YouTube 视频的 \Google_Service_YouTube_PlaylistItem
实例。它还允许您通过设置 $event->setDiscard(true)
来丢弃 新闻文章(或添加到其中的更改)。
模板
在新闻模板中将有两个额外的变量可用
$this->youtube_id
:如果新闻文章是从 YouTube 播放列表导入的,它将包含 YouTube 视频的 ID。$this->youtube_data
:这是一个包含来自 Google YouTube API 的视频原始数据的对象。
该扩展还提供了一个基本的 news_youtube
模板,它可以替代 news_full
模板用于 YouTube 视频的新闻阅读器。该模板包含用于在 iframe 中显示嵌入 YouTube 视频的标记。