- $required = array('Contact', 'Organization');
- $optional = array('Contribution', 'Membership');
-
- $profiles = CRM_Core_BAO_UFGroup::getValidProfiles($required, $optional);
- //Check profiles for Organization subtypes
- $contactSubType = CRM_Contact_BAO_ContactType::subTypes('Organization');
- foreach ($contactSubType as $type) {
- $required = array('Contact', $type);
- $subTypeProfiles = CRM_Core_BAO_UFGroup::getValidProfiles($required, $optional);
- foreach ($subTypeProfiles as $profileId => $profileName) {
- $profiles[$profileId] = $profileName;
- }
- }
-
- $requiredProfileFields = array('organization_name', 'email');
-
- if (!empty($profiles)) {
- foreach ($profiles as $id => $dontCare) {
- $validProfile = CRM_Core_BAO_UFGroup::checkValidProfile($id, $requiredProfileFields);
- if (!$validProfile) {
- unset($profiles[$id]);
- }
- }
- }
-
- if (empty($profiles)) {
- $invalidProfiles = TRUE;
- $this->assign('invalidProfiles', $invalidProfiles);
- }
-
- $this->add('select', 'onbehalf_profile_id', ts('Organization Profile'),
+ $allowCoreTypes = array_merge(array('Contact', 'Organization'), CRM_Contact_BAO_ContactType::subTypes('Organization'));
+ $allowSubTypes = array();
+ $entities = array(