?
Path : /home/admin/domains/happytokorea.com/public_html_bk/board/libraries/joomla/html/html/ |
Current File : /home/admin/domains/happytokorea.com/public_html_bk/board/libraries/joomla/html/html/email.php |
<?php /** * @version $Id: email.php 14998 2010-02-22 23:32:02Z ian $ * @package Joomla.Framework * @subpackage HTML * @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ defined('JPATH_BASE') or die(); /** * Utility class for cloaking email adresses * * @static * @package Joomla.Framework * @subpackage HTML * @since 1.5 */ class JHTMLEmail { /** * Simple Javascript email Cloaker * * By default replaces an email with a mailto link with email cloacked */ 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; } function _convertEncoding( $text ) { // replace vowels with character encoding $text = str_replace( 'a', 'a', $text ); $text = str_replace( 'e', 'e', $text ); $text = str_replace( 'i', 'i', $text ); $text = str_replace( 'o', 'o', $text ); $text = str_replace( 'u', 'u', $text ); return $text; } }