Add hook_civicrm_preProcess function.
authorAnthony Nemirovsky <anemirovsky@giantrabbit.com>
Thu, 13 Nov 2014 18:23:17 +0000 (10:23 -0800)
committerAnthony Nemirovsky <anemirovsky@giantrabbit.com>
Thu, 13 Nov 2014 18:23:17 +0000 (10:23 -0800)
This seems to be a generically useful spot to intercept the form object and
change things before the form is processed. Specifically, we need this hook
for integrating the Event Cart with the CiviDiscount extension.

CRM/Core/Form.php
CRM/Utils/Hook.php

index deb7eac180fe06814f7f8be1d2a5c1dc5793e74c..3e92e6f4bf0b60b58c13fb9d5ec97cf9cb16efc1 100644 (file)
@@ -435,6 +435,8 @@ class CRM_Core_Form extends HTML_QuickForm_Page {
 
     $this->preProcess();
 
+    CRM_Utils_Hook::preProcess(get_class($this), $this);
+
     $this->assign('translatePermission', CRM_Core_Permission::check('translate CiviCRM'));
 
     if (
index 3ca5709eb2aa5f4af64b5bf4ca60b0acb4608226..63239d4f9db2c7f5d9a9d22bf2007caebecb3898 100644 (file)
@@ -302,6 +302,18 @@ abstract class CRM_Utils_Hook {
     return self::singleton()->invoke(6, $op, $objectName, $objectId, $links, $mask, $values, 'civicrm_links');
   }
 
+  /**
+   * This hook is invoked during the CiviCRM form preProcess phase.
+   *
+   * @param string $formName the name of the form
+   * @param object $form     reference to the form object
+   *
+   * @return null the return value is ignored
+   */
+  static function preProcess($formName, &$form) {
+    return self::singleton()->invoke(2, $formName, $form, $formName, $formName,
+  }
+
   /**
    * This hook is invoked when building a CiviCRM form. This hook should also
    * be used to set the default values of a form element