четверг, 25 августа 2011 г.

Скрытие адресов электронной почты (email cloaking plugin) на статических страницах сайта под управлением CMS Joomla

Задача

Защита почтовых ссылок вида

<a href='mailto:mailbox@mailserver.com'>почта</a>
на статических страницах (например, "Контакты") сайта под управлением Joomla от сканирования спам-роботами.

Стандартное решение

В Joomla присутствует стандартный плагин "Скрытие электронной почты" ("email cloaking plugin"). Он автоматически преобразует email ссылки в javascript код.
В моем случае (Joomla 1.6.6 и Joomla 1.7.0, браузеры IE8, Firefox 4, 5, 6, Google Chrome 13) преобразование производилось с ошибкой: при клике на ссылку производился запуск почтового клиента, но вместо почтового адреса вида mailbox@mailserver.com в поле адресата подставлялся код

('span>'); //--> </script>
Модифицировать плагин Joomla "Скрытие электронной почты" я не стал.

Моё решение

Для решения задачи я использовал
сторонний модуль Mod HTML, который позволяет публиковать javascript код в любой позиции шаблона, и утилиту Blackman's E-mail encoder, с помощью которой я закодировал email адрес кодом javascript.

Содержимое плагина Mod HTML выводится в скрытую позицию сайта, а в контент вставляется ссылка на эту скрытую позицию сайта. Настройка Joomla для
вывода содержимого модуля в позиции контента производится с помощью стандартного модуля "Контент - Загрузка модулей".

Плагин Mod HTML настраивается на вывод закодированного с помощью javascript почтового адреса в позицию с именем module_name (Панель управления Joomla -> Менеджер модулей -> Mod HTML). Сама позиция module_name не должна присутствовать в активном шаблоне сайта.
В тексте, где необходим вывод содержимого модуля Mod HTML, вставляется конструкция

{loadposition module_name}
loadposition - вызов модуля "Контент - Загрузка модулей";
module_name - позиция, в которую выводится содержимое модуля.

Результат

Данным способом можно закодировать от сканирования спам-роботами почтовые адреса на статических страницах сайта под управлением CMS Joomla.

Комментариев нет:

Отправить комментарий