dev/core#4740 - Fix missing tagsets when label doesn't match name
authorcolemanw <coleman@civicrm.org>
Wed, 15 Nov 2023 01:10:38 +0000 (20:10 -0500)
committercolemanw <coleman@civicrm.org>
Wed, 15 Nov 2023 01:14:28 +0000 (20:14 -0500)
CRM_Core_Form_Tag::buildQuickForm was previously being passed an array of [id => name]
but it was wastefully ignoring the passed ids and looking it up from the name.

Now due to bcf668d is being passed an array of [id => label] which is all it needs,
just had to remove the wasteful id lookup when it's already there.

CRM/Core/Form/Tag.php

index 0d55661b3cd7b9914cae77b842845db8533d6fb7..fe9c14605b59bb241e1cfb6552a2b8a2edaafce0 100644 (file)
@@ -46,10 +46,7 @@ class CRM_Core_Form_Tag {
     $form->assign('isTagset', FALSE);
     $mode = NULL;
 
-    foreach ($parentNames as &$parentNameItem) {
-      // get the parent id for tag list input for keyword
-      $parentId = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Tag', $parentNameItem, 'id', 'name');
-
+    foreach ($parentNames as $parentId => $parentNameItem) {
       // check if parent exists
       if ($parentId) {
         $tagsetItem = $tagsetElementName . 'parentId_' . $parentId;