+--------------------------------------------------------------------+
| CiviCRM version 5 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2017 |
+ | Copyright CiviCRM LLC (c) 2004-2019 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
*/
function _civicrm_api3_contribution_page_create_spec(&$params) {
$params['financial_type_id']['api.required'] = 1;
- $params['payment_processor']['api.aliases'] = array('payment_processor_id');
+ $params['payment_processor']['api.aliases'] = ['payment_processor_id'];
$params['is_active']['api.default'] = 1;
}
* API result array
*/
function civicrm_api3_contribution_page_validate($params) {
+ // If we are calling this as a result of a POST action (e.g validating a form submission before first getting payment
+ // authorization from a payment processor like Paypal checkout) the lack of a qfKey will not result in a valid
+ // one being generated so we generate one first.
+ $originalRequest = $_REQUEST;
+ $qfKey = CRM_Utils_Array::value('qfKey', $_REQUEST);
+ if (!$qfKey) {
+ $_REQUEST['qfKey'] = CRM_Core_Key::get('CRM_Core_Controller', TRUE);
+ }
$form = new CRM_Contribute_Form_Contribution_Main();
$form->controller = new CRM_Core_Controller();
$form->set('id', $params['id']);
if ($errors === TRUE) {
$errors = [];
}
+ $_REQUEST = $originalRequest;
return civicrm_api3_create_success($errors, $params, 'ContributionPage', 'validate');
}
+/**
+ * Metadata for validate action.
+ *
+ * @param array $params
+ */
+function _civicrm_api3_contribution_page_validate_spec(&$params) {
+ $params['id'] = [
+ 'title' => ts('Contribution Page ID'),
+ 'api.required' => TRUE,
+ 'type' => CRM_Utils_Type::T_INT,
+ ];
+}
+
/**
* Set default getlist parameters.
*
* @return array
*/
function _civicrm_api3_contribution_page_getlist_defaults(&$request) {
- return array(
- 'description_field' => array(
+ return [
+ 'description_field' => [
'intro_text',
- ),
- 'params' => array(
+ ],
+ 'params' => [
'is_active' => 1,
- ),
- );
+ ],
+ ];
}