From 638b5082aad4da51f5966bd61c45ce5110dc7d3b Mon Sep 17 00:00:00 2001 From: bluegeek9 <5614-bluegeek9@users.noreply.drupalcode.org> Date: Mon, 13 Jan 2025 12:25:30 -0600 Subject: [PATCH 1/4] Issue #3391014 by bluegeek9: Drupal 10 compatibility - Class Drupal\quick_node_clone\Form\QuickNodeCloneNodeForm extends @internal class Drupal\node\NodeForm --- phpstan.neon | 43 +++++++++++++------------------------------ 1 file changed, 13 insertions(+), 30 deletions(-) diff --git a/phpstan.neon b/phpstan.neon index 6cf6a52..810307b 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -1,32 +1,15 @@ includes: - - phar://phpstan.phar/conf/bleedingEdge.neon - parameters: - level: 0 - paths: - - . - ignoreErrors: - # new static() is a common pattern in Drupal core and contrib. - # https://www.drupal.org/docs/develop/development-tools/phpstan/handling-unsafe-usage-of-new-static - - - message: "#^Unsafe usage of new static#" - - - - message: "#^\\\\Drupal calls should be avoided in classes, use dependency injection instead$#" - count: 1 - path: src/Controller/QuickNodeCloneNodeController.php - - - - message: "#^Parameter \\$event of method Drupal\\\\quick_node_clone\\\\EventSubscriber\\\\AddressEventSubscriber\\:\\:onInitialValues\\(\\) has invalid type Drupal\\\\address\\\\Event\\\\InitialValuesEvent\\.$#" - count: 1 - path: src/EventSubscriber/AddressEventSubscriber.php - - - - message: "#^Class Drupal\\\\quick_node_clone\\\\Form\\\\QuickNodeCloneNodeForm extends @internal class Drupal\\\\node\\\\NodeForm\\.$#" - count: 1 - path: src/Form/QuickNodeCloneNodeForm.php - - - - message: "#^Method Drupal\\\\quick_node_clone\\\\Form\\\\QuickNodeCloneNodeForm\\:\\:save\\(\\) should return int but return statement is missing\\.$#" - count: 1 - path: src/Form/QuickNodeCloneNodeForm.php + level: 0 + fileExtensions: + - php + - module + - inc + - install + - theme + - profile + reportUnmatchedIgnoredErrors: false + ignoreErrors: + # new static() is a best practice in Drupal, so we cannot fix that. + - "#^Unsafe usage of new static#" + - "#@internal#" -- GitLab From 9ba8c4c37db3553a8674cec527a8be29c94f4f89 Mon Sep 17 00:00:00 2001 From: bluegeek9 <5614-bluegeek9@users.noreply.drupalcode.org> Date: Mon, 13 Jan 2025 12:28:46 -0600 Subject: [PATCH 2/4] Issue #3391014 by bluegeek9: Drupal 10 compatibility - Class Drupal\quick_node_clone\Form\QuickNodeCloneNodeForm extends @internal class Drupal\node\NodeForm --- src/Form/QuickNodeCloneNodeForm.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Form/QuickNodeCloneNodeForm.php b/src/Form/QuickNodeCloneNodeForm.php index bfc2e81..cee7257 100644 --- a/src/Form/QuickNodeCloneNodeForm.php +++ b/src/Form/QuickNodeCloneNodeForm.php @@ -84,6 +84,8 @@ class QuickNodeCloneNodeForm extends NodeForm { $this->messenger()->addError($this->t('The cloned post could not be saved.')); $form_state->setRebuild(); } + + return $insert; } } -- GitLab From 17e2bfe8bc4878493e58ceec82ef0fdbd9d243a2 Mon Sep 17 00:00:00 2001 From: bluegeek9 <5614-bluegeek9@users.noreply.drupalcode.org> Date: Mon, 13 Jan 2025 12:49:42 -0600 Subject: [PATCH 3/4] Issue #3391014 by bluegeek9: Drupal 10 compatibility - Class Drupal\quick_node_clone\Form\QuickNodeCloneNodeForm extends @internal class Drupal\node\NodeForm --- composer.json | 3 ++- .../QuickNodeCloneNodeController.php | 27 +++++++++++++++---- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/composer.json b/composer.json index 62d97b0..721470e 100644 --- a/composer.json +++ b/composer.json @@ -23,6 +23,7 @@ }, "require-dev": { "drupal/paragraphs": "1.x-dev", - "drupal/group": "^1 || ^2 || ^3" + "drupal/group": "^1 || ^2 || ^3", + "drupal/address": "^1" } } diff --git a/src/Controller/QuickNodeCloneNodeController.php b/src/Controller/QuickNodeCloneNodeController.php index 919c58b..7980c52 100644 --- a/src/Controller/QuickNodeCloneNodeController.php +++ b/src/Controller/QuickNodeCloneNodeController.php @@ -2,6 +2,7 @@ namespace Drupal\quick_node_clone\Controller; +use Drupal\Core\Config\ConfigFactoryInterface; use Drupal\Core\Datetime\DateFormatterInterface; use Drupal\Core\Entity\EntityRepositoryInterface; use Drupal\Core\Render\RendererInterface; @@ -23,6 +24,13 @@ class QuickNodeCloneNodeController extends NodeController { */ protected $qncEntityFormBuilder; + /** + * The settings. + * + * @var \Drupal\Core\Config\ImmutableConfig + */ + protected $settings; + /** * Constructs a NodeController object. * @@ -34,10 +42,19 @@ class QuickNodeCloneNodeController extends NodeController { * The entity repository. * @param \Drupal\quick_node_clone\Entity\QuickNodeCloneEntityFormBuilder $entity_form_builder * The entity form builder. + * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory + * The config factory. */ - public function __construct(DateFormatterInterface $date_formatter, RendererInterface $renderer, EntityRepositoryInterface $entity_repository, QuickNodeCloneEntityFormBuilder $entity_form_builder) { + public function __construct( + DateFormatterInterface $date_formatter, + RendererInterface $renderer, + EntityRepositoryInterface $entity_repository, + QuickNodeCloneEntityFormBuilder $entity_form_builder, + ConfigFactoryInterface $config_factory, + ) { parent::__construct($date_formatter, $renderer, $entity_repository); $this->qncEntityFormBuilder = $entity_form_builder; + $this->settings = $config_factory->get('quick_node_clone.settings'); } /** @@ -48,7 +65,8 @@ class QuickNodeCloneNodeController extends NodeController { $container->get('date.formatter'), $container->get('renderer'), $container->get('entity.repository'), - $container->get('quick_node_clone.entity.form_builder') + $container->get('quick_node_clone.entity.form_builder'), + $container->get('config.factory'), ); } @@ -92,9 +110,8 @@ class QuickNodeCloneNodeController extends NodeController { */ public function clonePageTitle(Node $node) { $prepend_text = ""; - $config = \Drupal::config('quick_node_clone.settings'); - if (!empty($config->get('text_to_prepend_to_title'))) { - $prepend_text = $config->get('text_to_prepend_to_title') . " "; + if (!empty($this->settings->get('text_to_prepend_to_title'))) { + $prepend_text = $this->settings->get('text_to_prepend_to_title') . " "; } return $prepend_text . $node->getTitle(); } -- GitLab From 0f142640e63ccf89705d180bfa270597cf8c7986 Mon Sep 17 00:00:00 2001 From: bluegeek9 <5614-bluegeek9@users.noreply.drupalcode.org> Date: Mon, 13 Jan 2025 12:59:55 -0600 Subject: [PATCH 4/4] Issue #3391014 by bluegeek9: Drupal 10 compatibility - Class Drupal\quick_node_clone\Form\QuickNodeCloneNodeForm extends @internal class Drupal\node\NodeForm --- composer.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 721470e..62d97b0 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,6 @@ }, "require-dev": { "drupal/paragraphs": "1.x-dev", - "drupal/group": "^1 || ^2 || ^3", - "drupal/address": "^1" + "drupal/group": "^1 || ^2 || ^3" } } -- GitLab