× Table of Contents Dimensions - Developers insight Developing a dimension Tables explanation Association with objects 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_dimensions Purpose: it defines the dimensions Fields: is_manageable: if false, when editing a Content Object this dimension will never be shown to be selected for the relationship (i.e.: People's dimension) options: here there are a wide variety of options to be used, which are not compulsory, such as: “useLangs”:true → means that it will use the code for the language name, otherwise it uses the DataBase name “defaultAjax”:{“controller”:“contact”, “action”: “init”} → this defines the action for the controller when the user goes to View all when standing on the dimension. In this case it calls the init function from the ContactController “quickAdd”:{“formAction”:“?c=contact&a=quick_add”} → this defines the action to be called when the quick add is available, in this case it calls to quick_add from the ContactController Table Name: fo_members Purpose: it will keep the dimension members information 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. Table Name: fo_dimension_object_type_contents Purpose: it defines the possible Content Objects that could be used for the dimensions and dimension members. Fields: is_required: if true, it means that the Content Object must be classified within at least one dimension member is_multiple: if true, it means the object type can be classified within multiple dimension members at the same time Table Name: fo_dimension_member_association Purpose: it defines whether a dimension member can be related to a different one (i.e.: People with Project) Table Name: fo_member_property_members Purpose: it defines the association between one dimension member with another Table Name: fo_member_restrictions Purpose: it defines the restrictions when creating or editing a dimension member 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: Log In