Releases: Lokke/azuracast-song-history
Release list
v0.0.19 - Critical Hotfix: Elementor Widget Syntax Errors
Critical Hotfix - Immediate Update Required
Fixed Critical PHP Errors
- Duplicate Code Removal: Fixed duplicate render functions causing PHP fatal errors
- Syntax Error Resolution: Cleaned up malformed PHP code in widget files
- Import Statement Cleanup: Removed duplicate use statements preventing class loading
- Safety Checks: Added dependency validation to prevent crashes when classes are missing
Specific Fixes
- live-moderator.php: Removed duplicate render code causing syntax errors
- current-song.php: Cleaned up duplicated widget output functions
- Widget Registration: Added safety checks for missing AzuraCast_API class
- File Access Protection: Added proper exit handlers for direct file access
Impact
This hotfix resolves the PHP fatal errors that were preventing Elementor from loading when the AzuraCast Song History plugin was active. The errors were causing:
- Elementor editor to return 500 errors
- WordPress admin to become inaccessible in some cases
- Widget registration to fail silently
For Users Experiencing Issues
- Update immediately to v0.0.19
- Clear any caching plugins/server cache
- Refresh your Elementor editor
- Check that AzuraCast widgets appear in the widget panel
Emergency Update
If your site is currently broken:
- Download v0.0.19 from GitHub releases
- Upload via FTP to replace the plugin files
- Or update through WordPress admin if accessible
This resolves all syntax errors and restores full Elementor functionality with the advanced positioning and styling features from v0.0.18.
Sorry for the inconvenience - the advanced features are now working properly!
v0.0.18 - Advanced Elementor Widget Customization
Enhanced Design Control - Advanced Elementor Widget Customization
New Positioning & Alignment Features
Text Alignment Options
- Left, Center, Right alignment for all widgets
- Responsive controls that work on desktop, tablet, and mobile
- Smart layout adaptation for different screen sizes
HTML Tag Selection
- Title Tags: Choose from H1, H2, H3, H4, H5, H6, P, Span, or Div
- Artist Tags: Full HTML element control for semantic structure
- SEO Friendly: Proper heading hierarchy for better search optimization
- Accessibility: Improved screen reader support
Advanced Cover Art Control
- Size Sliders: Precise pixel control (30px - 300px)
- Responsive Sizing: Different sizes for desktop/mobile
- Conditional Display: Show/hide based on layout selection
- Aspect Ratio: Maintains perfect square proportions
Widget-Specific Enhancements
Live Moderator Widget
- Flexible HTML Output: Choose any HTML tag for the moderator display
- Smart Alignment: Proper centering and positioning
- Prefix/Suffix Control: Customize surrounding text
- Semantic Structure: Better HTML for accessibility
Current Song Widget
- Layout Positioning: Center, left, or right align entire widget
- Conditional Controls: Cover size only shows when covers are enabled
- Smart Text Flow: Typography adapts to chosen alignment
- Enhanced Layouts: Improved vertical, horizontal, and text-only modes
Song History Widget
- Item Alignment: Control how each song item is positioned
- Typography Hierarchy: Separate HTML tags for titles and artists
- Cover Scaling: Adjustable cover art size for list density
- Responsive Behavior: Optimal display on all screen sizes
Technical Improvements
- Conditional Logic: Controls appear/hide based on relevant settings
- CSS Enhancement: Better alignment support across all layouts
- Mobile Optimization: Improved responsive behavior
- Performance: Efficient rendering with conditional elements
Design Philosophy
These updates transform the Elementor widgets from simple displays into professional design elements with the same level of control you'd expect from premium Elementor widgets.
Compatibility
- WordPress: 5.0+ (tested up to 6.8)
- Elementor: Free and Pro versions
- PHP: 7.4+ required
- Responsive: All features work across devices
Perfect for designers who need precise control over their AzuraCast displays!
v0.0.17 - Critical Hotfix for Elementor Integration
Critical Hotfix - Immediate Update Recommended
Fixed
- PHP Fatal Error: Resolved Class 'Plugin' not found error in Elementor widgets
- Website Crashes: Fixed fatal errors that prevented WordPress sites from loading
- Namespace Issues: Corrected Elementor class imports and references
Changes
- Added proper use statements for Elementor classes
- Fixed widget registration method signature
- Improved error handling in Elementor integration
Impact
This hotfix resolves critical errors introduced in v0.0.16 that caused websites to crash when Elementor was active. Immediate update is strongly recommended for anyone using v0.0.16.
Compatibility
- WordPress: 5.0+ (tested up to 6.8)
- Elementor: Free and Pro versions
- PHP: 7.4+ required
For Users Experiencing Issues
- Update to v0.0.17 immediately
- Clear any caching plugins
- Check that your site loads properly
- Elementor widgets should now appear under 'AzuraCast' category
Thank you for your patience with this critical fix!
v0.0.16 - Elementor Widgets Integration
Major Feature Update: Elementor Widgets Integration
New Elementor Widgets
Transform your AzuraCast displays with powerful Elementor page builder integration! Three new widgets provide complete design flexibility:
Live Moderator Widget
- Shows current live moderator name when station is broadcasting
- Customizable prefix/suffix text (e.g., 'Live: ModeratorName')
- Configurable offline behavior (hide or show custom message)
- Full typography and styling controls (colors, backgrounds, borders)
- Responsive design with hover effects
Current Song Widget
- Displays currently playing song with album artwork
- Multiple Layout Options:
- Horizontal: Cover art left, song info right
- Vertical: Cover art top, song info below
- Cover Only: Just the album artwork
- Text Only: Song info without cover art
- Toggle cover art display on/off
- Typography controls for title and artist text
- Responsive design that adapts to container width
Song History Widget
- Shows recent song history (configurable song count)
- Three Layout Styles:
- List: Standard vertical list view
- Compact: Smaller spacing and cover art
- Cards: Grid layout with individual song cards
- Show/hide cover art and play times
- Intelligent time formatting ('5 mins ago', '2 hours ago')
- Typography controls for all text elements
Technical Improvements
- Custom Widget Category: All widgets organized under 'AzuraCast' in Elementor
- Comprehensive Styling: Full CSS framework with dark mode support
- Responsive Design: Mobile-friendly layouts for all screen sizes
- Error Handling: Graceful fallbacks when API is unavailable
- Performance: Integrates with existing caching system
- Accessibility: Proper alt text and semantic HTML structure
Compatibility
- WordPress: 5.0+ (tested up to 6.8)
- Elementor: Free and Pro versions supported
- PHP: 7.4+ required
- Responsive: Works on all devices and screen sizes
Migration Notes
- Existing shortcodes continue to work unchanged
- Elementor widgets load automatically when Elementor plugin is active
- No database changes required - seamless upgrade
This release transforms the plugin from simple shortcodes to a full design system, giving users complete creative control over their AzuraCast displays!
v0.0.15 - Major Bug Fixes and Live Moderator Feature
Major Update: Bug Fixes and New Live Moderator Shortcode
Critical Bug Fixes
- Fixed song display issue: Songs are now correctly extracted from API response structure
- Enhanced text parsing: Improved support for complex AzuraCast formats
- Better compatibility with different AzuraCast server configurations
New Feature: Live Moderator Shortcode
- New shortcode: [azuracast_live_moderator]
- Shows only the moderator name when someone is live
- Automatically hidden when no moderator is broadcasting
- Supports class and style parameters for custom styling
Technical Improvements
- Enhanced API response structure with live station information
- Improved JSON compatibility for different AzuraCast installations
- Updated documentation with usage examples
Usage Examples
Basic: [azuracast_live_moderator]
Custom: [azuracast_live_moderator class='live-mod' style='color: red;']
This release significantly improves compatibility and adds requested live moderator functionality.
v0.0.11 - Robust Activation Fix
** Robust Activation Fix**
This release adds comprehensive safety checks to prevent activation failures.
Fixed
- File Existence Checks - Added file_exists() checks before loading classes
- Class Existence Checks - Added class_exists() verification before instantiation
- Fault Tolerance - Activation process continues even if API class is missing
- Safety Measures - Multiple fallback mechanisms to prevent fatal errors
Technical Details
Activation Safety
\\php
if (file_exists()) {
require_once ;
if (class_exists('AzuraCast_Song_History_API')) {
\ = new AzuraCast_Song_History_API();
->clear_cache();
}
}
\\
Why This Helps
- Prevents fatal errors during plugin activation
- Handles incomplete file uploads gracefully
- Works even if class files are temporarily missing
- Ensures plugin can activate in any state
Installation Instructions
Manual Installation (Recommended):
- Download the ZIP file from this release
- Go to WordPress Admin Plugins Add New Upload Plugin
- Upload the ZIP file and activate
This version should activate successfully even if previous versions failed!
v0.0.10 - Critical Activation Fix
Critical Plugin Activation Fix
This release fixes the fatal error that prevented the plugin from activating after auto-updates.
Fixed
- Fatal Error on Activation - Resolved Class AzuraCast_Song_History_API not found error
- Auto-Update Issues - Fixed plugin directory naming during GitHub auto-updates
- Class Loading - Added proper class loading before using API in activation hook
- Directory Structure - Improved handling of GitHub ZIP file folder structure
Technical Details
Root Cause
- Plugin activation hook tried to use AzuraCast_Song_History_API class before includes() was called
- Auto-updater created incorrectly named plugin directories from GitHub ZIP files
Solution
- Added explicit class loading in activate() method before using API
- Improved auto-updater to properly handle GitHub ZIP structure
- Fixed plugin directory naming to maintain consistent plugin slug
Upgrade Priority
** CRITICAL** - This fixes the activation failure from previous versions.
Installation
If you cannot activate the plugin, manually download and install this version to resolve the activation issue.
v0.0.9 - Enhanced Song Parsing
Enhanced Song Data Parsing
This release improves song data extraction to handle edge cases where title/artist fields are empty.
Fixed
- Song Data Parsing - Enhanced to use text field as fallback when title/artist are empty
- Text Format Parsing - Now parses 'Artist - Title' format from text field
- Cache Issues - Auto-clear cache on version updates to prevent stale data
- Data Consistency - Better handling of various AzuraCast song data formats
Technical Details
Improved Parsing Logic
- First tries individual title/artist fields
- If empty, parses from text field using 'Artist - Title' format
- Falls back to text as title if no separator found
- Ensures maximum song data extraction
Auto-Cache Clearing
- Cache automatically cleared when plugin updates
- Prevents display of stale normalized data
- Ensures fresh data after improvements
This should resolve remaining 'Unknown Title/Artist' issues by better handling various song data formats from AzuraCast.
v0.0.8 - Song Data Fix and Auto-Updater
Song Data Parsing Fix and Auto-Update System
This release fixes the song display issue and introduces automatic updates via GitHub.
Fixed
- Song Data Parsing - Fixed Unknown Title/Artist by properly parsing nested API response
- API Response Structure - Now correctly extracts song.title and song.artist from AzuraCast API
- Cached Data Handling - Legacy cached data is automatically normalized to new format
New Features
- GitHub Auto-Updater - Plugin now automatically checks for updates from GitHub releases
- One-Click Updates - Update directly from WordPress admin dashboard
- Update Notifications - Admin notices when new versions are available
- Seamless Integration - Updates appear in standard WordPress plugin update system
Technical Details
Song Data Structure
The plugin now properly handles AzuraCast nested song data:
- song_history[].song.title (was: song_history[].title)
- song_history[].song.artist (was: song_history[].artist)
- song_history[].song.album (was: song_history[].album)
Auto-Update System
- Checks GitHub API for latest releases
- Downloads and installs updates automatically
- Maintains plugin activation state during updates
- Handles GitHub ZIP file structure correctly
Upgrade Instructions
After this update, your plugin will automatically check for future updates and offer them in your WordPress admin dashboard. No more manual downloads needed!
Songs should now display correctly with proper titles and artists instead of Unknown Title/Artist.
v0.0.7 - Debug Info & URL Configuration Fix
** Debug Information & Configuration Improvements**
This release fixes the incorrect version display in debug information and improves URL configuration flexibility.
Fixed
- Plugin Version Display - Now shows correct version (0.0.7) instead of hardcoded 1.0.0
- Version Constant - Updated internal version constant from 0.0.1 to match actual version
- URL Configuration - Clarified that URLs work with or without protocol prefix
- Debug Output - Version in debug information now reflects actual plugin version
Improvements
- Better Instructions - URL configuration now shows example with https://
- Flexible Input - Server URLs accept both formats: \unkturm.radio-endstation.de\ or \https://funkturm.radio-endstation.de\
- Accurate Support Info - Debug information shows correct version for support requests
Technical Details
The plugin automatically handles URL normalization - it strips any existing protocol and tries HTTPS first, falling back to HTTP if needed. This means you can enter URLs in either format and they'll work correctly.
For Support
Debug information now shows the correct plugin version, making support requests more accurate.