From 7cef5ec3e5350e40bd27a14b6c90deac436de409 Mon Sep 17 00:00:00 2001
From: anjaliprasannan <anjaliprasannan243@gmail.com>
Date: Wed, 19 Feb 2025 12:30:23 +0530
Subject: [PATCH 1/2] #3507593: Array check added.

---
 modules/ai_content_suggestions/src/Form/SettingsForm.php | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/modules/ai_content_suggestions/src/Form/SettingsForm.php b/modules/ai_content_suggestions/src/Form/SettingsForm.php
index d9ac318b9..f370d35e3 100644
--- a/modules/ai_content_suggestions/src/Form/SettingsForm.php
+++ b/modules/ai_content_suggestions/src/Form/SettingsForm.php
@@ -94,7 +94,8 @@ final class SettingsForm extends ConfigFormBase {
 
     foreach ($this->pluginManager->getDefinitions() as $id => $definition) {
       $value = $form_state->getValue($id);
-      if ($value[$id . '_enabled']) {
+      // Ensure $value is an array before accessing keys.
+      if (is_array($value) && !empty($value[$id . '_enabled'])) {
         $values[$id] = $value[$id . '_model'];
       }
       /** @var \Drupal\ai_content_suggestions\AiContentSuggestionsInterface $plugin */
-- 
GitLab


From aae2ceee10e43c6d58ff7a15ba9203d1f32ae5f6 Mon Sep 17 00:00:00 2001
From: Stephen Rees <39486-srees@users.noreply.drupalcode.org>
Date: Thu, 20 Feb 2025 22:31:45 +0000
Subject: [PATCH 2/2] Move form value retrieval inside isAvailable check

---
 .../ai_content_suggestions/src/Form/SettingsForm.php   | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/modules/ai_content_suggestions/src/Form/SettingsForm.php b/modules/ai_content_suggestions/src/Form/SettingsForm.php
index f370d35e3..fbf46b6c9 100644
--- a/modules/ai_content_suggestions/src/Form/SettingsForm.php
+++ b/modules/ai_content_suggestions/src/Form/SettingsForm.php
@@ -93,14 +93,14 @@ final class SettingsForm extends ConfigFormBase {
     $values = [];
 
     foreach ($this->pluginManager->getDefinitions() as $id => $definition) {
-      $value = $form_state->getValue($id);
-      // Ensure $value is an array before accessing keys.
-      if (is_array($value) && !empty($value[$id . '_enabled'])) {
-        $values[$id] = $value[$id . '_model'];
-      }
       /** @var \Drupal\ai_content_suggestions\AiContentSuggestionsInterface $plugin */
       if ($plugin = $this->pluginManager->createInstance($id, $definition)) {
         if ($plugin->isAvailable()) {
+          $value = $form_state->getValue($id);
+          // Ensure $value is an array before accessing keys.
+          if (is_array($value) && !empty($value[$id . '_enabled'])) {
+            $values[$id] = $value[$id . '_model'];
+          }
           if (method_exists($plugin, 'saveSettingsForm')) {
             $plugin->saveSettingsForm($form, $form_state);
           }
-- 
GitLab