Version 3.2.3
This commit is contained in:
1 parent
ae5c01cc78
commit
78706903a2
2641 files changed
+228363
-201264
No files matched your search
@@ -2,17 +2,17 @@
|
||||
/**
|
||||
* <pre>
|
||||
* Invision Power Services
|
||||
* IP.Board v3.1.4
|
||||
* IP.Board v3.2.3
|
||||
* API: Core
|
||||
* Last Updated: $Date: 2010-11-12 13:07:33 -0500 (Fri, 12 Nov 2010) $
|
||||
* Last Updated: $Date: 2011-10-03 11:31:57 -0400 (Mon, 03 Oct 2011) $
|
||||
* </pre>
|
||||
*
|
||||
* @author $Author: ips_terabyte $
|
||||
* @author $Author: mark $
|
||||
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
|
||||
* @license http://www.invisionpower.com/community/board/license.html
|
||||
* @license This is NULLED!
|
||||
* @package IP.Board
|
||||
* @link http://www.invisionpower.com
|
||||
* @version $Rev: 7174 $
|
||||
* @link http://hatynka.in
|
||||
* @version $Rev: 9573 $
|
||||
*/
|
||||
|
||||
if ( ! defined( 'IN_IPB' ) )
|
||||
@@ -58,6 +58,13 @@ class hanEmail
|
||||
*/
|
||||
public $to;
|
||||
|
||||
/**
|
||||
* Email cc's
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public $cc = array();
|
||||
|
||||
/**
|
||||
* Email bcc's
|
||||
*
|
||||
@@ -79,21 +86,33 @@ class hanEmail
|
||||
*/
|
||||
public $message;
|
||||
|
||||
/**
|
||||
* HTML Mode
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
public $html_email = FALSE;
|
||||
|
||||
/**
|
||||
* Temp word swapping array
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private $_words;
|
||||
protected $_words;
|
||||
|
||||
/**
|
||||
* Headers to pass to email lib
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private $temp_headers = array();
|
||||
protected $temp_headers = array();
|
||||
|
||||
private $_attachments = array();
|
||||
protected $_attachments = array();
|
||||
protected $editor;
|
||||
protected $plainTextTemplate = '';
|
||||
protected $htmlTemplate = '';
|
||||
protected $htmlWrapper = '';
|
||||
protected $_loadedHtmlTemplateClass = '';
|
||||
|
||||
/**#@+
|
||||
* Registry Object Shortcuts
|
||||
@@ -113,7 +132,7 @@ class hanEmail
|
||||
* Construct
|
||||
*
|
||||
* @param object ipsRegistry reference
|
||||
* @return void
|
||||
* @return @e void
|
||||
*/
|
||||
public function __construct( ipsRegistry $registry )
|
||||
{
|
||||
@@ -125,42 +144,55 @@ class hanEmail
|
||||
$this->lang = $this->registry->getClass('class_localization');
|
||||
$this->member = $this->registry->member();
|
||||
$this->memberData =& $this->registry->member()->fetchMemberData();
|
||||
|
||||
/* Set up default handler */
|
||||
$this->setHtmlEmail( $this->settings['email_use_html'] );
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets whether or not this is a HTML email
|
||||
* @param boolean duh $boolean
|
||||
*/
|
||||
public function setHtmlEmail( $boolean=null )
|
||||
{
|
||||
$this->html_email = ( $boolean ) ? true : false;
|
||||
|
||||
if ( is_object( $this->emailer ) )
|
||||
{
|
||||
$this->emailer->setHtmlEmail( $boolean );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Init method (setup stuff)
|
||||
*
|
||||
* @return void
|
||||
* @return @e void
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
$this->header = $this->settings['email_header'] ? $this->settings['email_header'] : '';
|
||||
$this->footer = $this->settings['email_footer'] ? $this->settings['email_footer'] : '';
|
||||
|
||||
|
||||
$classToLoad = IPSLib::loadLibrary( IPS_KERNEL_PATH . 'classEmail.php', 'classEmail' );
|
||||
|
||||
$this->emailer = new $classToLoad(
|
||||
array(
|
||||
'debug' => $this->settings['fake_mail'] ? $this->settings['fake_mail'] : '0',
|
||||
'debug_path' => DOC_IPS_ROOT_PATH . '_mail',
|
||||
'smtp_host' => $this->settings['smtp_host'] ? $this->settings['smtp_host'] : 'localhost',
|
||||
'smtp_port' => intval($this->settings['smtp_port']) ? intval($this->settings['smtp_port']) : 25,
|
||||
'smtp_user' => $this->settings['smtp_user'],
|
||||
'smtp_pass' => $this->settings['smtp_pass'],
|
||||
'smtp_helo' => $this->settings['smtp_helo'],
|
||||
'method' => $this->settings['mail_method'],
|
||||
'wrap_brackets' => $this->settings['mail_wrap_brackets'],
|
||||
'extra_opts' => $this->settings['php_mail_extra'],
|
||||
'charset' => IPS_DOC_CHAR_SET,
|
||||
'html' => intval($this->settings['html_email']),
|
||||
)
|
||||
);
|
||||
$this->emailer = new $classToLoad( array( 'debug' => $this->settings['fake_mail'] ? $this->settings['fake_mail'] : '0',
|
||||
'debug_path' => DOC_IPS_ROOT_PATH . '_mail',
|
||||
'smtp_host' => $this->settings['smtp_host'] ? $this->settings['smtp_host'] : 'localhost',
|
||||
'smtp_port' => intval($this->settings['smtp_port']) ? intval($this->settings['smtp_port']) : 25,
|
||||
'smtp_user' => $this->settings['smtp_user'],
|
||||
'smtp_pass' => $this->settings['smtp_pass'],
|
||||
'smtp_helo' => $this->settings['smtp_helo'],
|
||||
'method' => $this->settings['mail_method'],
|
||||
'wrap_brackets' => $this->settings['mail_wrap_brackets'],
|
||||
'extra_opts' => $this->settings['php_mail_extra'],
|
||||
'charset' => IPS_DOC_CHAR_SET,
|
||||
'html' => $this->html_email ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear out any temporary headers
|
||||
*
|
||||
* @return void
|
||||
* @return @e void
|
||||
*/
|
||||
public function clearHeaders()
|
||||
{
|
||||
@@ -172,7 +204,7 @@ class hanEmail
|
||||
*
|
||||
* @param string Header key
|
||||
* @param string Header value
|
||||
* @return void
|
||||
* @return @e void
|
||||
*/
|
||||
public function setHeader( $key, $value )
|
||||
{
|
||||
@@ -185,11 +217,14 @@ class hanEmail
|
||||
* @return boolean Email sent successfully
|
||||
*/
|
||||
public function sendMail()
|
||||
{
|
||||
//$this->emailer->clearEmail();
|
||||
//$this->emailer->clearError();
|
||||
{
|
||||
$this->init();
|
||||
|
||||
if( $this->emailer->error )
|
||||
{
|
||||
return $this->fatalError( $this->emailer->error_msg, $this->emailer->error_help );
|
||||
}
|
||||
|
||||
/* Add attachments if any */
|
||||
if ( count( $this->_attachments ) )
|
||||
{
|
||||
@@ -204,6 +239,10 @@ class hanEmail
|
||||
$this->emailer->setFrom( $this->from ? $this->from : $this->settings['email_out'], $this->settings['board_name'] );
|
||||
$this->emailer->setTo( $this->to );
|
||||
|
||||
foreach( $this->cc as $cc )
|
||||
{
|
||||
$this->emailer->addCC( $cc );
|
||||
}
|
||||
foreach( $this->bcc as $bcc )
|
||||
{
|
||||
$this->emailer->addBCC( $bcc );
|
||||
@@ -224,9 +263,33 @@ class hanEmail
|
||||
//-----------------------------------------
|
||||
|
||||
$this->emailer->setSubject( $this->_cleanSubject($this->subject) );
|
||||
$this->emailer->setBody( $this->message );
|
||||
|
||||
/* If we're sending a HTML email, we need to manually send the plain text and HTML versions */
|
||||
if ( $this->html_email )
|
||||
{
|
||||
/* Dynamically replace subject in template */
|
||||
$this->htmlTemplate = str_ireplace( array('<#subject#>'), IPSText::utf8ToEntities( $this->_cleanSubject($this->subject) ), $this->htmlTemplate );
|
||||
$this->emailer->setPlainTextContent( $this->plainTextTemplate );
|
||||
$this->emailer->setHtmlContent( $this->htmlTemplate );
|
||||
}
|
||||
else if ( $this->message && ! $this->plainTextTemplate )
|
||||
{
|
||||
/* Older methods pass message directly */
|
||||
$this->emailer->setBody( $this->message );
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->emailer->setBody( $this->plainTextTemplate );
|
||||
}
|
||||
|
||||
$this->emailer->sendMail();
|
||||
|
||||
/* Clear out stuffs */
|
||||
$this->clearContent();
|
||||
|
||||
// Unset HTML setting to remain backwards compatibility
|
||||
//$this->html_email = FALSE;
|
||||
|
||||
if( $this->emailer->error )
|
||||
{
|
||||
return $this->fatalError( $this->emailer->error_msg, $this->emailer->error_help );
|
||||
@@ -234,7 +297,69 @@ class hanEmail
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the plain text template
|
||||
* @param string $string
|
||||
*/
|
||||
public function setPlainTextTemplate( $string )
|
||||
{
|
||||
/* Reset message too */
|
||||
$this->message = '';
|
||||
|
||||
$this->plainTextTemplate = $string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the HTML template
|
||||
* @param string $string
|
||||
*/
|
||||
public function setHtmlTemplate( $string )
|
||||
{
|
||||
/* Reset message too */
|
||||
$this->message = '';
|
||||
|
||||
$this->htmlTemplate = $string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return plain text content
|
||||
* @return string
|
||||
*/
|
||||
public function getPlainTextContent()
|
||||
{
|
||||
return $this->plainTextTemplate;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return HTML content
|
||||
* @return string
|
||||
*/
|
||||
public function getHtmlContent()
|
||||
{
|
||||
return $this->htmlTemplate;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes all current stored messages, templates, etc.
|
||||
*/
|
||||
public function clearContent()
|
||||
{
|
||||
$this->setHtmlTemplate('');
|
||||
$this->setPlainTextTemplate('');
|
||||
$this->message = '';
|
||||
$this->template = '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Send custom html wrapper - HTML wrapper with <#content#> tag where content will be
|
||||
* @param string $string
|
||||
*/
|
||||
public function setHtmlWrapper( $string )
|
||||
{
|
||||
$this->htmlWrapper = $string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve an email template
|
||||
*
|
||||
@@ -242,10 +367,13 @@ class hanEmail
|
||||
* @param string Language to use
|
||||
* @param string Language file to load
|
||||
* @param string Application of language file
|
||||
* @return void
|
||||
* @return @e void
|
||||
*/
|
||||
public function getTemplate( $name, $language="", $lang_file='public_email_content', $app='core' )
|
||||
{
|
||||
/* Reset $this->message as legacy methods use $this->message when sending notifications, etc */
|
||||
$this->clearContent();
|
||||
|
||||
//-----------------------------------------
|
||||
// Check..
|
||||
//-----------------------------------------
|
||||
@@ -305,7 +433,10 @@ class hanEmail
|
||||
// Return
|
||||
//-----------------------------------------
|
||||
|
||||
$this->template = stripslashes($this->lang->words['email_header']) . stripslashes($this->lang->words[ $name ]) . stripslashes($this->lang->words['email_footer']);
|
||||
$this->template = stripslashes($this->lang->words[ $name ]) . stripslashes($this->lang->words['email_footer']);
|
||||
|
||||
/* Returns it if called via setPlainTextTemplate */
|
||||
return $this->template;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -313,51 +444,180 @@ class hanEmail
|
||||
*
|
||||
* @param array Replacement keys to values
|
||||
* @param bool Do not "clean"
|
||||
* @return void
|
||||
* @return @e void
|
||||
*/
|
||||
public function buildMessage( $words, $noClean=false )
|
||||
public function buildMessage( $words, $noClean=false, $rawHtml=FALSE )
|
||||
{
|
||||
if( $this->template == "" )
|
||||
/* Init */
|
||||
$ptWords = array();
|
||||
$htmlWords = array();
|
||||
|
||||
/* Try this first */
|
||||
if ( ! $this->plainTextTemplate && ! $this->htmlTemplate && $this->message )
|
||||
{
|
||||
$this->setPlainTextTemplate( $this->message );
|
||||
}
|
||||
|
||||
/* need to converge some stuff here */
|
||||
if ( ! $this->plainTextTemplate )
|
||||
{
|
||||
/* Sniff, sniff */
|
||||
if ( stristr( $this->template, '<br' ) )
|
||||
{
|
||||
$this->setHtmlTemplate( $this->template );
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->setPlainTextTemplate( $this->template );
|
||||
}
|
||||
}
|
||||
|
||||
/* HTML enabled but no specific template: Auto convert */
|
||||
if ( $this->html_email && ! $this->htmlTemplate )
|
||||
{
|
||||
/* It will be dynamically updated at the end */
|
||||
$this->setHtmlTemplate( $this->plainTextTemplate );
|
||||
}
|
||||
|
||||
/* HTML email with HTML template but no plain text version */
|
||||
if ( $this->htmlTemplate && ! $this->plainTextTemplate )
|
||||
{
|
||||
$msg = $this->htmlTemplate;
|
||||
$msg = preg_replace( '/<#(.+?)#>/', '{{{-\1-}}}', $msg );
|
||||
$msg = str_replace( "<br />", "\n", $msg );
|
||||
$msg = str_replace( "<br>" , "\n", $msg );
|
||||
$msg = strip_tags( $msg );
|
||||
|
||||
$msg = html_entity_decode( $msg, ENT_QUOTES );
|
||||
$msg = str_replace( '\', '\\', $msg );
|
||||
$msg = str_replace( '$', '$', $msg );
|
||||
$msg = preg_replace( '/\{\{\{(.+?)\}\}\}/', '<#\1#>', $msg );
|
||||
|
||||
$this->setPlainTextTemplate( $msg );
|
||||
}
|
||||
|
||||
if ( $this->plainTextTemplate && ! $this->template && ! $this->htmlTemplate )
|
||||
{
|
||||
$this->error++;
|
||||
$this->fatalError( "Could not build the email message, no template assigned", "Make sure a template is assigned first." );
|
||||
}
|
||||
|
||||
$this->message = $this->template;
|
||||
|
||||
if( $noClean )
|
||||
{
|
||||
$this->message = str_replace( "\n", "<br />", str_replace( "\r", "", $this->message ) );
|
||||
}
|
||||
|
||||
//-----------------------------------------
|
||||
// Add some default words
|
||||
//-----------------------------------------
|
||||
/* Bit more clean up */
|
||||
$this->plainTextTemplate = str_replace( array( "\r\n", "\r", "\n" ), "\n", $this->plainTextTemplate );
|
||||
$this->htmlTemplate = str_replace( array( "\r\n", "\r", "\n" ), "\n", $this->htmlTemplate );
|
||||
|
||||
/* Add some default words */
|
||||
$words['BOARD_ADDRESS'] = $this->settings['board_url'] . '/index.' . $this->settings['php_ext'];
|
||||
$words['WEB_ADDRESS'] = $this->settings['home_url'];
|
||||
$words['BOARD_NAME'] = $this->settings['board_name'];
|
||||
$words['SIGNATURE'] = $this->settings['signature'] ? $this->settings['signature'] : '';
|
||||
|
||||
//-----------------------------------------
|
||||
// Swap the words
|
||||
// 10.7.08 - Added replacements in subject
|
||||
//-----------------------------------------
|
||||
|
||||
if( !$noClean )
|
||||
/* Swap the words: 10.7.08 - Added replacements in subject */
|
||||
foreach( $words as $k => $v )
|
||||
{
|
||||
foreach( $words as $k => $v )
|
||||
if ( ! $noClean )
|
||||
{
|
||||
$words[ $k ] = $this->cleanMessage( $v );
|
||||
$ptWords[ $k ] = $this->cleanMessage( $v );
|
||||
}
|
||||
|
||||
$htmlWords[ $k ] = $v;
|
||||
}
|
||||
|
||||
$this->_words = $words;
|
||||
$this->_words = $ptWords;
|
||||
$this->plainTextTemplate = preg_replace_callback( "/<#(.+?)#>/", array( &$this, '_swapWords' ), $this->plainTextTemplate );
|
||||
|
||||
$this->message = preg_replace_callback( "/<#(.+?)#>/", array( &$this, '_swapWords' ), $this->message );
|
||||
$this->subject = preg_replace_callback( "/<#(.+?)#>/", array( &$this, '_swapWords' ), $this->subject );
|
||||
$this->_words = $htmlWords;
|
||||
$this->htmlTemplate = preg_replace_callback( "/<#(.+?)#>/", array( &$this, '_swapWords' ), str_replace( array( '<#', '#>' ), array( '<#', '#>' ), $this->htmlTemplate ) );
|
||||
$this->_words = array();
|
||||
|
||||
$this->subject = preg_replace_callback( "/<#(.+?)#>/", array( &$this, '_swapWords' ), $this->subject );
|
||||
|
||||
$this->_words = array();
|
||||
/* Final touches */
|
||||
$this->htmlTemplate = $this->applyHtmlWrapper( $this->subject, ( $rawHtml ? $this->htmlTemplate : $this->convertTextEmailToHtmlEmail( $this->htmlTemplate ) ) );
|
||||
$this->htmlTemplate = preg_replace( '#<!--hook\.([^\>]+?)-->#', '', $this->htmlTemplate );
|
||||
$this->htmlTemplate = $this->registry->getClass('output')->parseIPSTags( $this->htmlTemplate );
|
||||
$this->plainTextTemplate = stripslashes($this->lang->words['email_header']) . $this->plainTextTemplate . stripslashes($this->lang->words['email_footer']);
|
||||
|
||||
|
||||
/* Some older apps use $this->message, so give them plaintext */
|
||||
$this->message = $this->plainTextTemplate;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert text email to HTML
|
||||
* Pretty nifty method name too.
|
||||
*
|
||||
* @param string Plain text email ready to go
|
||||
* @return string We're all HTML'd up in here.
|
||||
*/
|
||||
public function convertTextEmailToHtmlEmail( $content )
|
||||
{
|
||||
if ( strstr( $content, '[' ) OR strstr( $content, "\n" ) )
|
||||
{
|
||||
/* It's probably HITMAL! */
|
||||
if ( ! is_object( $this->editor ) )
|
||||
{
|
||||
$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/editor/composite.php', 'classes_editor_composite' );
|
||||
$this->editor = new $classToLoad();
|
||||
|
||||
/* Reset HTML flags */
|
||||
$this->editor->setAllowHtml(false);
|
||||
}
|
||||
|
||||
IPSText::getTextClass('bbcode')->parse_html = 0;
|
||||
|
||||
$content = IPSText::getTextClass('bbcode')->preDisplayParse( $this->editor->switchContent( $content, false ) );
|
||||
|
||||
/* Switch content makes & & so we need to switch this back */
|
||||
$content = str_replace( '&', '&', $content );
|
||||
|
||||
/* Other stuffs */
|
||||
$content = preg_replace( '#(\-{10,120})#', '<hr>', $content );
|
||||
|
||||
}
|
||||
|
||||
return $content;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add <html> tags and such if it doesn't have any already
|
||||
*
|
||||
* @param string HTML email
|
||||
* @return string VERY HTML email
|
||||
*/
|
||||
public function applyHtmlWrapper( $subject, $content )
|
||||
{
|
||||
/* Due to some legacy methods with mail queue, buildMessage can be called twice
|
||||
* for good reason, but it can then re-apply the wrapper. So we add a unique comment
|
||||
* and then check for this.
|
||||
*/
|
||||
if ( ! stristr( $content, '<!--::ipb.wrapper.added::-->' ) )
|
||||
{
|
||||
$content = '<!--::ipb.wrapper.added::-->' . IPSText::getTextClass('bbcode')->xssHtmlClean( $content );
|
||||
|
||||
/* Inline wrapper */
|
||||
if ( $this->htmlWrapper )
|
||||
{
|
||||
return str_ireplace( '<#content#>', $content, $this->htmlWrapper );
|
||||
}
|
||||
|
||||
/* Attempt to load external wrapper */
|
||||
if ( file_exists( IPS_CACHE_PATH . 'cache/skin_cache/emailWrapper.php' ) )
|
||||
{
|
||||
if ( ! is_object( $this->_loadedHtmlTemplateClass ) )
|
||||
{
|
||||
$classToLoad = IPSLib::loadLibrary( IPS_CACHE_PATH . 'cache/skin_cache/emailWrapper.php', 'ipsEmailWrapper' );
|
||||
$this->_loadedHtmlTemplateClass = new $classToLoad();
|
||||
}
|
||||
|
||||
return $this->_loadedHtmlTemplateClass->getTemplate( $content );
|
||||
}
|
||||
|
||||
/* Still here? Fail safe */
|
||||
return $this->parseWithDefaultHtmlWrapper( $content );
|
||||
}
|
||||
|
||||
return $content;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -366,7 +626,7 @@ class hanEmail
|
||||
* @param string Key
|
||||
* @return string Replaced variable
|
||||
*/
|
||||
private function _swapWords( $matches )
|
||||
protected function _swapWords( $matches )
|
||||
{
|
||||
return $this->_words[ $matches[1] ];
|
||||
}
|
||||
@@ -377,7 +637,7 @@ class hanEmail
|
||||
* @param string In text
|
||||
* @return string Out text
|
||||
*/
|
||||
private function _cleanSubject( $subject )
|
||||
protected function _cleanSubject( $subject )
|
||||
{
|
||||
$subject = strip_tags( $subject );
|
||||
|
||||
@@ -392,6 +652,7 @@ class hanEmail
|
||||
$subject = str_replace( "]" , "]" , $subject );
|
||||
$subject = str_replace( "@", '@' , $subject );
|
||||
$subject = str_replace( " " , ' ', $subject );
|
||||
$subject = str_replace( "&" , '&', $subject );
|
||||
|
||||
return $subject;
|
||||
}
|
||||
@@ -404,7 +665,7 @@ class hanEmail
|
||||
*/
|
||||
public function cleanMessage( $message = "" )
|
||||
{
|
||||
$message = preg_replace( '#\[quote.*\](.+?)\[/quote\]#s', "<br /><br />------------ QUOTE ----------<br />\\1<br />-----------------------------<br /><br />" , $message );
|
||||
$message = preg_replace( '#\[quote(?:[^\]]+?)?\](.+?)\[/quote\]#s', "<br /><br />------------ QUOTE ----------<br />\\1<br />-----------------------------<br /><br />" , $message );
|
||||
$message = preg_replace_callback( '#\[url=(.+?)\](.+?)\[/url\]#', array( $this, "_formatUrl" ), $message );
|
||||
|
||||
|
||||
@@ -412,7 +673,7 @@ class hanEmail
|
||||
// Unconvert smilies 'cos at this point they are img tags
|
||||
//-----------------------------------------
|
||||
|
||||
$message = IPSText::getTextClass('bbcode')->unconvertSmilies( $message );
|
||||
$message = IPSText::unconvertSmilies( $message );
|
||||
|
||||
//-----------------------------------------
|
||||
// We may want to adjust this later, but for
|
||||
@@ -424,9 +685,8 @@ class hanEmail
|
||||
IPSText::getTextClass( 'bbcode' )->parse_html = 0;
|
||||
IPSText::getTextClass( 'bbcode' )->parse_nl2br = 1;
|
||||
IPSText::getTextClass( 'bbcode' )->parse_bbcode = 0;
|
||||
IPSText::getTextClass( 'bbcode' )->parse_wordwrap = -1;
|
||||
|
||||
$message = IPSText::getTextClass('bbcode')->stripAllTags( $message, true, false );
|
||||
$message = IPSText::getTextClass('bbcode')->stripAllTags( $message, true );
|
||||
|
||||
//-----------------------------------------
|
||||
// Bear with me...
|
||||
@@ -481,7 +741,7 @@ class hanEmail
|
||||
* @param string File data
|
||||
* @param string File name
|
||||
* @param string File type (MIME)
|
||||
* @return void
|
||||
* @return @e void
|
||||
*/
|
||||
public function addAttachment( $data="", $name="", $ctype='application/octet-stream' )
|
||||
{
|
||||
@@ -495,7 +755,7 @@ class hanEmail
|
||||
* @param string Help key (deprecated)
|
||||
* @return bool
|
||||
*/
|
||||
private function fatalError( $msg, $help="" )
|
||||
protected function fatalError( $msg, $help="" )
|
||||
{
|
||||
$this->DB->insert( 'mail_error_logs',
|
||||
array(
|
||||
@@ -511,5 +771,40 @@ class hanEmail
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Default wrapper for HTML emails - edit the one in skin_global_other
|
||||
*
|
||||
* @param string HTML content
|
||||
* @return string HTML email done
|
||||
*/
|
||||
protected function parseWithDefaultHtmlWrapper( $content )
|
||||
{
|
||||
$doc =IPS_DOC_CHAR_SET;
|
||||
|
||||
$email = <<<HTML
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset={$doc}" http-equiv="Content-Type">
|
||||
<title><#subject#></title>
|
||||
<style type="text/css">
|
||||
* {
|
||||
font-family: Arial;
|
||||
font-size: 14px;
|
||||
color: #000;
|
||||
background: #fff;
|
||||
line-height: 140%;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
{$content}
|
||||
</body>
|
||||
</head>
|
||||
</html>
|
||||
HTML;
|
||||
|
||||
return $email;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user