Jus*_*own 0 html php silverstripe
我遇到SilverStripe将外部URL视为相对链接的问题.
我有一个DataObject:
class Artist extends DataObject {
private static $db = array(
'Title' => 'Varchar(255)',
'Content' => 'HTMLText',
'Website' => 'Varchar(255)',
);
}
Run Code Online (Sandbox Code Playgroud)
艺术家网站通过<a href="$Website" target="_blank">.问题是URL被附加到网站的基本URL,因此我们最终得到如下内容:
<a href="mysite.com/www.artistsite.com" target="_blank">
而不是所期望的:
<a href="www.artistsite.com" target="_blank">
但是,如果$ Website包含协议(http或https),则链接按预期工作.因此,如果$ Website是http://www.artistsite.com,那么我们得到:
<a href="http://www.artistsite.com" target="_blank">
该网站包含数百个,最终成千上万的客户维护的艺术家记录.理想情况下,客户端可以粘贴URL,而不必担心每个URL都附加http或https.
有人有主意吗?这与SilverStripe论坛中描述的问题相同,但尚未发布任何解决方案.
这个站点在SilverStripe 3.6上.
这不是直接的SilverStripe问题.
给出一个包含以下内容的html文档:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="google.com" target="_blank">test</a>
<a href="www.google.com" target="_blank">test</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
所有这些都作为网站的相对链接打开,而不是外部网址.
为了帮助管理员粘贴功能链接,添加一个onBeforeWrite来测试url是否包含有效的协议,如果没有,至少自动添加http://.或者使用@wmk自动在评论中建议的模块.
| 归档时间: |
|
| 查看次数: |
140 次 |
| 最近记录: |