Breaking: #107927 - Remove "external" property / option from TypoScript and AssetRenderer
See forge#107927
Description
The
resource property
external in the
PAGE properties
include,
include,
include,
include,
include and
include
is now obsolete.
This also obsoletes the External option in AssetRenderer.
Both are removed in favor of the new unified URI resource definition.
Instead of marking URIs as URIs with an additional option, prefix the URI, that shall be used with URI:,
or simply use absolute URLs starting with http, where the prefix is not required.
This URI resource definition will work across the system, not only in TypoScript or Asset/ Asset.
Impact
Using the external property in TypoScript or the external option in Asset
will have no effect any more. If absolute URLs have been used as resources, everything
will work as before. Relative URIs must be prefixed with URI: from now on, otherwise
an exception is thrown.
Additionally, the string after the URI: keyword must be a valid URI, otherwise an exception
is thrown as well. Before this change, invalid URIs (marked as external) would have been rendered
to HTML, without any obvious feedback for developers or integrators. Browsers then ignored
such invalid references.
Affected installations
TYPO3 installations using the external property in TypoScript or the external option in Asset.
Migration
TypoScript before:
page = PAGE
page.includeCSS {
main = https://example.com/styles/main.css
main.external = 1
other = /styles/main.css
other.external = 1
}
TypoScript after:
page = PAGE
page.includeCSS {
main = https://example.com/styles/main.css
other = URI:/styles/main.css
}
PHP Code before:
$assetCollector->addStyleSheet(
'myCssFile',
'/styles/main.css',
[],
['external' => true]
);
PHP Code after:
$assetCollector->addStyleSheet(
'myCssFile',
'URI:/styles/main.css',
);