Non functional changes towards shared functions in Core_Form_Task
authorMatthew Wire <devel@mrwire.co.uk>
Fri, 15 Jun 2018 09:23:33 +0000 (10:23 +0100)
committerMatthew Wire <devel@mrwire.co.uk>
Mon, 9 Jul 2018 22:03:29 +0000 (23:03 +0100)
CRM/Case/Form/Task.php
CRM/Contact/Form/Task.php
CRM/Core/Form/Task.php
CRM/Export/Form/Select.php

index 398cdffd044dac994f727d689d68123e4a5e9c85..513ee62e0502e8ff977078f5a2210063df4391aa 100644 (file)
@@ -40,13 +40,6 @@ class CRM_Case_Form_Task extends CRM_Core_Form_Task {
   // Must be set to entity shortname (eg. event)
   static $entityShortname = 'case';
 
-  /**
-   * Must be set to queryMode
-   *
-   * @var int
-   */
-  static $queryMode = CRM_Contact_BAO_Query::MODE_CASE;
-
   /**
    * @inheritDoc
    */
@@ -56,4 +49,13 @@ class CRM_Case_Form_Task extends CRM_Core_Form_Task {
     );
   }
 
+  /**
+   * Get the query mode (eg. CRM_Core_BAO_Query::MODE_CASE)
+   *
+   * @return int
+   */
+  public function getQueryMode() {
+    return CRM_Contact_BAO_Query::MODE_CASE;
+  }
+
 }
