This document covers the Setup & Configuration system that provides a modular interface for configuring all aspects of the hotel management system. The setup system handles basic regional settings, advanced operational parameters, physical property configuration, and system-wide preferences.
For information about user management and permissions, see User Management. For dashboard analytics and reporting configuration, see Dashboard & Analytics.
The setup system uses a modular architecture where configuration modules are dynamically loaded and organized by category. The system scans directories for configuration modules and presents them in a card-based interface.
Setup Module Discovery Architecture
Module Structure
Config.php
position: int
setuptype: string
setupname: string
icon: CSS class
id: route identifier
setuppage.php
Scan inc/setup/ directories
Load Config.php from each module
Group by setuptype field
Sort by position field
Render setup cards UI
Setup.php Controller
index() - Main setup page
basicsetup() - Basic configuration
regionalsettings() - Currency/timezone
languagesettings() - Language config
floors() - Floor management
amenities() - Amenity setup
roomtypes() - Room type config
setuppage.php view
basic_setup.php view
regional_settings.php view
language_settings.php view
The setup system organizes configuration into distinct categories, each handling specific aspects of the hotel management system.
| Category | Description | Key Components |
|---|---|---|
| Basic Setup | Regional settings, languages, currencies | Currency selection, timezone configuration, measurement units |
| Advanced Setup | Operational parameters | Taxes, extra items, booking rules, check-in/out times |
| Physical Setup | Property structure | Floors, room types, amenities |
| System Setup | Core system settings | Database configuration, authentication |
Setup Entry Point
Basic Setup Category
Advanced Setup Category
Physical Setup Category
regionalsettings()
languagesettings()
taxes configuration
extraitems configuration
prior_date_booking
check-in&check-out-time
floors() setup
amenities() setup
roomtypes() setup
The setup system implements a pluggable module architecture where each configuration area is self-contained with its own configuration file, views, and logic.
Module Configuration Structure
Permission System
inc/setup/ModuleName/
Config.php
Views/
Controllers/
position: sort order
setuptype: category
setupname: display name
icon: CSS class
id: route identifier
content.php
listing page
permissionvaluecheck()
view permission
edit permission
Basic configuration handles fundamental system settings including regional preferences, language options, and core system parameters.
The regional settings module manages currency, timezone, and measurement system configuration.
Regional Settings Data Flow
Helper Functions
regional_settings.php
Currency Selection
Timezone Selection
Measurement System
currency table
tz_list() function
m² or ft² selection
timezone identifiers list
hotel_booking_setup table
getCurrency()
tz_list()
Language settings control both admin interface and frontend website language preferences.
Language Helper
language_settings.php
Admin Interface Language
Website Language
en, hi, fr, es options
English, French, German, Spanish, etc.
setting table
hotel_booking_setup table
display() function
language table
phrase field
Advanced configuration handles operational parameters including taxes, extra items, booking rules, and time-based settings.
The tax system supports both percentage-based and fixed-amount taxes with inclusive/exclusive options.
| Tax Parameter | Options | Description |
|---|---|---|
| tax_type | String | Custom tax type name |
| tax_amount_type | Percentage, Fixed | Calculation method |
| tax_option | inclusive, exclusive | Tax application method |
| tax_amount | Decimal | Tax value |
Tax Configuration Form Structure
Form Validation
taxes setup form
tax_type input
tax_amount_type select
tax_option select
tax_amount input
Percentage
Fixed
inclusive
exclusive
required attributes
step='0.01' for tax_amount
Extra items configuration allows adding billable items with pricing, while booking rules control reservation lead times.
Extra Items CRUD System
CRUD Operations
extraitems form
extraitems input
itemprice input
crudScriptdiv component
_addDatabtn
_editDatabtn
deleteit class
editit class
mainArray JSON storage
push to array
map and update
filter array
Physical setup manages the property's structure including floors, room types, and amenities.
Floor setup provides drag-and-drop interface for organizing property floors with room assignments.
Floor Setup Structure
Floor Card Styling
floors_setup.php
Floor Card UI
Ground Floor display
Room count display
Serviceable toggle
form-check-input
autocellwidth id
floor-card-img class
floor-card-text class
floor-num-rooms class
Room types define the different accommodation categories with detailed specifications.
Room Type Form Fields
roomtype_content.php
room_type_name
number_of_rooms
room_type_code
room_size
unit select
bed_type select
room_view_type select
room_description textarea
m²
ft²
single
double
king
queen
twin
sea_view
city_view
garden_view
no_view
Amenities setup manages property features and services available to guests.
Amenities Setup Flow
Form Routing
amenities_setup.php
Amenity Display Cards
Add Amenity Button
Wi-Fi amenity
TV amenity
fa-solid fa-wifi
fa-solid fa-tv
amenity form
name input
description textarea
formsetup id
setup/datasetup route
setup redirect
Helper Functions
Setup Controller
Database Layer
hotel_booking_setup table
currency table
setting table
admin_uid filter
timezone field
currency field
getInfoByUid()
getCurrency()
display()