dev/core#2066 Extract getSelectedIDs
authoreileen <emcnaughton@wikimedia.org>
Wed, 14 Oct 2020 04:19:22 +0000 (17:19 +1300)
committereileen <emcnaughton@wikimedia.org>
Wed, 14 Oct 2020 04:21:02 +0000 (17:21 +1300)
CRM/Activity/Form/Task.php
CRM/Contribute/Form/Task.php
CRM/Core/Form/Task.php

index 3be85d5bc3025648c3dd67e80dce747db8142542..ce68b8bcd0f9904b9d353408d61a0e9af2d9fe01 100644 (file)
@@ -50,12 +50,8 @@ class CRM_Activity_Form_Task extends CRM_Core_Form_Task {
     $form->_task = $values['task'];
 
     $ids = [];
-    if ($values['radio_ts'] == 'ts_sel') {
-      foreach ($values as $name => $value) {
-        if (substr($name, 0, CRM_Core_Form::CB_PREFIX_LEN) == CRM_Core_Form::CB_PREFIX) {
-          $ids[] = substr($name, CRM_Core_Form::CB_PREFIX_LEN);
-        }
-      }
+    if ($values['radio_ts'] === 'ts_sel') {
+      $ids = $form->getSelectedIDs($values);
     }
     else {
       $queryParams = $form->get('queryParams');
index e6cc4ea750453eb9c129213d27aee29c97ce33af..302bf548cdbacf4a2b93f89dd26f38d63c12e618 100644 (file)
@@ -62,19 +62,15 @@ class CRM_Contribute_Form_Task extends CRM_Core_Form_Task {
     $form->_task = $values['task'] ?? NULL;
 
     $ids = [];
-    if (isset($values['radio_ts']) && $values['radio_ts'] == 'ts_sel') {
-      foreach ($values as $name => $value) {
-        if (substr($name, 0, CRM_Core_Form::CB_PREFIX_LEN) == CRM_Core_Form::CB_PREFIX) {
-          $ids[] = substr($name, CRM_Core_Form::CB_PREFIX_LEN);
-        }
-      }
+    if (isset($values['radio_ts']) && $values['radio_ts'] === 'ts_sel') {
+      $ids = $form->getSelectedIDs($values);
     }
     else {
       $queryParams = $form->get('queryParams');
       $isTest = FALSE;
       if (is_array($queryParams)) {
         foreach ($queryParams as $fields) {
-          if ($fields[0] == 'contribution_test') {
+          if ($fields[0] === 'contribution_test') {
             $isTest = TRUE;
             break;
           }
index 2c87a8ccbb92067970de5eeac75890750874cd5b..09e5d9d659eda9971597843ae76d387be4df4efd 100644 (file)
@@ -100,6 +100,23 @@ abstract class CRM_Core_Form_Task extends CRM_Core_Form {
     }
   }
 
+  /**
+   * Get the ids the user has selected.
+   *
+   * @param array $values
+   *
+   * @return array
+   */
+  public function getSelectedIDs(array $values): array {
+    $ids = [];
+    foreach ($values as $name => $value) {
+      if (substr($name, 0, CRM_Core_Form::CB_PREFIX_LEN) == CRM_Core_Form::CB_PREFIX) {
+        $ids[] = substr($name, CRM_Core_Form::CB_PREFIX_LEN);
+      }
+    }
+    return $ids;
+  }
+
   /**
    * Build all the data structures needed to build the form.
    *