index 2ccf1552eb88921d07971527f12bddb6bb9c2792..493bd759cbac122816bac4e394dd651fa09d87cc 100644 (file)
@@ -94,6 +94,8 @@ class CRM_Contact_Form_Task extends CRM_Core_Form_Task {
    * Common pre-processing function.
    *
    * @param CRM_Core_Form $form
+   *
+   * @throws \CRM_Core_Exception
    */
   public static function preProcessCommon(&$form) {
     $form->_contactIds = array();
index d842232921ad5d2677d5eb8d35c69d0af8e9a083..41a8912ba2c81e34eaf2c998794888fdf80b8c73 100644 (file)
@@ -84,13 +84,6 @@ abstract class CRM_Core_Form_Task extends CRM_Core_Form {
    */
   static $entityShortname = NULL;
 
-  /**
-   * Must be set to queryMode
-   *
-   * @var int
-   */
-  static $queryMode = CRM_Contact_BAO_Query::MODE_CONTACTS;
-
   /**
    * Build all the data structures needed to build the form.
    *
@@ -103,7 +96,7 @@ abstract class CRM_Core_Form_Task extends CRM_Core_Form {
   /**
    * Common pre-processing function.
    *
-   * @param CRM_Core_Form $form
+   * @param CRM_Core_Form_Task $form
    *
    * @throws \CRM_Core_Exception
    */
@@ -132,7 +125,7 @@ abstract class CRM_Core_Form_Task extends CRM_Core_Form {
         $sortOrder = $form->get(CRM_Utils_Sort::SORT_ORDER);
       }
 
-      $query = new CRM_Contact_BAO_Query($queryParams, NULL, NULL, FALSE, FALSE, $form::$queryMode);
+      $query = new CRM_Contact_BAO_Query($queryParams, NULL, NULL, FALSE, FALSE, $form->getQueryMode());
       $query->_distinctComponentClause = " ( " . $form::$tableName . ".id )";
       $query->_groupByComponentClause = " GROUP BY " . $form::$tableName . ".id ";
       $result = $query->searchQuery(0, 0, $sortOrder);
@@ -210,4 +203,14 @@ abstract class CRM_Core_Form_Task extends CRM_Core_Form {
     );
   }
 
+  /**
+   * Get the query mode (eg. CRM_Core_BAO_Query::MODE_CASE)
+   * Should be overridden by child classes in most cases
+   *
+   * @return int
+   */
+  public function getQueryMode() {
+    return CRM_Contact_BAO_Query::MODE_CONTACTS;
+  }
+
 }
index 64998a52c708ea862407cffd371695f58d6f501d..a44149c66649456321e7239476004df5a3829ac7 100644 (file)
@@ -94,23 +94,14 @@ class CRM_Export_Form_Select extends CRM_Core_Form_Task {
     $this->_componentIds = array();
     $this->_componentClause = NULL;
 
-    $stateMachine = $this->controller->getStateMachine();
-    $formName = CRM_Utils_System::getClassName($stateMachine);
-    $isStandalone = $formName == 'CRM_Export_StateMachine_Standalone';
-
     // we need to determine component export
-    $componentName = explode('_', $formName);
     $components = array('Contact', 'Contribute', 'Member', 'Event', 'Pledge', 'Case', 'Grant', 'Activity');
 
-    if ($isStandalone) {
-      $componentName = array('CRM', $this->controller->get('entity'));
-    }
-
-    $componentMode = $this->controller->get('component_mode');
     // FIXME: This should use a modified version of CRM_Contact_Form_Search::getModeValue but it doesn't have all the contexts
-    switch ($componentMode) {
+    switch ($this->getQueryMode()) {
       case CRM_Contact_BAO_Query::MODE_CONTRIBUTE:
         $entityShortname = 'Contribute';
+        $entityDAOName = $entityShortname;
         break;
 
       case CRM_Contact_BAO_Query::MODE_MEMBER:
@@ -120,33 +111,41 @@ class CRM_Export_Form_Select extends CRM_Core_Form_Task {
 
       case CRM_Contact_BAO_Query::MODE_EVENT:
         $entityShortname = 'Event';
+        $entityDAOName = $entityShortname;
         break;
 
       case CRM_Contact_BAO_Query::MODE_PLEDGE:
         $entityShortname = 'Pledge';
+        $entityDAOName = $entityShortname;
         break;
 
       case CRM_Contact_BAO_Query::MODE_CASE:
         $entityShortname = 'Case';
+        $entityDAOName = $entityShortname;
         break;
 
       case CRM_Contact_BAO_Query::MODE_GRANT:
         $entityShortname = 'Grant';
+        $entityDAOName = $entityShortname;
         break;
 
       case CRM_Contact_BAO_Query::MODE_ACTIVITY:
         $entityShortname = 'Activity';
+        $entityDAOName = $entityShortname;
         break;
 
       default:
+        // FIXME: Code cleanup, we may not need to do this $componentName code here.
+        $formName = CRM_Utils_System::getClassName($this->controller->getStateMachine());
+        $componentName = explode('_', $formName);
+        if ($formName == 'CRM_Export_StateMachine_Standalone') {
+          $componentName = array('CRM', $this->controller->get('entity'));
+        }
         $entityShortname = $componentName[1]; // Contact
+        $entityDAOName = $entityShortname;
         break;
     }
 
-    if (empty($entityDAOName)) {
-      $entityDAOName = $entityShortname;
-    }
-
     if (in_array($entityShortname, $components)) {
       $this->_exportMode = constant('CRM_Export_Form_Select::' . strtoupper($entityShortname) . '_EXPORT');
       $formTaskClassName = "CRM_{$entityShortname}_Form_Task";
@@ -196,7 +195,7 @@ class CRM_Export_Form_Select extends CRM_Core_Form_Task {
       }
     }
 
-    $formTaskClassName::preProcessCommon($this, !$isStandalone);
+    $formTaskClassName::preProcessCommon($this);
 
     // $component is used on CRM/Export/Form/Select.tpl to display extra information for contact export
     ($this->_exportMode == self::CONTACT_EXPORT) ? $component = FALSE : $component = TRUE;
@@ -344,7 +343,7 @@ FROM   {$this->_componentTable}
    * @return bool|array
    *   mixed true or array of errors
    */
-  static public function formRule($params, $files, $self) {
+  public static function formRule($params, $files, $self) {
     $errors = array();
 
     if (CRM_Utils_Array::value('mergeOption', $params) == self::EXPORT_MERGE_SAME_ADDRESS &&
@@ -372,7 +371,7 @@ FROM   {$this->_componentTable}
   /**
    * Process the uploaded file.
    *
-   * @return void
+   * @throws \CRM_Core_Exception
    */
   public function postProcess() {
     $params = $this->controller->exportValues($this->_name);
@@ -521,4 +520,13 @@ FROM   {$this->_componentTable}
     return $options;
   }
 
+  /**
+   * Get the query mode (eg. CRM_Core_BAO_Query::MODE_CASE)
+   *
+   * @return int
+   */
+  public function getQueryMode() {
+    return (int) $this->controller->get('component_mode');
+  }
+
 }