AfformScanner - Add getMetas()
authorTim Otten <totten@civicrm.org>
Wed, 13 Jun 2018 03:31:36 +0000 (20:31 -0700)
committerCiviCRM <info@civicrm.org>
Wed, 16 Sep 2020 02:13:16 +0000 (19:13 -0700)
ext/afform/CRM/Afform/AfformScanner.php

index b6bf50a4c87ae47d3de48e6fa7f6850bc51b3ceb..03cc44642d74d184e7832b72ad1e5e2731b4505c 100644 (file)
@@ -31,6 +31,8 @@ class CRM_Afform_AfformScanner {
   }
 
   /**
+   * Get a list of all forms and their file paths.
+   *
    * @return array
    *   Ex: ['view-individual' => ['/var/www/foo/afform/view-individual']]
    */
@@ -108,7 +110,8 @@ class CRM_Afform_AfformScanner {
    * @param string $name
    *   Ex: 'view-individual'
    * @return array
-   *   An array with some mix of the following keys: name, title, description, client_route, server_route, requires
+   *   An array with some mix of the following keys: name, title, description, client_route, server_route, requires.
+   *   NOTE: This is only data available in meta.json. It does *NOT* include layout.
    *   Ex: [
    *     'name' => 'view-individual',
    *     'title' => 'View an individual contact',
@@ -133,6 +136,22 @@ class CRM_Afform_AfformScanner {
     return array_merge($defaults, json_decode(file_get_contents($metaFile), 1));
   }
 
+  /**
+   * Get the effective metadata for all forms.
+   *
+   * @return array
+   *   A list of all forms, keyed by form name.
+   *   NOTE: This is only data available in meta.json. It does *NOT* include layout.
+   *   Ex: ['view-individual' => ['title' => 'View an individual contact', ...]]
+   */
+  public function getMetas() {
+    $result = array();
+    foreach (array_keys($this->findFilePaths()) as $name) {
+      $result[$name] = $this->getMeta($name);
+    }
+    return $result;
+  }
+
   /**
    * @param array $formPaths
    *   List of all form paths.