StageIt — Changelog


🚀 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 vbJson to write full stack traces to multiple log locations (prefers administrator/logs/com_stageit.log.php with 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 usergrouplist field 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 false from 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 stageitpro update URLs from previous versions

📝 Developer Documentation

  • Update Server Reminders: Added XML comments to component and plugin manifests reminding developers that only pkg_stageit.xml should 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\Archive class
  • 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_stageit file 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 component resources/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.xmlcom_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 (mediaadmin/media)
  • Component Entry Point: Added required com_stageit.php site 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() and query()execute() methods for full J5 compatibility
  • View Classes: Removed legacy jimport statements and JViewLegacy compatibility layers
  • Class Naming: Updated to PSR standards (StageItViewdefaultStageItViewDefault)
  • 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/logs instead of administrator/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 postflight collapses duplicate update-site rows, removes legacy stageitpro, 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 stageitpro legacy endpoint. Component/plugin manifests no longer register update sites. Postflight script de-duplicates mappings so only the package is linked to ext=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 CMSPlugin class and SubscriberInterface.
  • Safe string concatenation; removed typed property conflicts.
  • Strict /stageit detection 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 .button markup to Bootstrap .btn variants; 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.
    • .buttonbtn variants (remove → btn-outline-danger; login/rebuild → btn-primary; otherwise → btn-secondary).
    • Tables with .stg_table/.grouptable now include table table-striped align-middle.
    • Inputs/Textareas now use form-control; select uses form-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 #stageit and derive from Atum tokens, so Dark/Light toggles automatically.
  • Customization: Preserved requested dark background #171c24 for #stageit in 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_stageit body class (eliminates the PHP parse error around catch).
  • Theme: Continues loading media/com_stageit/css/admin.css via WebAsset (onBeforeCompileHead).

🎨 Version 5.0.9 (2025-10-19)

  • Theme: Move Dark/Light CSS to a static asset media/com_stageit/css/admin.css and load via WebAsset on admin StageIt pages.
  • Reliability: Ensure <body> has the com_stageit class so selectors body.admin.com_stageit always match.
  • Packaging: Manifest now installs the media/com_stageit/css/admin.css file.

🎨 Version 5.0.8 (2025-10-19)

  • Dark Mode: Set #stageit background to #171c24 in 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 bool type from $autoloadLanguage in the system plugin to avoid inheritance conflict with CMSPlugin (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 onBeforeCompileHead so no media/ file is required.
  • Reliability: Ensures <body> has the com_stageit class on admin StageIt pages so body.admin.com_stageit selectors always match.
  • Packaging: All manifests set to schema 4.0; version bumped to 5.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 = true and moved manifests to schema 4.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_stageit with correct references.

Add comment

Submit