User Tools

Site Tools


modulesguide

Modules Table - Complete Guide

This guide provides a step-by-step approach to correctly fill the Modules table in your database. The Modules table stores information about different functional modules available in the system, allowing you to:

  1. Activate or deactivate modules per client
  2. Create a parent-child module structure
  3. Set a default module per client
  4. Upload logos and icons for each module
  5. Control the display order of modules

You can find the detailed structure of the Modules table here: Modules Table Structure

Modules Table Structure Overview

Here’s a quick overview of the Modules Table Schema:

Field Name Type Description
id Primary Key Auto-incremented unique ID for each module
clientid Foreign Key ID of the client associated with the module
modulename varchar(50) Name of the module visible in the front-end and back-end
parentmoduleid int ID of the parent module if this module is a sub-module
defaultmodule int Whether this is the default module 1=Yes, 0=No
dependentmodules varchar(200) Comma-separated list of module IDs that this module depends on
ord int Defines the display order of modules in the app. Lower numbers appear first
modulelogo blob Binary image data for the module's logo
appiconname varchar(250) Name of the icon file displayed in the app
status int Module status 1=Active, 0=Inactive

Step 1: Add the Module ID (id)

The id column acts as the Primary Key for the Modules table.

  1. It is auto-incremented, meaning the database automatically generates a unique ID for each module.
  2. You do not need to enter this manually.

Example:

Scenario id
First Module 1
Second Module 2

The clientid column acts as a Foreign Key linking the module to a specific client.

  1. This is crucial when working in multi-client environments where different clients may have different modules.
  2. It ensures that each client has specific modules.
  3. Clients will only see the modules assigned to them.

Example:

Client clientid
Client A 101
Client B 102

If creating a module for Client A, set:

clientid = 101

If creating a module for Client B, set:

clientid = 102

Step 3: Set the Module Name (modulename)

The modulename column contains the visible name of the module that appears in:

  1. The back-end (admin panel)
  2. The front-end (client panel)

Example:

Module Name modulename
Reports Reports
User Management User Management

Note: Ensure the module name is unique per client.

Step 4: Set the Parent Module ID (parentmoduleid)

The parentmoduleid column is used to establish a parent-child relationship between modules.

  1. If the module has a parent module, enter the id of the parent module.
  2. If the module is independent, set this value to NULL.

Why Use a Parent Module?

  1. It creates a hierarchical structure like Reports > Sales Reports.
  2. The sub-modules only appear when the parent module is enabled.

Example:

Module Name id parentmoduleid
Reports 1 NULL
Sales Reports 2 1

This means Sales Reports will only appear if Reports is enabled.

Step 5: Mark the Default Module (defaultmodule)

The defaultmodule column specifies if this module is the default landing page for the client.

1 = Default Module
0 = Not Default

Only one module can be marked as default per client.

Example:

Module Name defaultmodule
Dashboard 1
Reports 0

If no module is marked as default, the system will load the first active module.

Step 6: Add Dependent Modules (dependentmodules)

The dependentmodules column stores a comma-separated list of module IDs that depend on this module.

Why Use This Field?

If Module A relies on Module B, you can enforce that Module A only works if Module B is enabled.

Example:

Module Name dependentmodules
Sales Reports 1
User Management 2,3,5

Leave this blank if no modules depend on this.

Step 7: Set the Module Order (ord)

The ord column controls the display order of the modules in the app.

Modules with lower values appear first.
Modules with higher values appear last.

Example:

Module Name ord
Dashboard 1
Reports 2
Settings 3

Best practice: Always set a unique order value.

The modulelogo column stores the module’s logo in binary format (BLOB).

Supported Image Types:

PNG
JPG
SVG

Maximum Dimensions:

100×100 pixels

You can upload the logo from the admin panel or via SQL.

Step 9: Add the App Icon Name (appiconname)

The appiconname column allows you to specify the name of the icon file shown in the mobile app or web app.

Example:

Module Name appiconname
Reports reports_icon.png
User Management user_icon.svg

Note: This is only the file name, not the image itself.

Step 10: Set the Module Status (status)

The status column determines if the module is active or inactive.

Status Values:

Value Status
1 Active
0 Inactive

If a module is inactive, it will be hidden from both the client panel and admin panel.

Example:

Module Name status
Reports 1
User Management 0

Final Example Record (Complete Module)

Here’s how a complete module record would look:

id clientid modulename parentmoduleid defaultmodule dependentmodules ord modulelogo appiconname status
1 101 Reports NULL 0 1 reports_icon.png reports_icon.png 1
2 101 Sales Reports 1 0 1 2 sales_icon.png sales_icon.png 1

Important Notes

  1. Always assign a unique order (ord) to prevent display conflicts.
  2. Avoid setting more than one default module per client.
  3. Parent-child module relationships are only visible if the parent module is active.
modulesguide.txt · Last modified: 2025/03/10 07:39 by gloria