<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.6 |
+ | CiviCRM version 4.7 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2014 |
+ | Copyright CiviCRM LLC (c) 2004-2015 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
* This class contains functions for managing Tag(tag) for a contact
*
* @package CRM
- * @copyright CiviCRM LLC (c) 2004-2014
- * $Id$
- *
+ * @copyright CiviCRM LLC (c) 2004-2015
*/
class CRM_Core_BAO_EntityTag extends CRM_Core_DAO_EntityTag {
/**
- *
- * Given a contact id, it returns an array of tag id's the
- * contact belongs to.
+ * Given a contact id, it returns an array of tag id's the contact belongs to.
*
* @param int $entityID
* Id of the entity usually the contactID.
*
* @return array
* reference $tag array of category id's the contact belongs to.
- *
*/
public static function &getTag($entityID, $entityTable = 'civicrm_contact') {
$tags = array();
*
* @param array $params
* (reference) an assoc array of name/value pairs.
- * @param $entityTable
+ * @param string $entityTable
* @param int $entityID
- *
- * @return void
*/
public static function create(&$params, $entityTable, $entityID) {
// get categories for the entity id
public static function buildOptions($fieldName, $context = NULL, $props = array()) {
$params = array();
- $options = CRM_Core_PseudoConstant::get(__CLASS__, $fieldName, $params, $context);
+ if ($fieldName == 'tag' || $fieldName == 'tag_id') {
+ if (!empty($props['entity_table'])) {
+ $entity = CRM_Utils_Type::escape($props['entity_table'], 'String');
+ $params[] = "used_for LIKE '%$entity%'";
+ }
- // Output tag list as nested hierarchy
- // TODO: This will only work when api.entity is "entity_tag". What about others?
- if (($fieldName == 'tag' || $fieldName == 'tag_id') && ($context == 'search' || $context == 'create')) {
- $options = CRM_Core_BAO_Tag::getTags('civicrm_contact', CRM_Core_DAO::$_nullArray, CRM_Utils_Array::value('parent_id', $params), '- ');
+ // Output tag list as nested hierarchy
+ // TODO: This will only work when api.entity is "entity_tag". What about others?
+ if ($context == 'search' || $context == 'create') {
+ return CRM_Core_BAO_Tag::getTags(CRM_Utils_Array::value('entity_table', $props, 'civicrm_contact'), CRM_Core_DAO::$_nullArray, CRM_Utils_Array::value('parent_id', $params), '- ');
+ }
}
+ $options = CRM_Core_PseudoConstant::get(__CLASS__, $fieldName, $params, $context);
+
return $options;
}