File: //var/softaculous/flatboard/changelog.txt
Version 4.0 - 2025-11-29
Performance Optimizations
Database Query Optimization: Implemented static caching for flatDB::readEntry() and flatDB::listEntry() to reduce redundant file system operations
N+1 Query Fixes: Eliminated N+1 query problems in feed.php, view.php, search.php, and other core files
Parser Optimization: Added static cache for Parser::title() and optimized Parser::content() and Parser::summary()
Plugin System: Implemented static caching for plugin configurations and hook validations
BBCode/BBlight Optimization: Added static cache for quote entries to prevent repeated database reads
User Management: Implemented static cache for ban list with 60-second TTL
Search Enhancement: Optimized search functionality with relevance scoring, result limiting, and content preview optimization
Library Improvements
flatDB Library: Added static caching system with automatic invalidation (5-second TTL)
Plugin Library: Added cache for hook validation checks
HTMLForm Library: Added cache for description sanitization
GlobalRequestLimiter: Fixed potential undefined variable error
RSS Feed Fixes
Fixed RSS feed redirection issue - now returns valid Atom XML error feed instead of redirecting
Improved date validation in feed generation
Optimized topic caching in feed.php
Date Formatting
Fixed date formatting issues with strftime codes
Added convertStrftimeToDateTime() function for proper format code conversion
Enhanced config.php with select dropdowns for date format presets
Added "Custom" option with dynamic text input for date formats
Security Enhancements
Ban System Overhaul:
[list]
Replaced strpos() with ipInCidr() for accurate IP/CIDR range checking
Added isValidIpOrCidr() for robust IP and CIDR validation (IPv4/IPv6)
Improved ban list management with search, sort, and add functionality
Added confirmation for ban removal
Implemented static cache for ban list with automatic invalidation
[*] CSRF Protection: Enhanced CSRF token generation and validation
[*] Input Sanitization: Improved HTML sanitization in help descriptions with whitelist-based approach
[*] IP Validation: Enhanced IP address validation including CIDR support
[/list]
User Interface Improvements
Added logout button to frontend header for all logged-in users
Tags field now only displays if visible tags are configured
Improved responsive design for various screen sizes
Enhanced form validation and error display
Plugin Enhancements
Identicon Plugin (v3.6.0):
[list]
Added configurable options for status dot (online/offline) display
Added configurable options for role badge (admin/moderator) display
Improved caching for online status checks
Enhanced role detection with optimized caching
Fixed CSS positioning for status dots and badges
[*] Online Plugin:
Implemented static caching for plugin data, hits, and authenticated users
Optimized cleanup of inactive IPs and authenticated users
Added configuration options for timeout and max_entries
Enhanced modal to display authenticated users, visitors, and bots
Improved IPv6 masking for privacy
Added crawler detection with static caching
[*] FlatBBeditor Plugin:
Fixed conflicts with TinyMCE editor in page plugin
Added conditional loading to prevent conflicts
Fixed undefined array key warnings in markdown editor
Implemented static cache for plugin data
[*] Darkmode Plugin:
Fixed Firefox crashing issues
Added color format validation
Improved error handling and initialization
Added static caching for plugin configuration
[*] Page Plugin:
Ensured TinyMCE editor doesn't conflict with FlatBBeditor
Added proper content field handling
Improved translation support
[/list]
Content Parsing Improvements
Markdown Editor:
[list]
Fixed HTML tag display issue in homepage summaries
Added HTML-to-Markdown conversion for pre-existing HTML content
Improved content parsing in Parser::content() and Parser::summary()
[*] BBCode Processing: Optimized quote processing with static caching
[/list]
JavaScript Enhancements
Improved plugin activation/deactivation with better error handling
Added comprehensive AJAX error handling with timeouts
Enhanced UI feedback for user actions
Fixed TypeError issues in flatboard.js
[h2]Bug Fixes[/h2]
Fixed white page error in identicon plugin
Fixed undefined array key warnings in multiple files
Fixed date formatting display issues
Fixed search functionality optimization
Fixed tag display logic in forms
Fixed various PHP warnings and notices
Code Quality
Improved error handling throughout the application
Added comprehensive logging for debugging
Enhanced code documentation
Improved code organization and structure