HomeUnityBlogs
 
 
mrpowless

Delete mail from outbox 6.1

replace one function to get this to work

open mail.php and replace function:

function PageCodeOutbox()
{
global $memberID;
global $site;
global $tmpl;
global $date_format;

if( $_REQUEST['do_delete'] or $_REQUEST['do_mark_new'] or $_REQUEST['do_mark_old'] )
{
if( $_REQUEST['do_delete'] )
$sqlDoQuery = "DELETE FROM `Messages` WHERE";


if( $aMsgs = $_POST['m'] and is_array( $aMsgs ) and !empty( $aMsgs ) )
{
foreach( $aMsgs as $msgID => $on )
{
$msgID = (int)$msgID;
if( !$msgID or $on != 'on' )
continue;

db_res( "$sqlDoQuery `ID`=$msgID AND `Sender` = $memberID" );
}
}
}
//echoDbg( $_POST );



$query = "
SELECT
`Messages`.`ID`,
UNIX_TIMESTAMP( `Date` ) AS `timestamp`,
DATE_FORMAT(`Date`, '$date_format') AS `Date`,
`Recipient`,
`Profiles`.`NickName` AS `SenderNickName`,
`Subject`,
`New`
FROM `Messages`
LEFT JOIN `Profiles` ON
`Profiles`.`ID` = `Recipient`
WHERE `Sender` = $memberID
ORDER BY `Date` DESC
";

$rMsgs = db_res( $query );

if( !mysql_num_rows( $rMsgs ) )
return '<div class="no_result"><div>'._t( "_No messages in Outbox" ).'</div></div>';


// --- get template and replace headers ---
$aReplace = array();

$aReplace['mailbox_header_img'] = '<img src="'.getTemplateIcon( 'inbox.gif' ) .'" class="mailbox_header_img" />';
//$aReplace['summary'] = _t(
$aReplace['flag'] = _t( '_Flag' );
$aReplace['from'] = _t( '_From' );
$aReplace['date'] = _t( '_Date' );
$aReplace['subject'] = _t( '_Subject' );
$aReplace['click_to_sort'] = _t( '_Click to sort' );

$aReplace['actions_l'] = _t( "_Selected messages" ) .':';
$aReplace['actions'] = '
<input type="submit" class="mailbox_submit" name="do_delete" value="'._t('_Delete').'" onclick="return confirm(\''._t('_are you sure?').'\');" />
';

$ret = file_get_contents(BX_DIRECTORY_PATH_ROOT . "templates/tmpl_{$tmpl}/mail_box.html");
foreach( $aReplace as $key => $val )
$ret = str_replace( "__{$key}__", $val, $ret );

$aMyTmpl = preg_split( "/\{\/?InsertRows\}/", $ret );
$tmplRow = $aMyTmpl[1];
$ret = "{$aMyTmpl[0]}{InsertRows /}{$aMyTmpl[2]}";

$InsertRows = '';
$tr_class = 'odd';
while( $aMsg = mysql_fetch_assoc( $rMsgs ) )
{
$sSubject = process_line_output( html2txt( $aMsg['Subject'] ));

$aReplace = array();

$aReplace['tr_class'] = $tr_class;
$aReplace['new_add'] = $aMsg['New'] ? 'new' : '';

$aReplace['ID'] = $aMsg['ID'];
$aReplace['CheckBox'] = '<input type="checkbox" class="td_mailbox_checkbox" id="sel_msg_'.$aMsg['ID'].'" name="m['.$aMsg['ID'].']" value="on" />';
$aReplace['Flag'] = '<img class="mailbox_flag_img" src="'.getTemplateIcon( $aMsg['New'] ? 'not_readed.gif' : 'readed.gif' ).'" title="'._t( $aMsg['New'] ? '_New Message' : '_Readed' ).'" />';
$aReplace['From'] = '<center><div style="width:45px;">' . get_member_icon($aMsg['Sender']) . "<div class=\"clear_both\"></div><!--{$aMsg['SenderNickName']}--> <a href=\"".getProfileLink($aMsg['Sender'])."\">{$aMsg['SenderNickName']}</a>" . '</center>';
$aReplace['Date'] = "<!--{$aMsg['timestamp']}--> {$aMsg['Date']}";
$aReplace['Subject'] = "<!--$sSubject--> <a href=\"{$site['url']}messages_outbox.php?message={$aMsg['ID']}\">$sSubject</a>";


$sInsertRow = $tmplRow;
foreach( $aReplace as $key => $val )
$sInsertRow = str_replace( "{{$key}}", $val, $sInsertRow );

$sInsertRows .= $sInsertRow;
$tr_class = ( $tr_class == 'odd' ? 'even' : 'odd' );
}

$ret = str_replace( "{InsertRows /}", $sInsertRows, $ret );

$ret =
'<form name="mailbox_form" action="'.$_SERVER['PHP_SELF'].'?mode=outbox" method="post">'.$ret.'</form>';

return $ret;
}

bad
8
good
 
 

Comments

saigo
saigo(positive) 86 days agocomment permalink
 
nice!! thanks
 
bad
1
good
 
View 1 replies to this comment
 
MichelSwiss
MichelSwiss 86 days agocomment permalink
 
Thank you mrpowless :-)

I had to change a line for the function to work properly:

