Field Mapping

Example

{%- function field_map = "modules/module_86/front_end/functions/v1/field_mapping", field_headings: field_headings, this: this -%}

Purpose

This function is an important part of how WebApp Layouts can automatically adapt to handle different sources of data.

It takes in a headings object which stores field IDs as keys next to the names of available field slots as values. It then returns a new object using the values in this which stores the data values against those field slots so that the layout can output the data.

Adjusting the Mapping

If you add a new field to the WebApp after creating the layout with SiteBuilder, you can safely access that value via the this object as you normally would in a layout.

However, if you wish, you can also modify the existing headings in the JSON object.

Starting with this Object...

{% parse_json field_headings %}
  {
    "Title": "name"
  }
{% endparse_json %}

You could change it so that existing {{field_map['Title']}} outputs would output values from a different field like so:

{% parse_json field_headings %}
  {
    "Title": "webapp_field_1_1"
  }
{% endparse_json %}

Or you can add a brand new slot to the WebApp {{field_map['Extra Slot']}} and populate it with a new field's data:

{% parse_json field_headings %}
  {
    "Title": "name"
    "Extra Slot": "webapp_field_1_2"
  }
{% endparse_json %}

As the field_headings are passed into the function, the function will return an object where the required data values are stored against the correct keys.