-
Notifications
You must be signed in to change notification settings - Fork 9
What's New v10.2
Released March 15, 2026 — Media chapters, subtitles, YouTube OAuth, AI assist improvements, and 100+ bug fixes.
For the previous release, see What's New v10.1.
Media files now support chapter markers and subtitle tracks as first-class features:
-
Chapter timestamps — Subform on the media file edit form for
time+labelpairs - Clickable chapter list — Frontend renders a chapter list below the player; clicking seeks to that time (HTML5 video/audio and YouTube iframes)
- Active chapter highlighting — Current chapter is highlighted during playback
- Subtitle tracks — Subform for VTT/SRT caption files with language, kind, and source URL
-
VTT file upload — Custom upload field validates VTT/SRT files and stores them in
media/com_proclaim/vtt/ -
Timestamp links —
.cwm-timestamplinks in study text seek the nearest player on the page
Connect your YouTube server to import chapters and download captions directly:
- Import Chapters — One-click import of chapter timestamps from YouTube video descriptions
- Download Captions — List available caption tracks and download as VTT files
- OAuth status field — Visual indicator of connection status in server settings
-
Addon capability flags —
supportsChapters()andsupportsCaptions()on 7 platform addons (YouTube, Vimeo, Wistia, Dailymotion, Facebook, Rumble, Soundcloud)
Each media file's "Copy Description" button now generates a platform-optimized description:
-
Server format templates — Configure a description template per server with placeholders:
{title},{series},{teachers},{date},{scriptures},{topics},{chapters},{studyintro},{url} -
Chapter timestamps — Formatted in
0:00 Labelformat recognized by YouTube, Vimeo, and most platforms - Frontend URL — Auto-detects SEF menu item path for the sermon link
- Chapter generation — AI can now suggest chapter timestamps based on video context
- Toggle checkboxes — Choose which fields to generate (topics, intro, text, chapters)
- Topic saving fix — Multiple AI-suggested topics now save correctly (was only saving one)
-
Joomla 6 editor API — Updated to use non-deprecated
JoomlaEditor.get().getValue()/setValue()
A new server addon for Google Drive enables embedding documents, spreadsheets, and presentations directly in sermon/message pages.
Supported URL formats:
-
drive.google.com/file/d/{ID}/view— Generic Drive files -
drive.google.com/open?id={ID}— Legacy sharing links -
docs.google.com/document/d/{ID}/edit— Google Docs -
docs.google.com/spreadsheets/d/{ID}/edit— Google Sheets -
docs.google.com/presentation/d/{ID}/edit— Google Slides
Setup: Create a new Server, choose "Google Drive" as the type. No configuration needed — just start creating media files with Google Drive URLs.
Media files with VTT/SRT subtitle tracks now automatically display an interactive transcript panel below the player:
- Scrollable transcript — each VTT cue rendered as a clickable line with timestamp
- Click-to-seek — clicking any line seeks the player to that timestamp (HTML5 audio/video and YouTube iframes)
- Active cue highlighting — current cue highlighted during playback with auto-scroll
- Search/filter — text input filters transcript lines with match highlighting
- Dark mode aware — uses Bootstrap 5.3 theme variables throughout
- Print friendly — full transcript shown without scroll constraints
- Caption file cleanup — locally stored VTT files automatically deleted when the media record is deleted
No configuration needed — if a media file has a subtitle track, the transcript panel appears automatically on the sermon detail page.
Large database backup/restore operations now use chunked processing with async post-restore steps, preventing timeout failures on big installations.
- Countdown timer — Shows time remaining until scheduled live stream
- Notify button — Browser notification when stream goes live
- Mini-player (PiP) — Floating player when scrolled past the main embed
-
Quota optimization — Smart pre-check with
videos.list(1 unit) instead ofsearch.list(100 units); 15-minute throttle on empty searches; centralized file cache for quota/schedule data
- Eliminated
getTableColumns()calls from 7 list models - Static config cache for
CwmserverModel::getConfig() - Scalar subqueries replace
GROUP BYaggregation in messages list
- Multi-platform podcast links with Podcast Index API integration
- Configurable iTunes settings with deprecated tag cleanup
- Artwork validation on save
Settings modal is now driven by XML schema — adding a new per-element setting requires only editing XML and adding language strings. No JavaScript changes needed.
- Archived indicators and status filter (All/Published/Archived)
- Drill-down views for series, message, and media
- Printable pastor-ready reports
- CSV export
- URL normalization on save for all platform addons
- Reset Hits confirmation dialog
- Default teacher auto-fill on new messages
- Modal series field (Select/New/Edit/Clear buttons)
- Social sharing with GDPR-compliant local option
- Legacy
com_biblestudyURL redirects tocom_proclaim - Help system migrated from local HTML to GitHub wiki
- Prevent quota exhaustion from
search.listoveruse (was burning ~200 units/minute with no active stream) - Centralized file cache for throttle and scheduled start times
- AJAX polling now only checks known video IDs (1 unit), no more expensive search fallback
- Topics saving only one instead of multiple
- Chapter generation not displaying results
- Deprecated Joomla editor API warnings on Joomla 6
- Protect source image from deletion during thumbnail cleanup
- Prevent
File::copyerror when source image is missing
- Series filter not clearing due to stale session state
- AJAX pagination page numbers, position, and CSS
- Clear button disabled and filter state lost
- CSRF gate removed from read-only filter endpoint
- Landing page SEF URLs, session state bleeding, page caching
- Handle legacy Proclaim 9.x SEF URLs and download redirects
- Handle NULL
series_idwith custom not-found page
- Theme-aware colors throughout (tables, cards, buttons, YouTube integration)
- WCAG AA contrast compliance for alerts and badges
- Removed all hardcoded CSS colors
- Correct AUTO_INCREMENT counters after backup restore
- Cast integer properties in Table
bind()for PHP 8.3 - Add missing primary keys for sites upgraded from v7/v8/v9
- Re-init YouTube IFrame API players after AJAX filter
- Track inline mp3 plays and Fancybox audio overlays
- Use Joomla
<base href>for multilingual play tracking URLs
- Escape exception text in innerHTML to prevent XSS (CodeQL #47)
- 523 PHPUnit tests (1,149 assertions) — all pass
- 246 Jest tests (18 suites) — includes 45 new tests for chapters, VTT upload, AI assist, YouTube tracks, plus 15 for interactive transcripts
- PHP CS Fixer: 0 issues across 376 files
- PHP syntax: 1,245 files clean
- Code quality scan: Full 4-area scan (admin PHP, site PHP, JS, modules/plugins) — zero critical issues
- PHP 8.3+
- Joomla 5.1+ (also runs natively on Joomla 6 without backward compatibility layer)
-
ShowVersesField,ScriptureSeparatorField,DateFormatField— extracted from duplicated XML options into reusable custom field classes -
VttUploadField— VTT/SRT caption file upload with validation -
DescriptionFormatField— Description template editor with placeholder reference -
YoutubeOAuthStatusField— OAuth connection status indicator
-
CwmyoutubeFileCache— Centralized file-based cache for YouTube quota, throttle, and schedule data -
CwmdescriptionHelper— Template-based video description builder with placeholder replacement
-
cwm-player-chapters.es6.js— Chapter list rendering and seek handling -
cwm-vtt-upload.es6.js— VTT file upload handler -
cwm-youtube-tracks.es6.js— YouTube chapter import and caption download -
cwm-transcript.es6.js— Interactive transcript panel with VTT parsing, seek, search, and active cue sync
-
supportsChapters()/supportsCaptions()— Override in addon classes to enable platform-specific chapter/caption features -
formatChaptersForDescription()— Static method for platform-compatible timestamp formatting
- Multi-Campus-Admin-Guide
- Multi-Campus-User-Guide
- Template-Customization-Guide
- Print-Friendly-View
- Content-Security-Policy
- Troubleshooting-FAQ
- Setting-up-your-development-environment
- Standards and Conventions
- Contributing-Workflow
- Database-Schema
- Location-API-Reference
- Backward-Compatibility-Breaks-10.1
- Proclaim-Code-Road-map
- Tasks
- Overview
- Admin Center
- Messages
- Media Files
- Servers
- Teachers
- Series
- Podcasts
- Topics
- Locations
- Comments
- Message Types
- Templates
- Utilities