From 4779abb3f98e75ac42f7c008adaf0d61be6ef1a2 Mon Sep 17 00:00:00 2001 From: monishdeb Date: Wed, 9 Sep 2015 19:34:15 +0530 Subject: [PATCH] Optimization --- CRM/Contact/BAO/Relationship.php | 25 +++-- CRM/Contribute/BAO/ContributionPage.php | 59 ++++++++---- CRM/Contribute/BAO/ContributionSoft.php | 18 ++-- CRM/Contribute/Form/Contribution/Confirm.php | 20 ++-- CRM/Contribute/Form/Contribution/Main.php | 2 +- CRM/Contribute/Form/Contribution/ThankYou.php | 13 +-- CRM/Contribute/Form/ContributionBase.php | 96 ++++++++----------- .../Contribute/Form/Contribution/Confirm.tpl | 5 - .../CRM/Contribute/Form/Contribution/Main.tpl | 2 +- .../Form/Contribution/OnBehalfOf.tpl | 2 +- .../Contribute/Form/Contribution/ThankYou.tpl | 7 +- 11 files changed, 121 insertions(+), 128 deletions(-) diff --git a/CRM/Contact/BAO/Relationship.php b/CRM/Contact/BAO/Relationship.php index 13227f22e8..58be6cb185 100644 --- a/CRM/Contact/BAO/Relationship.php +++ b/CRM/Contact/BAO/Relationship.php @@ -1764,7 +1764,7 @@ WHERE id IN ( {$contacts} ) $relationshipTypeClause = 'AND cr.relationship_type_id IN (%2) '; $args[2] = array($relTypeId, 'String'); } - $query = " + $query = " SELECT cc.id as id, cc.sort_name as name FROM civicrm_relationship cr, civicrm_contact cc WHERE @@ -1777,20 +1777,19 @@ cc.is_deleted = 0 $relationshipTypeClause "; - if (!empty($name)) { - $name = CRM_Utils_Type::escape($name, 'String'); - $query .= " + if (!empty($name)) { + $name = CRM_Utils_Type::escape($name, 'String'); + $query .= " AND cc.sort_name LIKE '%$name%'"; - } - - $dao = CRM_Core_DAO::executeQuery($query, $args); + } - while ($dao->fetch()) { - $contacts[$dao->id] = array( - 'name' => $dao->name, - 'value' => $dao->id, - ); - } + $dao = CRM_Core_DAO::executeQuery($query, $args); + while ($dao->fetch()) { + $contacts[$dao->id] = array( + 'name' => $dao->name, + 'value' => $dao->id, + ); + } return $contacts; } diff --git a/CRM/Contribute/BAO/ContributionPage.php b/CRM/Contribute/BAO/ContributionPage.php index 29e651893b..1b4df7e00c 100644 --- a/CRM/Contribute/BAO/ContributionPage.php +++ b/CRM/Contribute/BAO/ContributionPage.php @@ -88,25 +88,50 @@ class CRM_Contribute_BAO_ContributionPage extends CRM_Contribute_DAO_Contributio * @param array $values */ public static function setValues($id, &$values) { - $params = array( - 'id' => $id, - ); + $modules = array('CiviContribute', 'soft_credit', 'on_behalf'); + $values['custom_pre_id'] = $values['custom_post_id'] = NULL; + $params = array('id' => $id); CRM_Core_DAO::commonRetrieve('CRM_Contribute_DAO_ContributionPage', $params, $values); // get the profile ids $ufJoinParams = array( - 'module' => 'CiviContribute', 'entity_table' => 'civicrm_contribution_page', 'entity_id' => $id, ); - list($values['custom_pre_id'], $customPostIds) = CRM_Core_BAO_UFJoin::getUFGroupIds($ufJoinParams); - if (!empty($customPostIds)) { - $values['custom_post_id'] = $customPostIds[0]; - } - else { - $values['custom_post_id'] = ''; + // retrieve profile id as also unserialize module_data corresponding to each $module + foreach ($modules as $module) { + $ufJoinParams['module'] = $module; + $ufJoin = new CRM_Core_DAO_UFJoin(); + $ufJoin->copyValues($ufJoinParams); + if ($module == 'CiviContribute') { + $ufJoin->orderBy('weight asc'); + $ufJoin->find(); + while ($ufJoin->fetch()) { + if ($ufJoin->weight == 1) { + $values['custom_pre_id'] = $ufJoin->uf_group_id; + } + else { + $values['custom_post_id'] = $ufJoin->uf_group_id; + } + } + } + else { + $ufJoin->find(TRUE); + if (!$ufJoin->is_active) { + continue; + } + $params = CRM_Contribute_BAO_ContributionPage::formatModuleData($ufJoin->module_data, TRUE, $module); + $values = array_merge($params, $values); + if ($module == 'soft_credit') { + $values['honoree_profile_id'] = $ufJoin->uf_group_id; + $values['honor_block_is_active'] = $ufJoin->is_active; + } + else { + $values['onbehalf_profile_id'] = $ufJoin->uf_group_id; + } + } } } @@ -301,10 +326,10 @@ class CRM_Contribute_BAO_ContributionPage extends CRM_Contribute_DAO_Contributio } if (isset($values['honor'])) { $honorValues = $values['honor']; + $template->_values = array('honoree_profile_id' => $values['honoree_profile_id']); CRM_Contribute_BAO_ContributionSoft::formatHonoreeProfileFields( $template, $honorValues['honor_profile_values'], - $honorValues['honor_profile_id'], $honorValues['honor_id'] ); } @@ -362,15 +387,9 @@ class CRM_Contribute_BAO_ContributionPage extends CRM_Contribute_DAO_Contributio $tplParams['onBehalfName'] = $displayName; $tplParams['onBehalfEmail'] = $email; - $ufJoinParams = array( - 'module' => 'onBehalf', - 'entity_table' => 'civicrm_contribution_page', - 'entity_id' => $values['id'], - ); - $OnBehalfProfile = CRM_Core_BAO_UFJoin::getUFGroupIds($ufJoinParams); - $profileId = $OnBehalfProfile[0]; - $userID = $contactID; - self::buildCustomDisplay($profileId, 'onBehalfProfile', $userID, $template, $params['onbehalf_profile'], $fieldTypes); + if (!empty($values['onbehalf_profile_id'])) { + self::buildCustomDisplay($values['onbehalf_profile_id'], 'onBehalfProfile', $contactID, $template, $params['onbehalf_profile'], $fieldTypes); + } } // use either the contribution or membership receipt, based on whether it’s a membership-related contrib or not diff --git a/CRM/Contribute/BAO/ContributionSoft.php b/CRM/Contribute/BAO/ContributionSoft.php index edca106998..62cb90ea84 100644 --- a/CRM/Contribute/BAO/ContributionSoft.php +++ b/CRM/Contribute/BAO/ContributionSoft.php @@ -147,12 +147,12 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio } } - if (!empty($params['honor']) && !empty($params['soft_credit_type_id'])) { + if (!empty($form->_values['honoree_profile_id']) && !empty($params['soft_credit_type_id'])) { $honorId = NULL; $contributionSoftParams['soft_credit_type_id'] = CRM_Core_OptionGroup::getValue('soft_credit_type', 'pcp', 'name'); //check if there is any duplicate contact - $profileContactType = CRM_Core_BAO_UFGroup::getContactType($params['honoree_profile_id']); + $profileContactType = CRM_Core_BAO_UFGroup::getContactType($form->_values['honoree_profile_id']); $dedupeParams = CRM_Dedupe_Finder::formatParams($params['honor'], $profileContactType); $dedupeParams['check_permission'] = FALSE; $ids = CRM_Dedupe_Finder::dupesByParams($dedupeParams, $profileContactType); @@ -163,7 +163,7 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio $honorId = CRM_Contact_BAO_Contact::createProfileContact( $params['honor'], CRM_Core_DAO::$_nullArray, $honorId, NULL, - $params['honoree_profile_id'] + $form->_values['honoree_profile_id'] ); $softParams[] = array( 'contact_id' => $honorId, @@ -177,7 +177,7 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio CRM_Core_OptionGroup::values("soft_credit_type") ), 'honor_id' => $honorId, - 'honor_profile_id' => $params['honoree_profile_id'], + 'honor_profile_id' => $form->_values['honoree_profile_id'], 'honor_profile_values' => $params['honor'], ); } @@ -453,12 +453,14 @@ class CRM_Contribute_BAO_ContributionSoft extends CRM_Contribute_DAO_Contributio * * @param CRM_Core_Form $form * @param array $params - * @param int $honoreeprofileId * @param int $honorId */ - public static function formatHonoreeProfileFields($form, $params, $honoreeprofileId, $honorId = NULL) { - $profileContactType = CRM_Core_BAO_UFGroup::getContactType($honoreeprofileId); - $profileFields = CRM_Core_BAO_UFGroup::getFields($honoreeprofileId); + public static function formatHonoreeProfileFields($form, $params, $honorId = NULL) { + if (empty($form->_values['honoree_profile_id'])) { + return; + } + $profileContactType = CRM_Core_BAO_UFGroup::getContactType($form->_values['honoree_profile_id']); + $profileFields = CRM_Core_BAO_UFGroup::getFields($form->_values['honoree_profile_id']); $honoreeProfileFields = $values = array(); $honorName = NULL; diff --git a/CRM/Contribute/Form/Contribution/Confirm.php b/CRM/Contribute/Form/Contribution/Confirm.php index c4c76419e2..287988b835 100644 --- a/CRM/Contribute/Form/Contribution/Confirm.php +++ b/CRM/Contribute/Form/Contribution/Confirm.php @@ -228,7 +228,7 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr $this->assign('pay_later_receipt', $this->_values['pay_later_receipt']); } // if onbehalf-of-organization - if (!empty($this->_params['onbehalf_profile_id']) && !empty($this->_params['onbehalf']['organization_name'])) { + if (!empty($this->_values['onbehalf_profile_id']) && !empty($this->_params['onbehalf']['organization_name'])) { // CRM-15182 $this->_params['organization_id'] = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $this->_params['onbehalf']['organization_name'], 'id', 'display_name'); @@ -396,16 +396,16 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr $params = $this->_params; // make sure we have values for it - if (!empty($params['honor']) && !empty($params['soft_credit_type_id'])) { + if (!empty($this->_values['honoree_profile_id']) && !empty($params['soft_credit_type_id'])) { $honorName = NULL; $softCreditTypes = CRM_Core_OptionGroup::values("soft_credit_type", FALSE); $this->assign('soft_credit_type', $softCreditTypes[$params['soft_credit_type_id']]); - CRM_Contribute_BAO_ContributionSoft::formatHonoreeProfileFields($this, $params['honor'], $params['honoree_profile_id']); + CRM_Contribute_BAO_ContributionSoft::formatHonoreeProfileFields($this, $params['honor']); $fieldTypes = array('Contact'); - $fieldTypes[] = CRM_Core_BAO_UFGroup::getContactType($params['honoree_profile_id']); - $this->buildCustom($params['honoree_profile_id'], 'honoreeProfileFields', TRUE, 'honor', $fieldTypes); + $fieldTypes[] = CRM_Core_BAO_UFGroup::getContactType($this->_values['honoree_profile_id']); + $this->buildCustom($this->_values['honoree_profile_id'], 'honoreeProfileFields', TRUE, 'honor', $fieldTypes); } $this->assign('receiptFromEmail', CRM_Utils_Array::value('receipt_from_email', $this->_values)); $amount_block_is_active = $this->get('amount_block_is_active'); @@ -460,7 +460,7 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr $this->buildCustom($this->_values['custom_pre_id'], 'customPre', TRUE); $this->buildCustom($this->_values['custom_post_id'], 'customPost', TRUE); - if (!empty($params['onbehalf'])) { + if (!empty($this->_values['onbehalf_profile_id']) && !empty($params['onbehalf'])) { $fieldTypes = array('Contact', 'Organization'); $contactSubType = CRM_Contact_BAO_ContactType::subTypes('Organization'); $fieldTypes = array_merge($fieldTypes, $contactSubType); @@ -471,7 +471,7 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr $fieldTypes = array_merge($fieldTypes, array('Contribution')); } - $this->buildCustom($params['onbehalf_profile_id'], 'onbehalfProfile', TRUE, 'onbehalf', $fieldTypes); + $this->buildCustom($this->_values['onbehalf_profile_id'], 'onbehalfProfile', TRUE, 'onbehalf', $fieldTypes); } $this->_separateMembershipPayment = $this->get('separateMembershipPayment'); @@ -1214,8 +1214,6 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr // required for mailing/template display ..etc $values['related_contact'] = $contactID; - // required for IPN - $params['related_contact'] = $contactID; //make this employee of relationship as current //employer / employee relationship, CRM-3532 @@ -1962,7 +1960,7 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr // organization params in a separate variable, to make sure // normal behavior is continued. And use that variable to // process on-behalf-of functionality. - if (!empty($this->_params['onbehalf_profile_id'])) { + if (!empty($this->_values['onbehalf_profile_id'])) { $behalfOrganization = array(); $orgFields = array('organization_name', 'organization_id', 'org_option'); foreach ($orgFields as $fld) { @@ -2090,7 +2088,7 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr // If onbehalf-of-organization contribution / signup, add organization // and it's location. - if (isset($params['onbehalf_profile_id']) && isset($behalfOrganization['organization_name'])) { + if (isset($this->_values['onbehalf_profile_id']) && isset($behalfOrganization['organization_name'])) { $ufFields = array(); foreach ($this->_fields['onbehalf'] as $name => $value) { $ufFields[$name] = 1; diff --git a/CRM/Contribute/Form/Contribution/Main.php b/CRM/Contribute/Form/Contribution/Main.php index e7b373ceb8..ca53823def 100644 --- a/CRM/Contribute/Form/Contribution/Main.php +++ b/CRM/Contribute/Form/Contribution/Main.php @@ -182,7 +182,7 @@ class CRM_Contribute_Form_Contribution_Main extends CRM_Contribute_Form_Contribu } } - if ($this->_honor_block_is_active && count($completedContributionIds)) { + if (count($completedContributionIds)) { $softCredit = array(); foreach ($completedContributionIds as $id) { $softCredit = CRM_Contribute_BAO_ContributionSoft::getSoftContribution($id); diff --git a/CRM/Contribute/Form/Contribution/ThankYou.php b/CRM/Contribute/Form/Contribution/ThankYou.php index 33d3d8eb9f..972994b7fa 100644 --- a/CRM/Contribute/Form/Contribution/ThankYou.php +++ b/CRM/Contribute/Form/Contribution/ThankYou.php @@ -128,16 +128,16 @@ class CRM_Contribute_Form_Contribution_ThankYou extends CRM_Contribute_Form_Cont $this->assign('taxTerm', $taxTerm); $this->assign('totalTaxAmount', $params['tax_amount']); } - if (!empty($params['honor']) && !empty($params['soft_credit_type_id'])) { + if (!empty($this->_values['honoree_profile_id']) && !empty($params['soft_credit_type_id'])) { $honorName = NULL; $softCreditTypes = CRM_Core_OptionGroup::values("soft_credit_type", FALSE); $this->assign('soft_credit_type', $softCreditTypes[$params['soft_credit_type_id']]); - CRM_Contribute_BAO_ContributionSoft::formatHonoreeProfileFields($this, $params['honor'], $params['honoree_profile_id']); + CRM_Contribute_BAO_ContributionSoft::formatHonoreeProfileFields($this, $params['honor']); $fieldTypes = array('Contact'); - $fieldTypes[] = CRM_Core_BAO_UFGroup::getContactType($params['honoree_profile_id']); - $this->buildCustom($params['honoree_profile_id'], 'honoreeProfileFields', TRUE, 'honor', $fieldTypes); + $fieldTypes[] = CRM_Core_BAO_UFGroup::getContactType($this->_values['honoree_profile_id']); + $this->buildCustom($this->_values['honoree_profile_id'], 'honoreeProfileFields', TRUE, 'honor', $fieldTypes); } $qParams = "reset=1&id={$this->_id}"; @@ -196,7 +196,7 @@ class CRM_Contribute_Form_Contribution_ThankYou extends CRM_Contribute_Form_Cont $fieldTypes = array_merge($fieldTypes, array('Contribution')); } - $this->buildCustom($params['onbehalf_profile_id'], 'onbehalfProfile', TRUE, 'onbehalf', $fieldTypes); + $this->buildCustom($this->_values['onbehalf_profile_id'], 'onbehalfProfile', TRUE, 'onbehalf', $fieldTypes); } $this->assign('trxn_id', @@ -240,9 +240,6 @@ class CRM_Contribute_Form_Contribution_ThankYou extends CRM_Contribute_Form_Cont $this->_submitValues = array_merge($this->_submitValues, $defaults); - if (!empty($this->_params['onbehalf_values'])) { - $defaults['onbehalf'] = (array) json_decode($this->_params['onbehalf_values']); - } $this->setDefaults($defaults); $values['entity_id'] = $this->_id; diff --git a/CRM/Contribute/Form/ContributionBase.php b/CRM/Contribute/Form/ContributionBase.php index ca91a15254..17059240a2 100644 --- a/CRM/Contribute/Form/ContributionBase.php +++ b/CRM/Contribute/Form/ContributionBase.php @@ -320,11 +320,11 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form { $this->_membershipBlock = CRM_Member_BAO_Membership::getMembershipBlock($this->_id); $this->set('membershipBlock', $this->_membershipBlock); - if ($this->_values['custom_pre_id']) { + if (!empty($this->_values['custom_pre_id'])) { $preProfileType = CRM_Core_BAO_UFField::getProfileType($this->_values['custom_pre_id']); } - if ($this->_values['custom_post_id']) { + if (!empty($this->_values['custom_post_id'])) { $postProfileType = CRM_Core_BAO_UFField::getProfileType($this->_values['custom_post_id']); } @@ -708,7 +708,12 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form { } } - + /** + * Add onbehalf/honoree profile fields and native module fields. + * + * @param int $id + * @param CRM_Core_Form $form + */ public function buildComponentForm($id, $form) { if (empty($id)) { return; @@ -717,61 +722,45 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form { $contactID = $this->getContactID(); foreach (array('soft_credit', 'on_behalf') as $module) { - $ufJoinParams = array( - 'module' => $module, - 'entity_table' => 'civicrm_contribution_page', - 'entity_id' => $id, - ); - - $ufJoin = new CRM_Core_DAO_UFJoin(); - $ufJoin->copyValues($ufJoinParams); - $ufJoin->find(TRUE); - if (!$ufJoin->is_active) { - continue; - } - - $params = CRM_Contribute_BAO_ContributionPage::formatModuleData($ufJoin->module_data, TRUE, $module); - if ($module == 'soft_credit') { - $form->_honoreeProfileId = $ufJoin->uf_group_id; - $form->assign('honor_block_is_active', $ufJoin->is_active); + if (empty($form->_values['honoree_profile_id'])) { + continue; + } - if (!$form->_honoreeProfileId || - !CRM_Core_DAO::getFieldValue('CRM_Core_DAO_UFGroup', $form->_honoreeProfileId, 'is_active') - ) { + if (!CRM_Core_DAO::getFieldValue('CRM_Core_DAO_UFGroup', $form->_values['honoree_profile_id'], 'is_active')) { CRM_Core_Error::fatal(ts('This contribution page has been configured for contribution on behalf of honoree and the selected honoree profile is either disabled or not found.')); } - $profileContactType = CRM_Core_BAO_UFGroup::getContactType($form->_honoreeProfileId); + $profileContactType = CRM_Core_BAO_UFGroup::getContactType($form->_values['honoree_profile_id']); $requiredProfileFields = array( 'Individual' => array('first_name', 'last_name'), 'Organization' => array('organization_name', 'email'), 'Household' => array('household_name', 'email'), ); - $validProfile = CRM_Core_BAO_UFGroup::checkValidProfile($form->_honoreeProfileId, $requiredProfileFields[$profileContactType]); + $validProfile = CRM_Core_BAO_UFGroup::checkValidProfile($form->_values['honoree_profile_id'], $requiredProfileFields[$profileContactType]); if (!$validProfile) { CRM_Core_Error::fatal(ts('This contribution page has been configured for contribution on behalf of honoree and the required fields of the selected honoree profile are disabled or doesn\'t exist.')); } foreach (array('honor_block_title', 'honor_block_text') as $name) { - $form->assign($name, $params[$name]); + $form->assign($name, $form->_values[$name]); } $softCreditTypes = CRM_Core_OptionGroup::values("soft_credit_type", FALSE); // radio button for Honor Type - foreach ($params['soft_credit_types'] as $value) { + foreach ($form->_values['soft_credit_types'] as $value) { $honorTypes[$value] = $form->createElement('radio', NULL, NULL, $softCreditTypes[$value], $value); } $form->addGroup($honorTypes, 'soft_credit_type_id', NULL)->setAttribute('allowClear', TRUE); - $honoreeProfileFields = CRM_Core_BAO_UFGroup::getFields($form->_honoreeProfileId, FALSE, NULL, - NULL, NULL, - FALSE, NULL, - TRUE, NULL, - CRM_Core_Permission::CREATE + $honoreeProfileFields = CRM_Core_BAO_UFGroup::getFields( + $this->_values['honoree_profile_id'], FALSE, + NULL, NULL, + NULL, FALSE, + NULL, TRUE, + NULL, CRM_Core_Permission::CREATE ); - $form->addElement('hidden', 'honoree_profile_id', $form->_honoreeProfileId); $form->assign('honoreeProfileFields', $honoreeProfileFields); // add the form elements @@ -787,21 +776,18 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form { } } else { - $form->_values = array_merge($params, $form->_values); - - $form->_onBehalfProfileId = $ufJoin->uf_group_id; - $form->assign('onbehalf_block_is_active', $ufJoin->is_active); + if (empty($form->_values['onbehalf_profile_id'])) { + continue; + } - if (!$form->_onBehalfProfileId || - !CRM_Core_DAO::getFieldValue('CRM_Core_DAO_UFGroup', $form->_onBehalfProfileId, 'is_active') - ) { + if (!CRM_Core_DAO::getFieldValue('CRM_Core_DAO_UFGroup', $form->_values['onbehalf_profile_id'], 'is_active')) { CRM_Core_Error::fatal(ts('This contribution page has been configured for contribution on behalf of an organization and the selected onbehalf profile is either disabled or not found.')); } $member = CRM_Member_BAO_Membership::getMembershipBlock($form->_id); if (empty($member['is_active'])) { $msg = ts('Mixed profile not allowed for on behalf of registration/sign up.'); - $onBehalfProfile = CRM_Core_BAO_UFGroup::profileGroups($form->_onBehalfProfileId); + $onBehalfProfile = CRM_Core_BAO_UFGroup::profileGroups($form->_values['onbehalf_profile_id']); foreach (array( 'Individual', 'Organization', @@ -823,15 +809,15 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form { CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_RelationshipType', 'Employee of', 'id', 'name_a_b') ); - if (count($employer)) { + if (count($employers)) { // Related org url - pass checksum if needed $args = array( - 'ufId' => $form->_onBehalfProfileId, + 'ufId' => $form->_values['onbehalf_profile_id'], 'cid' => '', ); if (!empty($_GET['cs'])) { $args = array( - 'ufId' => $form->_onBehalfProfileId, + 'ufId' => $form->_values['onbehalf_profile_id'], 'uid' => $this->_contactID, 'cs' => $_GET['cs'], 'cid' => '', @@ -840,8 +826,8 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form { $locDataURL = CRM_Utils_System::url('civicrm/ajax/permlocation', $args, FALSE, NULL, FALSE); $form->assign('locDataURL', $locDataURL); } - if (count($employer) > 0) { - $form->add('select', 'onbehalfof_id', '', CRM_Utils_Array::collect('name', $employer)); + if (count($employers) > 0) { + $form->add('select', 'onbehalfof_id', '', CRM_Utils_Array::collect('name', $employers)); $orgOptions = array( 0 => ts('Select an existing organization'), @@ -853,10 +839,9 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form { } $form->assign('fieldSetTitle', ts('Organization Details')); - $form->addElement('hidden', 'onbehalf_profile_id', $form->_onBehalfProfileId); - if (CRM_Utils_Array::value('is_for_organization', $params)) { - if ($params['is_for_organization'] == 2) { + if (CRM_Utils_Array::value('is_for_organization', $form->_values)) { + if ($form->_values['is_for_organization'] == 2) { $form->assign('onBehalfRequired', TRUE); } else { @@ -867,10 +852,13 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form { } } - $profileFields = CRM_Core_BAO_UFGroup::getFields($form->_onBehalfProfileId, FALSE, CRM_Core_Action::VIEW, NULL, - NULL, FALSE, NULL, FALSE, NULL, - CRM_Core_Permission::CREATE, NULL + $profileFields = CRM_Core_BAO_UFGroup::getFields( + $form->_values['onbehalf_profile_id'], + FALSE, CRM_Core_Action::VIEW, NULL, + NULL, FALSE, NULL, FALSE, NULL, + CRM_Core_Permission::CREATE, NULL ); + $form->assign('onBehalfOfFields', $profileFields); if (!empty($form->_submitValues['onbehalf'])) { if (!empty($form->_submitValues['onbehalfof_id'])) { @@ -891,12 +879,12 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form { } if (count($form->_submitValues) && empty($form->_submitValues['is_for_organization']) && - $params['is_for_organization'] == 1 && + $form->_values['is_for_organization'] == 1 && !empty($field['is_required']) ) { $field['is_required'] = FALSE; } - CRM_Core_BAO_UFGroup::buildProfile($this, $field, NULL, NULL, FALSE, 'onbehalf', NULL, 'onbehalf'); + CRM_Core_BAO_UFGroup::buildProfile($form, $field, NULL, NULL, FALSE, 'onbehalf', NULL, 'onbehalf'); } } } diff --git a/templates/CRM/Contribute/Form/Contribution/Confirm.tpl b/templates/CRM/Contribute/Form/Contribution/Confirm.tpl index a956538a92..7b93d51deb 100644 --- a/templates/CRM/Contribute/Form/Contribution/Confirm.tpl +++ b/templates/CRM/Contribute/Form/Contribution/Confirm.tpl @@ -137,11 +137,6 @@ {if $onbehalfProfile|@count}
{include file="CRM/UF/Form/Block.tpl" fields=$onbehalfProfile prefix='onbehalf'} -
-
{ts}Organization Email{/ts}
-
{$onBehalfEmail}
-
-
{/if} diff --git a/templates/CRM/Contribute/Form/Contribution/Main.tpl b/templates/CRM/Contribute/Form/Contribution/Main.tpl index 440d3a05d9..63bba87db2 100644 --- a/templates/CRM/Contribute/Form/Contribution/Main.tpl +++ b/templates/CRM/Contribute/Form/Contribution/Main.tpl @@ -166,7 +166,7 @@ {include file="CRM/common/CMSUser.tpl"} {include file="CRM/Contribute/Form/Contribution/PremiumBlock.tpl" context="makeContribution"} - {if $honor_block_is_active} + {if $honoreeProfileFields|@count}
{crmRegion name="contribution-soft-credit-block"} {$honor_block_title} diff --git a/templates/CRM/Contribute/Form/Contribution/OnBehalfOf.tpl b/templates/CRM/Contribute/Form/Contribution/OnBehalfOf.tpl index cc5434354d..56ab65c912 100644 --- a/templates/CRM/Contribute/Form/Contribution/OnBehalfOf.tpl +++ b/templates/CRM/Contribute/Form/Contribution/OnBehalfOf.tpl @@ -103,7 +103,7 @@ $("#onbehalfof_id").show().change(); $("input#onbehalf_organization_name").hide(); } - else if ( orgOption == 'CIVICRM_QFID_1_org_option' ) { + else if (orgOption == 'CIVICRM_QFID_1_org_option') { $("input#onbehalf_organization_name").show(); $("#onbehalfof_id").hide(); reset = true; diff --git a/templates/CRM/Contribute/Form/Contribution/ThankYou.tpl b/templates/CRM/Contribute/Form/Contribution/ThankYou.tpl index fce8c8f8c6..a98a18c3aa 100644 --- a/templates/CRM/Contribute/Form/Contribution/ThankYou.tpl +++ b/templates/CRM/Contribute/Form/Contribution/ThankYou.tpl @@ -191,12 +191,7 @@ {if $onbehalfProfile|@count}
{include file="CRM/UF/Form/Block.tpl" fields=$onbehalfProfile prefix='onbehalf'} -
-
{ts}Organization Email{/ts}
-
{$onBehalfEmail}
-
-
-
+ {/if} {if $honoreeProfileFields|@count} -- 2.25.1