Drupal Mask Адреса электронной почты и заменить на изображение - PullRequest
1 голос
/ 11 сентября 2010

Я создал свой собственный бизнес-каталог с помощью CCK, но теперь мне нужно замаскировать адреса электронной почты, чтобы они не читались спам-ботами.Мне также нужно скрыть отображение адреса, заменив его изображением.

Существуют ли какие-либо модули, способные сделать это?Или кто-нибудь может предоставить какой-нибудь код или примеры или предложить какие-либо идеи.

Любая помощь очень ценится.

Ответы [ 4 ]

5 голосов
/ 11 сентября 2010

Если это не обязательно изображения, вы можете использовать модуль SpamSpan , он создает адрес, такой как example [at] example [dot] com, который заменяется реальным адресом на javascript.

Изображения раздражают, так как вы должны ввести адрес самостоятельно, а не просто щелкнуть по нему. Запутывание javascript теоретически можно победить, но, скорее всего, боты не беспокоятся.

2 голосов
/ 11 сентября 2010

Спасибо всем за ваш вклад.

Я решил пойти с Fabian - проспектом Spamspan, но сделал некоторые изменения, чтобы я мог также заменить изображение (это было просто причиной пользовательского интерфейса).

Итак, я установил модуль Drupal SpamSpan - затем я добавил этот кусок кода в мой node.tpl.php

<?php        
     if ( $node->type == 'directory' ) {
        // Has this page got a main image?
        $emailAdd = $node->field_email[0]['value'];

        if (strlen($emailAdd) > 0)
        {
            $arrEmail = explode("@", $emailAdd);

            $emailAdd = '<span class="spamspan">
            <span class="u">'.$arrEmail[0].'</span>
            [at]
            <span class="d">' . str_replace(".","[dot]",$arrEmail[1] ) . '</span></span>';

            print $emailAdd;
        }
      }
?>

Затем в spamspan.compressed.js я добавил функцию невозможности отображения изображения, заменив функцию .html на .html('<img src="' + Drupal.settings.basePath + 'themes/zen/zen-internals/images/btnContactBus.gif">')

.

Надеюсь, это поможет кому-то еще - и еще раз спасибо за то, что вы, ребята, помогаете мне.

Шейн

2 голосов
/ 11 сентября 2010

Использование GD :

$img = imagecreate( 200, 80 );
$background = imagecolorallocate( $img, 0, 0, 255 );
$color = imagecolorallocate( $img, 255, 255, 0 );
imagestring( $img, 4, 30, 25, "myemailAddress@domain.com",  $color );

header( "Content-type: image/png" );
imagepng( $img );
0 голосов
/ 11 сентября 2010

Если вы делаете это (адреса на рисунках), пожалуйста, используйте не очень распространенный шрифт, многие скребки используют OCR (распознавание текста) и ищите адреса электронной почты на рисунках.

Другим способом блокировки скребков является использование 2 изображений, накладываемых друг на друга, сначала с 1-м, 3-м, 5-м ... символами, а второй - с остальными. Таким образом, у вас не будет одного изображения с полным адресом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...