Using YAML and TUIX

Many of your module's files need to be written in a special language called YAML. YAML is a human-readable data format that is compatible with both JSON and PHP arrays.

The CMS also supports reading files in JSON, NEON and XML, however we recommend using YAML as we feel it is the easiest to work with.

TUIX-based applications

The CMS comes with many AJAX-based applications or toolkits that read your YAML files and operate based on what you have written. We call an application that is controlled by the YAML files you have written a TUIX applications.

TUIX stands for "Tribiq User Interface", where "Tribiq" is our company name and the X is just to aid pronunciation and does not actually stand for anything.

The data flow in a TUIX application

The data that a TUIX application needs is contained in your YAML files.

The CMS reads the YAML files and converts the data to a PHP array. At this point the CMS will allow you to dynamically change the data, by passing the data to one of your module's methods.

The data is then converted to JSON and then sent to the AJAX-based application on the client.

Some applications (e.g. the Admin Box toolkit) will then send the data back to the server with modifications.

Other applications (e.g. Organizer) will never send the data back, but will signal the server with GET or POST requests.

Description Schemas

Wherever the CMS or a TUIX-based application reads your YAML files, we have provided a schema (in the JSON Schema format) that tells you the format of data that the applications need to run.

The schemas are documented further down in this area of the website.

If you download a copy of the CMS, you can find the schemas in raw format in the zenario/api directory. You can also read the schemas from the dev tools.

Validating your YAML files

If you have special software, you can validate any YAML file you write by checking it against the schema files provided with the CMS.

You can see a list of the JSON Schema validation software available at json-schema.org/implementations.html.

The dev tools include a built in validator that will alert you to possible errors in your code.