From 018348aae3f782fdd2ba39200906c0b331e16ab0 Mon Sep 17 00:00:00 2001 From: project update bot <66574-Project-Update-Bot@users.noreply.drupalcode.org> Date: Fri, 27 Dec 2024 06:34:49 +0000 Subject: [PATCH] Issue #3430542 by manishvaity, shashi_shekhar_18oct: Automated Drupal 11 compatibility fixes for fieldblock --- .gitlab-ci.yml | 49 +++++++++++++++++++++ fieldblock.info.yml | 2 +- src/Form/FieldBlockConfigForm.php | 11 ++--- src/Plugin/Block/FieldBlock.php | 12 +++-- src/Plugin/Derivative/FieldBlockDeriver.php | 2 +- 5 files changed, 62 insertions(+), 14 deletions(-) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..64b372d --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,49 @@ +# This file is a template, and might need editing before it works on your project. +# This is a sample GitLab CI/CD configuration file that should run without any modifications. +# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts, +# it uses echo commands to simulate the pipeline execution. +# +# A pipeline is composed of independent jobs that run scripts, grouped into stages. +# Stages run in sequential order, but jobs within stages run in parallel. +# +# For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages +# +# You can copy and paste this template into a new `.gitlab-ci.yml` file. +# You should not add this template to an existing `.gitlab-ci.yml` file by using the `include:` keyword. +# +# To contribute improvements to CI/CD templates, please follow the Development guide at: +# https://docs.gitlab.com/ee/development/cicd/templates.html +# This specific template is located at: +# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml + +stages: # List of stages for jobs, and their order of execution + - build + - test + - deploy + +build-job: # This job runs in the build stage, which runs first. + stage: build + script: + - echo "Compiling the code..." + - echo "Compile complete." + +unit-test-job: # This job runs in the test stage. + stage: test # It only starts when the job in the build stage completes successfully. + script: + - echo "Running unit tests... This will take about 60 seconds." + - sleep 60 + - echo "Code coverage is 90%" + +lint-test-job: # This job also runs in the test stage. + stage: test # It can run at the same time as unit-test-job (in parallel). + script: + - echo "Linting code... This will take about 10 seconds." + - sleep 10 + - echo "No lint issues found." + +deploy-job: # This job runs in the deploy stage. + stage: deploy # It only runs when *both* jobs in the test stage complete successfully. + environment: production + script: + - echo "Deploying application..." + - echo "Application successfully deployed." diff --git a/fieldblock.info.yml b/fieldblock.info.yml index 258d4a3..6819170 100644 --- a/fieldblock.info.yml +++ b/fieldblock.info.yml @@ -1,7 +1,7 @@ name: Field as Block description: 'Display fields of the current entity as blocks.' type: module -core_version_requirement: ^8.7.7 || ^9 || ^10 +core_version_requirement: ^9 || ^10 || ^11 || ^12 dependencies: - drupal:block configure: fieldblock.field_block_config_form diff --git a/src/Form/FieldBlockConfigForm.php b/src/Form/FieldBlockConfigForm.php index f0c84ca..77cf355 100644 --- a/src/Form/FieldBlockConfigForm.php +++ b/src/Form/FieldBlockConfigForm.php @@ -8,10 +8,9 @@ use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\Extension\ModuleHandlerInterface; use Drupal\Core\Form\ConfigFormBase; use Drupal\Core\Form\FormStateInterface; -use Drupal\Core\Config\ConfigFactoryInterface; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Drupal\fieldblock\Controller\FieldBlockController; use Drupal\fieldblock\BlockEntityStorage; +use Drupal\fieldblock\Controller\FieldBlockController; +use Symfony\Component\DependencyInjection\ContainerInterface; /** * Configuration for select Entity types and delete blocks of unused types. @@ -56,8 +55,6 @@ class FieldBlockConfigForm extends ConfigFormBase { /** * Constructs a \Drupal\fieldblock\Form\FieldBlockConfigForm object. * - * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory - * The factory for configuration objects. * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager * The entity type manager. * @param \Drupal\fieldblock\BlockEntityStorage $storage @@ -67,8 +64,7 @@ class FieldBlockConfigForm extends ConfigFormBase { * @param \Drupal\Core\Block\BlockManager $blockManager * The block manager. */ - public function __construct(ConfigFactoryInterface $config_factory, EntityTypeManagerInterface $entityTypeManager, BlockEntityStorage $storage, ModuleHandlerInterface $moduleHandler, BlockManager $blockManager) { - parent::__construct($config_factory); + public function __construct(EntityTypeManagerInterface $entityTypeManager, BlockEntityStorage $storage, ModuleHandlerInterface $moduleHandler, BlockManager $blockManager) { $this->entityTypeManager = $entityTypeManager; $this->storage = $storage; $this->fieldblockController = new FieldBlockController(); @@ -81,7 +77,6 @@ class FieldBlockConfigForm extends ConfigFormBase { */ public static function create(ContainerInterface $container) { return new static( - $container->get('config.factory'), $container->get('entity_type.manager'), $container->get('fieldblock.block_storage'), $container->get('module_handler'), diff --git a/src/Plugin/Block/FieldBlock.php b/src/Plugin/Block/FieldBlock.php index 8709bba..8a50043 100644 --- a/src/Plugin/Block/FieldBlock.php +++ b/src/Plugin/Block/FieldBlock.php @@ -15,8 +15,8 @@ use Drupal\Core\Field\FormatterInterface; use Drupal\Core\Field\FormatterPluginManager; use Drupal\Core\Form\FormHelper; use Drupal\Core\Form\FormStateInterface; -use Drupal\Core\Language\LanguageManagerInterface; use Drupal\Core\Form\SubformStateInterface; +use Drupal\Core\Language\LanguageManagerInterface; use Drupal\Core\Plugin\ContainerFactoryPluginInterface; use Drupal\Core\Routing\RouteMatchInterface; use Drupal\Core\Session\AccountInterface; @@ -158,7 +158,7 @@ class FieldBlock extends BlockBase implements ContainerFactoryPluginInterface { $options = $this->formatterPluginManager->getOptions($field_definition->getType()); foreach ($options as $id => $label) { $definition = $this->formatterPluginManager->getDefinition($id, FALSE); - $formatter_plugin_class = isset($definition['class']) ? $definition['class'] : NULL; + $formatter_plugin_class = $definition['class'] ?? NULL; $applicable = $formatter_plugin_class instanceof FormatterInterface && $formatter_plugin_class::isApplicable($field_definition); if ($applicable) { unset($options[$id]); @@ -338,8 +338,12 @@ class FieldBlock extends BlockBase implements ContainerFactoryPluginInterface { public function blockSubmit($form, FormStateInterface $form_state) { $this->configuration['label_from_field'] = $form_state->getValue('label_from_field'); $this->configuration['field_name'] = $form_state->getValue('field_name'); - $this->configuration['formatter_id'] = $form_state->getValue(['formatter', 'id'], ''); - $this->configuration['formatter_settings'] = $form_state->getValue(['formatter', 'settings'], []); + $this->configuration['formatter_id'] = $form_state->getValue(['formatter', + 'id', + ], ''); + $this->configuration['formatter_settings'] = $form_state->getValue(['formatter', + 'settings', + ], []); } /** diff --git a/src/Plugin/Derivative/FieldBlockDeriver.php b/src/Plugin/Derivative/FieldBlockDeriver.php index 8ac3588..46aa77b 100644 --- a/src/Plugin/Derivative/FieldBlockDeriver.php +++ b/src/Plugin/Derivative/FieldBlockDeriver.php @@ -6,8 +6,8 @@ use Drupal\Component\Plugin\Derivative\DeriverBase; use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\Plugin\Discovery\ContainerDeriverInterface; use Drupal\Core\StringTranslation\StringTranslationTrait; -use Symfony\Component\DependencyInjection\ContainerInterface; use Drupal\fieldblock\Controller\FieldBlockController; +use Symfony\Component\DependencyInjection\ContainerInterface; /** * Provides block plugin definitions for fieldblock blocks. -- GitLab