MINOR: make use of getParent method to make faster
This change will make Silverstripe much faster (i hope), because it uses SiteTree::getParent() instead of the magic / custom method Parent()
This commit is contained in:
parent
d5faa0158a
commit
e1da194f2c
|
@ -684,7 +684,7 @@ class SiteTree extends DataObject implements PermissionProvider, i18nEntityProvi
|
|||
public function RelativeLink($action = null)
|
||||
{
|
||||
if ($this->ParentID && self::config()->get('nested_urls')) {
|
||||
$parent = $this->Parent();
|
||||
$parent = $this->getParent();
|
||||
// If page is removed select parent from version history (for archive page view)
|
||||
if ((!$parent || !$parent->exists()) && !$this->isOnDraft()) {
|
||||
$parent = Versioned::get_latest_version(self::class, $this->ParentID);
|
||||
|
@ -809,7 +809,7 @@ class SiteTree extends DataObject implements PermissionProvider, i18nEntityProvi
|
|||
}
|
||||
|
||||
// Parent must exist and not be an orphan itself
|
||||
$parent = $this->Parent();
|
||||
$parent = $this->getParent();
|
||||
return !$parent || !$parent->exists() || $parent->isOrphaned();
|
||||
}
|
||||
|
||||
|
@ -863,7 +863,7 @@ class SiteTree extends DataObject implements PermissionProvider, i18nEntityProvi
|
|||
if ($sectionName === $page->URLSegment) {
|
||||
return true;
|
||||
}
|
||||
$page = $page->Parent();
|
||||
$page = $page->getParent();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -966,7 +966,7 @@ class SiteTree extends DataObject implements PermissionProvider, i18nEntityProvi
|
|||
$pages[] = $page;
|
||||
}
|
||||
|
||||
$page = $page->Parent();
|
||||
$page = $page->getParent();
|
||||
}
|
||||
|
||||
return new ArrayList(array_reverse($pages ?? []));
|
||||
|
@ -995,13 +995,13 @@ class SiteTree extends DataObject implements PermissionProvider, i18nEntityProvi
|
|||
/**
|
||||
* Get the parent of this page.
|
||||
*
|
||||
* @return SiteTree Parent of this page
|
||||
* @return SiteTree|null
|
||||
*/
|
||||
public function getParent()
|
||||
{
|
||||
$parentID = $this->getField("ParentID");
|
||||
if ($parentID) {
|
||||
return SiteTree::get_by_id(self::class, $parentID);
|
||||
return SiteTree::get_by_id($parentID);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
@ -1176,7 +1176,7 @@ class SiteTree extends DataObject implements PermissionProvider, i18nEntityProvi
|
|||
// check for inherit
|
||||
if ($this->CanViewType === InheritedPermissions::INHERIT) {
|
||||
if ($this->ParentID) {
|
||||
return $this->Parent()->canView($member);
|
||||
return $this->getParent()->canView($member);
|
||||
} else {
|
||||
return $this->getSiteConfig()->canViewPages($member);
|
||||
}
|
||||
|
@ -1872,7 +1872,7 @@ class SiteTree extends DataObject implements PermissionProvider, i18nEntityProvi
|
|||
// Check known urlsegment blacklists
|
||||
if (self::config()->get('nested_urls') && $this->ParentID) {
|
||||
// Guard against url segments for sub-pages
|
||||
$parent = $this->Parent();
|
||||
$parent = $this->getParent();
|
||||
if ($controller = ModelAsController::controller_for($parent)) {
|
||||
if ($controller instanceof Controller && $controller->hasAction($this->URLSegment)) {
|
||||
return false;
|
||||
|
@ -2132,7 +2132,7 @@ class SiteTree extends DataObject implements PermissionProvider, i18nEntityProvi
|
|||
|
||||
$baseLink = Controller::join_links(
|
||||
Director::absoluteBaseURL(),
|
||||
(self::config()->get('nested_urls') && $this->ParentID ? $this->Parent()->RelativeLink(true) : null)
|
||||
(self::config()->get('nested_urls') && $this->ParentID ? $this->getParent()->RelativeLink(true) : null)
|
||||
);
|
||||
|
||||
$urlsegment = SiteTreeURLSegmentField::create("URLSegment", $this->fieldLabel('URLSegment'))
|
||||
|
@ -2755,7 +2755,7 @@ class SiteTree extends DataObject implements PermissionProvider, i18nEntityProvi
|
|||
if ($instance instanceof HiddenClass) {
|
||||
continue;
|
||||
}
|
||||
if (!$instance->canCreate(null, ['Parent' => $this->ParentID ? $this->Parent() : null])) {
|
||||
if (!$instance->canCreate(null, ['Parent' => $this->ParentID ? $this->getParent() : null])) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
@ -3033,7 +3033,7 @@ class SiteTree extends DataObject implements PermissionProvider, i18nEntityProvi
|
|||
{
|
||||
$parent = $this;
|
||||
$stack = [$parent];
|
||||
while (($parent = $parent->Parent()) && $parent->exists()) {
|
||||
while (($parent = $parent->getParent()) && $parent->exists()) {
|
||||
array_unshift($stack, $parent);
|
||||
}
|
||||
|
||||
|
@ -3048,7 +3048,7 @@ class SiteTree extends DataObject implements PermissionProvider, i18nEntityProvi
|
|||
public function getPageLevel()
|
||||
{
|
||||
if ($this->ParentID) {
|
||||
return 1 + $this->Parent()->getPageLevel();
|
||||
return 1 + $this->getParent()->getPageLevel();
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue