(REF) _afform_html_filter() - Extract method for unit-testing
authorTim Otten <totten@civicrm.org>
Fri, 1 Nov 2019 19:45:15 +0000 (12:45 -0700)
committerCiviCRM <info@civicrm.org>
Wed, 16 Sep 2020 02:13:19 +0000 (19:13 -0700)
ext/afform/core/afform.php

index 81323f2faf00f27975b29beb03f0cfb248d21d76..e9decfee32f3ee2159f575748a9dec6083964a64 100644 (file)
@@ -395,25 +395,34 @@ function afform_civicrm_buildAsset($asset, $params, &$mimeType, &$content) {
   /** @var \CRM_Afform_AfformScanner $scanner */
   $scanner = Civi::service('afform_scanner');
   $meta = $scanner->getMeta($name);
-  // Hmm?? $scanner = new CRM_Afform_AfformScanner();
-
-  $fileName = '~afform/' . _afform_angular_module_name($name, 'camel');
-  $htmls = [
-    $fileName => $scanner->getLayout($name),
-  ];
-  $htmls = \Civi\Angular\ChangeSet::applyResourceFilters(Civi::service('angular')->getChangeSets(), 'partials', $htmls);
 
   $smarty = CRM_Core_Smarty::singleton();
   $smarty->assign('afform', [
     'camel' => _afform_angular_module_name($name, 'camel'),
     'meta' => $meta,
     'metaJson' => json_encode($meta),
-    'layout' => $htmls[$fileName],
+    'layout' => _afform_html_filter($name, $scanner->getLayout($name)),
   ]);
   $mimeType = 'text/javascript';
   $content = $smarty->fetch('afform/AfformAngularModule.tpl');
 }
 
+/**
+ * Apply any filters to an HTML partial.
+ *
+ * @param string $formName
+ * @param string $html
+ *   Original HTML.
+ * @return string
+ *   Modified HTML.
+ */
+function _afform_html_filter($formName, $html) {
+  $fileName = '~afform/' . _afform_angular_module_name($formName, 'camel');
+  $htmls = [$fileName => $html];
+  $htmls = \Civi\Angular\ChangeSet::applyResourceFilters(Civi::service('angular')->getChangeSets(), 'partials', $htmls);
+  return $htmls[$fileName];
+}
+
 /**
  * Implements hook_civicrm_alterMenu().
  */