mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
BUG Change all shortcodes into the new, comma separated, format.
Space delimiter is often confused by browsers, and encoded as %20 which breaks the shortcode system. Change to comma delimitation has already been implemented, this is a followup cleanup. Ref http://open.silverstripe.org/ticket/7337
This commit is contained in:
parent
29a039929b
commit
7c41ff22ab
@ -63,14 +63,14 @@ class HtmlEditorField extends TextareaField {
|
|||||||
if($links = $value->getElementsByTagName('a')) foreach($links as $link) {
|
if($links = $value->getElementsByTagName('a')) foreach($links as $link) {
|
||||||
$matches = array();
|
$matches = array();
|
||||||
|
|
||||||
if(preg_match('/\[sitetree_link id=([0-9]+)\]/i', $link->getAttribute('href'), $matches)) {
|
if(preg_match('/\[sitetree_link(?:\s*|%20|,)?id=([0-9]+)\]/i', $link->getAttribute('href'), $matches)) {
|
||||||
if(!DataObject::get_by_id('SiteTree', $matches[1])) {
|
if(!DataObject::get_by_id('SiteTree', $matches[1])) {
|
||||||
$class = $link->getAttribute('class');
|
$class = $link->getAttribute('class');
|
||||||
$link->setAttribute('class', ($class ? "$class ss-broken" : 'ss-broken'));
|
$link->setAttribute('class', ($class ? "$class ss-broken" : 'ss-broken'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(preg_match('/\[file_link id=([0-9]+)\]/i', $link->getAttribute('href'), $matches)) {
|
if(preg_match('/\[file_link(?:\s*|%20|,)?id=([0-9]+)\]/i', $link->getAttribute('href'), $matches)) {
|
||||||
if(!DataObject::get_by_id('File', $matches[1])) {
|
if(!DataObject::get_by_id('File', $matches[1])) {
|
||||||
$class = $link->getAttribute('class');
|
$class = $link->getAttribute('class');
|
||||||
$link->setAttribute('class', ($class ? "$class ss-broken" : 'ss-broken'));
|
$link->setAttribute('class', ($class ? "$class ss-broken" : 'ss-broken'));
|
||||||
@ -114,7 +114,7 @@ class HtmlEditorField extends TextareaField {
|
|||||||
$href = Director::makeRelative($link->getAttribute('href'));
|
$href = Director::makeRelative($link->getAttribute('href'));
|
||||||
|
|
||||||
if($href) {
|
if($href) {
|
||||||
if(preg_match('/\[sitetree_link id=([0-9]+)\]/i', $href, $matches)) {
|
if(preg_match('/\[sitetree_link,id=([0-9]+)\]/i', $href, $matches)) {
|
||||||
$ID = $matches[1];
|
$ID = $matches[1];
|
||||||
|
|
||||||
// clear out any broken link classes
|
// clear out any broken link classes
|
||||||
|
@ -691,7 +691,7 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
|
|||||||
Description: title,
|
Description: title,
|
||||||
TargetBlank: target ? true : false
|
TargetBlank: target ? true : false
|
||||||
};
|
};
|
||||||
} else if(href.match(/^\[sitetree_link\s*(?:%20)?id=([0-9]+)\]?(#.*)?$/)) {
|
} else if(href.match(/^\[sitetree_link(?:\s*|%20|,)?id=([0-9]+)\]?(#.*)?$/i)) {
|
||||||
return {
|
return {
|
||||||
LinkType: 'internal',
|
LinkType: 'internal',
|
||||||
internal: RegExp.$1,
|
internal: RegExp.$1,
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
*
|
*
|
||||||
* <b>Inbuilt Shortcodes</b>
|
* <b>Inbuilt Shortcodes</b>
|
||||||
*
|
*
|
||||||
* From 2.4 onwards links inserted via the CMS into a content field are in the form ''<a href="[sitetree_link id=n]">''. At runtime this is replaced by a plain link to the page with the ID in question.
|
* From 2.4 onwards links inserted via the CMS into a content field are in the form ''<a href="[sitetree_link id=n]">'', and from 3.0 the comma is used as a separator instead ''<a href="[sitetree_link,id=n]">''. At runtime this is replaced by a plain link to the page with the ID in question.
|
||||||
*
|
*
|
||||||
* <b>Limitations</b>
|
* <b>Limitations</b>
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user