Merge pull request #4768 from rohankatkar/CRM-10331Fix
[civicrm-core.git] / CRM / Contact / BAO / GroupContact.php
index bcfdb2d8d6144e72045785b1869ea30c3026e258..b7d75d17cfc8a80f6a3a2da9af9004a70f0e9ff0 100644 (file)
 class CRM_Contact_BAO_GroupContact extends CRM_Contact_DAO_GroupContact {
 
   /**
-   * class constructor
+   * Class constructor
    */
   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
@@ -266,7 +266,7 @@ class CRM_Contact_BAO_GroupContact extends CRM_Contact_DAO_GroupContact {
   }
 
   /**
-   * 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
    *
@@ -309,7 +309,7 @@ class CRM_Contact_BAO_GroupContact extends CRM_Contact_DAO_GroupContact {
   }
 
   /**
-   * 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 string $status state of membership
@@ -334,7 +334,8 @@ class CRM_Contact_BAO_GroupContact extends CRM_Contact_DAO_GroupContact {
     $count            = FALSE,
     $ignorePermission = FALSE,
     $onlyPublicGroups = FALSE,
-    $excludeHidden    = TRUE
+    $excludeHidden    = TRUE,
+    $groupId          = NULL
   ) {
     if ($count) {
       $select = 'SELECT count(DISTINCT civicrm_group_contact.id)';
@@ -362,6 +363,10 @@ class CRM_Contact_BAO_GroupContact extends CRM_Contact_DAO_GroupContact {
       $where .= ' AND civicrm_group_contact.status = %2';
       $params[2] = array($status, 'String');
     }
+    if (!empty($groupId)) {
+      $where .= " AND civicrm_group.id = %3 ";
+      $params[3] = array($groupId, 'Integer');
+    }
     $tables = array(
       'civicrm_group_contact' => 1,
       'civicrm_group' => 1,
@@ -494,7 +499,7 @@ SELECT    *
   }
 
   /**
-   * takes an associative array and creates / removes
+   * Takes an associative array and creates / removes
    * contacts from the groups
    *
    *
@@ -557,8 +562,8 @@ SELECT    *
   }
 
   /**
-   * @param $contactID
-   * @param $groupID
+   * @param int $contactID
+   * @param int $groupID
    *
    * @return bool
    */