Version: 2.4
Introduction
RightClick Disable is a comprehensive content protection solution for Joomla websites that helps protect your content from unauthorized copying, downloading, and inspection. Available as both a Module and System Plugin, it provides flexible options for protecting content throughout your Joomla website.
When to Use Module vs Plugin
Use the Module when:
- You want to protect only specific pages or sections of your website
- You need position-based protection (e.g., only in article content areas)
- You want to use Joomla's built-in Access control for user group management
- You need different protection settings for different pages
- You want to control protection via module assignment and menu items
- You prefer granular control over where protection appears
Use the Plugin when:
- You want site-wide protection across your entire website
- You need to exclude specific user groups (e.g., administrators, registered users)
- You want to exclude specific Joomla components (e.g., admin areas, forms)
- You need URL-based exclusions (e.g., exclude contact page, checkout pages)
- You want automatic protection without manual module assignment
- You prefer a "set it and forget it" approach
Important: Do not use both module and plugin together as they may conflict. Choose one based on your needs.
How Content Protection Works
Understanding Client-Side Protection:
This extension uses client-side JavaScript to protect your content. This means:
- Protection runs in the user's web browser
- It blocks common methods of copying (right-click, keyboard shortcuts, text selection)
- It deters casual users from copying your content
- It is NOT 100% foolproof - determined users with technical knowledge can bypass it
What It Can Do:
- Block right-click context menu
- Prevent text selection and highlighting
- Block common keyboard shortcuts (Ctrl+C, Ctrl+V, etc.)
- Prevent image dragging
- Block access to developer tools (F12, etc.)
- Detect screenshot attempts on mobile devices
- Deter casual copying and unauthorized access
What It Cannot Do:
- Prevent viewing page source code (Ctrl+U or View Source menu)
- Stop users from disabling JavaScript in their browser
- Prevent browser extensions that bypass protection
- Stop users from using browser developer tools if they know how to access them
- Prevent screen recording or photography
- Stop users from accessing content via browser cache or network inspection
- Prevent automated scraping tools
- Stop determined users with technical knowledge
Important Disclaimer:
No client-side protection can provide 100% security. This extension is designed to deter casual copying and protect against common methods. It is not a replacement for proper copyright protection, legal measures, or server-side content protection. For truly sensitive content, consider additional measures such as:
- Watermarking images
- Server-side access control
- DRM (Digital Rights Management) solutions
- Legal copyright protection
- Content licensing agreements
Key Highlights:
- Full Joomla 4, 5 & 6 Compatibility
- Multiple Alert Types (Popup, Alert, Silent)
- Advanced Keyboard Protection
- Developer Tools Blocking
- Mobile & Tablet Protection
- Screenshot Detection
- Exception Selectors (CSS-based whitelisting)
- Plugin Exclusions (User Groups, Components, URLs)
- Fully Customizable Styling
- Vanilla JavaScript (No jQuery)
Installation
Package Installation
The extension is distributed as a package containing both the module and plugin.
Installing the Package
- Log in to your Joomla backend
- Navigate to Extensions > Manage > Install
- Click on the "Upload Package File" tab
- Select the package installation file (
pkg_rightclick_disable.zip)
- Click "Upload and Install"
- Both module and plugin will be installed automatically
Post-Installation Setup
Enable the Plugin
- Navigate to Extensions > Plugins
- Search for "System - RightClick Disable"
- Click the status icon to enable the plugin
- Configure plugin settings if needed
Configure the Module (Optional)
- Navigate to Extensions > Modules
- Click "New" and select "RightClick Disable"
- Configure protection settings
- Assign to module position and publish
A success message will be displayed once the installation is complete.
Module Settings
Access module settings by navigating to Extensions > Modules, create or edit a "RightClick Disable" module.
Protection Settings
- Alert Message Type: Choose how to display messages (Popup, JavaScript Alert, None/Silent) - default:
Popup
- Enable on Mobile Devices: Enable or disable protection on mobile devices - default:
Yes
- Enable on Tablet Devices: Enable or disable protection on tablet devices - default:
Yes
- Screenshot Detection (Mobile): Detect screenshot attempts on mobile/tablet - default:
No
- Disable Right-Click For: Select elements (Entire Website, Images Only, Links Only) - default:
Entire Website
- Exception Selectors: CSS selectors for elements that bypass protection (one per line or comma-separated)
- Text Selection: Enable or disable text selection - default:
Yes (protection enabled)
- Image Dragging: Enable or disable image dragging - default:
Yes (protection enabled)
Keyboard Shortcuts
- Disable Copy (Ctrl+C): Block copy shortcut - default:
Yes (protection enabled)
- Disable Paste (Ctrl+V): Block paste shortcut - default:
Yes (protection enabled)
- Disable Cut (Ctrl+X): Block cut shortcut - default:
Yes (protection enabled)
- Disable Select All (Ctrl+A): Block select all shortcut - default:
Yes (protection enabled)
- Custom Keyboard Combinations: Add custom combinations with character input and modifier keys
Advanced Protection
- Disable Developer Tools: Block F12, Ctrl+Shift+I/J/C - default:
Yes (protection enabled)
- Allow View Source (Ctrl+U): Allow or disallow viewing page source - default:
Yes (protection enabled)
- Allow Print Page (Ctrl+P): Allow or disallow printing - default:
Yes (protection enabled)
- Allow Save Page (Ctrl+S): Allow or disallow saving page - default:
Yes (protection enabled)
Message & Styling
- Message: Custom message text displayed when restricted actions are attempted
- Popup Background Color: Background color for popup (rgba supported) - default:
rgba(0, 0, 0, 0.8)
- Popup Text Color: Text color for popup message - default:
#333333
- Popup Maximum Width: Maximum width (e.g., 90% or 500px) - default:
90%
- Popup Maximum Height: Maximum height (e.g., auto, 80%) - default:
auto
- Popup Font Size: Font size (e.g., 16px, 1em) - default:
16px
- Popup Font Weight: Font weight (Normal, Bold, Light, Medium, Semi-Bold) - default:
Normal
- Additional CSS: Add custom CSS for further customization
Plugin Settings
Access plugin settings by navigating to Extensions > Plugins, and find System - RightClick Disable.
The plugin has all the same settings as the module (see Module Settings tab), plus additional exclusion options:
Exclusions
- Exclude User Groups: Select user groups that should be excluded from protection. Users in these groups will have full access. Note: Selecting "Public" (group 1) will automatically exclude all guest users, regardless of the configured guest group ID.
- Exclude Components: Select Joomla components where content protection should be disabled. Useful for admin areas or forms.
- Exclude URLs: Enter specific URLs (one per line) where content protection should be disabled. Supports:
- Full URLs:
https://example.com/page
- Relative paths:
/contact, /admin
- Partial matches:
/special-page
Protection Settings
All protection settings from the module are available in the plugin:
- Alert Message Type
- Mobile/Tablet Device Targeting
- Screenshot Detection
- Right-Click Target Elements
- Exception Selectors
- Text Selection & Image Dragging
- Keyboard Shortcuts
- Developer Tools Blocking
- Message & Styling
Exception Selectors
What are Exception Selectors?
Exception selectors allow specific elements to bypass content protection. This is useful for forms, specific content areas, or admin interfaces where you want to allow normal functionality.
How to Use
Enter CSS selectors (one per line or comma-separated) in the "Exception Selectors" field. The extension will check if the clicked element or its parent matches any of these selectors.
Examples
Allow Copying from Specific Class
Allow copying from elements with class allow-copy:
.allow-copy
Allow Form Elements
Allow normal functionality in forms:
input, textarea, select
Allow Specific Content Area
Allow copying from a specific content area:
#my-content-area
Combined Selectors
Allow multiple areas:
.article-content .copy-allowed
#my-form
input, textarea
Supported Selector Types
- Classes:
.my-class
- IDs:
#my-id
- Elements:
input, textarea, select
- Combined:
.article .allow-copy
- Multiple: Comma-separated or newline-separated selectors
Default Exceptions
The extension automatically excludes these elements:
input, textarea, select elements
- Elements with
contenteditable attribute
Custom Keyboard Combinations
Adding Custom Combinations
You can add custom keyboard combinations to block specific shortcuts that aren't covered by the standard options.
How to Add
- Click the "Add" button in the Custom Keyboard Combinations section
- Enter the key character (e.g., "C", "O", "F12")
- Select modifier keys (Ctrl, Shift, Alt, Meta)
- Click "Add" to save the combination
Examples
Block Ctrl+O (Open)
- Key:
O
- Ctrl: Yes
- Shift: No
- Alt: No
- Meta: No
Block Shift+F (Find)
- Key:
F
- Ctrl: No
- Shift: Yes
- Alt: No
- Meta: No
Block F12
- Key:
F12
- Ctrl: No
- Shift: No
- Alt: No
- Meta: No
Supported Keys
- Letters: A-Z
- Numbers: 0-9
- Function Keys: F1-F24
- Special Keys: Enter, Space, Tab, Escape, Arrow keys (ArrowUp, ArrowDown, ArrowLeft, ArrowRight)
- Numpad Keys: Numpad0-Numpad9
- Special Characters: !, @, #, $, %, ^, &, *, etc.
Modifier Keys
- Ctrl: Control key (Windows/Linux) or Command key (Mac)
- Shift: Shift key
- Alt: Alt key (Windows/Linux) or Option key (Mac)
- Meta: Meta key (Mac Command key specifically)
Cross-Platform Compatibility
The extension automatically handles Ctrl/Meta key differences between Windows/Linux and Mac:
- On Windows/Linux: Ctrl key is used
- On Mac: Meta (Command) key is used
- Selecting "Ctrl" will match both Ctrl (Windows/Linux) and Meta (Mac)
Features
Core Features
- Right-Click Disable: Disable right-click context menu on selected elements with flexible targeting options
- Text Selection Prevention: Prevent users from selecting and copying text content with configurable exception selectors
- Image Dragging Prevention: Disable image dragging to prevent easy image saving
- Exception Selectors: CSS selector-based whitelist system for bypassing protection on specific elements
- Multiple Alert Types: Choose between styled popup, JavaScript alert, or silent mode
- Keyboard Shortcut Blocking: Block Copy, Paste, Cut, Select All, View Source, Save Page, Print Page
- Custom Keyboard Combinations: Add custom keyboard shortcuts with user-friendly character input
- Developer Tools Blocking: Block F12 and DevTools shortcuts with window size detection
Advanced Features
- Mobile & Tablet Protection: Enable or disable protection on mobile and tablet devices independently
- Screenshot Detection: Detect screenshot attempts on mobile/tablet devices using multiple detection methods
- Device Detection: Smart device detection based on User Agent and screen size
- Overlay Protection: Obscure content when page becomes hidden (screenshot detection)
- Responsive Popup: Fully responsive popup design that works on all devices
- Accessibility Support: Dark mode, high contrast, and reduced motion support
Plugin-Specific Features
- User Group Exclusions: Exclude specific user groups from protection with special handling for Public/Guest groups
- Component Exclusions: Exclude specific Joomla components where protection should be disabled
- URL Exclusions: Exclude specific URLs (exact and partial matching) where protection should be disabled
- Site-Wide Protection: Apply protection across the entire website automatically
Module-Specific Features
- Position-Based Protection: Apply protection only where the module is displayed
- Menu Assignment: Control which pages display the protection module
- Module Position Control: Display protection in specific module positions
- Selective Protection: Protect specific pages or areas of your website
Styling & Customization
- Customizable Popup: Full control over popup appearance including colors, dimensions, fonts
- CSS Variables: Dynamic styling using CSS variables for easy customization
- Additional CSS: Add custom CSS for advanced styling
- Responsive Design: Popup adapts to different screen sizes
- Dark Mode Support: Automatic dark mode detection and styling
- High Contrast Support: Enhanced visibility for accessibility
- Reduced Motion Support: Respects user's motion preferences
Technical Features
- Vanilla JavaScript: No jQuery dependency for better performance
- WebAssetManager: Modern Joomla asset loading for optimal performance
- Cross-Browser Compatible: Works on Chrome, Firefox, Safari, Edge
- Cross-Platform Support: Proper handling of Ctrl/Meta keys for Mac/Windows
- Performance Optimized: Efficient event handling and minimal performance impact
- Modern Code: Joomla 4/5/6 compatible with modern PHP and JavaScript
FAQ
General Questions
What's the difference between the module and plugin?
- Module: Position-based protection that can be assigned to specific pages and module positions for selective protection
- Plugin: Site-wide protection with advanced exclusion options including user groups, components, and URLs
- Both have the same protection features, but plugin includes exclusion options
Which Joomla versions are supported?
- Both module and plugin are fully compatible with Joomla 4.x, 5.x, and 6.x
Can users still bypass this protection?
- While this extension provides strong protection, determined users with technical knowledge may find ways to bypass it. This is true for any client-side protection. The extension is designed to deter casual copying and protect against most common methods.
Does this affect SEO?
- No, the protection is client-side only and doesn't affect search engine crawlers or SEO.
Configuration Questions
How do I exclude forms from protection?
- Use exception selectors:
input, textarea, select
- Or target specific forms:
#my-form or .contact-form
How do I exclude administrators from protection?
- In the plugin, use "Exclude User Groups" and select administrator groups
- Module doesn't have user group exclusion (use Joomla's Access control instead)
Can I use both module and plugin together?
- Yes, but it's not recommended as they may conflict. Choose one based on your needs.
Technical Questions
How does screenshot detection work?
- Screenshot detection works on mobile/tablet devices using multiple methods: Page Visibility API, window blur events, orientation changes, and overlay protection. True screenshot prevention is not possible due to OS security, but this feature detects common screenshot patterns.
How do custom keyboard combinations work?
- Enter the key character (e.g., "C" for the C key) and select modifier keys. The extension converts characters to key codes automatically. Supports all standard keys including function keys and special characters.
Does it work on Mac?
- Yes, the extension properly handles Ctrl/Meta key differences. Selecting "Ctrl" will match both Ctrl (Windows/Linux) and Meta (Mac Command key).
Will this slow down my website?
- No, the extension is optimized for performance with minimal JavaScript footprint, deferred script loading, and efficient event handling.
Troubleshooting
Protection not working?
- Check plugin/module is enabled and published
- Verify you're not in an excluded user group (plugin)
- Check current component/URL is not excluded (plugin)
- Clear Joomla and browser cache
- Check browser console for JavaScript errors
Popup not showing?
- Verify alert type is set to "Popup"
- Check CSS and JavaScript files are loading
- Check browser console for errors
- Verify popup styling settings are configured
Exception selectors not working?
- Verify selector syntax is correct
- Test selectors in browser console
- Check for typos in selectors
- Ensure selector matches the element or its parent
Limitations & Platform Support
Understanding Content Protection Limitations
Important: This extension uses client-side JavaScript protection, which means it runs in the user's browser. No client-side protection can provide 100% security. This section explains the limitations and what users should understand.
How Content Protection Works
Client-Side Protection Mechanism:
- JavaScript code runs in the user's web browser
- Event listeners block right-click, keyboard shortcuts, and text selection
- Protection is applied after the page loads
- All content is still sent to the browser - it's just protected from common copying methods
Important Limitations:
- Client-side protection can be bypassed by disabling JavaScript
- Page source code can be viewed through browser menus
- Browser developer tools may still be accessible through alternative methods
- Screen recording and screenshot tools can capture content
- Browser extensions and automated tools may bypass protection
- Content accessible via RSS feeds or APIs can be accessed directly
Note: This extension is designed to deter casual copying, not to provide absolute security. Determined users with technical knowledge may find ways to access content.
iOS Limitations
iOS Safari Specific Limitations:
- Screenshot detection is very limited due to iOS security restrictions
- Touch events and gestures may behave differently on iOS
- Reader Mode and Share Sheet features can bypass protection
- JavaScript restrictions on iOS may limit some protection methods
- Private browsing mode may affect detection capabilities
iOS Screenshot Detection:
- Screenshot detection on iOS is very limited due to OS security restrictions
- iOS does not allow JavaScript to reliably detect when screenshots are taken
- This is a fundamental limitation of iOS security architecture, not a bug in the extension
Android Limitations
Android Chrome Specific Limitations:
- Screenshot detection is better than iOS but still limited
- Developer tools may be accessible through alternative methods
- Browser extensions can bypass protection
- Share menu and accessibility tools may bypass protection
Desktop Browser Limitations
General Desktop Limitations:
- Developer tools may be accessible through alternative methods
- Browser extensions can bypass protection scripts
- View source functionality is always available
- Print and screen recording functions can capture content
- Browser cache and network inspection tools can access content
What This Extension Is Designed For
Primary Use Cases:
- Deter casual users from copying content
- Protect against common copying methods (right-click, Ctrl+C, text selection)
- Add a layer of protection for copyrighted content
- Prevent accidental copying
- Protect images from easy dragging/saving
- Deter unauthorized content sharing
Not Suitable For:
- Highly sensitive or confidential content
- Financial or personal data protection
- Content that requires 100% security
- Protection against determined attackers
- Preventing professional content scraping
- Replacing proper copyright protection or legal measures
Best Practices
To Maximize Protection:
- Use in combination with other measures (watermarking, legal protection)
- Enable all protection features (right-click, keyboard shortcuts, DevTools blocking)
- Use exception selectors carefully - don't create too many exceptions
- Regularly update the extension for latest protection methods
- Monitor your content for unauthorized use
- Consider server-side protection for highly sensitive content
Realistic Expectations:
- Expect to protect against 80-90% of casual copying attempts
- Understand that determined users can bypass protection
- Use as part of a comprehensive content protection strategy
- Combine with legal copyright protection
- Monitor and enforce copyright violations
Platform Compatibility Summary
| Platform |
Right-Click |
Keyboard Shortcuts |
Text Selection |
Screenshot Detection |
DevTools Blocking |
| Windows Chrome |
✓ Good |
✓ Good |
✓ Good |
✗ Limited |
⚠ Partial |
| Windows Firefox |
✓ Good |
✓ Good |
✓ Good |
✗ Limited |
⚠ Partial |
| Mac Safari |
✓ Good |
✓ Good |
✓ Good |
✗ Limited |
⚠ Partial |
| iOS Safari |
⚠ Partial |
⚠ Partial |
⚠ Partial |
✗ Very Limited |
✗ Not Supported |
| Android Chrome |
✓ Good |
✓ Good |
✓ Good |
⚠ Limited |
⚠ Partial |
Legend:
- ✓ Good: Protection works as expected
- ⚠ Partial: Protection works but can be bypassed with some effort
- ✗ Limited/Not Supported: Protection is minimal or not available
Final Notes
This extension provides deterrent protection against casual copying. It is not a security solution for highly sensitive content. Always combine client-side protection with:
- Legal copyright protection
- Content licensing agreements
- Watermarking for images
- Server-side access control for sensitive content
- Regular monitoring of content usage
Remember: If content can be viewed, it can potentially be copied. This extension makes it more difficult, but not impossible.
Troubleshooting
Common Issues and Solutions
Protection Not Working
Check Plugin/Module Status
- Ensure plugin is enabled in Extensions > Plugins
- Verify module is published if using module
- Check module is assigned to correct pages/menu items
- Verify module position is correct for your template
Check Exclusions
- Verify you're not in an excluded user group (plugin)
- Check if current component is excluded (plugin)
- Verify current URL is not excluded (plugin)
- Check exception selectors aren't matching unintended elements
Check Device Settings
- Verify mobile/tablet settings if testing on those devices
- Check if protection is enabled for your device type
- Test on different devices to verify device detection
Popup Not Showing
Check Alert Type
- Ensure alert type is set to "Popup"
- Verify CSS file is loading (check browser console)
- Check JavaScript file is loading
Check JavaScript
- Open browser console (F12) and check for errors
- Verify JavaScript file is loading
- Check for conflicts with other scripts
Check CSS Variables
- Verify popup styling settings are configured
- Check if custom CSS is conflicting
- Verify CSS variables are being set correctly
Exception Selectors Not Working
Verify Selector Syntax
- Use valid CSS selectors
- Check for typos
- Test selectors in browser console:
document.querySelector('.my-class')
Check Element Hierarchy
- Exception selectors check parent elements too
- Ensure selector matches the element or its parent
- Use more specific selectors if needed
User Group Exclusion Not Working
Check Group Selection
- Verify correct groups are selected
- For "Public" group, it automatically includes actual guest group
- Check current user's groups match excluded groups
Clear Cache
- Clear Joomla cache
- Log out and log back in
- Test with different user accounts
Custom Keyboard Combinations Not Working
Verify Key Input
- Use single character (e.g., "C" not "Ctrl+C")
- For function keys, use format like "F12"
- Check modifier key selections
Check Conflicts
- Ensure combination isn't already blocked by standard shortcuts
- Custom combinations take priority over standard shortcuts
- Test on different browsers
Screenshot Detection Not Working
Device Compatibility
- Screenshot detection works best on mobile/tablet devices
- Desktop screenshot detection is limited due to OS security
- Test on actual mobile devices, not just browser dev tools
- iOS has very limited screenshot detection - see Limitations tab for details
Browser Support
- Some detection methods may not work in all browsers
- iOS Safari has limited screenshot detection capabilities
- Android Chrome has better detection support
Getting Help
If you continue to experience issues: