📋 StageIt - Changelog

All notable changes to StageIt will be documented in this file.

v5.4.0 2026-01-01

Log Viewer & Large Table Support Release

🔍 Log Viewer

  • Dedicated Log View: New admin view at View Log menu 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.txt for 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) and CHUNK_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() and downloadLog() 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 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

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 < 1 check 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.bat script 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_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

v5.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

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 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.

v5.1.1 2025-10-22

🔧 Improvements

  • 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=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 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.

v5.0.12 2025-10-19

🎨 UI Improvements

  • Bootstrap 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.

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 #stageit and derive from Atum tokens, so Dark/Light toggles automatically.
  • Dark Mode: Preserved requested dark background #171c24 for #stageit in 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_stageit body class (eliminates the PHP parse error around catch).
  • Theme Loading: Continues loading media/com_stageit/css/admin.css via 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.css and load via WebAsset on admin StageIt pages.
  • Body Class Fix: Ensure <body> has the com_stageit class so selectors body.admin.com_stageit always match.
  • Manifest Update: Manifest now installs the media/com_stageit/css/admin.css file.

v5.0.8 2025-10-19

🎨 Dark Mode

  • Dark Background: Set #stageit background to #171c24 in 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 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.

v5.0.6 2025-10-19

🎨 Theme & Styling

  • Dark/Light Mode: Adopted the proven selectors & values; CSS is injected inline at onBeforeCompileHead so no media/ file is required.
  • Body Class: Ensures <body> has the com_stageit class on admin StageIt pages so body.admin.com_stageit selectors always match.
  • Schema Update: All manifests set to schema 4.0; version bumped to 5.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 = true and moved manifests to schema 4.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_stageit with correct references.

Add comment

Submit