ChangeLogs
-
StageIt 5 ChangeLog
StageIt - Changelog
All notable changes to StageIt will be documented in this file.
v5.6.3 2026-03-05
Logging, Diagnostics & System Check Fixes📦 New Features
- Debug Logging: New toggleable debug log for detailed diagnostic output during staging removal — writes to a separate
stageit-debug.logfile, controlled via a new “Debug Logging” setting in the Deployment tab - Debug Log Viewer: Log Viewer page now has “Operations Log” and “Debug Log” tabs with clear, download, and view support for both log files
- Operations Log Level: New setting to control operations log verbosity — “All Operations” (default), “Warnings and Errors Only”, or “Off”
🐛 Bug Fixes
- Operations Log Completion Spam: Fixed “StageIt completed without any warnings or errors” being logged on every AJAX chunk instead of once at the end — completion messages now only appear when operations actually finish
- Log Filter False Positives: Fixed “Warnings and Errors Only” log level matching
ERRORanywhere in log messages (e.g., filenames likeerror.php) instead of only matching message prefixes — now usespreg_matchfor prefix-only matching - Staging Removal Crash: Fixed
count(): Argument #1 must be of type Countable|array, false givenerror when removing staging environment.vbDb::_showTables()can returnfalseon failure, andcount(false)is a fatal error in PHP 8. Addedis_array()guard in bothstgAjaxRemoveandstgAjaxRemoveOptimized - System Check: File Permissions Always Failing: Fixed
$prechecks['files']threshold set to 99 instead of 1, causing the file permission check to always report an error regardless of actual permissions - System Check: AJAX Check Always Failing: The file permissions bug cascaded into the AJAX connectivity check, making it always return an error since
_prechecks()returns the last error found - PHP Config Error Now Shows Missing Extensions: When PHP extensions are missing, the error popup now lists which specific extensions are missing (e.g., “Missing extensions: mbstring, zip”) instead of a generic message
- Improved PHP Config Error Message: Updated error text to direct licensed users to contact support at [email protected] with the specific extension information
v5.6.2 2026-02-28
Optimized Staging Removal & Database Cloning Fixes📦 New Features
- Optimized Staging Removal: New
stgAjaxRemoveOptimizedclass uses native OS commands (rd/rm -rf) for 10-100x faster staging area removal, with automatic fallback to PHP methods - Configurable Optimization: Enable/disable optimized removal and native commands via component configuration, with configurable chunk size (10-200 files)
- Enhanced Progress Tracking: Real-time progress with detailed file counts, performance monitoring (files/sec, ETA), and method detection (Native vs PHP) in UI
🐛 Bug Fixes
- Staging Removal Fallback Crash: Fixed
Call to undefined method stgAjaxRemove::removeFiles()error when the optimized removal class falls back to the original class mid-operation — addedremoveFiles()andremoveDirectories()fallback methods tostgAjaxRemove - Critical: Chunked Clone Position Tracking: Fixed infinite loop during database deployment caused by saving the starting position (
$pos) instead of the current table index ($n) when a large table required multiple chunks - Checkpoint Poisoning: Clear checkpoint data when a chunked table clone fails, preventing stale offsets from being applied to unrelated tables
- Missing Target Table Safety: Added safety check in
_cloneTableChunked— if target table doesn't exist at a non-zero offset, reset and recreate from scratch - Foreign Key Checks: Fixed
enableKeyChecks()which was settingforeign_key_checks = 0instead of= 1 - Deterministic Chunked Cloning: Added
ORDER BYon primary key to chunkedINSERT...SELECTqueries, preventing duplicate key errors - Improved Error Logging: Database errors now log the actual MySQL error message for better diagnostics
v5.6.1 2026-02-05
Log Viewer Memory Fix🐛 Bug Fixes
- Out-of-Memory Fix: Log viewer now reads only the last 2 MB of large log files instead of loading the entire file into memory
- Truncation Warning: Displays a translated warning when the log is too large to show in full, with guidance to use the Download button
v5.6.0 2026-02-05
Global Language Expansion - 15 Languages🌐 Multi-Language Expansion
Added 13 additional languages for full global coverage, bringing total supported languages to 15:
- German (de-DE) - Full translation
- Spanish (es-ES) - Full translation
- French (fr-FR) - Full translation
- Italian (it-IT) - Full translation
- Portuguese Brazilian (pt-BR) - Full translation
- Russian (ru-RU) - Full translation
- Polish (pl-PL) - Full translation
- Japanese (ja-JP) - Full translation
- Chinese Simplified (zh-CN) - Full translation
- Turkish (tr-TR) - Full translation
- Greek (el-GR) - Full translation
- Czech (cs-CZ) - Full translation
- Swedish (sv-SE) - Full translation
🔌 Plugin Internationalization
- Plugin XML Fully Internationalized: Converted all hardcoded English labels and descriptions to language keys
- 35+ Translation Keys: Complete plugin settings UI now translatable including:
- Basic settings (banner visibility, user group permissions)
- Style settings (solid color, animated gradient options)
- Color settings for live and staging environments
- Gradient animation configuration
- Full Plugin Language Files: Created comprehensive translation files for all 15 languages
📦 Manifest Updates
- Component manifest updated to include all 15 language references
- Package manifest updated with all 15 package installation translations
- Plugin manifest converted to use language keys for all field labels/descriptions
v5.5.0 2026-02-03
Full Internationalization (i18n) Support🌐 Multi-Language Support
- Complete i18n Implementation: All user-facing strings now use Joomla's
Text::_()language system - Dutch Translation: Full Dutch (nl-NL) translation included with ~150 translated strings
- Future-Ready: Language file structure supports easy addition of new languages
- Organized Language Keys: Strings organized by section (Welcome, Deploy, Sync, Backups, Config tabs, etc.)
📁 Language Files Added
component/language/en-GB/en-GB.com_stageit.ini- Comprehensive English with all stringscomponent/language/nl-NL/nl-NL.com_stageit.ini- Full Dutch translationcomponent/language/nl-NL/nl-NL.com_stageit.sys.ini- Dutch system filelanguage/nl-NL/nl-NL.plg_system_stageit.ini- Dutch plugin stringslanguage/en-GB/en-GB.pkg_stageit.sys.ini- Package installation message (English)language/nl-NL/nl-NL.pkg_stageit.sys.ini- Package installation message (Dutch)
🔧 Template Updates
- Welcome Page: All welcome messages, feature lists, and button labels internationalized
- Backups Page: Table headers, status messages, and process descriptions translated
- Log Viewer: File info labels, buttons, and empty state messages translated
- Configuration Tabs: All tab labels, field labels, descriptions, and option values internationalized
- Deployment tab: Speed options, acceleration, backup settings, chunk configuration
- Environment tab: Banner options, visibility settings, style options, color labels
- Data Tables tab: Exclusion warnings, use cases, table groups, confirmation text
- Files/Folders tab: Sync descriptions and warning messages
📦 Manifest Updates
- Component manifest updated to include both en-GB and nl-NL language file references
- Package manifest updated with translatable installation message
v5.4.2 2026-02-03
Backups Page Dark Mode & UI Consistency🎨 Dark Mode Fixes
- Backups Page Dark Mode: Fixed unreadable white-on-white text in dark mode for backup tables
- CSS Variables: Updated all hardcoded colors to use Bootstrap 5 CSS variables throughout
- Legacy Gradient Removal: Removed obsolete browser-specific gradient prefixes for cleaner CSS
- Typography Modernization: Updated to rem units and font inheritance for better scaling
🔧 Improvements
- Icon Fonts: Replaced missing image-based icons with Joomla icon fonts (icon-trash, icon-refresh)
- Asset Versioning: Added cache-busting version parameter to CSS and JS files
- Row Hover States: Added hover states to backup tables for better UX
- .notdone Class: Added styling for incomplete action indicators
v5.4.1 2026-02-02
Joomla 5 Table Groups & UI Update🔧 Improvements
- Updated Core Table Groups: Modernized the hardcoded Joomla core table list for Joomla 5 compatibility
- New Table Groups Added: Added 5 new groups for Joomla 4/5 features:
- Joomla Workflows (workflows, workflow_associations, workflow_stages, workflow_transitions)
- Joomla Custom Fields (fields, fields_categories, fields_groups, fields_values)
- Joomla Privacy and Logging (action_logs, action_log_config, privacy_consents, privacy_requests)
- Joomla Scheduler (scheduler_tasks)
- Joomla Guided Tours (guidedtours, guidedtour_steps)
- Removed Obsolete Tables: Removed references to tables no longer in Joomla 5 (weblinks, core_log_searches, sections, legacy banner names)
- Smart Search Update: Updated finder table references to match Joomla 5 schema (single finder_links_terms instead of 0-f split)
- New Core Tables: Added mail_templates, tuf_metadata, user_mfa, webauthn_credentials, template_overrides, history, schemaorg
🎨 UI Enhancements
- Table Exclusion UI Redesign: Improved Data Tables tab with native checkboxes and Atum dark/light mode compatibility
- Group Selection Badges: Visual indicators showing count of selected tables in collapsed groups (e.g., "3 selected")
- Clear All Button: Quick reset button to uncheck all table exclusions
- Exclusion Confirmation: Confirmation checkbox with support disclaimer when excluding tables
- Consistent Styling: Fixed row heights and minimum widths for uniform appearance
v5.4.0 2026-01-01
Log Viewer & Large Table Support Release🔍 Log Viewer
- Dedicated Log View: New admin view at
View Logmenu item to view, download, and clear the StageIt log file - Dark-Themed Display: Log content displayed in a styled monospace code block with dark background
- Log Management: Clear log and download log buttons for easy log file management
- Log File Info: Shows log file path, size, and last modified date
- Centralized Log Location: Moved log file to
/administrator/logs/stageit-log.txtfor better organization
📊 Detailed Operation Logging
- Sync Operations: Full logging of sync process including folder mapping, file backups, and database syncing
- File-Level Visibility: Each file backup and sync operation is now logged individually
- Table Sync Logging: Database table sync operations logged with row counts and progress
- Skipped Items: Logs when tables are skipped (unchanged) or when structure-only sync is performed
🔄 Large Table Chunked Cloning
- Chunked Database Operations: Large tables (10,000+ rows) are now cloned in configurable chunks to prevent timeouts
- Configurable Thresholds:
CHUNK_THRESHOLD(default 10,000 rows) andCHUNK_SIZE(default 5,000 rows) constants - Progress Tracking: Chunked operations report progress percentage during sync
- Table Info Methods: New
_getTableRowCount()and_getTableInfo()methods for table size detection
💾 Checkpoint System for Resume Capability
- Operation Checkpoints: Long-running operations save checkpoints to allow resume after timeout or crash
- Automatic Resume: If a sync operation was interrupted, it automatically resumes from the last checkpoint
- 1-Hour Expiry: Checkpoints expire after 1 hour to prevent stale resume attempts
- Checkpoint Logging: All checkpoint save/load operations are logged for transparency
🛠️ Technical Improvements
- Controller Actions: New
clearLog()anddownloadLog()controller methods - View Registration: Log view properly registered in controller display switch
- Menu Integration: "VIEW LOG" added to admin submenu
v5.3.3 2025-11-19
Frontend Banner & Visibility Controls Release🚀 New Features
- Frontend Banner Support: Added option to display the StageIt banner on the frontend site
- User Group Visibility Controls: Select specific user groups that can see the banner (backend and frontend separately)
- Joomla 5 User Group Selection: Uses native
usergrouplistfield type for multi-select user group checkboxes
🔧 Component Integration
- Environment Tab Updates: Added frontend banner toggle and user group visibility settings to component configuration
- Unified Settings: Plugin settings now fully manageable from StageIt component's Environment tab
- Immediate Effect: Settings saved from component now take effect immediately without requiring plugin page visit
📦 Build System Fixes
- Package Structure Fix: Fixed build script to create proper
admin/folder structure in component ZIP - Build Script Modernization: Batch file now calls PowerShell script for reliable package creation
- XML Encoding Fix: Resolved character encoding issues in plugin manifest
🐛 Bug Fixes
- Fresh Parameter Loading: Plugin now reads parameters directly from database to ensure latest settings are used
- Form Compatibility: Fixed parameter loading to preserve Joomla's form system compatibility
- Dark Mode Styling: User group checkboxes now properly styled for dark mode using CSS variables
v5.3.2 2025-11-18
Banner Scroll Behavior Enhancement Release🎨 Banner UX Improvements
- Non-Sticky Top Banner: Banner now scrolls naturally with page content instead of staying fixed at top
- Dual Banner System: Top banner scrolls away, bottom banner appears when top is out of view
- IntersectionObserver: Uses modern browser API for efficient scroll detection
- Smooth Transitions: Clean appearance/disappearance of bottom banner
- Respects Settings: "Banner Reappears at Bottom" setting now properly controls whether bottom banner appears
🔧 Technical Changes
- CSS Restructure: Changed from single fixed banner to dual banner approach (top relative, bottom fixed)
- Inline JavaScript: Banner scroll behavior now embedded in plugin for frontend compatibility
- Body Padding: Removed top padding, added bottom padding only when bottom banner visible
- Updated Selectors: All CSS selectors updated for new dual banner IDs
v5.3.1 2025-11-17
Enhanced Error Handling & Logging Release🔍 Error Display Improvements
- Full Stack Traces: Errors now display complete stack traces in Joomla's message container at the top of the page instead of truncated popups
- Formatted Error Display: Monospace font with preserved line breaks for better error readability
- Comprehensive Error Information: Shows full error context with file paths and line numbers in the message area
- Better HTML Error Parsing: Improved extraction of meaningful errors from Joomla's HTML error pages
- No More Popups: Replaced JavaScript alert() popups with Bootstrap alert messages in the system message container
📝 Logging System Enhancements
- Multi-Location Logging: Errors now written to multiple fallback locations for reliability
- Persistent Error Logs: All errors logged to
administrator/logs/com_stageit.log.php - Fallback Logging: Additional fallback to root directory if admin logs folder unavailable
- Stack Trace Logging: Complete stack traces saved to log files for debugging
- Timestamped Entries: Each log entry includes precise timestamp for issue tracking
🛡️ Exception Handling
- Try-Catch Wrappers: All AJAX controller methods now wrapped in exception handlers
- Graceful Error Recovery: Errors caught and displayed cleanly instead of generic 500 pages
- Debug Information: Console logging for detailed debugging when errors occur
- Network Error Detection: Distinguishes between network errors, 404s, and server errors
🐛 Critical Bug Fixes
- Fixed Typo in Stack Trace Generation: Corrected
$function['function']to$frame['function']on line 99 that was preventing error logging - Removed Invalid JSON Checks: Eliminated problematic
json.length < 1check that was causing unnecessary alert() popups - Error Callback Improvements: Enhanced AJAX error handler to extract meaningful messages from HTML responses
- Replaced alert() with Joomla Messages: All error notifications now use Joomla's standard Bootstrap alert system in the #system-message-container
v5.3.0 2025-11-11
Package Integrity & Build Process Enhancement Release🎨 Plugin UI Enhancements
- Button Icon Improvements: Replaced Font Awesome dependency with Unicode emoji icons (🔄, 🏠)
- Self-Contained Design: Plugin now completely independent with no external dependencies
- Consistent Appearance: Buttons display identically across all browsers and platforms
- CSS Cleanup: Removed all Font Awesome CSS and font file references
📦 Build Process Improvements
- Automated Package Builder: New
build-package.batscript with intelligent MSBUILD detection - Binary Corruption Prevention: Ensures proper binary file handling during ZIP creation
- Timestamped Packages: Automatic package naming with version and timestamp
- Build Verification: Post-build validation to confirm package integrity
🔧 Package Structure Cleanup
- Removed Development Files: Excluded .git, .claude, and other non-essential development files
- Optimized Package Size: Removed unnecessary fonts and external dependencies
- Clean Distribution: Only production files included in release packages
v5.2.0 2025-10-25
Ultra-Simple Plugin Architecture & Complete Installation Fixes Release🚀 Major Plugin Redesign
- Ultra-Simple Architecture: Completely rewrote plugin from 245 lines to 139 lines with modular structure
- Smart Staging Detection: Intelligent detection with conditional switch button only when staging directory exists
- Clean Fallback Display: Shows simple "LIVE SITE" text when no staging available (no unnecessary buttons)
- Enhanced Button Logic: "Switch to Live" always available on staging, "Switch to Staging" only when staging exists
🎨 Full Style Settings Integration
- Complete Color Support: All plugin style settings now functional (gradient/solid, text colors, button colors)
- Animated Gradients: Restored gradient animations with customizable duration from plugin settings
- Visibility Controls: Proper permission checking (All users/Managers/Super Users) working correctly
- Forced Mode Support: Manual staging/live override option fully integrated
🎨 Button Styling Enhancements
- StageIt Button Targeting: Fixed button readability with proper #0b5ed7 color for StageIt-specific buttons only
- Hover States: Added consistent #59a645 hover color for both light and dark modes on StageIt buttons
- Sync Button Fix: Ensured "Sync with Live" button is fully visible and readable in all themes
- Scoped CSS: Applied styling only to StageIt component buttons, preserving Joomla core UI elements
🐛 Complete Installation Error Resolution
- "File does not exist com_stageit": Added missing entry point file to site files section
- "Source folder not found": Removed obsolete media folder references from component manifest
- Entry Point Declaration: Properly declared
com_stageitfile in manifest<files>section - Clean Package Structure: Eliminated all manifest inconsistencies and validation warnings
- Zero Installation Errors: Achieved completely clean installation process for professional deployment
📦 CSS Architecture Modernization
- Proper Joomla 5 Structure: Moved CSS from deprecated
media/folder to componentresources/css/ - Legacy File Cleanup: Removed duplicate and obsolete CSS files from old media structure
- Build Script Enhancement: Updated package builder to handle proper file structure and cleanup
- Installation Script: Enhanced with
cleanupOldFiles()method for seamless upgrades from older versions
📦 Package Quality Improvements
- XML Validation: Added automatic XML validation to build process to prevent installation errors
- Clean Plugin Packaging: Fixed plugin ZIP creation to include only essential files (no backup/dev files)
- Standalone Testing: Created standalone plugin packages for independent testing before full integration
- Professional Structure: Maintained all existing functionality while dramatically simplifying codebase
🔧 Development Tools Enhanced
- Build Script Validation: Enhanced build process with XML syntax checking and file filtering
- Testing Workflow: Improved development workflow with standalone plugin testing capability
- Error Prevention: Proactive validation prevents "Can't find Joomla XML setup file" errors
- Comprehensive Documentation: Updated JOOMLA5-CHECKLIST.md with all lessons learned from real-world deployment
v5.1.4 2025-10-25
Joomla 5 Modernization & Installation Fixes Release🔧 Installation & Packaging Fixes
- Package Structure: Fixed component manifest naming (
stageit.xml→com_stageit.xml) and proper folder hierarchy - ZIP Compatibility: Implemented forward slash paths in ZIP files to prevent installation errors
- Schema Updates: Updated manifests from version 3.0 to 5.0 for full Joomla 5 compatibility
- Media Path Fix: Corrected media folder references in component manifest (
media→admin/media) - Component Entry Point: Added required
com_stageit.phpsite file for proper component structure - jQuery UI Repair: Replaced corrupted jQuery UI library with clean version from CDN
- Warning-Free Installation: Eliminated all installation warnings for professional client deployment
🎯 System Dashboard Compatibility
- Smart Page Filtering: Plugin now uses whitelist approach to prevent interference with system pages
- Dashboard Protection: Completely excludes system dashboard, check-in, and configuration pages from banner injection
- AJAX Safety: Blocks all AJAX/API requests to prevent system check interference
- Global Check-in Fix: Resolved issues with Joomla's global check-in functionality
📋 Modern System Requirements
- PHP 8.1+ Support: Updated minimum PHP requirement from 5.3.10 to 8.1.0 (Joomla 5 standard)
- Memory Optimization: Increased memory requirement from 128MB to 256MB for modern operations
- Timeout Updates: Extended execution timeout from 30s to 60s for reliable deployments
- Extension Validation: Replaced obsolete safe_mode checks with essential PHP extension validation
- Memory Detection: Improved memory limit detection including unlimited memory support
🔧 Development Tools
- Pre-build Validation: Added comprehensive package validation script (
validate-package.ps1) - Component Templates: Created Joomla 5 component template generator (
create-template.ps1) - Best Practices Guide: Added comprehensive development checklist (
JOOMLA5-CHECKLIST.md) - Build Integration: Enhanced build script with automatic validation and forward-slash ZIP creation
🔧 Joomla 5 Compatibility Enhancements
- Database Layer: Fixed deprecated
Quote()→quote()andquery()→execute()methods for full J5 compatibility - View Classes: Removed legacy
jimportstatements andJViewLegacycompatibility layers - Class Naming: Updated to PSR standards (
StageItViewdefault→StageItViewDefault) - Asset Management: Implemented modern Web Asset Manager for improved performance
- Error Handling: Added structured exception handling and modern Joomla logging system
- Log Path Fix: Corrected staging log path to use
stageit/administrator/logsinstead ofadministrator/stageit/logs
🔧 Code Quality Improvements
- Modern PHP: Updated error handling with proper Exception classes
- Logging System: Replaced custom vbLog with native
Joomla\CMS\Log\Log - Input Handling: Modernized using
Factory::getApplication()->input - Copyright: Updated copyright notices to 2025
🎨 CSS Optimization
- File Size Reduction: Removed ~293 lines of unused CSS (20% reduction)
- Legacy Cleanup: Removed obsolete Joomla 2.5/3 styles and unused components
- Performance: Eliminated unused search, pagination, gallery, and Sales Pro CSS
- Maintainability: Cleaner stylesheet with only essential styles retained
🔧 Developer Experience
- Future-Ready: Fully compatible with Joomla 5.x architecture
- Standards Compliant: Follows modern Joomla coding standards
- Error Recovery: Enhanced debugging and error reporting capabilities
v5.1.3 2025-10-24
🐛 Bug Fixes
- Admin URL Correction: STAGING at /stageit/administrator, LIVE at /administrator.
- System Dashboard Fix: Fixed red-X issue by guarding for HTML-only responses in onBeforeCompileHead/onAfterRender.
- Safe Injection: Removed unsafe injection fallback for non-HTML (no-<body>) responses.
- Switch Button Targets: Updated staging → /administrator/, live → /stageit/administrator/.
🔧 Improvements
- XML Standardization: Unified all XML manifests with consistent version numbering, creation dates, and copyright notices
- Initial Git Repository: Established version control with GitHub integration for professional development workflow
v5.1.2 2025-10-23
🔧 Improvements
- Update Sites hardening: Only the package declares the update server (URL unchanged: https://www.php-web-design.com/updates/check.php?ext=stageit5). Component/plugin manifests no longer register update sites.
- Self-healing installer: Package
postflightcollapses duplicate update-site rows, removes legacystageitpro, and ensures only the package is mapped to the update site. - Cosmetic: Update server named "StageIt Update Server", enabled by default.
v5.1.1 2025-10-22
🔧 Improvements
- Update Sites cleanup: Package now installs with a single update server (package-level) and removes
stageitprolegacy endpoint. Component/plugin manifests no longer register update sites. Postflight script de-duplicates mappings so only the package is linked toext=stageit5.
v5.1.0 2025-10-22
Consolidated release since 5.0.2. Highlights:🔧 System Plugin
- Joomla 5 / PHP 8-safe rewrite using a proper
CMSPluginclass andSubscriberInterface. - Safe string concatenation; removed typed property conflicts.
- Strict
/stageitdetection by root name or URL path; logs detection reason to/administrator/logs/stageit.log.php(root-name-stageit,url-path-stageit,default-live). - Automatic Live ↔ Staging switch buttons with safety checks.
🎨 Style & Theming
- New Style tab with:
- Style Mode (default gradient).
- Gradient Cycle default 5s (min 5, max 120).
- Live (solid)
#59a645; Live gradient#59a645 → #356732; Live text#ffffff. - Staging (solid)
#f79034; Staging gradient#f79034 → #c05627; Staging text#ffffff. - Button Link Color (default
#ffffff) applied to "Go to Live / Staging" links.
- Dark-mode hardened for Atum/Bootstrap tokens, with fallbacks to handle caching/overrides.
🎨 Admin UI
- Converted legacy
.buttonmarkup to Bootstrap.btnvariants; tables use.table.table-striped.align-middle. - Removed prior admin helpers (seconds suffix, input-width caps, preview swatch).
📦 Packaging & Installer
- Installer uses inner plugin package and now reflects the correct defaults and runtime logic on fresh installs.
- Unified manifests (schema 4.0) and metadata; consolidated changelog.
🐛 Reliability
- Fixes for parse errors (method placement,
$autoloadLanguage), CSS cache-busting (?v=on stylesheet), and consistent asset loading.
v5.0.12 2025-10-19
🎨 UI Improvements
- Bootstrap Markup: Replaced custom classes with Bootstrap counterparts in admin templates.
.button→btnvariants (remove →btn-outline-danger; login/rebuild →btn-primary; otherwise →btn-secondary).- Tables with
.stg_table/.grouptablenow includetable table-striped align-middle. - Inputs/Textareas now use
form-control;selectusesform-select.
- Theme: Continues to use token-based CSS so Atum Dark/Light toggles automatically.
v5.0.11 2025-10-19
🎨 Theme & Styling
- Bootstrap 5 Tokens: Switched to Joomla 5 / Bootstrap 5 tokens in
media/com_stageit/css/admin.css(variables-only, theme-aware). - Scoped Styles: Removed body-class injection; StageIt styles are scoped to
#stageitand derive from Atum tokens, so Dark/Light toggles automatically. - Dark Mode: Preserved requested dark background
#171c24for#stageitin dark mode only. - WebAsset Loading: Loaded CSS via WebAsset on admin
option=com_stageit; manifests bumped to 5.0.11.
v5.0.10 2025-10-19
🐛 Bug Fixes
- PHP Parse Error Fix: Rewrote the system plugin with a safe NOWDOC-based inline JS for adding the
com_stageitbody class (eliminates the PHP parse error aroundcatch). - Theme Loading: Continues loading
media/com_stageit/css/admin.cssvia WebAsset (onBeforeCompileHead).
v5.0.9 2025-10-19
🎨 Theme & Styling
- Static CSS Asset: Move Dark/Light CSS to a static asset
media/com_stageit/css/admin.cssand load via WebAsset on admin StageIt pages. - Body Class Fix: Ensure
<body>has thecom_stageitclass so selectorsbody.admin.com_stageitalways match. - Manifest Update: Manifest now installs the
media/com_stageit/css/admin.cssfile.
v5.0.8 2025-10-19
🎨 Dark Mode
- Dark Background: Set
#stageitbackground to#171c24in dark mode (per request). Implemented as an inline CSS override so it takes precedence over earlier rules.
v5.0.7 2025-10-19
🐛 Bug Fixes
- Fatal Error Fix: Removed the
booltype from$autoloadLanguagein the system plugin to avoid inheritance conflict withCMSPlugin(which declares it untyped). This resolves the install-time fatal error.
v5.0.6 2025-10-19
🎨 Theme & Styling
- Dark/Light Mode: Adopted the proven selectors & values; CSS is injected inline at
onBeforeCompileHeadso nomedia/file is required. - Body Class: Ensures
<body>has thecom_stageitclass on admin StageIt pages sobody.admin.com_stageitselectors always match. - Schema Update: All manifests set to schema
4.0; version bumped to5.0.6.
v5.0.1 (historic)
🐛 Bug Fixes
- Parse Error Fix: Resolved parse error by converting the system plugin to a proper Joomla 5 class and defining
getSubscribedEvents()inside the class.
🔧 Improvements
- Language Autoload: Enabled
$autoloadLanguage = trueand moved manifests to schema4.0.
v5.0.0
Initial Joomla 5 Release🚀 New Features
- Joomla 5 Native: Joomla 5 native baseline (no legacy plugin required).
- Dark/Light Mode: Full Dark/Light mode compatibility in the admin (scoped to
body.admin.com_stageit). - Backups View: Implemented dark-mode "odd row" styling while preserving header look.
📦 Packaging
- Initial Structure: Initial J5 manifests and structure; media assets under
media/com_stageitwith correct references.
© 2025 PHP Web Design. All rights reserved.
- Debug Logging: New toggleable debug log for detailed diagnostic output during staging removal — writes to a separate
-
StageIt 6 ChangeLog
StageIt - Changelog
All notable changes to StageIt will be documented in this file.
v6.2.9 2026-03-05
Logging, Diagnostics & System Check Fixes📦 New Features
- Debug Logging: New toggleable debug log for detailed diagnostic output during staging removal — writes to a separate
stageit-debug.logfile, controlled via a new “Debug Logging” setting in the Deployment tab - Debug Log Viewer: Log Viewer page now has “Operations Log” and “Debug Log” tabs with clear, download, and view support for both log files
- Operations Log Level: New setting to control operations log verbosity — “All Operations” (default), “Warnings and Errors Only”, or “Off”
🐛 Bug Fixes
- Operations Log Completion Spam: Fixed “StageIt completed without any warnings or errors” being logged on every AJAX chunk instead of once at the end — completion messages now only appear when operations actually finish
- Log Filter False Positives: Fixed “Warnings and Errors Only” log level matching
ERRORanywhere in log messages (e.g., filenames likeerror.php) instead of only matching message prefixes — now usespreg_matchfor prefix-only matching - Staging Removal Crash: Fixed
count(): Argument #1 must be of type Countable|array, false givenerror when removing staging environment.vbDb::_showTables()can returnfalseon failure, andcount(false)is a fatal error in PHP 8. Addedis_array()guard in bothstgAjaxRemoveandstgAjaxRemoveOptimized - System Check: File Permissions Always Failing: Fixed
$prechecks['files']threshold set to 99 instead of 1, causing the file permission check to always report an error regardless of actual permissions - System Check: AJAX Check Always Failing: The file permissions bug cascaded into the AJAX connectivity check, making it always return an error since
_prechecks()returns the last error found - PHP Config Error Now Shows Missing Extensions: When PHP extensions are missing, the error popup now lists which specific extensions are missing (e.g., “Missing extensions: mbstring, zip”) instead of a generic message
- Improved PHP Config Error Message: Updated error text to direct licensed users to contact support at [email protected] with the specific extension information
- Fatal Parse Error in vbLog: Fixed missing closing brace in
_error()method that causedunexpected token "private"fatal error on every page load
v6.2.8 2026-02-28
Optimized Staging Removal & Database Cloning Fixes📦 New Features
- Optimized Staging Removal: New
stgAjaxRemoveOptimizedclass uses native OS commands (rd/rm -rf) for 10-100x faster staging area removal, with automatic fallback to PHP methods - Configurable Optimization: Enable/disable optimized removal and native commands via component configuration, with configurable chunk size (10-200 files)
- Enhanced Progress Tracking: Real-time progress with detailed file counts, performance monitoring (files/sec, ETA), and method detection (Native vs PHP) in UI
🐛 Bug Fixes
- Staging Removal Fallback Crash: Fixed
Call to undefined method stgAjaxRemove::removeFiles()error when the optimized removal class falls back to the original class mid-operation — addedremoveFiles()andremoveDirectories()fallback methods tostgAjaxRemove - Critical: Chunked Clone Position Tracking: Fixed infinite loop during database deployment caused by saving the starting position (
$pos) instead of the current table index ($n) when a large table required multiple chunks - Checkpoint Poisoning: Clear checkpoint data when a chunked table clone fails, preventing stale offsets from being applied to unrelated tables
- Missing Target Table Safety: Added safety check in
_cloneTableChunked— if target table doesn't exist at a non-zero offset, reset and recreate from scratch - Deterministic Chunked Cloning: Added
ORDER BYon primary key to chunkedINSERT...SELECTqueries, preventing duplicate key errors - Improved Error Logging: Database errors now log the actual MySQL error message for better diagnostics
🐛 Version 6.2.7 (2026-02-05)
Log Viewer Memory Fix
🐛 Bug Fixes
- Out-of-Memory Fix: Log viewer now reads only the last 2 MB of large log files instead of loading the entire file into memory
- Truncation Warning: Displays a translated warning when the log is too large to show in full, with guidance to use the Download button
🌐 Version 6.2.6 (2026-02-05)
Comprehensive Multi-Lingual Support & Foreign Key Fix
🌐 Multi-Lingual Support
- Complete Component Internationalization: All template strings now use
Text::_()for full translation support - Plugin Multi-Lingual: System plugin now fully translated with 48 language keys per language
- Translated Installation Welcome: Post-installation message with "Go to Control Panel" link now displayed in user's language
- 15 Languages Supported:
- English (en-GB) - Base language
- Dutch (nl-NL)
- German (de-DE)
- Spanish (es-ES)
- French (fr-FR)
- Italian (it-IT)
- Portuguese Brazilian (pt-BR)
- Russian (ru-RU)
- Polish (pl-PL)
- Japanese (ja-JP)
- Chinese Simplified (zh-CN)
- Turkish (tr-TR)
- Greek (el-GR)
- Czech (cs-CZ)
- Swedish (sv-SE)
- Language File Structure: Each language includes both main (
.ini) and system (.sys.ini) translation files
🐛 Bug Fixes
- Foreign Key Constraint Error: Fixed "Cannot delete or update a parent row: a foreign key constraint fails" error when removing staging environment
- Table Drop Order: Now disables foreign key checks before dropping staging tables, then re-enables afterward
🔧 Technical Improvements
- vbDb Key Check Methods: Made
_disableKeyChecks()and_enableKeyChecks()public for use in staging removal - Enable Key Checks Bug: Fixed bug where
enableKeyChecks()was settingforeign_key_checks = 0instead of1
🧹 Version 6.2.5 (2026-02-03)
CSS Cleanup & Duplicate Rule Removal
🧹 CSS Consolidation
- Duplicate Rule Removal: Removed duplicate
#stageit,#stageit h1, and#stageit p, #stageit lirules that were overriding dark mode styling - Consolidated Typography: Single authoritative rules for h1, h4, li elements with proper CSS variable support
- Removed "NEW CHANGES" Section: Cleaned up temporary CSS section that duplicated existing rules
🔧 Styling Improvements
- Font Inheritance: Updated typography to use
font-family: inheritfor consistency with Atum template - Rem Units: Scalable typography using rem units (1.5rem for h1, 1rem for h4, 0.875rem for li)
- Color Variables: Ensured all text elements use
var(--bs-body-color)andvar(--bs-secondary-color)for dark mode
📦 Cache Busting
- Asset Version Updated: CSS/JS version parameter updated to 6.2.5 for browser cache refresh
🎨 Version 6.2.4 (2026-02-03)
Comprehensive Dark Mode Support
🎨 Dark Mode Fixes
- Main Container: Updated #stageit, #stg_main, #stg_header to use CSS variables for backgrounds
- Sidebar Navigation: Updated submenu styling with CSS variables for dark mode compatibility
- Tab Panels: jQuery UI tabs now use CSS variables for backgrounds and borders
- Form Fields: All input, select, textarea elements use CSS variables for colors and borders
- Environment Tab: Config page plugin settings now dark mode compatible
- Process Steps: Action progress steps and progress bar updated for dark mode
- Popups: Popup dialogs and overlay styling fixed for dark mode
🔧 UI Improvements
- Buttons: Updated button styling with proper border-radius and CSS variable colors
- Progress Bar: Simplified progress bar styling using Bootstrap success color
- Not Done Indicator: Added CSS-only circle indicator for pending steps (no image required)
- Form Focus States: Modern focus ring using Bootstrap primary color
📦 Removed Legacy Code
- Removed obsolete IE6-9 gradient filters
- Simplified form input styling by removing complex gradients
- Cleaned up vendor prefixes for modern browser support
🐛 Version 6.2.3 (2026-02-03)
Data Tables Save Validation Fix
🐛 Bug Fix
- Table Exclusion Confirmation Required: Fixed missing save validation that allowed saving excluded tables without checking the confirmation checkbox
- Alert on Save: Users now see an alert message if they try to save while tables are excluded but the confirmation box is unchecked
- Auto-Navigate to Confirmation: On validation failure, automatically switches to Data Tables tab and scrolls to confirmation checkbox
🎨 Version 6.2.2 (2026-02-03)
Backups Page Dark Mode & UI Consistency
🎨 Dark Mode Fixes
- Backups Table Styling: Fixed unreadable white-on-white text in dark mode for backup tables
- CSS Variables: Updated all table styling to use Bootstrap 5 CSS variables (
--bs-body-bg,--bs-body-color,--bs-border-color,--bs-tertiary-bg) - Row Hover States: Added hover effect on table rows using
--bs-secondary-bg - Both Themes Supported: Explicit light mode and dark mode selectors for Atum compatibility
🔧 Icon System Update
- Joomla Icon Fonts: Replaced missing image-based icons with Joomla's built-in icon fonts
- Delete Icon: Now uses
icon-trashclass (red #dc3545) - Restore Icon: Now uses
icon-refreshclass (green #198754) - Dark Mode Compatible: Icon colors work in both light and dark themes
🎨 Typography Modernization
- CSS Variables for Colors: All text now uses
var(--bs-body-color)for automatic dark/light mode support - Rem Units: Replaced hardcoded pixel fonts with scalable rem units (0.875rem for body text, 1.25rem for h2, 1.5rem for h1)
- Font Inheritance: Typography now inherits from Atum template (
font-family: inherit)
📦 Cache Busting
- Asset Versioning: Added version parameter to CSS and JS includes (
?v=6.2.2) - Prevents Stale Cache: Browser fetches fresh assets after updates
🔧 Version 6.2.1 (2026-02-02)
Joomla 6 Table Groups & UI Update
🔧 Improvements
- Updated Core Table Groups: Modernized the hardcoded Joomla core table list for Joomla 5/6 compatibility
- New Table Groups Added: Added 5 new groups for Joomla 5/6 features:
- Joomla Workflows (workflows, workflow_associations, workflow_stages, workflow_transitions)
- Joomla Custom Fields (fields, fields_categories, fields_groups, fields_values)
- Joomla Privacy and Logging (action_logs, action_log_config, privacy_consents, privacy_requests)
- Joomla Scheduler (scheduler_tasks)
- Joomla Guided Tours (guidedtours, guidedtour_steps)
- Removed Obsolete Tables: Removed references to tables no longer in Joomla 5/6 (weblinks, core_log_searches, sections, legacy banner names)
- Smart Search Update: Updated finder table references to match Joomla 5/6 schema (single finder_links_terms instead of 0-f split)
- New Core Tables: Added mail_templates, tuf_metadata, user_mfa, webauthn_credentials, template_overrides, history, schemaorg
🎨 UI Enhancements
- Table Exclusion UI Redesign: Improved Data Tables tab with native checkboxes and Atum dark/light mode compatibility
- Group Selection Badges: Visual indicators showing count of selected tables in collapsed groups (e.g., “3 selected”)
- Clear All Button: Quick reset button to uncheck all table exclusions
- Exclusion Confirmation: Confirmation checkbox with support disclaimer when excluding tables
- Consistent Styling: Fixed row heights and minimum widths for uniform appearance
🔍 Version 6.2.0 (2026-01-01)
Log Viewer & Large Table Support Release
🔍 Log Viewer
- Dedicated Log View: New admin view at
View Logmenu item to view, download, and clear the StageIt log file - Dark-Themed Display: Log content displayed in a styled monospace code block with dark background
- Log Management: Clear log and download log buttons for easy log file management
- Log File Info: Shows log file path, size, and last modified date
- Centralized Log Location: Moved log file to
/administrator/logs/stageit-log.txtfor better organization
📊 Detailed Operation Logging
- Sync Operations: Full logging of sync process including folder mapping, file backups, and database syncing
- File-Level Visibility: Each file backup and sync operation is now logged individually
- Table Sync Logging: Database table sync operations logged with row counts and progress
- Skipped Items: Logs when tables are skipped (unchanged) or when structure-only sync is performed
🔄 Large Table Chunked Cloning
- Chunked Database Operations: Large tables (10,000+ rows) are now cloned in configurable chunks to prevent timeouts
- Configurable Thresholds:
CHUNK_THRESHOLD(default 10,000 rows) andCHUNK_SIZE(default 5,000 rows) constants - Progress Tracking: Chunked operations report progress percentage during sync
- Table Info Methods: New
_getTableRowCount()and_getTableInfo()methods for table size detection
💾 Checkpoint System for Resume Capability
- Operation Checkpoints: Long-running operations save checkpoints to allow resume after timeout or crash
- Automatic Resume: If a sync operation was interrupted, it automatically resumes from the last checkpoint
- 1-Hour Expiry: Checkpoints expire after 1 hour to prevent stale resume attempts
- Checkpoint Logging: All checkpoint save/load operations are logged for transparency
🛠️ Technical Improvements
- Controller Actions: New
clearLog()anddownloadLog()controller methods - View Registration: Log view properly registered in controller display switch
- Menu Integration: "VIEW LOG" added to admin submenu
🚀 Version 6.1.0 (2025-11-19)
🔧 StageIt-5 Merge & Staging DB Helpers
🚀 New & Improved
- Staging Database Helpers: Added controller endpoints to test DB connections and create staging DB/users with clear fallback guidance.
- Plugin Settings Persistence: Component now saves plugin params directly and clears plugin/system caches so banner settings take effect immediately.
- Error Logging Reliability: Extended
vbJsonto write full stack traces to multiple log locations (prefersadministrator/logs/com_stageit.log.phpwith fallbacks). - Component UI for Plugin Settings: Environment tab renders plugin banner options (backend/frontend visibility, colors, gradients, reappear toggle) with live user group lists and modern styling.
- AJAX Error UX: StageIt JS now surfaces errors via Joomla messages, truncates oversized responses, and logs full details to console for debugging.
- Parity with StageIt 5.3.3: Ported the 5.3.3 frontend banner & visibility release (frontend banner toggle, backend/frontend user group controls, immediate param loading, build/encoding fixes).
🔧 Packaging & Compatibility
- Joomla 6 Packaging: Build scripts and manifests aligned to Joomla 6 naming/output; package, component, and plugin versions bumped to 6.1.0.
- Manifest Updates: Plugin manifest on Joomla 6 schema with updated version and description.
🎨 Version 6.0.3 (2025-11-19)
🎨 Frontend Banner & Visibility Controls Release
🚀 New Features
- Frontend Banner Support: Added option to display the StageIt banner on the frontend site
- User Group Visibility Controls: Select specific user groups that can see the banner (backend and frontend separately)
- Joomla 6 User Group Selection: Uses native
usergrouplistfield type for multi-select user group checkboxes
🔧 Component Integration
- Environment Tab Updates: Added frontend banner toggle and user group visibility settings to component configuration
- Unified Settings: Plugin settings now fully manageable from StageIt component's Environment tab
- Immediate Effect: Settings saved from component now take effect immediately without requiring plugin page visit
📦 Build System Fixes
- Package Structure Fix: Fixed build script to create proper
admin/folder structure in component ZIP - Build Script Modernization: Batch file now calls PowerShell script for reliable package creation
- XML Encoding Fix: Resolved character encoding issues in plugin manifest
🐛 Bug Fixes
- Fresh Parameter Loading: Plugin now reads parameters directly from database to ensure latest settings are used
- Form Compatibility: Fixed parameter loading to preserve Joomla's form system compatibility
- Dark Mode Styling: User group checkboxes now properly styled for dark mode using CSS variables
🛠️ Version 6.0.2 (2025-11-18)
Banner Scroll Behavior Enhancement Release
🎨 Banner UX Improvements
- Non-Sticky Top Banner: Banner now scrolls naturally with page content instead of staying fixed at top
- Dual Banner System: Top banner scrolls away, bottom banner appears when top is out of view
- IntersectionObserver: Uses modern browser API for efficient scroll detection
- Smooth Transitions: Clean appearance/disappearance of bottom banner
- Respects Settings: "Banner Reappears at Bottom" setting now properly controls whether bottom banner appears
🔧 Technical Changes
- CSS Restructure: Changed from single fixed banner to dual banner approach (top relative, bottom fixed)
- Inline JavaScript: Banner scroll behavior now embedded in plugin for frontend compatibility
- Body Padding: Removed top padding, added bottom padding only when bottom banner visible
- Updated Selectors: All CSS selectors updated for new dual banner IDs
🛡️ Version 6.0.1 (2025-11-12)
Installation Safety & Update Server Cleanup Release
🛡️ Version Compatibility Enforcement
- Joomla Version Checking: Added
preflight()installer method to prevent installation on incompatible Joomla versions - Strict Version Requirements: StageIt 6 now enforces Joomla 6.0.0 - 6.999.999 only (blocks J3, J4, and J5)
- Clear Error Messages: Users attempting to install on wrong Joomla version get helpful guidance:
- Joomla 3.x users directed to StageIt 3
- Joomla 4.x users directed to StageIt 4
- Joomla 5.x users directed to StageIt 5
- Installation Prevention: Returns
falsefrom preflight to completely block incompatible installations
🧹 Update Server Cleanup
- Single Update Site Policy: Removed
<updateservers>section from component manifest (only package declares update server) - Automatic Cleanup: Installer now removes legacy component-level update sites from older StageIt versions
- Orphaned Site Removal: Smart cleanup removes update sites that are no longer linked to any extension
- Duplicate Prevention: Prevents Joomla from creating multiple update site entries for the same extension
- Legacy URL Cleanup: Continues to remove old
stageitproupdate URLs from previous versions
📝 Developer Documentation
- Update Server Reminders: Added XML comments to component and plugin manifests reminding developers that only
pkg_stageit.xmlshould declare update servers - Version Enforcement Documentation: Added comments clarifying that preflight checks enforce Joomla version requirements
🔧 Technical Improvements
- Database Integrity: Enhanced update site cleanup checks reference counts before deleting to avoid breaking other extensions
- Error Handling: All database operations wrapped in try-catch blocks for graceful failure handling
- Component Detection: Improved logic to find and clean up component-specific update site mappings
🚀 Version 6.0.0 (2025-11-11)
Joomla 6 Compatibility Release
🚀 Joomla 6 Native Support
- Updated Manifests: All XML manifests updated to Joomla 6.0 specification
- PHP 8.3.0+ Requirement: Minimum PHP version updated to 8.3.0 for Joomla 6 compatibility
- Version Alignment: Extension version updated to 6.0.0 to align with Joomla 6
- Update Server: Modified update server URLs to support Joomla 6 releases
- Build Scripts: Updated build and packaging scripts for Joomla 6 deployment
📦 Native Library Migration & Code Modernization
- REMOVED PCLZip: Replaced deprecated PCLZip 2.8.2 with Joomla's native
Joomla\Archive\Archiveclass - PHP 8.3 Compatibility: Eliminated all deprecated PHP functions and legacy code
- Modern Archive Handling: Now uses Joomla's native archive system for zip operations
- Enhanced Error Handling: Archive errors now use Joomla's native message system
- Streamlined Codebase: Removed legacy code dependencies
🎨 System Plugin Banner Enhancements
- Simplified Banner Control: Streamlined to simple Yes/No toggle (removed confusing Auto-Detect option)
- Toggle Switch UI: Replaced × close button with elegant toggle switch for hiding banner
- One-Click Hide: Added toggle switch with hover tooltip ("Click to turn off banner")
- Auto-Enable on Install: Plugin now automatically enabled during package installation
- Fixed URL Detection: Corrected staging detection logic to properly identify
/stageit/URLs - Live/Staging Detection: Banner correctly shows "LIVE SITE" or "STAGING SITE" based on URL path
✨ User Interface Improvements
- Action Button Icons: Added meaningful emoji icons to all action buttons:
- Begin (launching new staging environment)
- Rebuild Staging (refresh/rebuild)
- Remove Staging (deletion)
- Sync with Live (fast synchronization)
- Log in (access buttons)
- Improved Button Sizing: Widened "Sync with Live" button to 300px to prevent text wrapping
- Visual Clarity: Icons provide instant recognition of button actions
🔧 Technical Improvements
- Extension Schema: Updated extension version attributes from 5.0 to 6.0
- Target Platform: Updated target platform from "joomla 5.*" to "joomla 6.*"
- Package Names: Build output generates packages with "Joomla_6_v6.0.0" naming convention
- Installation Script: Enhanced postflight script to auto-enable plugin and cleanup old files
🔧 Version 5.2.0 (2025-10-25)
Ultra-Simple Plugin Architecture & Complete Installation Fixes Release
🚀 Major Plugin Redesign
- Ultra-Simple Architecture: Completely rewrote plugin from 245 lines to 139 lines with modular structure
- Smart Staging Detection: Intelligent detection with conditional switch button only when staging directory exists
- Clean Fallback Display: Shows simple "LIVE SITE" text when no staging available (no unnecessary buttons)
- Enhanced Button Logic: "Switch to Live" always available on staging, "Switch to Staging" only when staging exists
🎨 Full Style Settings Integration
- Complete Color Support: All plugin style settings now functional (gradient/solid, text colors, button colors)
- Animated Gradients: Restored gradient animations with customizable duration from plugin settings
- Visibility Controls: Proper permission checking (All users/Managers/Super Users) working correctly
- Forced Mode Support: Manual staging/live override option fully integrated
🎨 Button Styling Enhancements
- StageIt Button Targeting: Fixed button readability with proper #0b5ed7 color for StageIt-specific buttons only
- Hover States: Added consistent #59a645 hover color for both light and dark modes on StageIt buttons
- Sync Button Fix: Ensured "Sync with Live" button is fully visible and readable in all themes
- Scoped CSS: Applied styling only to StageIt component buttons, preserving Joomla core UI elements
🐛 Complete Installation Error Resolution
- "File does not exist com_stageit": Added missing entry point file to site files section
- "Source folder not found": Removed obsolete media folder references from component manifest
- Entry Point Declaration: Properly declared
com_stageitfile in manifest<files>section - Clean Package Structure: Eliminated all manifest inconsistencies and validation warnings
- Zero Installation Errors: Achieved completely clean installation process for professional deployment
🔧 CSS Architecture Modernization
- Proper Joomla 5 Structure: Moved CSS from deprecated
media/folder to componentresources/css/ - Legacy File Cleanup: Removed duplicate and obsolete CSS files from old media structure
- Build Script Enhancement: Updated package builder to handle proper file structure and cleanup
- Installation Script: Enhanced with
cleanupOldFiles()method for seamless upgrades from older versions
📦 Package Quality Improvements
- XML Validation: Added automatic XML validation to build process to prevent installation errors
- Clean Plugin Packaging: Fixed plugin ZIP creation to include only essential files (no backup/dev files)
- Standalone Testing: Created standalone plugin packages for independent testing before full integration
- Professional Structure: Maintained all existing functionality while dramatically simplifying codebase
🔧 Development Tools Enhanced
- Build Script Validation: Enhanced build process with XML syntax checking and file filtering
- Testing Workflow: Improved development workflow with standalone plugin testing capability
- Error Prevention: Proactive validation prevents "Can't find Joomla XML setup file" errors
- Comprehensive Documentation: Updated JOOMLA5-CHECKLIST.md with all lessons learned from real-world deployment
📦 Version 5.1.4 (2025-10-25)
Joomla 5 Modernization & Installation Fixes Release
📦 Installation & Packaging Fixes
- Package Structure: Fixed component manifest naming (
stageit.xml→com_stageit.xml) and proper folder hierarchy - ZIP Compatibility: Implemented forward slash paths in ZIP files to prevent installation errors
- Schema Updates: Updated manifests from version 3.0 to 5.0 for full Joomla 5 compatibility
- Media Path Fix: Corrected media folder references in component manifest (
media→admin/media) - Component Entry Point: Added required
com_stageit.phpsite file for proper component structure - jQuery UI Repair: Replaced corrupted jQuery UI library with clean version from CDN
- Warning-Free Installation: Eliminated all installation warnings for professional client deployment
🛡️ System Dashboard Compatibility
- Smart Page Filtering: Plugin now uses whitelist approach to prevent interference with system pages
- Dashboard Protection: Completely excludes system dashboard, check-in, and configuration pages from banner injection
- AJAX Safety: Blocks all AJAX/API requests to prevent system check interference
- Global Check-in Fix: Resolved issues with Joomla's global check-in functionality
🔧 Modern System Requirements
- PHP 8.1+ Support: Updated minimum PHP requirement from 5.3.10 to 8.1.0 (Joomla 5 standard)
- Memory Optimization: Increased memory requirement from 128MB to 256MB for modern operations
- Timeout Updates: Extended execution timeout from 30s to 60s for reliable deployments
- Extension Validation: Replaced obsolete safe_mode checks with essential PHP extension validation
- Memory Detection: Improved memory limit detection including unlimited memory support
🔧 Development Tools
- Pre-build Validation: Added comprehensive package validation script (
validate-package.ps1) - Component Templates: Created Joomla 5 component template generator (
create-template.ps1) - Best Practices Guide: Added comprehensive development checklist (
JOOMLA5-CHECKLIST.md) - Build Integration: Enhanced build script with automatic validation and forward-slash ZIP creation
🚀 Joomla 5 Compatibility Enhancements
- Database Layer: Fixed deprecated
Quote()→quote()andquery()→execute()methods for full J5 compatibility - View Classes: Removed legacy
jimportstatements andJViewLegacycompatibility layers - Class Naming: Updated to PSR standards (
StageItViewdefault→StageItViewDefault) - Asset Management: Implemented modern Web Asset Manager for improved performance
- Error Handling: Added structured exception handling and modern Joomla logging system
- Log Path Fix: Corrected staging log path to use
stageit/administrator/logsinstead ofadministrator/stageit/logs
🔍 Code Quality Improvements
- Modern PHP: Updated error handling with proper Exception classes
- Logging System: Replaced custom vbLog with native
Joomla\CMS\Log\Log - Input Handling: Modernized using
Factory::getApplication()->input - Copyright: Updated copyright notices to 2025
🎨 CSS Optimization
- File Size Reduction: Removed ~293 lines of unused CSS (20% reduction)
- Legacy Cleanup: Removed obsolete Joomla 2.5/3 styles and unused components
- Performance: Eliminated unused search, pagination, gallery, and Sales Pro CSS
- Maintainability: Cleaner stylesheet with only essential styles retained
🔧 Developer Experience
- Future-Ready: Fully compatible with Joomla 5.x architecture
- Standards Compliant: Follows modern Joomla coding standards
- Error Recovery: Enhanced debugging and error reporting capabilities
🐛 Version 5.1.3 (2025-10-24)
- Admin URL rule corrected: STAGING at /stageit/administrator, LIVE at /administrator.
- Fixed System Dashboard red-X issue by guarding for HTML-only responses in onBeforeCompileHead/onAfterRender.
- Removed unsafe injection fallback for non-HTML (no-<body>) responses.
- Switch button targets updated: staging → /administrator/, live → /stageit/administrator/.
- XML Standardization: Unified all XML manifests with consistent version numbering, creation dates, and copyright notices
- Initial Git Repository: Established version control with GitHub integration for professional development workflow
- No changes to styles/colors/labels; behavior preserved otherwise.
🔧 Version 5.1.2 (2025-10-23)
- Update Sites hardening: Only the package declares the update server (URL: https://www.php-web-design.com/updates/check.php?ext=stageit6). Component/plugin manifests no longer register update sites.
- Self-healing installer: Package
postflightcollapses duplicate update-site rows, removes legacystageitpro, and ensures only the package is mapped to the update site. - Cosmetic: Update server named "StageIt Update Server", enabled by default.
🔧 Version 5.1.1 (2025-10-22)
- Update Sites cleanup: Package now installs with a single update server (package-level) and removes
stageitprolegacy endpoint. Component/plugin manifests no longer register update sites. Postflight script de-duplicates mappings so only the package is linked toext=stageit6.
🚀 Version 5.1.0 (2025-10-22)
Consolidated release since 5.0.2. Highlights:
🔧 System Plugin
- Joomla 5 / PHP 8–safe rewrite using a proper
CMSPluginclass andSubscriberInterface. - Safe string concatenation; removed typed property conflicts.
- Strict
/stageitdetection by root name or URL path; logs detection reason to/administrator/logs/stageit.log.php(root-name-stageit,url-path-stageit,default-live). - Automatic Live ↔ Staging switch buttons with safety checks.
🎨 Style & Theming
- New Style tab with:
- Style Mode (default gradient).
- Gradient Cycle default 5s (min 5, max 120).
- Live (solid)
#59a645; Live gradient#59a645 → #356732; Live text#ffffff. - Staging (solid)
#f79034; Staging gradient#f79034 → #c05627; Staging text#ffffff. - Button Link Color (default
#ffffff) applied to "Go to Live / Staging" links.
- Dark-mode hardened for Atum/Bootstrap tokens, with fallbacks to handle caching/overrides.
🎨 Admin UI
- Converted legacy
.buttonmarkup to Bootstrap.btnvariants; tables use.table.table-striped.align-middle. - Removed prior admin helpers (seconds suffix, input-width caps, preview swatch).
📦 Packaging & Installer
- Installer uses inner plugin package and now reflects the correct defaults and runtime logic on fresh installs.
- Unified manifests (schema 4.0) and metadata; consolidated changelog.
🐛 Reliability
- Fixes for parse errors (method placement,
$autoloadLanguage), CSS cache-busting (?v=on stylesheet), and consistent asset loading.
🎨 Version 5.0.12 (2025-10-19)
- Phase B (markup): Replaced custom classes with Bootstrap counterparts in admin templates.
.button→btnvariants (remove →btn-outline-danger; login/rebuild →btn-primary; otherwise →btn-secondary).- Tables with
.stg_table/.grouptablenow includetable table-striped align-middle. - Inputs/Textareas now use
form-control;selectusesform-select.
- Theme: Continues to use token-based CSS so Atum Dark/Light toggles automatically.
🎨 Version 5.0.11 (2025-10-19)
- Theme: Switched to Joomla 5 / Bootstrap 5 tokens in
media/com_stageit/css/admin.css(variables-only, theme-aware). - Behavior: Removed body-class injection; StageIt styles are scoped to
#stageitand derive from Atum tokens, so Dark/Light toggles automatically. - Customization: Preserved requested dark background
#171c24for#stageitin dark mode only. - Packaging: Loaded CSS via WebAsset on admin
option=com_stageit; manifests bumped to 5.0.11.
🐛 Version 5.0.10 (2025-10-19)
- Fix: Rewrote the system plugin with a safe NOWDOC-based inline JS for adding the
com_stageitbody class (eliminates the PHP parse error aroundcatch). - Theme: Continues loading
media/com_stageit/css/admin.cssvia WebAsset (onBeforeCompileHead).
🎨 Version 5.0.9 (2025-10-19)
- Theme: Move Dark/Light CSS to a static asset
media/com_stageit/css/admin.cssand load via WebAsset on admin StageIt pages. - Reliability: Ensure
<body>has thecom_stageitclass so selectorsbody.admin.com_stageitalways match. - Packaging: Manifest now installs the
media/com_stageit/css/admin.cssfile.
🎨 Version 5.0.8 (2025-10-19)
- Dark Mode: Set
#stageitbackground to#171c24in dark mode (per request). Implemented as an inline CSS override so it takes precedence over earlier rules.
🐛 Version 5.0.7 (2025-10-19)
- Fix: Removed the
booltype from$autoloadLanguagein the system plugin to avoid inheritance conflict withCMSPlugin(which declares it untyped). This resolves the install-time fatal error.
🎨 Version 5.0.6 (2025-10-19)
- Dark/Light Mode: Adopted the proven selectors & values; CSS is injected inline at
onBeforeCompileHeadso nomedia/file is required. - Reliability: Ensures
<body>has thecom_stageitclass on admin StageIt pages sobody.admin.com_stageitselectors always match. - Packaging: All manifests set to schema
4.0; version bumped to5.0.6.
🐛 Version 5.0.1 (historic)
- Fix: Resolved parse error by converting the system plugin to a proper Joomla 5 class and defining
getSubscribedEvents()inside the class. - Improve: Enabled
$autoloadLanguage = trueand moved manifests to schema4.0.
🚀 Version 5.0.0
- Joomla 5 native baseline (no legacy plugin required).
- Theme: Full Dark/Light mode compatibility in the admin (scoped to
body.admin.com_stageit). - Backups View: Implemented dark-mode "odd row" styling while preserving header look.
- Packaging: Initial J5 manifests and structure; media assets under
media/com_stageitwith correct references.
- Debug Logging: New toggleable debug log for detailed diagnostic output during staging removal — writes to a separate






