API15

Difference between revisions of "JHTMLEmail/cloak"

From Joomla! Documentation

< API15:JHTMLEmail
m (→‎Examples: fxing category)
m (Reverted edits by RochenUser (talk) to last revision by Hutchy68)
(One intermediate revision by one other user not shown)
(No difference)

Revision as of 15:47, 13 May 2013

The "API15" namespace is an archived namespace. This page contains information for a Joomla! version which is no longer supported. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.

Description[edit]

Simple Javascript email Cloaker

[Edit Descripton]

Template:Description:JHTMLEmail/cloak

Syntax[edit]

cloak($mail, $mailto=1, $text='', $email=1, $prefix='mailto:', $suffix='', $attribs='')
Parameter Name Default Value Description
$mail
$mailto 1
$text
$email 1
$prefix 'mailto:'
$suffix
$attribs

Defined in[edit]

libraries/joomla/html/html/email.php

Importing[edit]

jimport( 'joomla.html.html.email' );

Source Body[edit]

function cloak( $mail, $mailto=1, $text='', $email=1, $prefix='mailto:', $suffix='', $attribs='' )
{
        // convert text
        $mail                   = JHTMLEmail::_convertEncoding( $mail );
        // split email by @ symbol
        $mail                   = explode( '@', $mail );
        $mail_parts             = explode( '.', $mail[1] );
        // random number
        $rand                   = rand( 1, 100000 );
// obfuscate prefix
$prefix = JHTMLEmail::_convertEncoding( $prefix );

        $replacement    = "\n <script language='JavaScript' type='text/javascript'>";
        $replacement    .= "\n <!--";
        $replacement    .= "\n var prefix = '$prefix';";
$replacement    .= "\n var suffix = '$suffix';";
$replacement    .= "\n var attribs = '$attribs';";
        $replacement    .= "\n var path = 'hr' + 'ef' + '=';";
        $replacement    .= "\n var addy". $rand ." = '". @$mail[0] ."' + '&#64;';";
        $replacement    .= "\n addy". $rand ." = addy". $rand ." + '". implode( "' + '&#46;' + '", $mail_parts ) ."';";

        if ( $mailto ) {
                // special handling when mail text is different from mail addy
                if ( $text ) {
                        if ( $email ) {
                                // convert text
                                $text                   = JHTMLEmail::_convertEncoding( $text );
                                // split email by @ symbol
                                $text                   = explode( '@', $text );
                                $text_parts             = explode( '.', $text[1] );
                                $replacement    .= "\n var addy_text". $rand ." = '". @$text[0] ."' + '&#64;' + '". implode( "' + '&#46;' + '", @$text_parts ) ."';";
                        } else {
                                $replacement    .= "\n var addy_text". $rand ." = '". $text ."';";
                        }
                        $replacement    .= "\n document.write( '<a ' + path + '\'' + prefix + addy". $rand ." + suffix + '\'' + attribs + '>' );";
                        $replacement    .= "\n document.write( addy_text". $rand ." );";
                        $replacement    .= "\n document.write( '<\/a>' );";
                } else {
                        $replacement    .= "\n document.write( '<a ' + path + '\'' + prefix + addy". $rand ." + suffix + '\'' + attribs + '>' );";
                        $replacement    .= "\n document.write( addy". $rand ." );";
                        $replacement    .= "\n document.write( '<\/a>' );";
                }
        } else {
                $replacement    .= "\n document.write( addy". $rand ." );";
        }
        $replacement    .= "\n //-->";
        $replacement    .= "\n </script> ";

        // XHTML compliance `No Javascript` text handling
        $replacement    .= "<script language='JavaScript' type='text/javascript'>";
        $replacement    .= "\n <!--";
        $replacement    .= "\n document.write( '<span style=\'display: none;\'>' );";
        $replacement    .= "\n //-->";
        $replacement    .= "\n </script>";
        $replacement    .= JText::_('CLOAKING');
        $replacement    .= "\n <script language='JavaScript' type='text/javascript'>";
        $replacement    .= "\n <!--";
        $replacement    .= "\n document.write( '</' );";
        $replacement    .= "\n document.write( 'span>' );";
        $replacement    .= "\n //-->";
        $replacement    .= "\n </script>";

        return $replacement;
}

[Edit See Also] Template:SeeAlso:JHTMLEmail/cloak

Examples[edit]

<CodeExamplesForm />