networkteam / neos-mailobfuscator
A email address and link obfuscation plugin for Neos CMS
Installs: 90 088
Dependents: 0
Suggesters: 0
Security: 0
Stars: 13
Watchers: 10
Forks: 10
Open Issues: 1
Type:neos-plugin
Requires
- php: >=7.1
- guzzlehttp/guzzle: *
- neos/neos: ^3.0 || ^4.0 || ^5.0 || ^7.0 || ^8.0
Requires (Dev)
- phpunit/phpunit: ~9.1
- dev-master
- 3.3.3
- 3.3.2
- 3.3.1
- 3.3.0
- 3.2.1
- 3.2.0
- 3.1.0
- 3.0.0
- 2.4.0
- 2.3.0
- 2.2.2
- v2.2.1
- v2.2.0
- 2.1.0
- 2.0.0
- 1.0.x-dev
- 1.0.3
- 1.0.2
- 1.0.1
- v1.0.0
- dev-fix-matching-newline-charcter
- dev-30-fix-mail-display
- dev-fix-mailto-anchor-parameters
- dev-fix-unit-tests
- dev-bugfix-link-with-attributes
- dev-feature-atomic-fusion
- dev-remove-reserved-keyword-in-namespaces
- dev-ad-global-variable
This package is auto-updated.
Last update: 2024-11-01 11:07:29 UTC
README
In order to make life for spammers more difficult, this package provides an obfuscation of email addresses. The email address is obfuscated by a rot13 like algorithm with random offsets.
When the link is clicked, the email address is unobfuscated by the same algorithm in JavaScript:
<a href="mailto:foo@example.com">foo@example.com</a>
will become
<a href="javascript:linkTo_UnCryptMailto('obfuscatedEmail', -randomNumber)">foo (at) example.com</a>
The replacement is done in 2 steps, thus it is possible to have a link label that is different from the email address:
<a href="mailto:foo@example.com">Contact us</a>
will become
<a href="javascript:linkTo_UnCryptMailto('obfuscatedEmail', -randomNumber)">Contact us</a>
Installation
Install the composer package in your site package or distribution:
$ composer require networkteam/neos-mailobfuscator
There is no need for configuration, as a Fusion processor is attached to body
of Neos.Neos:Page
.
That means, that the complete content of body tag is obfuscated.
Compatibility
See the following table for the correct plugin version to choose:
Configuration
Obfuscation can be disabled for specific node types by unsetting the processor:
prototype(Neos.Neos:Page) {
@process.networkteamNeosMailObfuscator >
}
The JavaScript include can be disabled for custom minification:
prototype(Neos.Neos:Page) {
networkteamNeosMailObfuscator >
}
The replacement string for the at-sign (@) can be configured. It will be inserted as HTML without escaping, so it's possible to replace it with something like an image:
# Settings.yaml Networkteam: Neos: MailObfuscator: atCharReplacementString: '<img src="https://example.com/at-icon.png" alt="at" />'
EEL Helpers
There are Eel helpers available to use MailObfuscator functions in Fusion
// Convert @ Character
${Networkteam.Neos.MailObfuscator.convertAtChar('foo@example.com')}
// returns: foo (at) example.com
// Convert Mail to Href
${Networkteam.Neos.MailObfuscator.convertMailto2Href('foo@example.com')}
// returns javascript:linkTo_UnCryptMailto('obfuscatedEmail', -randomNumber)
Acknowledgments
Original email address obfuscation code by TYPO3 CMS.
Development sponsored by networkteam GmbH - Neos Agentur.
License
Licensed under GPLv2+, see LICENSE.