function PageCodeOutbox()
{
global $memberID;
global $dir;
global $site;
global $tmpl;
global $date_format;

if( $_REQUEST['do_delete'] or $_REQUEST['do_mark_new'] or $_REQUEST['do_mark_old'] )
{
if( $_REQUEST['do_delete'] )
$sqlDoQuery = "DELETE FROM `Messages` WHERE";

if( $aMsgs = $_POST['m'] and is_array( $aMsgs ) and !empty( $aMsgs ) )
{
foreach( $aMsgs as $msgID => $on )
{
$msgID = (int)$msgID;
if( !$msgID or $on != 'on' )
continue;

db_res( "$sqlDoQuery `ID`=$msgID AND `Sender` = $memberID" );
}
}
}

$query = "
SELECT
`Messages`.`ID`,
UNIX_TIMESTAMP( `Date` ) AS `timestamp`,
DATE_FORMAT(`Date`, '$date_format') AS `Date`,
`Recipient`,
`Profiles`.`NickName` AS `SenderNickName`,
`Subject`,
`New`
FROM `Messages`
LEFT JOIN `Profiles` ON
`Profiles`.`ID` = `Recipient`
WHERE `Sender` = $memberID
ORDER BY `Date` DESC
";

$rMsgs = db_res( $query );

if( !mysql_num_rows( $rMsgs ) )
return '<div class="no_result"><div>'._t( "_No messages in Outbox" ).'</div></div>';


// --- get template and replace headers ---
$aReplace = array();

$aReplace['mailbox_header_img'] = '<img src="'.getTemplateIcon( 'outbox.gif' ) .'" class="mailbox_header_img" />';
//$aReplace['summary'] = _t(
$aReplace['flag'] = _t( '_Flag' );
$aReplace['from'] = _t( '_From' );
$aReplace['date'] = _t( '_Date' );
$aReplace['subject'] = _t( '_Subject' );
$aReplace['click_to_sort'] = _t( '_Click to sort' );

$aReplace['actions_l'] = _t( "_Selected messages" ) .':';
$aReplace['actions'] = '
<input type="submit" class="mailbox_submit" name="do_delete" value="'._t('_Delete').'" onclick="return confirm(\''._t('_are you sure?').'\');" />
';

$ret = file_get_contents(BX_DIRECTORY_PATH_ROOT . "templates/tmpl_{$tmpl}/mail_box.html");
foreach( $aReplace as $key => $val )
$ret = str_replace( "__{$key}__", $val, $ret );

$aMyTmpl = preg_split( "/\{\/?InsertRows\}/", $ret );
$tmplRow = $aMyTmpl[1];
$ret = "{$aMyTmpl[0]}{InsertRows /}{$aMyTmpl[2]}";

$InsertRows = '';
$tr_class = 'odd';
while( $aMsg = mysql_fetch_assoc( $rMsgs ) )
{
$sSubject = process_line_output( html2txt( $aMsg['Subject'] ));

$aReplace = array();

$aReplace['tr_class'] = $tr_class;
$aReplace['new_add'] = $aMsg['New'] ? 'new' : '';

$aReplace['ID'] = $aMsg['ID'];
$aReplace['CheckBox'] = '<input type="checkbox" class="td_mailbox_checkbox" id="sel_msg_'.$aMsg['ID'].'" name="m['.$aMsg['ID'].']" value="on" />';
$aReplace['Flag'] = '<img class="mailbox_flag_img" src="'.getTemplateIcon( $aMsg['New'] ? 'not_readed.gif' : 'readed.gif' ).'" title="'._t( $aMsg['New'] ? '_New Message' : '_Readed' ).'" />';


--- here some change -------------

$aReplace['From'] = '<center><div style="width:45px;">' . get_member_icon($aMsg['Recipient']) . "<div class=\"clear_both\"></div><!--{$aMsg['RecipientNickName']}--> <a href=\"".getProfileLink($aMsg['Recipient'])."\">{$aMsg['RecipientNickName']}</a>" . '</center>';

--- end of change ----------------


$aReplace['Date'] = "<!--{$aMsg['timestamp']}--> {$aMsg['Date']}";
$aReplace['Subject'] = "<!--$sSubject--> <a href=\"{$site['url']}messages_outbox.php?message={$aMsg['ID']}\">$sSubject</a>";


$sInsertRow = $tmplRow;
foreach( $aReplace as $key => $val )
$sInsertRow = str_replace( "{{$key}}", $val, $sInsertRow );

$sInsertRows .= $sInsertRow;
$tr_class = ( $tr_class == 'odd' ? 'even' : 'odd' );
}

$ret = str_replace( "{InsertRows /}", $sInsertRows, $ret );

$ret =
'<form name="mailbox_form" action="'.$_SERVER['PHP_SELF'].'?mode=outbox" method="post">'.$ret.'</form>';

return $ret;
}
 
bad
1
good
 
View 1 replies to this comment
 
Synergy
Synergy(positive) 85 days agocomment permalink
 
Thanks!
 
bad
0
good
 
 
atermaner
atermaner(positive) 85 days agocomment permalink
 
mrpowless is next brilliant mod... thanks....
 
bad
0
good
 
 
TheGateKeeper
TheGateKeeper(positive) 3 days agocomment permalink
 
I have read all the posts related to this topic!! It leaves me confused could someone please simplify the procedure for me :>} Thank you all!!
 
bad
0
good
 
 


Post a Comment

Please login to post a comment.

This Post
 
 
mrpowless Blog
All Blogs
Found a bug? Have a suggestion? We really value your feedback!
 
© 2008 BoonEx Ltd
ABN 27 127 966 581
 
PET:0.555227041245