function civicrm_api3_pcpteams_getMyTeamInfo($params) { //check the contact id is the logged in userId $permParams = array('contact_id' => $params['contact_id']); if (!_civicrm_pcpteams_permission_check($permParams, CRM_Core_Permission::VIEW)) { return civicrm_api3_create_error('insufficient permission to view this record'); } $dao = new CRM_PCP_DAO_PCP(); $dao->contact_id = $params['contact_id']; $result = @_civicrm_api3_dao_to_array($dao); _civicrm_api3_pcpteams_custom_get($result); _civicrm_api3_pcpteams_getCustomData($result); $cfTeamPcpId = CRM_Pcpteams_Utils::getTeamPcpCustomFieldId(); $pcpDashboardValues = $teamIds = array(); foreach ($result as $pcpId => $value) { if (isset($value['team_pcp_id'])) { $teamIds[$pcpId] = $value['team_pcp_id']; } } if (!empty($teamIds)) { $sTeamIds = implode(', ', array_filter($teamIds)); $query = "\n SELECT ce.title as page_title \n , cp.id as pcp_id \n , cp.contact_id as pcp_contact_id \n , cc.display_name as team_name \n , cp.title as pcp_title \n , cp.goal_amount as pcp_goal_amount \n , cp.page_id as page_id\n FROM civicrm_pcp cp \n INNER JOIN civicrm_event ce ON ce.id = cp.page_id\n INNER JOIN civicrm_contact cc ON ( cc.id = cp.contact_id AND cc.is_deleted = 0 )\n INNER JOIN civicrm_value_pcp_custom_set cpcs ON ( cpcs.team_pcp_id = cp.id )\n WHERE cp.id IN ( {$sTeamIds} )\n "; $dao = CRM_Core_DAO::executeQuery($query); while ($dao->fetch()) { $myPcpId = array_search($dao->pcp_id, $teamIds); $relTypeAdmin = CRM_Pcpteams_Constant::C_TEAM_ADMIN_REL_TYPE; $adminRelTypeId = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_RelationshipType', $relTypeAdmin, 'id', 'name_a_b'); $relationshipQuery = "SELECT id FROM civicrm_relationship where contact_id_a = %1 AND contact_id_b = %2 AND relationship_type_id = %3"; $queryParams = array(1 => array($params['contact_id'], 'Integer'), 2 => array($dao->pcp_contact_id, 'Integer'), 3 => array($adminRelTypeId, 'Integer')); $relationship = CRM_Core_DAO::singleValueQuery($relationshipQuery, $queryParams); $role = $relationship ? 'Admin' : 'Member'; $pcpResult = civicrm_api('pcpteams', 'get', array('version' => 3, 'sequential' => 1, 'pcp_id' => $dao->pcp_id)); $teamResult[$myPcpId] = array('teamName' => $dao->team_name, 'my_pcp_id' => $myPcpId, 'my_pcp_title' => $pcpResult['values'][0]['page_title'], 'teamPcpTitle' => $dao->pcp_title, 'pageTitle' => $dao->page_title, 'teamgoalAmount' => $dao->pcp_goal_amount, 'amount_raised' => $pcpResult['values'][0]['amount_raised'], 'teamPcpId' => $dao->pcp_id, 'contactId' => $dao->pcp_contact_id, 'action' => _getTeamInfoActionLink($myPcpId, $dao->pcp_id, $role), 'role' => $role); } return civicrm_api3_create_success($teamResult, $params); } }