From 0d18b77e693c08f54b547c915d9a84f2894b8ba8 Mon Sep 17 00:00:00 2001 From: mel Date: Wed, 22 Jul 2026 13:05:48 -0700 Subject: [PATCH] Fix delete language and script notes field (#2392) --- .../sfIsadPlugin/lib/sfIsadPlugin.class.php | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/plugins/sfIsadPlugin/lib/sfIsadPlugin.class.php b/plugins/sfIsadPlugin/lib/sfIsadPlugin.class.php index 896fba0bed..a57a9f4031 100644 --- a/plugins/sfIsadPlugin/lib/sfIsadPlugin.class.php +++ b/plugins/sfIsadPlugin/lib/sfIsadPlugin.class.php @@ -71,25 +71,19 @@ public function __set($name, $value) switch ($name) { case 'languageNotes': $notes = $this->resource->getMemoryNotesByType(['noteTypeId' => QubitTerm::LANGUAGE_NOTE_ID]); + $note = $notes[0] ?? null; - if (is_countable($notes) && 0 === count($notes)) { - $missingNote = true; - $note = $notes; - } else { - $missingNote = false; - $note = $notes->offsetGet(0); - } - - if (0 == strlen($value)) { - // Delete note if it's available - if (!$missingNote && is_countable($note)) { + // Clear the stored note when the field is empty; otherwise create the + // note if necessary and update its content. + if (0 === strlen($value)) { + if (null !== $note) { $note->delete(); } break; } - if ($missingNote) { + if (null === $note) { $note = new QubitNote(); $note->typeId = QubitTerm::LANGUAGE_NOTE_ID; $note->userId = sfContext::getInstance()->user->getAttribute('user_id');