Deprecate `CRM_Mailing_BAO_Mailing::del()`
authorAidan Saunders <aidan.saunders@squiffle.uk>
Tue, 22 Nov 2022 12:28:26 +0000 (12:28 +0000)
committerAidan Saunders <aidan.saunders@squiffle.uk>
Tue, 22 Nov 2022 12:28:26 +0000 (12:28 +0000)
CRM/Mailing/BAO/Mailing.php
CRM/Mailing/Form/Browse.php
CRM/Mailing/Page/Browse.php

index 3d064f7e46a32c4ca5b4298135227ced7c9b0079..7b3d3564ade83b15a93d4fb52978e89a472a60f8 100644 (file)
@@ -22,7 +22,7 @@ require_once 'Mail/mime.php';
 /**
  * Class CRM_Mailing_BAO_Mailing
  */
-class CRM_Mailing_BAO_Mailing extends CRM_Mailing_DAO_Mailing {
+class CRM_Mailing_BAO_Mailing extends CRM_Mailing_DAO_Mailing implements \Civi\Core\HookInterface {
 
   /**
    * An array that holds the complete templates
@@ -2403,26 +2403,23 @@ LEFT JOIN civicrm_mailing_group g ON g.mailing_id   = m.id
    *   Id of the mail to delete.
    *
    * @return void
+   *
+   * @deprecated
    */
   public static function del($id) {
-    if (empty($id)) {
-      throw new CRM_Core_Exception(ts('No id passed to mailing del function'));
-    }
-
-    CRM_Utils_Hook::pre('delete', 'Mailing', $id);
-
-    // delete all file attachments
-    CRM_Core_BAO_File::deleteEntityFile('civicrm_mailing',
-      $id
-    );
-
-    $dao = new CRM_Mailing_DAO_Mailing();
-    $dao->id = $id;
-    $dao->delete();
-
-    CRM_Core_Session::setStatus(ts('Selected mailing has been deleted.'), ts('Deleted'), 'success');
+    static::deleteRecord(['id' => $id]);
+  }
 
-    CRM_Utils_Hook::post('delete', 'Mailing', $id, $dao);
+  /**
+   * Callback for hook_civicrm_pre().
+   * @param \Civi\Core\Event\PreEvent $event
+   * @throws CRM_Core_Exception
+   */
+  public static function self_hook_civicrm_pre(\Civi\Core\Event\PreEvent $event) {
+    if ($event->action === 'delete' && $event->id) {
+      // Delete all file attachments
+      CRM_Core_BAO_File::deleteEntityFile('civicrm_mailing', $event->id);
+    }
   }
 
   /**
index 4e870386ef24a5e90b7d2fc1bb02b64113bb9930..9b221b4de85cc7f9ac06539d01172c114fc575b9 100644 (file)
@@ -62,6 +62,7 @@ class CRM_Mailing_Form_Browse extends CRM_Core_Form {
   public function postProcess() {
     if ($this->_action & CRM_Core_Action::DELETE) {
       CRM_Mailing_BAO_Mailing::del($this->_mailingId);
+      CRM_Core_Session::setStatus(ts('Selected mailing has been deleted.'), ts('Deleted'), 'success');
     }
     elseif ($this->_action & CRM_Core_Action::DISABLE) {
       CRM_Mailing_BAO_MailingJob::cancel($this->_mailingId);
index 46ad7481e51c9eb8929cc1b531c806341b14bce7..ff8fde09ee2c46986f456c883a44335760da67bd 100644 (file)
@@ -200,6 +200,7 @@ class CRM_Mailing_Page_Browse extends CRM_Core_Page {
         }
 
         CRM_Mailing_BAO_Mailing::del($this->_mailingId);
+        CRM_Core_Session::setStatus(ts('Selected mailing has been deleted.'), ts('Deleted'), 'success');
         CRM_Utils_System::redirect($context);
       }
       else {