[Ref] Separate url path calculation into the relevant classes
authoreileen <emcnaughton@wikimedia.org>
Wed, 16 Sep 2020 03:53:39 +0000 (15:53 +1200)
committereileen <emcnaughton@wikimedia.org>
Wed, 16 Sep 2020 04:50:50 +0000 (16:50 +1200)
CRM/Event/Form/Participant.php
CRM/Event/Form/Task/Register.php

index 5697924b8799e12c920daba3cac6207086b148dd..71c3204b8ce7dffd8872fb53e657078da0e3f9e4 100644 (file)
@@ -338,55 +338,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment
       return CRM_Event_Form_EventFees::preProcess($this);
     }
 
-    //check the mode when this form is called either single or as
-    //search task action
-    if ($this->_single) {
-      $this->assign('urlPath', 'civicrm/contact/view/participant');
-      if (!$this->_id && !$this->_contactId) {
-        $breadCrumbs = [
-          [
-            'title' => ts('CiviEvent Dashboard'),
-            'url' => CRM_Utils_System::url('civicrm/event', 'reset=1'),
-          ],
-        ];
-
-        CRM_Utils_System::appendBreadCrumb($breadCrumbs);
-      }
-    }
-    else {
-      //set the appropriate action
-      $context = $this->get('context');
-      $urlString = 'civicrm/contact/search';
-      $this->_action = CRM_Core_Action::BASIC;
-      switch ($context) {
-        case 'advanced':
-          $urlString = 'civicrm/contact/search/advanced';
-          $this->_action = CRM_Core_Action::ADVANCED;
-          break;
-
-        case 'builder':
-          $urlString = 'civicrm/contact/search/builder';
-          $this->_action = CRM_Core_Action::PROFILE;
-          break;
-
-        case 'basic':
-          $urlString = 'civicrm/contact/search/basic';
-          $this->_action = CRM_Core_Action::BASIC;
-          break;
-
-        case 'custom':
-          $urlString = 'civicrm/contact/search/custom';
-          $this->_action = CRM_Core_Action::COPY;
-          break;
-      }
-      CRM_Contact_Form_Task::preProcessCommon($this);
-
-      $this->_contactId = NULL;
-
-      //set ajax path, this used for custom data building
-      $this->assign('urlPath', $urlString);
-      $this->assign('urlPathVar', "_qf_Participant_display=true&qfKey={$this->controller->_key}");
-    }
+    $this->assignUrlPath();
 
     $this->assign('single', $this->_single);
 
@@ -2329,4 +2281,21 @@ INNER JOIN civicrm_price_field_value value ON ( value.id = lineItem.price_field_
     return $feeDetails;
   }
 
+  /**
+   * Assign the url path to the template.
+   */
+  protected function assignUrlPath() {
+    $this->assign('urlPath', 'civicrm/contact/view/participant');
+    if (!$this->_id && !$this->_contactId) {
+      $breadCrumbs = [
+        [
+          'title' => ts('CiviEvent Dashboard'),
+          'url' => CRM_Utils_System::url('civicrm/event', 'reset=1'),
+        ],
+      ];
+
+      CRM_Utils_System::appendBreadCrumb($breadCrumbs);
+    }
+  }
+
 }
index af434f4fd45606297607b5d0c75c4d9b13732a4f..b13a5619db2486f586ca78c5b317e6f01641a239 100644 (file)
@@ -37,4 +37,42 @@ class CRM_Event_Form_Task_Register extends CRM_Event_Form_Participant {
    */
   public $_single = FALSE;
 
+  /**
+   * Assign the url path to the template.
+   */
+  protected function assignUrlPath() {
+    //set the appropriate action
+    $context = $this->get('context');
+    $urlString = 'civicrm/contact/search';
+    $this->_action = CRM_Core_Action::BASIC;
+    switch ($context) {
+      case 'advanced':
+        $urlString = 'civicrm/contact/search/advanced';
+        $this->_action = CRM_Core_Action::ADVANCED;
+        break;
+
+      case 'builder':
+        $urlString = 'civicrm/contact/search/builder';
+        $this->_action = CRM_Core_Action::PROFILE;
+        break;
+
+      case 'basic':
+        $urlString = 'civicrm/contact/search/basic';
+        $this->_action = CRM_Core_Action::BASIC;
+        break;
+
+      case 'custom':
+        $urlString = 'civicrm/contact/search/custom';
+        $this->_action = CRM_Core_Action::COPY;
+        break;
+    }
+    CRM_Contact_Form_Task::preProcessCommon($this);
+
+    $this->_contactId = NULL;
+
+    //set ajax path, this used for custom data building
+    $this->assign('urlPath', $urlString);
+    $this->assign('urlPathVar', "_qf_Participant_display=true&qfKey={$this->controller->_key}");
+  }
+
 }