Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
MokoWaaS-Brand Plugin
MokoWaaS-Brand is a Joomla 5.x system plugin that provides a comprehensive identity override layer for the MokoWaaS platform. It ensures consistent branding, terminology, and user experience across all Joomla administrative and frontend interfaces.
Table of Contents
- Overview
- Features
- System Requirements
- Installation
- Configuration
- Technical Implementation
- Repository Structure
- Development
- Documentation
- Support
- License
- Changelog
Overview
The MokoWaaS-Brand 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.
Features
- Comprehensive Language Overrides: 57+ language strings replacing Joomla branding with MokoWaaS terminology
- Administrator & Frontend Coverage: Applies branding across both Joomla backend and frontend
- Joomla 5.x Compatible: Built using modern Joomla 5.x architecture with dependency injection
- Event-Driven Architecture: Utilizes Joomla system events for optimal integration
- Configurable: Enable/disable branding functionality through plugin parameters
- Multi-Language Support: Currently supports en-GB and en-US locales
- Governance Compliant: Aligned with MokoStandards
System Requirements
- Joomla: 5.x or higher
- PHP: 8.1 or higher
- Extensions: Standard Joomla PHP extensions
- Permissions: Write access to language override directories
Installation
Method 1: Via Joomla Extension Manager (Recommended)
- 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
Method 2: Manual Installation
- 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
Post-Installation
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
Automatic Updates
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-Brand 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/MokoWaaSBrand/main/updates.xml
Updates are published automatically when new releases are created through the GitHub release workflow.
Configuration
The plugin provides the following configuration options accessible through System → Plugins → System - MokoWaaS Brand:
Parameters
- Enable Branding (Yes/No)
- Default: Yes
- Description: Master toggle for all branding functionality
- When disabled, all branding overrides are bypassed
Configuration options are intentionally limited to preserve WaaS brand integrity and prevent tenant-level deviation from platform standards.
Technical Implementation
Architecture
The plugin follows Joomla 5.x system plugin architecture:
PlgSystemMokoWaaSBrand
├── 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
Core Components
-
mokowaasbrand.php
- Main plugin class extending
CMSPlugin - Implements system event handlers
- Namespace:
Moko\Plugin\System\MokoWaaSBrand
- Main plugin class extending
-
mokowaasbrand.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
Language Override Integration
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.
Repository Structure
mokowaasbrand/
├── src/ # Plugin source files
│ ├── mokowaasbrand.php # Main plugin class
│ ├── mokowaasbrand.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
Development
Building the Plugin
Build the installable plugin package from source:
cd src
zip -r ../mokowaasbrand_v01.04.00.zip . -x "*.git*"
Running Validation Scripts
# Validate plugin manifest
./scripts/validate_manifest.sh
# Verify changelog format
./scripts/verify_changelog.sh
PHP Syntax Validation
cd src
find . -name "*.php" -exec php -l {} \;
Automated Build via GitHub Actions
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
Documentation
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.
Support
Getting Help
- 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
Reporting Issues
When reporting issues, include:
- Joomla version
- PHP version
- Plugin version
- Steps to reproduce
- Expected vs actual behavior
- Relevant error messages or logs
License
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.
Versioning
This extension follows the MokoStandards version governance model using semantic versioning: MAJOR.MINOR.PATCH
Current version: 01.04.00
Changelog
See CHANGELOG.md for a complete version history.
Recent Changes (v01.04.00 - 2026-02-22)
- 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)
Contributing
We welcome contributions! Please read CONTRIBUTING.md for details on:
- Code of conduct
- Development workflow
- Coding standards
- Pull request process
- Documentation requirements
Acknowledgments
- Built for the MokoWaaS platform
- Follows MokoStandards
- Designed for Joomla 5.x architecture
- Maintained by Moko Consulting