Translations of this page?:

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:
    1. 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)
    2. options: here there are a wide variety of options to be used, which are not compulsory, such as:
      1. “useLangs”:true → means that it will use the code for the language name, otherwise it uses the DataBase name
      2. “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
      3. “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:
    1. is_root: if true, the dimension member can be added in the root of the dimension
    2. options: there is a wide variety to be used, but not compulsory:
      1. “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:
    1. is_required: if true, it means that the Content Object must be classified within at least one dimension member
    2. 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:


PLEASE NOTE: Comments to the wiki should only contain suggestions and questions that help us to improve the manual (and not the software). These comments will be deleted as soon as the information has been integrated into the manual.

Posts that do not contribute to the DOCUMENTATION of the project will be DELETED.

Ask QUESTIONS on the product here.
Report BUGS here.
Propose NEW FEATURES here.

Enter your comment
dimensions_documentation.txt · Last modified: 2014-04-09 15:09 by nicolas
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported

Terms of Service | Privacy and Security policies | Copyright © 2021