Dimensions - Developers insight
This section will briefly explain how dimensions work within Feng Office, from a developer point of view.
Developing a dimension
If you develop a plugin, it will be easier to create the dimension if you provide the required relationships and data to it, so that the system automatically creates it.
Tables explanation
This section will explain the required tables, and their use. Some of their fields will be explained too, but only those not too obvious at first sight, but not all of them.
Table Name: fo_dimension_object_types
Purpose: it defines the dimension members that can be added to a dimension (i.e.: project, client, folder, etc.)
Fields:
is_root: if true, the dimension member can be added in the root of the dimension
options: there is a wide variety to be used, but not compulsory:
“defaultAjax”:{“controller”:“dashboard”, “action”: “main_dashboard”}} → it goes for the function that will be called when accessing the Overview tab, in this case main_dashboard, from the DashboardController
Table Name: fo_dimension_object_type_hierarchies
Purpose: it defines the possible hierarchies for the dimension members, such as a Project can be a child of a Client, but a Client cannot be a child of a Project.
Association with objects
The following picture shows the relationship between a dimension member, with the fo_objects table. The example has been done with the Workspaces dimension: