* Invision Power Services
* IP.Board v3.3.4
* ACP bulk mail skin file
* Last Updated: $Date: 2012-06-12 10:14:49 -0400 (Tue, 12 Jun 2012) $
*
*
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/company/standards.php#license
* @package IP.Board
* @subpackage Members
* @link http://www.invisionpower.com
* @since 20th February 2002
* @version $Rev: 10914 $
*
*/
class cp_skin_bulkmail
{
/**
* Registry Object Shortcuts
*
* @var $registry
* @var $DB
* @var $settings
* @var $request
* @var $lang
* @var $member
* @var $memberData
* @var $cache
* @var $caches
*/
protected $registry;
protected $DB;
protected $settings;
protected $request;
protected $lang;
protected $member;
protected $memberData;
protected $cache;
protected $caches;
/**
* Constructor
*
* @param object $registry Registry object
* @return @e void
*/
public function __construct( ipsRegistry $registry )
{
$this->registry = $registry;
$this->DB = $this->registry->DB();
$this->settings =& $this->registry->fetchSettings();
$this->request =& $this->registry->fetchRequest();
$this->member = $this->registry->member();
$this->memberData =& $this->registry->member()->fetchMemberData();
$this->cache = $this->registry->cache();
$this->caches =& $this->registry->cache()->fetchCaches();
$this->lang = $this->registry->class_localization;
}
/**
* Bulk mail start
*
* @param array Mail data
* @param int Number of members to send this to
* @return string HTML
*/
public function mailSendStart( $mail, $count=0 ) {
$countmembers = sprintf($this->lang->words['b_countmember'], $count );
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<
{$this->lang->words['bulkmail_notes_tl']}
{$this->lang->words['bulkmail_notes_info']}
{$this->lang->words['b_title']}
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Bulk mail form
*
* @param string Type (add|edit)
* @param array Mail data
* @param string Mail content
* @return string HTML
*/
public function mailForm( $type, $mail, $mail_content ) {
$dd_ltmt = array(
0 => array( 'lt' , $this->lang->words['b_lessthan'] ),
1 => array( 'mt' , $this->lang->words['b_morethan'] )
);
if ( $type == 'add' )
{
$title = $this->lang->words['b_step1'];
$button = $this->lang->words['b_proceed'];
$html_checked = 0;
}
else
{
$title = $this->lang->words['b_editstored'];
$button = $this->lang->words['b_edit'];
//-----------------------------------------
// Unpack more..
//-----------------------------------------
$tmp = unserialize( stripslashes( $mail['mail_opts'] ) );
if ( is_array( $tmp ) and count ( $tmp ) )
{
foreach( $tmp as $k => $v )
{
if ( ! $mail[ $k ] )
{
$mail[ $k ] = $v;
}
}
}
$html_checked = $mail['mail_html_on'];
}
$form = array();
$form['groups'] = '';
$form['mail_subject'] = $this->registry->output->formInput( 'mail_subject', htmlspecialchars( IPSText::stripslashes( $_POST['mail_subject'] ? $_POST['mail_subject'] : $mail['mail_subject'] ), ENT_QUOTES ) );
$form['mail_content'] = $this->registry->output->formTextarea( 'mail_content', $mail_content, 60, 14, '', '', "' style='width: 100%'" ); // Hacky CSS thing, but eh
$form['mail_html'] = $this->registry->output->formCheckbox( 'mail_html_on', $html_checked );
$form['mail_post_ltmt'] = $this->registry->output->formDropdown( 'mail_post_ltmt', $dd_ltmt, $_POST['mail_post_ltml'] ? $_POST['mail_post_ltml'] : $mail['mail_post_ltmt'] );
$form['mail_filter_post'] = $this->registry->output->formSimpleInput( "mail_filter_post", $_POST['mail_filter_post'] ? $_POST['mail_filter_post'] : $mail['mail_filter_post'], 7 );
$form['mail_visit_ltmt'] = $this->registry->output->formDropdown( 'mail_visit_ltmt', $dd_ltmt, $_POST['mail_visit_ltml'] ? $_POST['mail_visit_ltml'] : $mail['mail_visit_ltmt'] );
$form['mail_filter_visit'] = $this->registry->output->formSimpleInput( "mail_filter_visit", $_POST['mail_filter_visit'] ? $_POST['mail_filter_visit'] : $mail['mail_filter_visit'], 7 );
$form['mail_joined_ltmt'] = $this->registry->output->formDropdown( 'mail_joined_ltmt', $dd_ltmt, $_POST['mail_joined_ltml'] ? $_POST['mail_joined_ltml'] : $mail['mail_joined_ltmt'] );
$form['mail_filter_joined'] = $this->registry->output->formSimpleInput( "mail_filter_joined", $_POST['mail_filter_joined'] ? $_POST['mail_filter_joined'] : $mail['mail_filter_joined'], 7 );
foreach( $this->cache->getCache('group_cache') as $g )
{
if ( $g['g_id'] == $this->settings['guest_group'] )
{
continue;
}
$checked = 0;
if ( $mail['mail_groups'] )
{
if ( strstr( ',' . $mail['mail_groups'] . ',', ',' . $g['g_id'] . ',' ) )
{
$checked = 1;
}
}
$form['groups'] .= $this->registry->output->formCheckbox( 'sg_' . $g['g_id'], $checked ) . " {$g['g_title']}
";
}
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<
{$this->lang->words['bulkmail_notes_tl']}
{$this->lang->words['bulkmail_notes_info']}
{$this->lang->words['b_title']}
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* HTML to show inside preview iframe
*
* @param string Content
* @return string HTML
*/
public function mailIframeContent( $content ) {
$IPBHTML = "";
//--starthtml--//
$IPS_DOC_CHAR_SET = IPS_DOC_CHAR_SET;
$IPBHTML .= <<
{$content}
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* HTML to show in popup
*
* @return string HTML
*/
public function mailPopupContent() {
$IPBHTML = "";
//--starthtml--//
$IPS_DOC_CHAR_SET = IPS_DOC_CHAR_SET;
$IPBHTML .= <<
HTML;
//--endhtml--//
return $IPBHTML;
}
/**
* Saved bulk mails overview
*
* @param string Content
* @return string HTML
*/
public function mailOverviewWrapper( $content, $pages ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<
{$this->lang->words['bulkmail_notes_tl']}
{$this->lang->words['bulkmail_notes_info']}
{$this->lang->words['b_title']}
{$this->lang->words['b_stored']}