From 5cce496a05e7b091323f6b26303d571bb50bc066 Mon Sep 17 00:00:00 2001 From: Thomas Portelange Date: Thu, 22 Jun 2023 10:53:54 +0200 Subject: [PATCH 1/2] Don't make query if not needed See https://github.com/silverstripe/silverstripe-assets/issues/557 for background --- code/Model/SiteTreeLinkTracking.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/Model/SiteTreeLinkTracking.php b/code/Model/SiteTreeLinkTracking.php index c9b53826e0..e8a98cc2b2 100644 --- a/code/Model/SiteTreeLinkTracking.php +++ b/code/Model/SiteTreeLinkTracking.php @@ -116,15 +116,21 @@ public function augmentSyncLinkTracking() $allFields = DataObject::getSchema()->fieldSpecs($this->owner); $linkedPages = []; $anyBroken = false; + $hasTrackedFields = false; foreach ($allFields as $field => $fieldSpec) { $fieldObj = $this->owner->dbObject($field); if ($fieldObj instanceof DBHTMLText) { + $hasTrackedFields = true; // Merge links in this field with global list. $linksInField = $this->trackLinksInField($field, $anyBroken); $linkedPages = array_merge($linkedPages, $linksInField); } } + if (!$hasTrackedFields) { + return; + } + // Soft support for HasBrokenLink db field (e.g. SiteTree) if ($this->owner->hasField('HasBrokenLink')) { $this->owner->HasBrokenLink = $anyBroken; From 89f927a719b2f11d488ae6a6fd46621627b2f5fb Mon Sep 17 00:00:00 2001 From: Thomas Portelange Date: Fri, 18 Aug 2023 13:55:30 +0200 Subject: [PATCH 2/2] add comment --- code/Model/SiteTreeLinkTracking.php | 1 + 1 file changed, 1 insertion(+) diff --git a/code/Model/SiteTreeLinkTracking.php b/code/Model/SiteTreeLinkTracking.php index e8a98cc2b2..a779f912e4 100644 --- a/code/Model/SiteTreeLinkTracking.php +++ b/code/Model/SiteTreeLinkTracking.php @@ -127,6 +127,7 @@ public function augmentSyncLinkTracking() } } + // We need a boolean flag instead of checking linkedPages because it can be empty when pages are removed if (!$hasTrackedFields) { return; }