Skip to content
Snippets Groups Projects
Commit 21c51e1d authored by Erik Hommel's avatar Erik Hommel
Browse files

locally tested and approved fix #33

parent a177944a
No related branches found
No related tags found
No related merge requests found
<?php
/**
* Class for CiviRules Contribution Thank You Date Form
*
* @author Erik Hommel (CiviCooP) <erik.hommel@civicoop.org>
* @license AGPL-3.0
*/
class CRM_CivirulesActions_Contribution_Form_ThankYouDate extends CRM_CivirulesActions_Form_Form {
/**
* Overridden parent method to build the form
*
* @access public
*/
public function buildQuickForm() {
$this->add('hidden', 'rule_action_id');
$this->addDate('thank_you_date', ts('Thank You Date'), FALSE, array('formatType' => 'custom'));
$this->addButtons(array(
array('type' => 'next', 'name' => ts('Save'), 'isDefault' => TRUE,),
array('type' => 'cancel', 'name' => ts('Cancel'))));
}
/**
* Overridden parent method to set default values
*
* @return array $defaultValues
* @access public
*/
public function setDefaultValues() {
$defaultValues = parent::setDefaultValues();
$defaultValues['rule_action_id'] = $this->ruleActionId;
if (!empty($this->ruleAction->action_params)) {
$data = unserialize($this->ruleAction->action_params);
}
if (empty($data['thank_you_date'])) {
list($defaultValues['thank_you_date']) = CRM_Utils_Date::setDateDefaults(date('Y-m-d'));
} else {
list($defaultValues['thank_you_date']) = CRM_Utils_Date::setDateDefaults($data['thank_you_date']);
}
return $defaultValues;
}
/**
* Overridden parent method to process form data after submitting
*
* @access public
*/
public function postProcess() {
$data['thank_you_date'] = $this->_submitValues['thank_you_date'];
$this->ruleAction->action_params = serialize($data);
$this->ruleAction->save();
parent::postProcess();
}
}
\ No newline at end of file
......@@ -14,21 +14,43 @@ class CRM_CivirulesActions_Contribution_ThankYouDate extends CRM_Civirules_Actio
*
*/
public function processAction(CRM_Civirules_EventData_EventData $eventData) {
CRM_Core_Error::debug('eventData', $eventData);
exit();
$contactId = $eventData->getContactId();
$contribution = $eventData->getEntityData('Contribution');
$actionParams = $this->getActionParameters();
$params = array(
'id' => $contribution['id'],
'thankyou_date' => date('Ymd', strtotime($actionParams['thank_you_date']))
);
try {
civicrm_api3('Contribution', 'Create', $params);
} catch (CiviCRM_API3_Exception $ex) {}
}
/**
* Method to return the url for additional form processing for action
* and return false if none is needed
* Returns a redirect url to extra data input from the user after adding a action
*
* Return false if you do not need extra data input
*
* @param int $ruleActionId
* @return bool
* @return bool|string
* @access public
*/
public function getExtraDataInputUrl($ruleActionId) {
return FALSE;
return CRM_Utils_System::url('civicrm/civirule/form/action/contribution/thankyoudate', 'rule_action_id='.$ruleActionId);
}
/**
* Returns a user friendly text explaining the condition params
* e.g. 'Older than 65'
*
* @return string
* @access public
*/
public function userFriendlyConditionParams() {
$return = '';
$params = $this->getActionParameters();
if (!empty($params['thank_you_date'])) {
$return = 'Thank You Date for Contribution will be set to : '.date('d M Y', strtotime($params['thank_you_date']));
}
return $return;
}
}
\ No newline at end of file
<h3>{$ruleActionHeader}</h3>
<div class="crm-block crm-form-block crm-civirule-rule_action-block-contact_subtype">
<div class="crm-block crm-form-block crm-civirule-rule_action-block-contribution-thank-you-date">
<div class="crm-section">
<div class="label">{$form.type.label}</div>
<div class="content">{$form.type.html}</div>
<div class="clear"></div>
</div>
<div class="crm-section sub_type-single">
<div class="label">{$form.subtype.label}</div>
<div class="content">{$form.subtype.html}</div>
<div class="clear"></div>
</div>
<div class="crm-section sub_type-multiple" style="display: none;">
<div class="label">{$form.subtypes.label}</div>
<div class="content">{$form.subtypes.html}</div>
<div class="label">{$form.thank_you_date.label}</div>
<div class="content">{include file="CRM/common/jcalendar.tpl" elementName=thank_you_date}</div>
<div class="clear"></div>
</div>
</div>
<div class="crm-submit-buttons">
{include file="CRM/common/formButtons.tpl" location="bottom"}
</div>
{literal}
<script type="text/javascript">
cj(function() {
cj('select#type').change(triggerTypeChange);
triggerTypeChange();
});
function triggerTypeChange() {
cj('.sub_type-multiple').css('display', 'none');
cj('.sub_type-single').css('display', 'none');
var val = cj('#type').val();
if (val == 0 ) {
cj('.sub_type-single').css('display', 'block');
} else {
cj('.sub_type-multiple').css('display', 'block');
}
}
</script>
{/literal}
\ No newline at end of file
......@@ -134,7 +134,7 @@
<access_arguments>administer CiviCRM</access_arguments>
</item>
<item>
<path>civicrm/civirule/form/action/thankyoudate</path>
<path>civicrm/civirule/form/action/contribution/thankyoudate</path>
<page_callback>CRM_CivirulesActions_Contribution_Form_ThankYouDate</page_callback>
<title>Contribution Thank You Date</title>
<access_arguments>access CiviCRM</access_arguments>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment