From 7f34b2824e18b762c839c5ee4661deeca064afaa Mon Sep 17 00:00:00 2001 From: Roland Dalmulder Date: Fri, 13 Jan 2017 17:42:32 +0100 Subject: [PATCH 1/2] Delete UCM content entries when Joomla articles are deleted --- libraries/cms/helper/tags.php | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/libraries/cms/helper/tags.php b/libraries/cms/helper/tags.php index 7f2ae907228e3..918cdccdfb929 100644 --- a/libraries/cms/helper/tags.php +++ b/libraries/cms/helper/tags.php @@ -370,14 +370,26 @@ public function createTagsFromMetadata($metadata) */ public function deleteTagData(JTableInterface $table, $contentItemId) { - $result = $this->unTagItem($contentItemId, $table); + // Make sure it is an array + $contentItemId = (array) $contentItemId; - /** - * @var JTableCorecontent $ucmContentTable - */ - $ucmContentTable = JTable::getInstance('Corecontent'); + // Set default values + $result = false; + $delete = false; + + foreach ($contentItemId as $itemId) + { + $result = $this->unTagItem($itemId, $table); + + /** + * @var JTableCorecontent $ucmContentTable + */ + $ucmContentTable = JTable::getInstance('Corecontent'); + + $delete = $ucmContentTable->deleteByContentId($itemId, $this->typeAlias); + } - return $result && $ucmContentTable->deleteByContentId($contentItemId, $this->typeAlias); + return $result && $delete; } /** From 61de2e4851514b755a6d97747e7770318f7a81f8 Mon Sep 17 00:00:00 2001 From: Roland Dalmulder Date: Fri, 13 Jan 2017 18:22:56 +0100 Subject: [PATCH 2/2] Check all results --- libraries/cms/helper/tags.php | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/libraries/cms/helper/tags.php b/libraries/cms/helper/tags.php index 918cdccdfb929..2bdf87c524104 100644 --- a/libraries/cms/helper/tags.php +++ b/libraries/cms/helper/tags.php @@ -374,8 +374,9 @@ public function deleteTagData(JTableInterface $table, $contentItemId) $contentItemId = (array) $contentItemId; // Set default values - $result = false; - $delete = false; + $result = false; + $outcome = false; + $delete = array(); foreach ($contentItemId as $itemId) { @@ -386,10 +387,18 @@ public function deleteTagData(JTableInterface $table, $contentItemId) */ $ucmContentTable = JTable::getInstance('Corecontent'); - $delete = $ucmContentTable->deleteByContentId($itemId, $this->typeAlias); + $delete[] = $ucmContentTable->deleteByContentId($itemId, $this->typeAlias); } - return $result && $delete; + foreach ($delete as $outcome) + { + if ($outcome === false) + { + return false; + } + } + + return $result && $outcome; } /**