_id, 'title'); CRM_Utils_System::setTitle(ts('Thank-you and Receipting') . " ($title)"); return parent::setDefaultValues(); } /** * Build the form object. * * @return void */ public function buildQuickForm() { $this->registerRule('emailList', 'callback', 'emailList', 'CRM_Utils_Rule'); // thank you title and text (html allowed in text) $this->add('text', 'thankyou_title', ts('Thank-you Page Title'), CRM_Core_DAO::getAttribute('CRM_Contribute_DAO_ContributionPage', 'thankyou_title'), TRUE); $attributes = CRM_Core_DAO::getAttribute('CRM_Contribute_DAO_ContributionPage', 'thankyou_text'); $attributes['click_wysiwyg'] = TRUE; $this->addWysiwyg('thankyou_text', ts('Thank-you Message'), $attributes); // FIXME: This hack forces height of editor to 175px. Need to modify QF classes for editors to allow passing // explicit height and width. $footerAttribs = array( 'rows' => 2, 'cols' => 40, 'click_wysiwyg' => TRUE, ); $this->addWysiwyg('thankyou_footer', ts('Thank-you Footer'), $footerAttribs); $this->addElement('checkbox', 'is_email_receipt', ts('Email Receipt to Contributor?'), NULL, array('onclick' => "showReceipt()")); $this->add('text', 'receipt_from_name', ts('Receipt From Name'), CRM_Core_DAO::getAttribute('CRM_Contribute_DAO_ContributionPage', 'receipt_from_name')); $this->add('text', 'receipt_from_email', ts('Receipt From Email'), CRM_Core_DAO::getAttribute('CRM_Contribute_DAO_ContributionPage', 'receipt_from_email')); $this->add('textarea', 'receipt_text', ts('Receipt Message'), CRM_Core_DAO::getAttribute('CRM_Contribute_DAO_ContributionPage', 'receipt_text')); $this->add('text', 'cc_receipt', ts('CC Receipt To'), CRM_Core_DAO::getAttribute('CRM_Contribute_DAO_ContributionPage', 'cc_receipt')); $this->addRule('cc_receipt', ts('Please enter a valid list of comma delimited email addresses'), 'emailList'); $this->add('text', 'bcc_receipt', ts('BCC Receipt To'), CRM_Core_DAO::getAttribute('CRM_Contribute_DAO_ContributionPage', 'bcc_receipt')); $this->addRule('bcc_receipt', ts('Please enter a valid list of comma delimited email addresses'), 'emailList'); parent::buildQuickForm(); $this->addFormRule(array('CRM_Contribute_Form_ContributionPage_ThankYou', 'formRule'), $this); } /** * Global form rule. * * @param array $fields * The input form values. * @param array $files * The uploaded files if any. * @param array $options * Additional user data. * * @return bool|array * true if no errors, else array of errors */ public static function formRule($fields, $files, $options) { $errors = array(); // if is_email_receipt is set, the receipt message must be non-empty if (!empty($fields['is_email_receipt'])) { //added for CRM-1348 $email = trim(CRM_Utils_Array::value('receipt_from_email', $fields)); if (empty($email) || !CRM_Utils_Rule::email($email)) { $errors['receipt_from_email'] = ts('A valid Receipt From Email address must be specified if Email Receipt to Contributor is enabled'); } } return $errors; } /** * Process the form. * * @return void */ public function postProcess() { // get the submitted form values. $params = $this->controller->exportValues($this->_name); $params['id'] = $this->_id; $params['is_email_receipt'] = CRM_Utils_Array::value('is_email_receipt', $params, FALSE); if (!$params['is_email_receipt']) { $params['receipt_from_name'] = NULL; $params['receipt_from_email'] = NULL; $params['receipt_text'] = NULL; $params['cc_receipt'] = NULL; $params['bcc_receipt'] = NULL; } $dao = CRM_Contribute_BAO_ContributionPage::create($params); parent::endPostProcess(); } /** * Return a descriptive name for the page, used in wizard header * * @return string */ public function getTitle() { return ts('Thanks and Receipt'); } }