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
Template:Description:JHTMLEmail/cloak
Syntax[edit]
cloak($mail, $mailto=1, $text='', $email=1, $prefix='mailto:', $suffix='', $attribs='')
Parameter Name | Default Value | Description |
---|---|---|
$mailto | 1 | |
$text | ||
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] ."' + '@';";
$replacement .= "\n addy". $rand ." = addy". $rand ." + '". implode( "' + '.' + '", $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] ."' + '@' + '". implode( "' + '.' + '", @$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 />