From cd2ebdf72fbadd5fa488be7ff43daeb727588614 Mon Sep 17 00:00:00 2001
From: Liam Morland <lkmorlan@uwaterloo.ca>
Date: Fri, 13 May 2022 17:06:40 -0400
Subject: [PATCH] Issue #3280433: Create hook_fillpdf_form_form_pre_alter()

---
 fillpdf.api.php              | 19 +++++++++++++++++++
 src/Form/FillPdfFormForm.php |  3 +++
 2 files changed, 22 insertions(+)

diff --git a/fillpdf.api.php b/fillpdf.api.php
index a4319d0..fc8e1f5 100644
--- a/fillpdf.api.php
+++ b/fillpdf.api.php
@@ -5,11 +5,30 @@
  * Hooks related to FillPDF module.
  */
 
+use Drupal\fillpdf\Form\FillPdfFormForm;
+
 /**
  * @addtogroup hooks
  * @{
  */
 
+/**
+ * Alter a FillPdfFormForm prior to building its edit form.
+ *
+ * This is triggered in FillPdfFormForm::form().
+ *
+ * @param Drupal\fillpdf\Form\FillPdfFormForm $fillpdf_form_form
+ *   The FillPdfFormForm object to alter.
+ */
+function hook_fillpdf_form_form_pre_form_build_alter(FillPdfFormForm $fillpdf_form_form): void {
+  // Set the default entity type for any FillPDF form to 'webform'.
+  $fillpdf_form = $fillpdf_form_form->getEntity();
+  $default_entity_type = $fillpdf_form->getDefaultEntityType();
+  if (!$default_entity_type) {
+    $fillpdf_form->set('default_entity_type', 'webform')->save();
+  }
+}
+
 /**
  * Alter the $context in HandlePdfController::populatePdf().
  *
diff --git a/src/Form/FillPdfFormForm.php b/src/Form/FillPdfFormForm.php
index a9dd549..86539ad 100644
--- a/src/Form/FillPdfFormForm.php
+++ b/src/Form/FillPdfFormForm.php
@@ -144,6 +144,9 @@ class FillPdfFormForm extends ContentEntityForm {
    * {@inheritdoc}
    */
   public function form(array $form, FormStateInterface $form_state) {
+    // Create hook_fillpdf_form_form_pre_form_build_alter().
+    $this->moduleHandler->alter('fillpdf_form_form_pre_form_build', $this);
+
     $form = parent::form($form, $form_state);
 
     /** @var \Drupal\fillpdf\FillPdfFormInterface $fillpdf_form */
-- 
GitLab