【问题标题】:Silverstripe 3: Tinymce, configure external linksSilverstripe 3: Tinymce,配置外部链接
【发布时间】:2019-10-28 13:41:43
【问题描述】:

我希望我的 SilverStripe 网站上的所有外部链接都使用 https。

在 silverstripe 中,我正在使用 HTMLEditorFields,我想配置外部链接的选项。默认情况下,外部链接的链接字段将显示 http://

我想:

  1. 将此更改为 https://
  2. 创建一个 onBeforeWrite() 函数,我可以在其中检查链接中是否存在 https 协议(因为可以删除最初在文本字段中的 http://)

在不更改原始代码的情况下,我可以在哪里进行这些更改?我正在使用 SilverStripe 3。

【问题讨论】:

标签: php tinymce silverstripe


【解决方案1】:

onBeforeWrite() 调用应该可以解决您的需求:

public function onBeforeWrite()
{
    parent::onBeforeWrite();

    $this->Content = str_replace('http://', 'https://', $this->Content);
}

请注意,如果目标网站不支持 https,这可能会导致链接断开。在 2019 年,这些数字应该会相当小,并且会进一步下降。

【讨论】:

  • 这应该是str_replace
  • 是的,你是对的。不要问我在输入这个时我的想法在哪里。感谢您指出!
  • @spekulatius 我只是想知道我应该把这个方法放在哪里?我如何将 onBeforeWrite 专门用于外部链接字段,因为我还想将 https 添加到可能完全缺少协议的任何链接中
  • 它应该进入你的应用程序 Page.php 文件 - 在那里它会挂钩并将 http 替换为 https。它不会捕获任何不完整 URL(没有协议)的情况。为此,您需要解析内容、识别不完整的 url 并修复它们。
猜你喜欢
  • 2021-07-07
  • 2021-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-06
  • 2015-08-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多