diff --git a/CHANGELOG.md b/CHANGELOG.md index 606b1036..3b58fee3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Release Notes for CKEditor for Craft CMS +## Unreleased + +- Fixed an error that could occur when editing an entry with nested CKEditor entries that used a soft-deleted entry type. ([#191](https://github.com/craftcms/ckeditor/issues/191)) + ## 4.0.0 - 2024-03-14 - CKEditor now requires Craft CMS 5.0.0-beta.7 or later. diff --git a/src/Field.php b/src/Field.php index fa0aad1e..4f2c1057 100644 --- a/src/Field.php +++ b/src/Field.php @@ -1061,17 +1061,24 @@ private function _prepNestedEntriesForDisplay(string $value, ?int $elementSiteId $entryId = $entryIds[$i]; /** @var Entry|null $entry */ $entry = $entries[$entryId] ?? null; - if (!$entry) { + + if (!$entry || (!$isCpRequest && $entry->trashed)) { $entryHtml = ''; } elseif ($isCpRequest) { - $entryHtml = $this->getCardHtml($entry); - if (!$static) { - $entryHtml = Html::tag('craft-entry', options: [ - 'data' => [ - 'entry-id' => $entryId, - 'card-html' => $entryHtml, - ], - ]); + try { + $entryHtml = $this->getCardHtml($entry); + + if (!$static) { + $entryHtml = Html::tag('craft-entry', options: [ + 'data' => [ + 'entry-id' => $entryId, + 'card-html' => $entryHtml, + ], + ]); + } + } catch (InvalidConfigException) { + // this can happen e.g. when the entry type has been deleted + $entryHtml = ''; } } else { $entryHtml = $entry->render();