function postProcess(&$form) { $values = $form->exportValues(); // lets forget session var if any if (CRM_Core_Session::singleton()->get('pcpteams_tpid')) { CRM_Core_Session::singleton()->set('pcpteams_tpid', NULL); } $teampcpId = $form->get('tpId'); $teamId = CRM_Pcpteams_Utils::getcontactIdbyPcpId($teampcpId); $userId = CRM_Pcpteams_Utils::getloggedInUserId(); // Create Team Member of relation to this Team $cfpcpab = CRM_Pcpteams_Utils::getPcpABCustomFieldId(); $cfpcpba = CRM_Pcpteams_Utils::getPcpBACustomFieldId(); $customParams = array("custom_{$cfpcpab}" => $form->get('page_id'), "custom_{$cfpcpba}" => $teampcpId); $result = CRM_Pcpteams_Utils::createTeamRelationship($userId, $teamId, $customParams); $form->_teamName = CRM_Contact_BAO_Contact::displayName($teamId); $form->set('teamName', $form->_teamName); $form->set('teamContactID', $teamId); // Team Join: create activity $actParams = array('target_contact_id' => CRM_Pcpteams_Utils::getTeamAdmin($teampcpId), 'assignee_contact_id' => $teamId); CRM_Pcpteams_Utils::createPcpActivity($actParams, CRM_Pcpteams_Constant::C_AT_INVITATION_ACCEPTED); CRM_Pcpteams_Utils::createPcpActivity($actParams, CRM_Pcpteams_Constant::C_AT_REQ_MADE); //send email once the team request has done. $teamAdminId = CRM_Pcpteams_Utils::getTeamAdmin($teampcpId); list($teamAdminName, $teamAdminEmail) = CRM_Contact_BAO_Contact::getContactDetails($teamAdminId); $contactDetails = civicrm_api('Contact', 'get', array('version' => 3, 'sequential' => 1, 'id' => $userId)); $emailParams = array('tplParams' => array('teamAdminName' => $teamAdminName, 'userFirstName' => $contactDetails['values'][0]['first_name'], 'userlastName' => $contactDetails['values'][0]['last_name'], 'teamName' => $form->_teamName, 'pageURL' => CRM_Utils_System::url('civicrm/pcp/manage', "reset=1&id={$teampcpId}", TRUE, NULL, FALSE, TRUE)), 'email' => array($teamAdminName => array('first_name' => $teamAdminName, 'last_name' => $teamAdminName, 'email-Primary' => $teamAdminEmail, 'display_name' => $teamAdminName)), 'valueName' => CRM_Pcpteams_Constant::C_MSG_TPL_JOIN_REQUEST); $sendEmail = CRM_Pcpteams_Utils::sendMail($userId, $emailParams); if ($result) { CRM_Core_Session::setStatus(ts("A notification has been sent to the team. Once approved, team should be visible on your page."), ts("Team Request Sent")); } }
static function setDefaultValues(&$form) { $defaults = array(); if ($form->get('page_id')) { $result = civicrm_api('Pcpteams', 'get', array('version' => 3, 'sequential' => 1, 'pcp_id' => $form->get('page_id'))); // $teamCfId = CRM_Pcpteams_Utils::getTeamPcpCustomFieldId(); if (isset($result['values'][0]["team_pcp_id"])) { $defaults['pcp_team_contact'] = CRM_Pcpteams_Utils::getcontactIdbyPcpId($result['values'][0]["team_pcp_id"]); } } $form->setDefaults($defaults); }
function pcpteams_civicrm_custom($op, $groupID, $entityID, &$params) { if ($op != 'create' && $op != 'edit') { return; } $customFields = array(); if ($groupID == CRM_Pcpteams_Utils::getPcpCustomSetId()) { foreach ($params as $key => $value) { $customFields[$value['column_name']] = $value['value']; } $teamContactId = CRM_Pcpteams_Utils::getcontactIdbyPcpId($entityID); if ('Team' == CRM_Pcpteams_Utils::checkPcpType($entityID)) { $cfpcpab = CRM_Pcpteams_Utils::getPcpABCustomFieldId(); $customParams = array("custom_{$cfpcpab}" => $entityID); CRM_Pcpteams_Utils::reCreateRelationship($teamContactId, $customFields['org_id'], CRM_Pcpteams_Constant::C_CORPORATE_REL_TYPE, $customParams); } } }
static function deleteTeamPcp() { $pcp_id = CRM_Utils_Request::retrieve('pcp_id', 'Positive', CRM_Core_DAO::$_nullObject, TRUE); $team_pcp_id = CRM_Utils_Request::retrieve('team_pcp_id', 'Positive', CRM_Core_DAO::$_nullObject, TRUE); $contactId = CRM_Pcpteams_Utils::getcontactIdbyPcpId($pcp_id); $teamContactId = CRM_Pcpteams_Utils::getcontactIdbyPcpId($team_pcp_id); $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($contactId, 'Integer'), 2 => array($teamContactId, 'Integer'), 3 => array($adminRelTypeId, 'Integer')); $relationship = CRM_Core_DAO::singleValueQuery($relationshipQuery, $queryParams); if (!empty($relationship)) { $params = array('version' => 3, 'id' => $team_pcp_id); $result = civicrm_api('pcpteams', 'delete', $params); echo 'Deleted'; } else { echo 'Sorry!! You are not team Admin'; } CRM_Utils_System::civiExit(); }
static function getTeamAdmin($pcpId) { if (empty($pcpId)) { return null; } $teamContactID = CRM_Pcpteams_Utils::getcontactIdbyPcpId($pcpId); $teamAdminRelationshipTypeID = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_RelationshipType', CRM_Pcpteams_Constant::C_TEAM_ADMIN_REL_TYPE, 'id', 'name_a_b'); $relationshipResult = civicrm_api3('Relationship', 'get', array('sequential' => 1, 'relationship_type_id' => $teamAdminRelationshipTypeID, 'contact_id_b' => $teamContactID)); if (!civicrm_error($relationshipResult) && $relationshipResult['values']) { return $relationshipResult['values'][0]['contact_id_a']; } }