[REF] dev/core#2790 Initial creation of pdf trait
authorEileen McNaughton <emcnaughton@wikimedia.org>
Fri, 27 Aug 2021 23:55:59 +0000 (11:55 +1200)
committerEileen McNaughton <emcnaughton@wikimedia.org>
Fri, 27 Aug 2021 23:56:49 +0000 (11:56 +1200)
Only one function copied over for now - setDefaultValues

CRM/Activity/Form/Task/PDF.php
CRM/Case/Form/Task/PDF.php
CRM/Contact/Form/Task/PDF.php
CRM/Contact/Form/Task/PDFTrait.php [new file with mode: 0644]
CRM/Contribute/Form/Task/PDFLetter.php
CRM/Core/Form/Task/PDFLetterCommon.php
CRM/Event/Form/Task/PDF.php
CRM/Member/Form/Task/PDFLetter.php

index 1e21a8701eaf125a68037e4b9e787ccf39a13bf8..f4ce766ea131920df53c4a8ac18c2916e9b470bb 100644 (file)
@@ -14,6 +14,8 @@
  */
 class CRM_Activity_Form_Task_PDF extends CRM_Activity_Form_Task {
 
+  use CRM_Contact_Form_Task_PDFTrait;
+
   /**
    * Build all the data structures needed to build the form.
    */
@@ -22,15 +24,6 @@ class CRM_Activity_Form_Task_PDF extends CRM_Activity_Form_Task {
     CRM_Activity_Form_Task_PDFLetterCommon::preProcess($this);
   }
 
-  /**
-   * Set defaults for the pdf.
-   *
-   * @return array
-   */
-  public function setDefaultValues() {
-    return CRM_Activity_Form_Task_PDFLetterCommon::setDefaultValues();
-  }
-
   /**
    * Build the form object.
    */
index 380892b15d0ce2f31106666f6054de85a6b2f202..dc0feb9e1d74e0571a38fa7a723b99d74b490929 100644 (file)
@@ -19,6 +19,9 @@
  * This class provides the functionality to create PDF letter for a group of contacts.
  */
 class CRM_Case_Form_Task_PDF extends CRM_Case_Form_Task {
+
+  use CRM_Contact_Form_Task_PDFTrait;
+
   /**
    * All the existing templates in the system.
    *
@@ -40,15 +43,6 @@ class CRM_Case_Form_Task_PDF extends CRM_Case_Form_Task {
     $this->setContactIDs();
   }
 
-  /**
-   * Set defaults for the pdf.
-   *
-   * @return array
-   */
-  public function setDefaultValues() {
-    return CRM_Contact_Form_Task_PDFLetterCommon::setDefaultValues();
-  }
-
   /**
    * Build the form object.
    */
index 59b14006da8cc0e9ca6dd6eac5872a173578d101..efcdb829e03c0ffbd6880cc14cbc4e96a293b3e3 100644 (file)
@@ -20,6 +20,8 @@
  */
 class CRM_Contact_Form_Task_PDF extends CRM_Contact_Form_Task {
 
+  use CRM_Contact_Form_Task_PDFTrait;
+
   /**
    * All the existing templates in the system.
    *
@@ -72,13 +74,12 @@ class CRM_Contact_Form_Task_PDF extends CRM_Contact_Form_Task {
    * Set default values for the form.
    */
   public function setDefaultValues() {
-    $defaults = [];
+    $defaults = $this->getPDFDefaultValues();
     if (isset($this->_activityId)) {
       $params = ['id' => $this->_activityId];
       CRM_Activity_BAO_Activity::retrieve($params, $defaults);
       $defaults['html_message'] = $defaults['details'] ?? NULL;
     }
-    $defaults = $defaults + CRM_Contact_Form_Task_PDFLetterCommon::setDefaultValues();
     return $defaults;
   }
 
diff --git a/CRM/Contact/Form/Task/PDFTrait.php b/CRM/Contact/Form/Task/PDFTrait.php
new file mode 100644 (file)
index 0000000..2ebea66
--- /dev/null
@@ -0,0 +1,41 @@
+<?php
+/*
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
+ */
+
+/**
+ *
+ * @package CRM
+ * @copyright CiviCRM LLC https://civicrm.org/licensing
+ */
+
+/**
+ * This class provides the common functionality for tasks that send emails.
+ */
+trait CRM_Contact_Form_Task_PDFTrait {
+
+  /**
+   * Set defaults for the pdf.
+   *
+   * @return array
+   */
+  public function setDefaultValues(): array {
+    return $this->getPDFDefaultValues();
+  }
+
+  /**
+   * Set default values.
+   */
+  protected function getPDFDefaultValues(): array {
+    $defaultFormat = CRM_Core_BAO_PdfFormat::getDefaultValues();
+    $defaultFormat['format_id'] = $defaultFormat['id'];
+    return $defaultFormat;
+  }
+
+}
index 2c216ee0c8d465d1d11e1e6630200943f1fe0755..de315c04b3b73d26c952f5329631cadebf753f40 100644 (file)
@@ -20,6 +20,8 @@
  */
 class CRM_Contribute_Form_Task_PDFLetter extends CRM_Contribute_Form_Task {
 
+  use CRM_Contact_Form_Task_PDFTrait;
+
   /**
    * All the existing templates in the system.
    *
@@ -55,7 +57,7 @@ class CRM_Contribute_Form_Task_PDFLetter extends CRM_Contribute_Form_Task {
    * @return array
    */
   public function setDefaultValues() {
-    $defaults = [];
+    $defaults = $this->getPDFDefaultValues();
     if (isset($this->_activityId)) {
       $params = ['id' => $this->_activityId];
       CRM_Activity_BAO_Activity::retrieve($params, $defaults);
@@ -64,7 +66,6 @@ class CRM_Contribute_Form_Task_PDFLetter extends CRM_Contribute_Form_Task {
     else {
       $defaults['thankyou_update'] = 1;
     }
-    $defaults = $defaults + CRM_Contact_Form_Task_PDFLetterCommon::setDefaultValues();
     return $defaults;
   }
 
index e3eae678081093f392ed495e5219b6c8be3d68c4..9433cb7bbbad4832fb17f7109100b7465febf94f 100644 (file)
@@ -171,8 +171,11 @@ class CRM_Core_Form_Task_PDFLetterCommon {
 
   /**
    * Set default values.
+   *
+   * @deprecated
    */
   public static function setDefaultValues() {
+    CRM_Core_Error::deprecatedFunctionWarning('no alternative');
     $defaultFormat = CRM_Core_BAO_PdfFormat::getDefaultValues();
     $defaultFormat['format_id'] = $defaultFormat['id'];
     return $defaultFormat;
index 38b3ae049e4599bf3b8ed31095b6250fcbf76890..94efe16be3f8bd8f966449dd4bb8c9db7ddb0aa7 100644 (file)
@@ -23,6 +23,8 @@
  */
 class CRM_Event_Form_Task_PDF extends CRM_Event_Form_Task {
 
+  use CRM_Contact_Form_Task_PDFTrait;
+
   /**
    * Are we operating in "single mode", i.e. printing letter to one
    * specific participant?
@@ -67,15 +69,6 @@ class CRM_Event_Form_Task_PDF extends CRM_Event_Form_Task {
     CRM_Contact_Form_Task_PDFLetterCommon::postProcess($this);
   }
 
-  /**
-   * Set default values for the form.
-   *
-   * @return void
-   */
-  public function setDefaultValues() {
-    return CRM_Contact_Form_Task_PDFLetterCommon::setDefaultValues();
-  }
-
   /**
    * List available tokens for this form.
    *
index 3d6019a476d13e6160216d15b381c402c4ad8558..fef15f13d89883cc95e6c8e8ba2632d464de655f 100644 (file)
@@ -44,15 +44,6 @@ class CRM_Member_Form_Task_PDFLetter extends CRM_Member_Form_Task {
     CRM_Contact_Form_Task_PDFLetterCommon::preProcess($this);
   }
 
-  /**
-   * Set defaults.
-   * (non-PHPdoc)
-   * @see CRM_Core_Form::setDefaultValues()
-   */
-  public function setDefaultValues() {
-    return CRM_Contact_Form_Task_PDFLetterCommon::setDefaultValues();
-  }
-
   /**
    * Build the form object.
    *