(REF) AHQ::makeRoot() - Extract helper from FormDataModel
authorTim Otten <totten@civicrm.org>
Fri, 1 Nov 2019 20:27:46 +0000 (13:27 -0700)
committerCiviCRM <info@civicrm.org>
Wed, 16 Sep 2020 02:13:19 +0000 (19:13 -0700)
ext/afform/core/Civi/Afform/AHQ.php
ext/afform/core/Civi/Afform/FormDataModel.php

index 1a8f1edb610edbf2b28e81856a4b7e9fac788124..e87512f5a53d31743d068801e938158239ac0137 100644 (file)
@@ -10,6 +10,20 @@ namespace Civi\Afform;
  */
 class AHQ {
 
+  /**
+   * Given a list of would-be child nodes, combine them under a common root.
+   *
+   * @param array $children
+   * @param string $tag
+   * @return array
+   */
+  public static function makeRoot($children, $tag = 'placeholder') {
+    return [
+      '#tag' => $tag,
+      '#children' => $children,
+    ];
+  }
+
   /**
    * Returns all tags with a certain tag name, e.g. 'af-entity'
    *
index ec8cb7fdb22588fe816bdcda9dcf0c5deeb7f30d..ce45687cb16224e95a84d3ccec0032246ceef179 100644 (file)
@@ -26,10 +26,7 @@ class FormDataModel {
    *   Parsed summary of the entities used in a given form.
    */
   public static function create($layout) {
-    $root = [
-      '#tag' => 'root',
-      '#children' => $layout,
-    ];
+    $root = AHQ::makeRoot($layout);
     $entities = array_column(AHQ::getTags($root, 'af-entity'), NULL, 'name');
     foreach (array_keys($entities) as $entity) {
       $entities[$entity]['fields'] = [];