From 2a4b4c899fa68a93bf46006a194832f143a1e5f5 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Sat, 19 Mar 2022 17:32:39 -0400 Subject: [PATCH] Afform - repeat block metadata update to fix errors when saving blocks --- ext/afform/core/CRM/Afform/Upgrader.php | 27 ++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/ext/afform/core/CRM/Afform/Upgrader.php b/ext/afform/core/CRM/Afform/Upgrader.php index a89a9264f3..ccac7fc550 100644 --- a/ext/afform/core/CRM/Afform/Upgrader.php +++ b/ext/afform/core/CRM/Afform/Upgrader.php @@ -30,8 +30,17 @@ class CRM_Afform_Upgrader extends CRM_Afform_Upgrader_Base { $html = str_replace(array_keys($replacements), array_values($replacements), $html); file_put_contents($fileName, $html); } + $this->updateBlockMetadata($scanner); - // Update form metadata with new block property names + return TRUE; + } + + /** + * Update form metadata with new block property names + * @param CRM_Afform_AfformScanner $scanner + */ + private function updateBlockMetadata(CRM_Afform_AfformScanner $scanner): void { + $localDir = $scanner->getSiteLocalPath(); $replacements = [ 'join' => 'join_entity', 'block' => 'entity_type', @@ -49,11 +58,10 @@ class CRM_Afform_Upgrader extends CRM_Afform_Upgrader_Base { } file_put_contents($fileName, json_encode($meta, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)); } - return TRUE; } /** - * Upgrade 1000 - install civicrm_afform_submission table + * Upgrade 1001 - install civicrm_afform_submission table * @return bool */ public function upgrade_1001(): bool { @@ -64,4 +72,17 @@ class CRM_Afform_Upgrader extends CRM_Afform_Upgrader_Base { return TRUE; } + /** + * Upgrade 1002 - repeat block metadata update to fix errors when saving blocks + * @see #22963 + * @return bool + */ + public function upgrade_1002(): bool { + $this->ctx->log->info('Applying update 1002 - repeat block metadata update.'); + $scanner = new CRM_Afform_AfformScanner(); + $this->updateBlockMetadata($scanner); + + return TRUE; + } + } -- 2.25.1