X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCore%2FForm%2FTag.php;h=597c3beae0cdee3d291af0745ce064395ebef023;hb=a969ba2b3fc64eebf12a98e3bfc69212d832ee19;hp=117c53075da296e475ee5b86217c46d4014741f0;hpb=8f6ae60501d5d64ddbc6269648e71247dee0ce1b;p=civicrm-core.git diff --git a/CRM/Core/Form/Tag.php b/CRM/Core/Form/Tag.php index 117c53075d..597c3beae0 100644 --- a/CRM/Core/Form/Tag.php +++ b/CRM/Core/Form/Tag.php @@ -153,31 +153,12 @@ class CRM_Core_Form_Tag { // are deleted we will have to set $params[tagset id] = '' which is done by above logic foreach ($params as $parentId => $value) { $newTagIds = array(); - $realTagIds = array(); + $tagIds = array(); if ($value) { - $tagsIDs = explode(',', $value); - foreach ($tagsIDs as $tagId) { - if (!is_numeric($tagId)) { - // check if user has selected existing tag or is creating new tag - // this is done to allow numeric tags etc. - $tagValue = explode(':::', $tagId); - - if (isset($tagValue[1]) && $tagValue[1] == 'value') { - $tagParams = array( - 'name' => $tagValue[0], - 'parent_id' => $parentId, - ); - $tagObject = CRM_Core_BAO_Tag::add($tagParams, CRM_Core_DAO::$_nullArray); - $tagId = $tagObject->id; - } - } - - $realTagIds[] = $tagId; - if ($form && $form->_action != CRM_Core_Action::UPDATE) { - $newTagIds[] = $tagId; - } - elseif (!array_key_exists($tagId, $existingTags)) { + $tagIds = explode(',', $value); + foreach ($tagIds as $tagId) { + if ($form && $form->_action != CRM_Core_Action::UPDATE || !array_key_exists($tagId, $existingTags)) { $newTagIds[] = $tagId; } } @@ -189,8 +170,8 @@ class CRM_Core_Form_Tag { WHERE civicrm_tag.id=civicrm_entity_tag.tag_id AND civicrm_entity_tag.entity_table='{$entityTable}' AND entity_id={$entityId} AND parent_id={$parentId}"; - if (!empty($realTagIds)) { - $deleteSQL .= " AND tag_id NOT IN (" . implode(', ', $realTagIds) . ");"; + if (!empty($tagIds)) { + $deleteSQL .= " AND tag_id NOT IN (" . implode(', ', $tagIds) . ");"; } CRM_Core_DAO::executeQuery($deleteSQL);