+--------------------------------------------------------------------+
| CiviCRM version 4.6 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2014 |
+ | Copyright CiviCRM LLC (c) 2004-2015 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
| GNU Affero General Public License or the licensing of CiviCRM, |
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
-*/
+ */
/**
*
* @package CRM
- * @copyright CiviCRM LLC (c) 2004-2014
+ * @copyright CiviCRM LLC (c) 2004-2015
* $Id$
*
*/
class CRM_Contact_BAO_GroupContact extends CRM_Contact_DAO_GroupContact {
/**
- * Class constructor
+ * Class constructor.
*/
public function __construct() {
parent::__construct();
}
/**
- * Takes an associative array and creates a groupContact object
+ * Takes an associative array and creates a groupContact object.
*
* the function extract all the params it needs to initialize the create a
* group object. the params array could contain additional unused name/value
}
/**
- * Check if there is data to create the object
+ * Check if there is data to create the object.
*
* @param array $params
* (reference ) an assoc array of name/value pairs.
*
- * @return boolean
+ * @return bool
*/
public static function dataExists(&$params) {
// return if no data present
* @return array
* (total, added, notAdded) count of contacts added to group
*/
- static function addContactsToGroup(
+ public static function addContactsToGroup(
$contactIds,
$groupId,
$method = 'Admin',
$tracking = NULL
) {
-
CRM_Utils_Hook::pre('create', 'GroupContact', $groupId, $contactIds);
- list($numContactsAdded,
- $numContactsNotAdded
- ) = self::bulkAddContactsToGroup($contactIds,
- $groupId,
- $method,
- $status,
- $tracking
- );
+ list($numContactsAdded, $numContactsNotAdded)
+ = self::bulkAddContactsToGroup($contactIds, $groupId, $method, $status, $tracking);
// also reset the acl cache
$config = CRM_Core_Config::singleton();
* @return array
* (total, removed, notRemoved) count of contacts removed to group
*/
- static function removeContactsFromGroup(
+ public static function removeContactsFromGroup(
&$contactIds,
$groupId,
$method = 'Admin',
}
/**
- * Get list of all the groups and groups for a contact
+ * Get list of all the groups and groups for a contact.
*
* @param int $contactId
* Contact id.
}
/**
- * Get the list of groups for contact based on status of group membership
+ * Get the list of groups for contact based on status of group membership.
*
* @param int $contactId
* Contact id.
*
* @param bool $excludeHidden
*
- * @return array
- * (reference )|int $values the relevant data object values for the contact or
- * the total count when $count is TRUE
- *
- * $access public
+ * @return array (reference)|int $values
+ * the relevant data object values for the contact or
+ * the total count when $count is TRUE
*/
- static function &getContactGroup(
+ public static function &getContactGroup(
$contactId,
$status = NULL,
$numGroupContact = NULL,
civicrm_subscription_history.method as method';
}
- $where = " WHERE contact_a.id = %1 AND civicrm_group.is_active = 1 ";
+ $where = " WHERE contact_a.id = %1 AND civicrm_group.is_active = 1";
if ($excludeHidden) {
$where .= " AND civicrm_group.is_hidden = 0 ";
$from = CRM_Contact_BAO_Query::fromClause($tables);
+ //CRM-16945: seems hackish but as per CRM-16483 of using group criteria for Search Builder it is mandatory
+ //to include group_contact_cache clause when group table is present, so following code remove duplicacy
+ $from = str_replace("OR civicrm_group.id = civicrm_group_contact_cache.group_id", 'AND civicrm_group.saved_search_id IS NULL', $from);
+
$where .= " AND $permission ";
if ($onlyPublicGroups) {
}
/**
- * Returns membership details of a contact for a group
+ * Returns membership details of a contact for a group.
*
* @param int $contactId
* Id of the contact.
}
/**
- * Method to get Group Id
+ * Method to get Group Id.
*
* @param int $groupContactID
* Id of a perticuler group.
}
/**
- * Function merges the groups from otherContactID to mainContactID
+ * Function merges the groups from otherContactID to mainContactID.
* along with subscription history
*
* @param int $mainContactId
* @return array
* (total, added, notAdded) count of contacts added to group
*/
- static function bulkAddContactsToGroup(
+ public static function bulkAddContactsToGroup(
$contactIDs,
$groupID,
$method = 'Admin',
*
* @param string $fieldName
* @param string $context
- * @see CRM_Core_DAO::buildOptionsContext.
+ * @see CRM_Core_DAO::buildOptionsContext
* @param array $props
* whatever is known about this dao object.
*
- * @return Array|bool
+ * @return array|bool
*/
public static function buildOptions($fieldName, $context = NULL, $props = array()) {
$params = array();
return $options;
}
+
}