$this->_id,
'title'
);
- CRM_Utils_System::setTitle(ts('Title and Settings (%1)',
- array(1 => $title)
- ));
+ CRM_Utils_System::setTitle(ts('Title and Settings') . " ($title)");
$ufJoinParams = array(
'module' => 'OnBehalf',
$this->addWysiwyg('footer_text', ts('Footer Message'), $attributes['footer_text']);
+ //Register schema which will be used for OnBehalOf and HonorOf profile Selector
+ CRM_UF_Page_ProfileEditor::registerSchemas(array('OrganizationModel', 'HouseholdModel'));
+
// 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);"));
- $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(
array(
- '' => ts('- select -')) + $profiles
+ 'entity_name' => 'contact_1',
+ 'entity_type' => 'OrganizationModel',
+ ),
);
+ $this->addProfileSelector('onbehalf_profile_id', ts('Organization Profile'), $allowCoreTypes, $allowSubTypes, $entities);
+
$options = array();
$options[] = $this->createElement('radio', NULL, NULL, ts('Optional'), 1);
$options[] = $this->createElement('radio', NULL, NULL, ts('Required'), 2);
$allowSubTypes = array();
$this->addProfileSelector('honoree_profile', ts('Honoree Profile'), $allowCoreTypes, $allowSubTypes, $entities);
- CRM_UF_Page_ProfileEditor::registerSchemas(array('OrganizationModel','HouseholdModel'));
if (!empty($this->_submitValues['honor_block_is_active'])) {
$this->addRule('soft_credit_types', ts('At least one value must be selected if Honor Section is active'), 'required');
*
* @param array $values posted values of the form
*
+ * @param $files
+ * @param $self
+ *
* @return array list of errors to be posted back to the form
* @static
* @access public
$errors['title'] = ts("Please do not use '/' in Title");
}
- if (!empty($values['is_organization']) && empty($values['onbehalf_profile_id'])) {
- $errors['onbehalf_profile_id'] = ts('Please select a profile to collect organization information on this contribution page.');
+ // ensure on-behalf-of profile meets minimum requirements
+ if (!empty($values['is_organization'])) {
+ if (empty($values['onbehalf_profile_id']) ) {
+ $errors['onbehalf_profile_id'] = ts('Please select a profile to collect organization information on this contribution page.');
+ }
+ else {
+ $requiredProfileFields = array('organization_name', 'email');
+ if (!CRM_Core_BAO_UFGroup::checkValidProfile($values['onbehalf_profile_id'], $requiredProfileFields)) {
+ $errors['onbehalf_profile_id'] = ts('Profile does not contain the minimum required fields for an On Behalf Of Organization');
+ }
+ }
}
//CRM-11494