Title: Fix Orphaned U2Us v1.0

Author: Mark Hemstead, John Briggs

Copyright: Copyright (c) 2009, Mark Hemstead, John Briggs. All rights reserved.

Description: This modification provides a captcha to standard members when sending u2us.

Compatability: 1.9.11

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

Note: Make sure to backup all affected files and datbases before proceeding with this installation.

=======================================================================================================================================================
=======
Step 1:
=====
===============
Edit File: tools.php
===============
==========
Find Code:
==========

    case 'fixorphanedpolls':
        if (noSubmit('orphpollsubmit')) {
            echo '<form action="tools.php?action=fixorphanedpolls" method="post">';
            echo '<tr bgcolor="'.$altbg2.'" class="ctrtablerow"><td>';
            echo '<input type="submit" name="orphpollsubmit" value="'.$lang['o_poll_submit'].'" /></td></tr>';
            echo '</form>';
        } else {
            $q = $db->query("SELECT topic_id "
                          . "FROM ".X_PREFIX."vote_desc AS v "
                          . "LEFT JOIN ".X_PREFIX."threads AS t ON t.tid=v.topic_id "
                          . "WHERE t.tid IS NULL");
            $i = $db->num_rows($q);
            if ($i > 0) {
                $tids = array();
                while($row = $db->fetch_array($q)) {
                    $tids[] = $row['topic_id'];
                }
                $tids = implode(', ', $tids);

                // Important: Do not alias tables in multi-table delete queries as long as MySQL 4.0 is supported.
                $db->query("DELETE FROM ".X_PREFIX."vote_desc, ".X_PREFIX."vote_results, ".X_PREFIX."vote_voters "
                         . "USING ".X_PREFIX."vote_desc "
                         . "LEFT JOIN ".X_PREFIX."vote_results ON ".X_PREFIX."vote_results.vote_id = ".X_PREFIX."vote_desc.vote_id "
                         . "LEFT JOIN ".X_PREFIX."vote_voters  ON ".X_PREFIX."vote_voters.vote_id  = ".X_PREFIX."vote_desc.vote_id "
                         . "WHERE ".X_PREFIX."vote_desc.topic_id IN ($tids)");

            }

            echo '<tr bgcolor="'.$altbg2.'" class="ctrtablerow"><td>';
            echo $i.$lang['o_polls_found'].'</td></tr>';
        }
        break;

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

    // Fix Orphaned U2Us Mod Begin
    case 'fixorphanedu2us':
        if (noSubmit('orphu2usubmit')) {
            echo '<form action="tools.php?action=fixorphanedu2us" method="post">';
            echo '<tr bgcolor="'.$THEME['altbg2'].'" class="ctrtablerow"><td>';
            echo '<input class="submit" type="submit" name="orphu2usubmit" value="'.$lang['o_u2u_submit'].'" /></td></tr>';
            echo '</form>';
        } else {
            $i = 0;
            $q = $db->query("SELECT u2uid, msgto FROM ".X_PREFIX."u2u");
            while($u = $db->fetch_array($q)) {
                $result = $db->query("SELECT uid FROM ".X_PREFIX."members WHERE username='$u[msgto]'");
                if ($db->num_rows($result) == 0) {
                    $db->free_result($result);
                    $db->query("DELETE FROM ".X_PREFIX."u2u WHERE u2uid='$u[u2uid]'");
                    $i++;
                }
            }
            $db->free_result($q);
            echo '<tr bgcolor="'.$THEME['altbg2'].'" class="ctrtablerow"><td>';
            echo $i.$lang['o_u2us_found'].'</td></tr>';
        }
        break;
    // Fix Orphaned U2Us Mod End

=======================================================================================================================================================
=======
Step 2:
=======
==============================================
Go To Admin Panel -> Translations & Download Language File:
==============================================
=======================
Edit File: lang/English.lang.php
=======================
============================
Add Code To End Of File Above ?>
============================

// Fix Orphaned U2Us Mod Begin
$lang['textfixou2us'] = "Fix Orphaned U2Us";
$lang['o_u2u_submit'] = "Delete all orphaned U2Us";
$lang['o_u2us_found'] = " orphaned U2Us found and deleted.";
// Fix Orphaned U2Us Mod End

=========================================================
Go To Admin Panel -> Translations & Upload Language File:
=========================================================
=======================================================================================================================================================
Enjoy