============================================================================================================================
Modification Title: Email Member Form

Version: 1.0

Author: John Briggs

Description:
This modification will provide members with a secure email form to protect against open e-mail address displays.
This modification will provide security regarding access to the form by preventing guests the ability to view or access it.
This modification prevents guests from seeing your email from threads, profile and member list.

Copyright:  2010 John Briggs. All Rights Reserved.

Compatability: XMB 1.9.5 SP1

Install Note: Before adding this modification to your forum, you should back up all files related to this modification.

License Note: This modification is released under the GPL License v3. A copy is provided with this software package.

Author Note:
You downloaded this modification from XMBGarage.com, the #1 source for XMB related downloads.
Please visit http://www.xmbgarage.com/ for support.
============================================================================================================================
=======
Step 1:
=======
=================
Edit File: member.php
=================
==========
Find Code:
==========

loadtemplates(

================
Replace Code With:
================

loadtemplates(
'member_email_member',

==========
Find Code:
==========

    case 'coppa':
        nav($lang['textcoppa']);
        break;

===============
Add Code Below:
===============

    // Email Member Form Mod Begin
    case 'email':
        nav($lang['emailmemnav']);
        break;
    // Email Member Form Mod End

=================
Find Code & Delete:
=================

            if (X_MEMBER && $memberinfo['email'] != '' && $memberinfo['showemail'] == 'yes') {
                $email = $memberinfo['email'];
            } else {
                $email = '';
            }

==========
Find Code:
==========

            if ($memberinfo['showemail'] == 'yes') {
                eval('$emailblock = "'.template('member_profile_email').'";');
            } else {
                $emailblock = '';
            }

================
Replace Code With:
================

            // Email Member Form Mod Begin
            // create email block
            $emailblock = '';
            if (X_MEMBER && $memberinfo['email'] != '' && $memberinfo['showemail'] == 'yes') {
                eval('$emailblock = "'.template('member_profile_email').'";');
            }
            // Email Member Form Mod End

==========
Find Code:
==========

} else {
    error($lang['textnoaction']);
}

========================
Add Code Directly Above:
========================

// Email Member Form Mod Begin
} elseif ($action == 'email') {
    eval('echo "'.template('header').'";');

    if (!X_MEMBER) {
        error($lang['emailmemerror'], false);
    }

    if (!isset($_POST['emailsubmit'])) {
        if (empty($member)) {
            error($lang['emailmemnomem'], false);
        }

        $query = $db->query("SELECT email, username, showemail FROM $table_members WHERE username='$member'");
        $sendto = $db->fetch_array($query);
        $db->free_result($query);

        if (empty($sendto)) {
            error($lang['emailmemnoexist'], false);
        }

        if ($sendto['showemail'] != 'yes') {
            error($lang['emailmemerror'], false);
        }
        eval('echo stripslashes("'.template('member_email_member').'");');
    }

    if (isset($_POST['emailsubmit'])) {
        $query = $db->query("SELECT email, username, showemail FROM $table_members WHERE username='$member'");
        $sendto = $db->fetch_array($query);
        $db->free_result($query);

        if (empty($sendto)) {
            error($lang['emailmemnoexist'], false);
        }

        if ($sendto['showemail'] != 'yes') {
            error($lang['emailmemerror'], false);
        }

        if (empty($_POST['name']) || empty($_POST['email']) || empty($_POST['message']) || empty($_POST['subject'])) {
            error($lang['emailmemempty'], false);
        }

        $_POST['name'] = stripslashes($_POST['name']);
        $_POST['email'] = stripslashes($_POST['email']);
        $_POST['subject'] = stripslashes($_POST['subject']);
        $_POST['message'] = stripslashes($_POST['message']);

        $emailmsgurl = $boardurl.'index.php';

        $headers[] = 'From: '.$_POST['name'].' <'.$_POST['email'].'>';
        $headers[] = 'X-Sender: <'.$_POST['email'].'>';
        $headers[] = 'X-Mailer: PHP';
        $headers[] = 'X-AntiAbuse: Board servername - '.$bbname;
        $headers[] = 'X-AntiAbuse: Username - '.$xmbuser;
        $headers[] = 'X-Priority: 2';
        $headers[] = 'Return-Path: <'.$_POST['email'].'>';
        $headers[] = 'Content-Type: text/plain; charset='.$charset;
        $headers = implode("\r\n", $headers);

        $msgbody[] = $lang['emailmemhello'].' '.$sendto['username'];
        $msgbody[] = $lang['emailmemmsg1'].' '.$_POST['name'].' ('.$_POST['email'].') '.$lang['emailmemmsg2'];
        $msgbody[] = '---------------------------------------------';
        $msgbody[] = $lang['emailmemmessage'];
        $msgbody[] = $_POST['message'];
        $msgbody[] = '---------------------------------------------';
        $msgbody[] = $lang['emailmemmsg3'];
        $msgbody[] = $lang['emailmemmsg4'];
        $msgbody[] = $lang['emailmemmsg5'];
        $msgbody[] = $emailmsgurl;
        $msgbody = implode("\n", $msgbody);

        altMail($sendto['email'], $_POST['subject'], $msgbody, $headers);
        echo '<div align="center"><font class="mediumtxt">'.$lang['emailmemsubmitted'].'</font></div>';
        redirect('member.php?action=email&member='.$member, 2.5, X_REDIRECT_JS);
    }
// Email Member Form Mod End

============================================================================================================================
=======
Step 2:
=======
===============
Edit File: misc.php
===============
==========
Find Code:
==========

            eval("\$location = \"$lang[onlineviewpro]\";");

===============
Add Code Below:
===============

        // Email Member Form Mod Begin
        } elseif (false !== strpos($url, 'action=email')) {
            $temp = explode('?', $url);
            $urls = explode('&', $temp[1]);
            foreach ($urls as $argument) {
                if (strpos($argument, 'member') !== false) {
                    $member = str_replace('member=', '', $argument);
                }
            }
            eval("\$location = \"$lang[emailmemonline]\";");
        // Email Member Form Mod End

==========
Find Code:
==========

                if (X_MEMBER && $member['email'] != '' && $member['showemail'] == 'yes') {
                    eval('$email = "'.template('misc_mlist_row_email').'";');
                } else {
                    $email = '';
                }

================
Replace Code With:
================

                //Email Member Form Mod Begin
                $email = '';
                if (X_MEMBER && $member['email'] != '' && $member['showemail'] == 'yes') {
                    $memurl = rawurlencode($member['username']);
                    eval('$email = "'.template('misc_mlist_row_email').'";');
                }
                // Email Member Form Mod End

============================================================================================================================
=======
Step 3:
=======
=======================
Edit File: lang/English.lang.php
=======================
============================
Add Code To End Of File Above  ?>
============================

// Email Member Form Mod Begin
$lang['emailmemerror'] = "Sorry! You must be registered or logged in to use this feature.";
$lang['emailmemnomem'] = "Sorry! You must select a valid member. Please try again.";
$lang['emailmemnoexist'] = "Sorry! This member does not exist.";
$lang['emailmemsubject'] = "E-mail Subject:";
$lang['emailmemmessage'] = "E-mail Message:";
$lang['emailmemsubmit'] = "Submit E-mail";
$lang['emailmemclear'] = "Clear Form";
$lang['emailmemform'] = "E-mail ";
$lang['emailmemnav'] = "E-mail Form";
$lang['emailmemonline'] = 'Sending e-mail to {$member}';
$lang['emailmemsendpre'] = "Send ";
$lang['emailmemempty'] = "Sorry! You did not fill all of the form correctly. Please try again.";
$lang['emailmemsendsuf'] = " an email message.";
$lang['emailmemsubmitted'] = "Thank you! Your email has been sent successfully.";
$lang['emailmemhello'] = "Hello";
$lang['emailmemmsg1'] = "A member by the username";
$lang['emailmemmsg2'] = "has sent you this message using the e-mail form at $SETTINGS[bbname].";
$lang['emailmemmsg3'] = "Please be sure to report all potential e-mail abuse to $SETTINGS[adminemail].";
$lang['emailmemmsg4'] = "If you prefer not to receive e-mails via the board then you may go to your Control Panel/Options and set the option to not accept them.";
$lang['emailmemmsg5'] = "Kind Regards, $SETTINGS[bbname] Management";
// Email Member Form Mod End

============================================================================================================================
=======
Step 5:
=======
===============================
Go To Administration Panel --> Templates
===============================
==================================
Create New Template: member_email_member
==================================
========================
Add Code and Submit Changes:
========================

<form method="post" action="member.php?action=email">
<table cellspacing="0" cellpadding="0" border="0" width="$tablewidth" align="center">
<tr>
<td bgcolor="$bordercolor">
<table border="0" cellspacing="$borderwidth" cellpadding="$tablespace" width="100%">
<tr class="category">
<td colspan="2"><font color="$cattext"><strong>$lang[emailmemform]$member</strong></font></td>
</tr>
<tr class="tablerow">
<td bgcolor="$altbg1" width="25%">$lang[emailmemsubject]</td>
<td bgcolor="$altbg2" width="75%"><input type="text" name="subject" size="50" /></td>
</tr>
<tr class="tablerow">
<td bgcolor="$altbg1" width="25%" valign="top">$lang[emailmemmessage]</td>
<td bgcolor="$altbg2" width="75%"><textarea rows="9" cols="60" name="message"></textarea></td>
</tr>
<tr class="ctrtablerow">
<td bgcolor="$altbg2" colspan="2">
<input type="hidden" name="name" value="$self[username]" />
<input type="hidden" name="email" value="$self[email]" />
<input type="hidden" name="member" value="$member" />
<input class="submit" type="submit" name="emailsubmit" value="$lang[emailmemsubmit]" />
&nbsp;
<input type="reset" value="$lang[emailmemclear]" />
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>

============================================================================================================================
=======
Step 6:
=======
===============================
Go To Administration Panel --> Templates
===============================
============================
Edit Template: member_profile_email
============================
==================
Replace Contents With:
==================

<tr class="tablerow">
<td bgcolor="$altbg1" width="22%">$lang[textemail]</td>
<td bgcolor="$altbg2"><a href="member.php?action=email&amp;member=$encodeuser">$lang[emailmemsendpre]<strong>$memberinfo[username]</strong>$lang[emailmemsendsuf]</a></td>
</tr>

============================================================================================================================
=======
Step 7:
=======
===============================
Go To Administration Panel --> Templates
===============================
===========================
Edit Template: misc_mlist_row_email
===========================
==================
Replace Contents With:
==================

<a href="member.php?action=email&amp;member=$memurl"><img src="$imgdir/email.gif" border="0" alt="$lang[altemailuser]" title="$lang[altemailuser]" /></a>

============================================================================================================================
=======
Step 8:
=======
===============================
Go To Administration Panel --> Templates
===============================
============================
Edit Template: viewthread_post_email
============================
==================
Replace Contents With:
==================

<a href="member.php?action=email&amp;member=$encodename"><img src="$imgdir/email.gif" border="0" alt="$lang[altemailuser]" title="$lang[altemailuser]" /></a>

============================================================================================================================
Enjoy!