MokoWaaS is a Joomla 5.x / 6.x system plugin that provides a configurable white-label identity layer for the MokoWaaS platform. It replaces all visible Joomla branding with your own brand name, company name, and support URLs — configurable from the plugin admin without code changes.
- Overview
- Features
- System Requirements
- Installation
- Usage
- Configuration
- Technical Implementation
- Repository Structure
- Development
- Documentation
- Support
- License
- Changelog
The MokoWaaS plugin operationalizes a unified naming convention, brand-controlled visuals, and enforced terminology across all tenant sites. This ensures consistent service delivery within the WaaS (Website as a Service) framework by abstracting all upstream Joomla identifiers behind MokoWaaS-compliant terminology.
- Template-Based Overrides: 50+ language keys with
{{BRAND_NAME}},{{COMPANY_NAME}},{{SUPPORT_URL}}placeholders - Configurable Brand: Change brand name, company, and support URL from plugin config — takes effect immediately
- Safe Override Merging: Sentinel-block pattern preserves existing site overrides during install/update
- Clean Uninstall: Only MokoWaaS keys are removed; all other overrides are preserved
- Joomla 5.x / 6.x Compatible: Built using modern Joomla plugin architecture with dependency injection
- Multi-Language Support: en-GB and en-US locales
- Admin & Frontend Coverage: Dashboard, footer, login, installer, system info, update component, error pages, and more
- Governance Compliant: Aligned with MokoStandards
- Joomla: 5.0+ or 6.x
- PHP: 8.1 or higher (8.3+ for Joomla 6)
- Extensions: Standard Joomla PHP extensions
- Permissions: Write access to language override directories
- Download the latest release package from the releases page
- Log into your Joomla Administrator panel
- Navigate to System → Extensions → Install
- Click Upload Package File
- Select the downloaded
.zipfile - Click Upload & Install
- Navigate to System → Plugins
- Search for "MokoWaaS Brand"
- Enable the plugin
- Clear Joomla cache
- Extract the plugin package
- Upload contents to your Joomla installation's
/tmpdirectory - Install via Joomla Extension Manager → Install from Folder
- Enable the plugin as described above
After installation, verify the branding is active:
- Check the administrator footer for "Powered by MokoWaaS"
- Verify the control panel shows "Welcome to MokoWaaS!"
- Clear browser cache if branding doesn't appear immediately
This plugin supports Joomla's automatic update system. Once installed:
- Navigate to System → Update → Extensions
- The plugin will automatically check for updates from the MokoWaaS update server
- When a new version is available, it will appear in the update list
- Click Update to install the latest version
The update server URL is configured in the plugin manifest and points to:
https://raw.githubusercontent.com/mokoconsulting-tech/MokoWaaS/main/updates.xml
Updates are published automatically when new releases are created through the GitHub release workflow.
Once installed and enabled, the plugin automatically replaces Joomla branding with your configured values. No code changes needed.
- Navigate to System → Plugins → System - MokoWaaS
- Set Brand Name to your desired name (e.g., "MyPlatform")
- Set Company Name to your company (e.g., "My Company Inc.")
- Set Support URL to your support site (e.g., "https://support.mycompany.com")
- Click Save & Close
- The new branding appears immediately across admin and frontend
| Area | Example |
|---|---|
| Admin footer | "Powered by YourBrand" |
| Dashboard | "Welcome to YourBrand!" |
| Quick Icons | "YourBrand is up to date." |
| System Info | "YourBrand Version" |
| Login page | "YourBrand Administrator Login" |
| Update component | "YourBrand Update" |
| Frontend footer | "Powered by YourBrand" |
| Error pages | No Joomla references |
The plugin provides the following configuration options accessible through System → Plugins → System - MokoWaaS:
| Parameter | Type | Default | Description |
|---|---|---|---|
| Enable Branding | Yes/No | Yes | Master toggle for all branding overrides |
| Brand Name | Text | MokoWaaS | Replaces "Joomla" throughout the interface |
| Company Name | Text | Moko Consulting | Used in support/attribution links |
| Support URL | URL | https://mokoconsulting.tech | Destination for help and documentation links |
See the Configuration Guide for detailed documentation on how overrides work.
The plugin follows Joomla 5.x system plugin architecture:
PlgSystemMokoWaaS
├── Event Handlers
│ ├── onAfterInitialise - Framework initialization hook
│ └── onAfterRoute - Route determination hook
├── Dependency Injection
│ └── ServiceProvider - DI container registration
└── Language Integration
└── Native Override System - Joomla's built-in override mechanism
-
mokowaas.php
- Main plugin class extending
CMSPlugin - Implements system event handlers
- Namespace:
Moko\Plugin\System\MokoWaaS
- Main plugin class extending
-
mokowaas.xml
- Plugin manifest defining metadata and structure
- Joomla 5.x namespace configuration
- File and folder definitions
-
services/provider.php
- Dependency injection service provider
- Registers plugin with Joomla's DI container
- Joomla 5.x compatibility layer
-
language/en-GB/
- Plugin-specific language strings
- Installation and configuration UI text
-
language/overrides/
- Frontend language override files
- Replaces Joomla terminology with MokoWaaS branding
-
administrator/language/overrides/
- Administrator language override files
- Backend-specific branding replacements
The plugin leverages Joomla's native language override system rather than programmatically loading strings. Language override files are placed in standard Joomla locations:
- Frontend:
language/overrides/{locale}.override.ini - Administrator:
administrator/language/overrides/{locale}.override.ini
Joomla automatically loads these overrides during initialization, ensuring optimal performance and compatibility.
mokowaas/
├── src/ # Plugin source files
│ ├── mokowaas.php # Main plugin class
│ ├── mokowaas.xml # Plugin manifest
│ ├── services/
│ │ └── provider.php # DI service provider
│ ├── language/
│ │ ├── en-GB/ # Plugin language files
│ │ └── overrides/ # Frontend language overrides
│ └── administrator/
│ └── language/
│ └── overrides/ # Admin language overrides
├── docs/ # Documentation
│ ├── index.md # Documentation index
│ ├── plugin-basic.md # Plugin overview
│ ├── guides/ # Operational guides
│ └── reference/ # Reference materials
├── scripts/ # Build and validation scripts
│ ├── validate_manifest.sh
│ ├── verify_changelog.sh
│ └── update_changelog.sh
├── .github/ # GitHub workflows
│ └── workflows/
│ ├── build.yml
│ ├── ci.yml
│ └── release_from_version.yml
├── CHANGELOG.md # Version history
├── README.md # This file
├── LICENSE.md # GPL-3.0-or-later license
├── CONTRIBUTING.md # Contribution guidelines
└── CODE_OF_CONDUCT.md # Community guidelines
Build the installable plugin package from source:
cd src
zip -r ../mokowaas_v01.04.00.zip . -x "*.git*"# Validate plugin manifest
./scripts/validate_manifest.sh
# Verify changelog format
./scripts/verify_changelog.shcd src
find . -name "*.php" -exec php -l {} \;The repository includes automated workflows:
- build.yml: Creates ZIP package on release
- ci.yml: Runs validation checks on pull requests
- release_from_version.yml: Automates release process
Comprehensive documentation is available in the /docs directory:
- Plugin Overview: Detailed plugin documentation
- Installation Guide: Step-by-step installation
- Build Guide: Building and packaging
- Configuration Guide: Configuration options
- Operations Guide: Operational procedures
- Troubleshooting Guide: Common issues
All documentation follows the MokoStandards documentation framework.
- Documentation: Check the
/docsdirectory for detailed guides - Issues: Submit issues through the GitHub issue tracker
- Service Support: For operational issues, submit a ticket through the Moko Consulting service channel
When reporting issues, include:
- Joomla version
- PHP version
- Plugin version
- Steps to reproduce
- Expected vs actual behavior
- Relevant error messages or logs
This project is licensed under the GNU General Public License version 3 or later (GPL-3.0-or-later).
See LICENSE.md for the full license text.
This extension follows the MokoStandards version governance model using semantic versioning: MAJOR.MINOR.PATCH
Current version: 01.04.00
See CHANGELOG.md for a complete version history.
- Added complete Joomla 5.x system plugin implementation
- Created main plugin class with event handlers
- Implemented plugin manifest with Joomla 5.x namespace support
- Added dependency injection service provider
- Created plugin language files
- Integrated with language override system
- Enhanced language overrides (57+ strings)
- Fixed typo in error messages (OCCURRED)
We welcome contributions! Please read CONTRIBUTING.md for details on:
- Code of conduct
- Development workflow
- Coding standards
- Pull request process
- Documentation requirements
- Built for the MokoWaaS platform
- Follows MokoStandards
- Designed for Joomla 5.x architecture
- Maintained by Moko Consulting