// is on behalf of an organization ?
$this->addElement('checkbox', 'is_organization', ts('Allow individuals to contribute and / or signup for membership on behalf of an organization?'), NULL, array('onclick' => "showHideByValue('is_organization',true,'for_org_text','table-row','radio',false);showHideByValue('is_organization',true,'for_org_option','table-row','radio',false);"));
- $allowCoreTypes = array_merge(array('Contact', 'Organization'), CRM_Contact_BAO_ContactType::subTypes('Organization'));
- $allowSubTypes = array();
- $entities = array(
- array(
- 'entity_name' => 'contact_1',
- 'entity_type' => 'OrganizationModel',
- ),
+ //CRM-15787 - If applicable, register 'membership_1'
+ $member = CRM_Member_BAO_Membership::getMembershipBlock($this->_id);
+ $coreTypes = array('Contact', 'Organization');
+
+ $entities[] = array(
+ 'entity_name' => array ('contact_1'),
+ 'entity_type' => 'OrganizationModel',
);
+ if ($member && $member['is_active']) {
+ $coreTypes[] = 'Membership';
+ $entities[] = array(
+ 'entity_name' => array ('membership_1'),
+ 'entity_type' => 'MembershipModel',
+ );
+ }
+
+ $allowCoreTypes = array_merge($coreTypes,
+ CRM_Contact_BAO_ContactType::subTypes('Organization'));
+ $allowSubTypes = array();
+
$this->addProfileSelector('onbehalf_profile_id', ts('Organization Profile'), $allowCoreTypes, $allowSubTypes, $entities);
- $options = array();
+ $options = array();
$options[] = $this->createElement('radio', NULL, NULL, ts('Optional'), 1);
$options[] = $this->createElement('radio', NULL, NULL, ts('Required'), 2);
$this->addGroup($options, 'is_for_organization', ts(''));
),
);
- $allowCoreTypes = array_merge(array('Contact', 'Individual', 'Organization', 'Household'), CRM_Contact_BAO_ContactType::subTypes('Individual'));
+ $allowCoreTypes = array_merge(array(
+ 'Contact',
+ 'Individual',
+ 'Organization',
+ 'Household'
+ ), CRM_Contact_BAO_ContactType::subTypes('Individual'));
$allowSubTypes = array();
$this->addProfileSelector('honoree_profile', ts('Honoree Profile'), $allowCoreTypes, $allowSubTypes, $entities);
* @param $files
* @param $self
*
- * @return array list of errors to be posted back to the form
+ * @return array
+ * list of errors to be posted back to the form
* @static
*/
public static function formRule($values, $files, $self) {
list($contributionProfiles['custom_pre_id'],
$contributionProfiles['custom_post_id']
- ) = CRM_Core_BAO_UFJoin::getUFGroupIds($ufJoinParams);
+ ) = CRM_Core_BAO_UFJoin::getUFGroupIds($ufJoinParams);
$conProfileType = NULL;
if ($contributionProfiles['custom_pre_id']) {
if ($contributionProfiles['custom_post_id']) {
$postProfileType = CRM_Core_BAO_UFField::getProfileType($contributionProfiles['custom_post_id']);
if ($postProfileType == 'Membership') {
- $conProfileType = empty($conProfileType) ? "'Includes Profile (bottom of page)'" : "{$conProfileType} and 'Includes Profile (bottom of page)'";
+ $conProfileType = empty($conProfileType) ? "'Includes Profile (bottom of page)'" : "{$conProfileType} and 'Includes Profile (bottom of page)'";
}
}
if (!empty($conProfileType)) {
$url = 'civicrm/admin/contribute';
$urlParams = 'reset=1';
CRM_Core_Session::setStatus(ts("'%1' information has been saved.",
- array(1 => $this->getTitle())
- ), ts('Saved'), 'success');
+ array(1 => $this->getTitle())
+ ), ts('Saved'), 'success');
}
CRM_Utils_System::redirect(CRM_Utils_System::url($url, $urlParams));