- Compatible XF Versions
- 2.3
- License
- Free / Open Source
- Additional Requirements
- XenForo Resource Manager (XFRM) 2.3.0+
Hotlink Converter is an admin tool that batch-converts externally hotlinked images in XFRM resource descriptions into locally-stored XenForo attachments. It scans
BB code tags, downloads the images, creates proper XF attachments, and replaces the BB code with .
Built as a one-time migration tool for forums with legacy resource content that hotlinks images from external hosts that may go offline at any time.
Built as a one-time migration tool for forums with legacy resource content that hotlinks images from external hosts that may go offline at any time.
Key Features
- Admin Dashboard - Shows how many resource updates contain hotlinked images, conversion statistics (converted/failed/skipped/pending), and action buttons.
- Dry Run Mode - Preview what will be converted without downloading anything. Results appear in the conversion log as "pending" entries.
- Live Conversion - Downloads external images, creates XF attachments, and replaces tags with [ATTACH=full] tags. Runs as a resumable background job.
[*]Confirmation Overlay - Live conversion requires explicit confirmation since it modifies resource content irreversibly.
[*]Conversion Log - Paginated log of every URL processed, with status badges, attachment links, file sizes, error messages, and timestamps. Filterable by status.
[*]Smart Handling - Handles all [IMG] tag variants ([IMG width="400" height="300"], [IMG alt="desc"], etc.).
[*]URL Deduplication - If the same external URL appears multiple times in one resource update, it's downloaded once and all instances share the same attachment.
[*]Local URL Skipping - URLs pointing to your own board are automatically skipped.
[*]Idempotent - Safe to re-run. Already-converted URLs are skipped on subsequent runs. No duplicate downloads or attachments.
[*]Failure Resilience - Failed downloads (404s, timeouts, invalid images) are logged with specific error messages. The job continues processing remaining URLs.
[*]Clean Uninstall - Drops the conversion log table on uninstall.
[/LIST]
[HR][/HR]
[HEADING=2]How It Works[/HEADING]
[LIST=1]
[*]Navigate to AdminCP > Tools > Hotlink Converter
[*]Review the dashboard - See how many resource updates contain external [IMG] tags
[*]Run a Dry Run - Click "Dry Run" to scan without converting. Check the log to see what would be processed.
[*]Convert All - Click "Convert All", confirm in the overlay, and the background job handles the rest. It downloads each image, creates an XF attachment, and updates the resource description.
[*]Check the Log - Review the conversion log for any failures. Filter by status to focus on issues.
[/LIST]
[HR][/HR]
[HEADING=2]What Gets Converted[/HEADING]
Before:
Code:
Check out this screenshot: [IMG]https://external-site.com/image.jpg
After:
Code:
Check out this screenshot: View attachment 12345
The image is now stored locally as a proper XF attachment, associated with the resource update. It will survive even if the external host goes offline.
Technical Details
- Architecture: Service + Job + Repository pattern. One database table (xf_qubn_hlc_conversion_log) for audit logging.
- Downloads: Uses XF's built-in getUntrusted() HTTP reader with SSRF protection. 15-second timeout, 10MB file size limit per image.
- Supported formats: JPG, JPEG, PNG, GIF, WebP, BMP
- Attachment creation: Uses XF's native PreparerService - same API as manual uploads. Properly updates attach_count on the resource update.
- Job processing: Cursor-based resumable job. Processes 50 resource updates per batch with time-limit checks. Can be cancelled from the AdminCP job queue.
- Compatibility: Requires XenForo 2.3.0+ and XF Resource Manager 2.3.0+
- Code Quality: PHPStan level 3 clean. No class extensions - completely self-contained.
Installation
- Download and extract the ZIP file
- Upload the Qubn/HotlinkConverter/ folder to src/addons/
- Go to AdminCP > Add-ons > Install from archive (or Install/upgrade)
- Navigate to AdminCP > Tools > Hotlink Converter
Addon ID: Qubn/HotlinkConverter
Vendor: Qubn
License: Free / Open Source