diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..64b372da1c3f8fc7e9e12173dd274a3d421db08c --- /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 258d4a343296d0b47f35bae74fb2ccd6b550bc3a..6819170d2123073331fd1cb3e369091cd3094c24 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 f0c84cab443952e0bcd265532241cce21c5762c4..77cf355ede4ad36bc3021a99fd7a2e7cdc7996bd 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 8709bba68d39f775fba84b50a5fbd08955ebdd1b..8a5004310087451710fd870a86b758c37c3c4c6d 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 8ac358845a902a9968900d438c83c03721d5aefa..46aa77b4be0a3ec2c520cb7cfbd24167a92583a2 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.