Technical Overview: Form Storage -- SDMX CrossSectional

From IHRIS Wiki

This is a form storage mechanism designed to read data from an SDMX-HD code list file. This form storage mechanism is present in version >= 4.0.6.

This is a read-only form storage mechanism.


This form storage mechanism requires PHP 5.3 or greater

Form Storage Options

The options specifying a SDMX Cross Sectional storage for $form are stored at:

/modules/forms/forms/$form/storage_options/SDMX_CrossSectional

It has the following structure:

  • file: Required scalar node. The SDMX file that the data should be read from. This can either be an absolutely given file path, a relative file path, or the URL of a stream handled by php. If it is a relative file path, then it uses the SDMXHD file search category. The file can also be a path to a scalar node in magic data as indicated by 'mdn://path/in/magic/data'
  • namespace: Optional scalar node. defaults to 'ns'.
  • parent: optional parent node. The data defining how to associate a parent id DOM Node.
    • attribute: Required scalar node. The name of the attribute which contains the parent. If neither 'query' or this is set, there is not parent data. 'query' takes precendence.
    • eval: Optional scalar node. If set it is a code php code which modifies the id, stored in the $val variable. For example '$val = strtoupper($val);'
    • map_data: Optional parent node. .It is used to map the given field via a SDMX-HD Code List that is in the system
      • list: Required scalar node. The list that we want this field to take values in
      • codelist: Required scalar node: The name of the SDMX-HD code list which this attribute takes values in, in other words the value we wish to map from.
      • mapping_form: Optional scalar node. The name of the form which contains the mapping data between the SDMX-HD Code List and the list we wish to map to. If the module Lists-LinkTo-List is enabled and the value is not set then it defaults to list_linkto_list_XXXX where XXXX is the form storage mechanism of the list. If set, the form should subclass I2CE_ListLink_List.
  • fields: Optional parent node. Specifies how the data of the your form is associate to a row of your table. Each child of this node is the name of a field $field of your form.
    • $field: Optional parent node with the following child nodes.
      • attribute: Required scalar node. The name of the attribute which contains the parent. If neither 'query' nor this is set, there is not data. 'query' takes precendence
      • eval: Optional scalar node. If set it is a code php code which modifies the id, stored in the $val variable. For example '$val = strtoupper($val);'
      • map_data: Optional parent node. .It is used to map the given field via a SDMX-HD Code List that is in the system
        • list: Required scalar node. The list that we want this field to take values in
        • codelist: Required scalar node: The name of the SDMX-HD code list which this attribute takes values in, in other words the value we wish to map from.
        • mapping_form: Optional scalar node. The name of the form which contains the mapping data between the SDMX-HD Code List and the list we wish to map to. If the module Lists-LinkTo-List is enabled and the value is not set then it defaults to list_linkto_list_XXXX where XXXX is the form storage mechanism of the list. If set, the form should subclass I2CE_ListLink_List.