* @param bool $permissionedContact
* to return only permissioned Contact
* @param array $params
+ * @param bool $includeTotalCount
+ * Should we return a count of total accessable relationships
*
* @return array|int
* relationship records
$count = 0, $relationshipId = 0,
$links = NULL, $permissionMask = NULL,
$permissionedContact = FALSE,
- $params = array()
+ $params = array(), $includeTotalCount = FALSE
) {
$values = array();
if (!$contactId && !$relationshipId) {
}
// building the query string
- $queryString = $select1 . $from1 . $where1 . $select2 . $from2 . $where2 . $order . $limit;
+ CRM_Core_DAO::executeQuery("CREATE TEMPORARY TABLE civicrm_contact_relationships " . $select1 . $from1 . $where1 . $select2 . $from2 . $where2);
+ $queryString = "SELECT * FROM civicrm_contact_relationships " . $order . $limit;
$relationship = new CRM_Contact_DAO_Relationship();
}
else {
+ if ($includeTotalCount) {
+ $values['total_relationships'] = CRM_Core_DAO::singleValueQuery("SELECT count(*) FROM civicrm_contact_relationships");
+ }
+
$mask = NULL;
if ($status != self::INACTIVE) {
if ($links) {
$params['rp'], 0, 0,
$links, $mask,
$permissionedContacts,
- $params
+ $params, TRUE
);
$contactRelationships = array();
- $params['total'] = 0;
+ $params['total'] = $relationships['total_relationships'];
+ unset($relationships['total_relationships']);
if (!empty($relationships)) {
- // FIXME: we cannot directly determine total permissioned relationship, hence re-fire query
- $permissionedRelationships = CRM_Contact_BAO_Relationship::getRelationship($params['contact_id'],
- $relationshipStatus,
- 0, 0, 0,
- NULL, NULL,
- $permissionedContacts
- );
- $params['total'] = count($permissionedRelationships);
// format params
foreach ($relationships as $relationshipId => $values) {