From ca648118a1bf8a6bb574d501c9cd0e07b3ebc895 Mon Sep 17 00:00:00 2001 From: "dhruv.mittal" <dhruv210803@gmail.com> Date: Wed, 5 Mar 2025 14:18:43 +0530 Subject: [PATCH 1/3] Issue #3510517: Call to Undefined Method. --- modules/wsdata_field/wsdata_field.module | 29 +++++++++++------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/modules/wsdata_field/wsdata_field.module b/modules/wsdata_field/wsdata_field.module index db9d42c..632224e 100644 --- a/modules/wsdata_field/wsdata_field.module +++ b/modules/wsdata_field/wsdata_field.module @@ -124,26 +124,23 @@ function wsdata_field_entity_load(array $entities, $entity_type_id) { */ function wsdata_field_form_alter(&$form, FormStateInterface $form_state, $form_id) { if ('node_delete_multiple_confirm_form' !== $form_id && (preg_match('/^node_(.*)_edit_form/', $form_id) || preg_match('/^node_(.*)_form/', $form_id))) { - $entity = $form_state->getFormObject()->getEntity(); - if ($entity->getEntityTypeId() == 'node') { - $fields = $entity->getFieldDefinitions(); - foreach ($fields as $field) { - // Get the fields storage definitions. - $field_storage = $field->getFieldStorageDefinition(); - // Check if it has the custom storage flag set to true. - if ($field_storage->hasCustomStorage()) { - // Check to make sure the object is of type FieldStorageConfig. - if (is_a($field_storage, 'Drupal\field\Entity\FieldStorageConfig')) { - // Fetch the wsfield config entity. - $wsfield_config = \Drupal::service('entity_type.manager')->getStorage('wsfield_config')->load($field_storage->get('field_name')); - if ($wsfield_config != NULL) { - // Make the field hidden by adding a class. - $form[$field_storage->get('field_name')]['#attributes']['class'][] = 'hidden'; + $form_object = $form_state->getFormObject(); + // Ensure the form object has a getEntity method before calling it. + if ($form_object instanceof \Drupal\Core\Entity\EntityFormInterface) { + $entity = $form_object->getEntity(); + if ($entity->getEntityTypeId() == 'node') { + $fields = $entity->getFieldDefinitions(); + foreach ($fields as $field) { + $field_storage = $field->getFieldStorageDefinition(); + if ($field_storage->hasCustomStorage() && $field_storage instanceof \Drupal\field\Entity\FieldStorageConfig) { + $wsfield_config = \Drupal::service('entity_type.manager')->getStorage('wsfield_config')->load($field_storage->get('field_name')); + if ($wsfield_config !== NULL) { + $form[$field_storage->get('field_name')]['#attributes']['class'][] = 'hidden'; + } } } } } - } } } -- GitLab From 4328e315c6e3ee9c070ca12a1fb7dd18cce01e37 Mon Sep 17 00:00:00 2001 From: Francois Xavier Lemieux <flemieux@coldfrontlabs.ca> Date: Fri, 21 Mar 2025 17:14:13 +0000 Subject: [PATCH 2/3] fix(form): update content entity check, fix namespaced classes --- modules/wsdata_field/wsdata_field.module | 28 +++++++++++++----------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/modules/wsdata_field/wsdata_field.module b/modules/wsdata_field/wsdata_field.module index 632224e..85d1046 100644 --- a/modules/wsdata_field/wsdata_field.module +++ b/modules/wsdata_field/wsdata_field.module @@ -7,10 +7,12 @@ use Drupal\Core\Entity\ContentEntityInterface; use Drupal\Core\Entity\EntityInterface; +use Drupal\Core\Entity\EntityFormInterface; use Drupal\Core\Field\FieldConfigInterface; use Drupal\Core\Field\FieldStorageDefinitionInterface; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Url; +use Drupal\field\Entity\FieldStorageConfig; use Drupal\field_ui\FieldUI; use Drupal\wsdata_field\Entity\WSFieldConfig; @@ -124,23 +126,23 @@ function wsdata_field_entity_load(array $entities, $entity_type_id) { */ function wsdata_field_form_alter(&$form, FormStateInterface $form_state, $form_id) { if ('node_delete_multiple_confirm_form' !== $form_id && (preg_match('/^node_(.*)_edit_form/', $form_id) || preg_match('/^node_(.*)_form/', $form_id))) { - $form_object = $form_state->getFormObject(); - // Ensure the form object has a getEntity method before calling it. - if ($form_object instanceof \Drupal\Core\Entity\EntityFormInterface) { - $entity = $form_object->getEntity(); - if ($entity->getEntityTypeId() == 'node') { - $fields = $entity->getFieldDefinitions(); - foreach ($fields as $field) { - $field_storage = $field->getFieldStorageDefinition(); - if ($field_storage->hasCustomStorage() && $field_storage instanceof \Drupal\field\Entity\FieldStorageConfig) { - $wsfield_config = \Drupal::service('entity_type.manager')->getStorage('wsfield_config')->load($field_storage->get('field_name')); - if ($wsfield_config !== NULL) { - $form[$field_storage->get('field_name')]['#attributes']['class'][] = 'hidden'; - } + $form_object = $form_state->getFormObject(); + // Ensure the form object has a getEntity method before calling it. + if ($form_object instanceof EntityFormInterface) { + $entity = $form_object->getEntity(); + if ($entity instanceof ContentEntityInterface) { + $fields = $entity->getFieldDefinitions(); + foreach ($fields as $field) { + $field_storage = $field->getFieldStorageDefinition(); + if ($field_storage->hasCustomStorage() && $field_storage instanceof FieldStorageConfig) { + $wsfield_config = \Drupal::service('entity_type.manager')->getStorage('wsfield_config')->load($field_storage->get('field_name')); + if ($wsfield_config !== NULL) { + $form[$field_storage->get('field_name')]['#attributes']['class'][] = 'hidden'; } } } } + } } } -- GitLab From 749ad611b283482ddb394f27d76e9f9d14c31a04 Mon Sep 17 00:00:00 2001 From: Francois Xavier Lemieux <flemieux@coldfrontlabs.ca> Date: Mon, 24 Mar 2025 14:34:48 +0000 Subject: [PATCH 3/3] fix(code): restore code comments --- modules/wsdata_field/wsdata_field.module | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/wsdata_field/wsdata_field.module b/modules/wsdata_field/wsdata_field.module index 85d1046..0b7bd9b 100644 --- a/modules/wsdata_field/wsdata_field.module +++ b/modules/wsdata_field/wsdata_field.module @@ -133,10 +133,15 @@ function wsdata_field_form_alter(&$form, FormStateInterface $form_state, $form_i if ($entity instanceof ContentEntityInterface) { $fields = $entity->getFieldDefinitions(); foreach ($fields as $field) { + // Get the fields storage definitions. $field_storage = $field->getFieldStorageDefinition(); + // Check if custom storage flag set to true and + // the field storage object has correct class. if ($field_storage->hasCustomStorage() && $field_storage instanceof FieldStorageConfig) { + // Fetch the wsfield config entity. $wsfield_config = \Drupal::service('entity_type.manager')->getStorage('wsfield_config')->load($field_storage->get('field_name')); if ($wsfield_config !== NULL) { + // Make the field hidden by adding a class. $form[$field_storage->get('field_name')]['#attributes']['class'][] = 'hidden'; } } -- GitLab