Commit | Line | Data |
---|---|---|
6a488035 | 1 | <?php |
aba1cd8b EM |
2 | |
3 | /** | |
4 | * Class PCPBlock | |
5 | */ | |
6a488035 TO |
6 | class PCPBlock extends PHPUnit_Framework_Testcase { |
7 | /** | |
8 | * Helper function to create a PCP Block for Contribution Page | |
9 | * | |
e16033b4 TO |
10 | * @param int $contributionPageId |
11 | * Id of the Contribution Page. | |
6a488035 | 12 | * to be deleted |
a6c01b45 CW |
13 | * @return array |
14 | * of created pcp block | |
6a488035 | 15 | */ |
00be9182 | 16 | public function create($contributionPageId) { |
6a488035 TO |
17 | $profileParams = array( |
18 | 'group_type' => 'Individual,Contact', | |
19 | 'title' => 'Test Supprorter Profile', | |
20 | 'help_pre' => 'Profle to PCP Contribution', | |
21 | 'is_active' => 1, | |
22 | 'is_cms_user' => 2, | |
23 | ); | |
24 | ||
25 | $ufGroup = civicrm_api('uf_group', 'create', $profileParams); | |
26 | $profileId = $ufGroup['id']; | |
27 | ||
28 | $fieldsParams = array( | |
29 | array( | |
30 | 'field_name' => 'first_name', | |
31 | 'field_type' => 'Individual', | |
32 | 'visibility' => 'Public Pages and Listings', | |
33 | 'weight' => 1, | |
34 | 'label' => 'First Name', | |
35 | 'is_required' => 1, | |
36 | 'is_active' => 1, | |
37 | ), | |
38 | array( | |
39 | 'field_name' => 'last_name', | |
40 | 'field_type' => 'Individual', | |
41 | 'visibility' => 'Public Pages and Listings', | |
42 | 'weight' => 2, | |
43 | 'label' => 'Last Name', | |
44 | 'is_required' => 1, | |
45 | 'is_active' => 1, | |
46 | ), | |
47 | array( | |
48 | 'field_name' => 'email', | |
49 | 'field_type' => 'Contact', | |
50 | 'visibility' => 'Public Pages and Listings', | |
51 | 'weight' => 3, | |
52 | 'label' => 'Email', | |
53 | 'is_required' => 1, | |
54 | 'is_active' => 1, | |
55 | ), | |
56 | ); | |
57 | ||
58 | foreach ($fieldsParams as $value) { | |
59 | // we assume api v3. | |
60 | $value['version'] = 3; | |
61 | $value['uf_group_id'] = $profileId; | |
62 | $ufField = civicrm_api('uf_field', 'create', $value); | |
63 | } | |
64 | ||
65 | $joinParams = array( | |
66 | 'module' => 'Profile', | |
67 | 'entity_table' => 'civicrm_contribution_page', | |
68 | 'entity_id' => 1, | |
69 | 'weight' => 1, | |
70 | 'uf_group_id' => $profileId, | |
71 | 'is_active' => 1, | |
72 | ); | |
73 | $ufJoin = civicrm_api('uf_join', 'create', $joinParams); | |
74 | ||
75 | $params = array( | |
76 | 'entity_table' => 'civicrm_contribution_page', | |
77 | 'entity_id' => $contributionPageId, | |
78 | 'supporter_profile_id' => $profileId, | |
79 | 'is_approval_needed' => 0, | |
80 | 'is_tellfriend_enabled' => 0, | |
81 | 'tellfriend_limit' => 0, | |
82 | 'link_text' => 'Create your own Personal Campaign Page!', | |
83 | 'is_active' => 1, | |
84 | 'notify_email' => 'info@civicrm.org', | |
85 | ); | |
86 | require_once 'CRM/Contribute/BAO/PCP.php'; | |
87 | $blockPCP = CRM_Contribute_BAO_PCP::add($params); | |
88 | return array('blockId' => $blockPCP->id, 'profileId' => $profileId); | |
89 | } | |
90 | ||
91 | /** | |
92 | * Helper function to delete a PCP related stuff viz. Profile, PCP Block Entry | |
93 | * | |
e16033b4 | 94 | * @param array key value pair |
6a488035 TO |
95 | * pcpBlockId - id of the PCP Block Id, profileID - id of Supporter Profile |
96 | * to be deleted | |
a6c01b45 CW |
97 | * @return boolean |
98 | * true if success, false otherwise | |
6a488035 | 99 | */ |
00be9182 | 100 | public function delete($params) { |
6a488035 TO |
101 | |
102 | $delete_params = array('id' => $params['profileId']); | |
103 | $resulProfile = civicrm_api('uf_group', 'delete', $delete_params); | |
104 | ||
6a488035 TO |
105 | require_once 'CRM/Contribute/DAO/PCPBlock.php'; |
106 | $dao = new CRM_Contribute_DAO_PCPBlock(); | |
107 | $dao->id = $params['blockId']; | |
108 | if ($dao->find(TRUE)) { | |
109 | $resultBlock = $dao->delete(); | |
110 | } | |
111 | if ($id = CRM_Utils_Array::value('pcpId', $params)) { | |
112 | require_once 'CRM/Contribute/BAO/PCP.php'; | |
113 | CRM_Contribute_BAO_PCP::delete($id); | |
114 | } | |
115 | if ($resulProfile && $resultBlock) { | |
116 | return TRUE; | |
117 | } | |
118 | return FALSE; | |
119 | } | |
120 | } |