Delete all entitytags of a contact in a single api call.
authorWim De Craene <wim.de.craene@mediaraven.be>
Wed, 6 Jan 2016 10:30:50 +0000 (11:30 +0100)
committerWim De Craene <wim.de.craene@mediaraven.be>
Wed, 6 Jan 2016 10:30:50 +0000 (11:30 +0100)
CRM/Core/BAO/EntityTag.php
api/v3/EntityTag.php

index 6cebea4c5cd8e4990eeb71fdb5efe077bc0249c4..7323357e84e30ef87cb6c32308547a03d322fd75 100644 (file)
@@ -283,7 +283,7 @@ class CRM_Core_BAO_EntityTag extends CRM_Core_DAO_EntityTag {
   public static function getContactTags($contactID, $count = FALSE) {
     $contactTags = array();
     if (!$count) {
-      $select = "SELECT name ";
+      $select = "SELECT ct.id, ct.name ";
     }
     else {
       $select = "SELECT count(*) as cnt";
@@ -304,7 +304,7 @@ class CRM_Core_BAO_EntityTag extends CRM_Core_DAO_EntityTag {
     }
 
     while ($dao->fetch()) {
-      $contactTags[] = $dao->name;
+      $contactTags[$dao->id] = $dao->name;
     }
 
     return $contactTags;
index 3b9aec86a2622026140ee88fae0907f9f83a3882..f46af28d25ff9a13d4e528f26fb0f6ffe7eb81d4 100644 (file)
@@ -133,7 +133,12 @@ function _civicrm_api3_entity_tag_common($params, $op = 'add') {
   }
 
   if (empty($tagIDs)) {
-    return civicrm_api3_create_error('tag_id is a required field');
+    if ($op == 'remove') {
+      $tagIDs = array_keys(CRM_Core_BAO_EntityTag::getContactTags($entityIDs[0]));
+    }
+    else {
+      return civicrm_api3_create_error('tag_id is a required field');
+    }
   }
 
   $values = array('is_error' => 0);