From 04de72e9f0225377bbead2ecf1a2710ae6312ea9 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Fri, 11 Nov 2016 16:28:26 -0500 Subject: [PATCH] CRM-19640 - Add pre/post hooks to CustomField ops --- CRM/Core/BAO/CustomField.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/CRM/Core/BAO/CustomField.php b/CRM/Core/BAO/CustomField.php index 9c6beae7a5..7f1aea4ae9 100644 --- a/CRM/Core/BAO/CustomField.php +++ b/CRM/Core/BAO/CustomField.php @@ -130,7 +130,11 @@ class CRM_Core_BAO_CustomField extends CRM_Core_DAO_CustomField { public static function create(&$params) { $origParams = array_merge(array(), $params); - if (!isset($params['id'])) { + $op = empty($params['id']) ? 'create' : 'edit'; + + CRM_Utils_Hook::pre($op, 'CustomField', CRM_Utils_Array::value('id', $params), $params); + + if ($op == 'create') { if (!isset($params['column_name'])) { // if add mode & column_name not present, calculate it. $params['column_name'] = strtolower(CRM_Utils_String::munge($params['label'], '_', 32)); @@ -289,7 +293,7 @@ class CRM_Core_BAO_CustomField extends CRM_Core_DAO_CustomField { $triggerRebuild = CRM_Utils_Array::value('triggerRebuild', $params, TRUE); //create/drop the index when we toggle the is_searchable flag - if (!empty($params['id'])) { + if ($op == 'edit') { self::createField($customField, 'modify', $indexExist, $triggerRebuild); } else { @@ -309,6 +313,8 @@ class CRM_Core_BAO_CustomField extends CRM_Core_DAO_CustomField { // complete transaction $transaction->commit(); + CRM_Utils_Hook::post($op, 'CustomField', $customField->id, $customField); + CRM_Utils_System::flushCache(); return $customField; @@ -1109,6 +1115,8 @@ class CRM_Core_BAO_CustomField extends CRM_Core_DAO_CustomField { $field->delete(); CRM_Core_BAO_UFField::delUFField($field->id); CRM_Utils_Weight::correctDuplicateWeights('CRM_Core_DAO_CustomField'); + + CRM_Utils_Hook::post('delete', 'CustomField', $field->id, $field); } /** -- 2.25.1