With the CMS 4.12 update functionality was altered to utilise an
Extension to obtain the CMS Edit link for a page, rather than having
SiteTree do it internally. Unfortunately the default return case for
`extend` (see Extensible) is an _empty_ array. This leave code
potentially referencing an array offset that doesn't exist ([0]). PHP 8
is less forgiving that it's predecessors on this kind of behaviour. We
should check that the responses from extensions exist before trying to
reference them.
GridFieldComponents packaged with silverstripe/framework are injectable as of 4.11.0
Explicitly invoking the injector here instead of using `create()` allows backwards compatability with framework < 4.11.0 while ensuring dependency injection is still used from 4.11.0 onwards.
Currently, if there are no anchors found in the page content, the updateAnchorsOnPage extension is not called.
This change will call the updateAnchorsOnPage extension regardless of the page content.
Fixes#2580
The call to `Director::makeRelative` transforms absolute links into relative links. Previously, this meant that you could pass in "https://example.co.nz/about-us" or "about-us" and get the same result, but passing in "https://example.co.nz/" and "/" would give _different_ results.
This commit performs the transformation to a relative link _before_ checking if the path should be for the home page, which leads to more consistent results.
Warnings are triggered when:
* Changing the URL Segment
* Unpublishing
* Unpublishing & Archiving
* Moving the homepage to another parent in the tree view
Also add `SiteTree->isHomePage()`
Content blocks and other DataObjects that contain HTMLText fields are
also used in the 'Dependent pages' report for each page in the CMS,
however these objects may have neither a Title field, nor a name to
describe them. Instead of showing an empty field in the Title column for
this table, we can instead show "Untitled " with the localised singular
name appended.