firebrandhq/silverstripe-hail

Silverstripe 4 插件,用于与 Hail (https://get.hail.to) 集成

安装数: 1,650

依赖项: 2

建议者: 0

安全: 0

星标: 3

关注者: 4

分支: 4

开放问题: 0

类型:silverstripe-vendormodule

5.0.6 2024-07-17 00:02 UTC

README

Hail.to

Hail.to 集成 SilverStripe 4

Silverstripe 4 模块,用于与 Hail (https://get.hail.to) 集成

如果您需要此模块用于 SilverStripe 3,请参阅 此分支

如果您在获取时遇到错误,请更新到 4.2 版本

功能

  • 在您的 SilverStripe 网站内显示 Hail 内容
  • 与 Bootstrap 4.1 风格和模板兼容
  • 文章和出版物视频和图片头部
  • Hail 页面
  • TinyMCE 插件
  • 可配置
  • 简化代码库
  • 可选的 Emoji 支持
  • SEO 友好
  • OpenGraph 集成,见 OpenGraph 支持部分
  • Silverstripe Elemental 集成,见 SilverStripe Elemental 支持部分
  • 等等...

要求

对于 SilverStripe 4.1 到 4.3 使用版本 4.2.1

从旧版本升级

此模块已为 SilverStripe 4 重新编写,与之前版本相比包含破坏性更改。如果您是从旧版本升级,请删除并重新安装模块以进行全新安装。

安装

运行以下命令

composer require firebrandhq/silverstripe-hail "^4"

(可选) 启用 Emoji 支持(必须在 dev/build 之前完成)

见 Emoji 支持配置

安装 Silverstripe Sake

cd your-webroot/
sudo ./vendor/bin/sake installsake

请确保 sake 使用 php ^7.1

执行 dev/build

将以下行(根据您的环境进行调整)添加到您的 crontab 中

您需要将这些作业添加到运行您的 web 服务的用户的 cronjob 中(例如,在 Ubuntu 上使用 apache2:sudo crontab -e -u www-data)

* * * * * cd /your-webroot/ && /usr/local/bin/sake dev/tasks/hail-fetch-queue
*/5 * * * * cd /your-webroot/ && /usr/local/bin/sake dev/tasks/hail-check-status
0 * * * * cd /your-webroot/ && /usr/local/bin/sake dev/tasks/hail-fetch-recurring

您可以根据需要调整 hail-fetch-recurring 作业的频率,它将始终获取到上一次获取为止

授权 Silverstripe 从 Hail 获取

  1. 转到 hail.to 并登录,然后转到您的开发者设置(https://hail.to/app/user/applications)并创建一个新应用(添加新按钮)

  2. 将生成的 Hail 客户端 ID 和客户端密钥添加到您的 .env 文件中

    HAIL_CLIENT_ID=[CLIENTID]
    HAIL_CLIENT_SECRET=[CLIENTSECRET]
    
  3. 转到 SilverStripe 管理设置页面 (/admin/settings/),然后在 Hail 选项卡上

  4. 复制回叫 URL

  5. 回到 Hail 开发者设置,在重定向 URI 部分点击“添加新”,并粘贴回叫 URL

  6. 您现在可以授权您的 Hail 应用程序,回到 SilverStripe 管理设置并点击“授权 SilverStripe 访问 Hail”按钮。

  7. 授权过程完成后,您将能够在 SilverStripe 管理设置中选择您想要从中获取内容的 Hail 组织。

  8. (可选) 您可以在 SilverStripe 管理设置中全局排除具有特定公共或私人标签的内容

  9. 保存您的管理设置

您现在可以等待您的cron作业获取内容,或者使用SilverStripe CMS中的Hail菜单中的获取按钮(页面左上角)强制进行完整获取。

jQuery和Bootstrap需求

默认情况下,我们在Hail页面和Hail文章中包含jQuery 3.3.1和Bootstrap 4.1(javascript和css)。

如果您需要包含您自己的jQuery和/或Bootstrap(如果您从源编译了Bootstrap或想全局包含这些),只需在您的PageController init()函数中添加以下之一或全部,以阻止我们的需求

protected function init()
{
    parent::init();
    // You can include any CSS or JS required by your project here.
    // See: https://docs.silverstripe.org/en/developer_guides/templates/requirements/
    
    \SilverStripe\View\Requirements::block('firebrandhq/silverstripe-hail: thirdparty/bootstrap/styles/bootstrap.min.css');
    \SilverStripe\View\Requirements::block('firebrandhq/silverstripe-hail: thirdparty/jquery/js/jquery.min.js');
    \SilverStripe\View\Requirements::block('firebrandhq/silverstripe-hail: thirdparty/bootstrap/js/bootstrap.bundle.min.js');
}

配置

以下yml配置选项可用于覆盖

Hail API客户端配置

  • BaseApiUrl:Hail API的基本URL
  • AuthorizationUrl:Hail授权的完整URL
  • RefreshRate:Hail对象被认为过时的时长
  • EnableEmojiSupport:查看Emojis支持配置
  • OnlyFetchPublishedObjects:默认情况下,Hail模块仅获取已发布的对象,您可以通过将此值设置为false来更改此行为

默认配置

Firebrand\Hail\Api\Client:
  BaseApiUrl: 'https://hail.to/api/v1/'
  AuthorizationUrl: 'https://hail.to/oauth/authorise'
  RefreshRate: 86400
  EnableEmojiSupport: false
  OnlyFetchPublishedObjects: true

Hail页面控制器配置

  • UseDefaultCss:true / false 启用Hail页面和文章的默认样式(使用Bootstrap 4.1)

默认配置

Firebrand\Hail\Pages\HailPageController:
  UseDefaultCss: true

Hail重复获取任务配置

  • 电子邮件:获取错误将发送到以下电子邮件列表(逗号分隔),如果您想禁用电子邮件,请设置为false

默认配置

Firebrand\Hail\Tasks\FetchRecurringTask:
  Emails: ''

要覆盖这些值,您需要将一个新的yml文件添加到您的mysite/_config/文件夹中,指定您的配置需要在Hail之后包含。

示例yml配置文件

---
Name: 'myhailconfig'
After:
    - '#hail-config'
---
Firebrand\Hail\Api\Client:
  EnableEmojiSupport: true
Firebrand\Hail\Tasks\FetchRecurringTask:
  Emails: 'developers@mycompany.com'
---

用法

一旦配置完成并且您的Hail内容被获取,您就可以在SilverStripe CMS中创建一个Hail页面来在您的网站上显示内容。Hail页面的配置应该是自解释的,请参阅下面的截图

Hail页面配置

Hail Page config

一旦配置并发布,您的Hail页面应该看起来像这样(使用默认样式和模板)

Hail Page

Emojis支持

重要:启用Emojis支持将更改您的SilverStripe数据库的字符集和校对为分别的 utf8mb4utf8mb4_general_ci

utf8mb4与utf8向后兼容,因此它应该与任何现有或新数据库一起工作,我们仍然选择禁用此功能以避免强加此更改。

要启用Emojis支持,请在您的SilverStripe yml(以下面的示例为例)配置中添加以下内容,并执行dev/build。

示例yml配置文件

---
Name: 'myhailconfig'
After:
    - '#hail-config'
---
Firebrand\Hail\Api\Client:
  EnableEmojiSupport: true
---

OpenGraph支持

Open Graph支持现在已直接包含在此模块中,前提是您使用Tractorcow的OG模块

如果您想修改我们的OG实现以用于Hail页面/文章,您可以使用SilverStripe注入来实现。

SilverStripe Elemental支持

我们提供预构建的SilverStripe Elemental块(Hail轮播)供您使用

有关安装说明,请参阅Hail Elemental模块

贡献

请参阅CONTRIBUTING.md

版本控制

此库遵循Semver。根据Semver,您将能够升级到此库的任何次要或补丁版本,而无需对公共API进行任何破坏性更改。Semver还要求我们明确定义此库的公共API。

所有具有public可见性的方法都是公共API的一部分。所有其他方法不是公共API的一部分。尽可能的情况下,我们会尝试在小的/修补版本中保持protected方法的向后兼容性,但如果您正在重写方法,请在升级前测试您的工作。

问题报告

请为任何您发现的错误或缺少的功能创建一个问题