コード例 #1
0
ファイル: Tag.php プロジェクト: kcristiano/civicrm-core
 /**
  * Delete the tag.
  *
  * @param int $id
  *   Tag id.
  *
  * @return bool
  */
 public static function del($id)
 {
     // since this is a destructive operation, lets make sure
     // id is a positive number
     CRM_Utils_Type::validate($id, 'Positive');
     // delete all crm_entity_tag records with the selected tag id
     $entityTag = new CRM_Core_DAO_EntityTag();
     $entityTag->tag_id = $id;
     $entityTag->delete();
     // delete from tag table
     $tag = new CRM_Core_DAO_Tag();
     $tag->id = $id;
     CRM_Utils_Hook::pre('delete', 'Tag', $id, $tag);
     if ($tag->delete()) {
         CRM_Utils_Hook::post('delete', 'Tag', $id, $tag);
         return TRUE;
     }
     return FALSE;
 }
コード例 #2
0
 /**
  * Given an array of entity ids and entity table, remove entity(s) tags
  *
  * @param array $entityIds
  *   (reference ) the array of entity ids to be removed.
  * @param int $tagId
  *   The id of the tag.
  * @param string $entityTable
  *   Name of entity table default:civicrm_contact.
  *
  * @return array
  *   (total, removed, notRemoved) count of entities removed from tags
  */
 public static function removeEntitiesFromTag(&$entityIds, $tagId, $entityTable = 'civicrm_contact')
 {
     $numEntitiesRemoved = 0;
     $numEntitiesNotRemoved = 0;
     $entityIdsRemoved = array();
     foreach ($entityIds as $entityId) {
         $tag = new CRM_Core_DAO_EntityTag();
         $tag->entity_id = $entityId;
         $tag->tag_id = $tagId;
         $tag->entity_table = $entityTable;
         if ($tag->find()) {
             $tag->delete();
             $entityIdsRemoved[] = $entityId;
             $numEntitiesRemoved++;
         } else {
             $numEntitiesNotRemoved++;
         }
     }
     //invoke post hook on entityTag
     $object = array($entityIdsRemoved, $entityTable);
     CRM_Utils_Hook::post('delete', 'EntityTag', $tagId, $object);
     // reset the group contact cache for all groups
     // if tags are being used in a smart group
     CRM_Contact_BAO_GroupContactCache::remove();
     return array(count($entityIds), $numEntitiesRemoved, $numEntitiesNotRemoved);
 }
コード例 #3
0
ファイル: Tag.php プロジェクト: hampelm/Ginsberg-CiviDemo
 /**
  * Function to delete the tag 
  *
  * @param int $id   tag id
  *
  * @return boolean
  * @access public
  * @static
  *
  */
 static function del($id)
 {
     // delete all crm_entity_tag records with the selected tag id
     require_once 'CRM/Core/DAO/EntityTag.php';
     $entityTag = new CRM_Core_DAO_EntityTag();
     $entityTag->tag_id = $id;
     if ($entityTag->find()) {
         while ($entityTag->fetch()) {
             $entityTag->delete();
         }
     }
     // delete from tag table
     $tag = new CRM_Core_DAO_Tag();
     $tag->id = $id;
     require_once 'CRM/Utils/Hook.php';
     CRM_Utils_Hook::pre('delete', 'Tag', $id, $tag);
     if ($tag->delete()) {
         CRM_Utils_Hook::post('delete', 'Tag', $id, $tag);
         CRM_Core_Session::setStatus(ts('Selected Tag has been Deleted Successfuly.'));
         return true;
     }
     return false;
 }
コード例 #4
0
ファイル: EntityTag.php プロジェクト: nielosz/civicrm-core
 /**
  * Given an array of entity ids and entity table, remove entity(s)tags.
  *
  * @param array $entityIds
  *   (reference ) the array of entity ids to be removed.
  * @param int $tagId
  *   The id of the tag.
  * @param string $entityTable
  *   Name of entity table default:civicrm_contact.
  * @param bool $applyPermissions
  *   Should permissions be applied in this function.
  *
  * @return array
  *   (total, removed, notRemoved) count of entities removed from tags
  */
 public static function removeEntitiesFromTag(&$entityIds, $tagId, $entityTable, $applyPermissions)
 {
     $numEntitiesRemoved = 0;
     $numEntitiesNotRemoved = 0;
     $entityIdsRemoved = array();
     foreach ($entityIds as $entityId) {
         // CRM-17350 - check if we have permission to edit the contact
         // that this tag belongs to.
         if ($applyPermissions && !self::checkPermissionOnEntityTag($entityId, $entityTable)) {
             $numEntitiesNotRemoved++;
             continue;
         }
         $tag = new CRM_Core_DAO_EntityTag();
         $tag->entity_id = $entityId;
         $tag->tag_id = $tagId;
         $tag->entity_table = $entityTable;
         if ($tag->find()) {
             $tag->delete();
             $entityIdsRemoved[] = $entityId;
             $numEntitiesRemoved++;
         } else {
             $numEntitiesNotRemoved++;
         }
     }
     //invoke post hook on entityTag
     $object = array($entityIdsRemoved, $entityTable);
     CRM_Utils_Hook::post('delete', 'EntityTag', $tagId, $object);
     CRM_Contact_BAO_GroupContactCache::opportunisticCacheFlush();
     return array(count($entityIds), $numEntitiesRemoved, $numEntitiesNotRemoved);
 }
コード例 #5
0
 /**
  * Function to delete the tag
  *
  * @param int $id   tag id
  *
  * @return boolean
  * @access public
  * @static
  *
  */
 static function del($id)
 {
     // delete all crm_entity_tag records with the selected tag id
     $entityTag = new CRM_Core_DAO_EntityTag();
     $entityTag->tag_id = $id;
     if ($entityTag->find()) {
         while ($entityTag->fetch()) {
             $entityTag->delete();
         }
     }
     // delete from tag table
     $tag = new CRM_Core_DAO_Tag();
     $tag->id = $id;
     CRM_Utils_Hook::pre('delete', 'Tag', $id, $tag);
     if ($tag->delete()) {
         CRM_Utils_Hook::post('delete', 'Tag', $id, $tag);
         CRM_Core_Session::setStatus(ts('Selected tag has been deleted successfully.'));
         return TRUE;
     }
     return FALSE;
 }