============================================================================================================================
Modification Title: Sort Member List By Letter

Version: 1.0

Author: John Briggs

Description:
This modification will give you the option to search the member list by letter assortment.
This modification is similar to what vBulletin uses.

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. 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: lang/English.lang.php
=======================
============================
Add Code To End Of File Above  ?>
============================

// Sort Member List By Letter Mod Begin
$lang['letterall'] = "All";
$lang['lettermisc'] = "Misc";
$lang['lettersortby'] = "Sort By Letter:";
// Sort Member List By Letter Mod End

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

            if (!isset($desc) || strtolower($desc) != 'desc') {
                $desc = 'asc';
            }

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

        // Sort Member List By Letter Mod Begin
        $letters = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',$lang['lettermisc']);

        $lettersort = '<tr>';

        $list = (isset($list)) ? $list : '';

        if ($list != '') {
            $lettersort .= '<td class="ctrtablerow" bgcolor="'.$altbg2.'"><a href="misc.php?action=list">'.$lang['letterall'].'</a></td>';
        } else {
            $lettersort .= '<td class="ctrtablerow" bgcolor="'.$altbg1.'"><strong><u>'.$lang['letterall'].'</u></strong></td>';
        }

        for ($i = 0; $i < count($letters); $i++) {
            if ($list == strtolower($letters[$i])) {
                $lettersort .= '<td class="ctrtablerow" bgcolor="'.$altbg1.'"><u><strong>'.$letters[$i].'</strong></u></td>';
            } else {
                $lettersort .= '<td class="ctrtablerow" bgcolor="'.$altbg2.'"><a href="misc.php?action=list&amp;list='.strtolower($letters[$i]).'">'.$letters[$i].'</a></td>';
            }
        }
        $lettersort .= '</tr>';

        $ltrqry = '';
        if ($list != '' && $list != 'misc') {
            $ltrqry = "WHERE username LIKE '$list%'";
        }

        if ($list == 'misc') {
            $ltrqry = "WHERE username NOT LIKE 'A%' ";
            for ($i = 0; $i < count($letters); $i++) {
                $ltrqry .= "AND username NOT LIKE '$letters[$i]%' ";
            }
        }

        $listsort = '';
        if ($list != '' && $list != 'misc') {
            $listsort = '&amp;list='.$list;
        }
        // Sort Member List By Letter Mod End

===================================================
For cellrollover effects then use this code instead of the above code
===================================================

        // Sort Member List By Letter Mod Begin
        $letters = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "$lang[lettermisc]");

        $lettersort = "<tr>";

        $list = (isset($list)) ? $list : '';

        if (!empty($list)) {
            $lettersort .= "<td class=\"ctrtablerow\" bgcolor=\"$altbg2\" onmouseover=\"this.style.backgroundColor='$altbg1';\" onmouseout=\"this.style.backgroundColor='$altbg2';\" onClick=\"location.href='misc.php?action=list'\" style=\"cursor:hand\"><a href=\"misc.php?action=list\">$lang[letterall]</a></td>";
        } else {
            $lettersort .= "<td class=\"ctrtablerow\" bgcolor=\"$altbg1\"><strong><u>$lang[letterall]</u></strong></td>";
        }

        for ($i = 0; $i < count($letters); $i++) {
            if ($list == strtolower($letters[$i])) {
                $lettersort .= "<td class=\"ctrtablerow\" bgcolor=\"$altbg1\"><u><strong>$letters[$i]</strong></u></td>";
            } else {
                $lettersort .= "<td class=\"ctrtablerow\" bgcolor=\"$altbg2\" onmouseover=\"this.style.backgroundColor='$altbg1';\" onmouseout=\"this.style.backgroundColor='$altbg2';\" onClick=\"location.href='misc.php?action=list&list=".strtolower($letters[$i])."'\" style=\"cursor:hand\"><a href=\"misc.php?action=list&list=".strtolower($letters[$i])."\">$letters[$i]</a></td>";
            }
        }
        $lettersort .= "</tr>";

        $ltrqry = '';
        if (!empty($list) && $list != 'misc') {
            $ltrqry = "WHERE username LIKE '$list%'";
        }

        if ($list == 'misc') {
            $ltrqry = "WHERE username NOT LIKE 'A%' ";
            for ($i = 0; $i < count($letters); $i++) {
                $ltrqry .= "AND username NOT LIKE '$letters[$i]%' ";
            }
        }

        $listsort = '';
        if (!empty($list) && $list != 'misc') {
            $listsort = "&amp;list=$list";
        }
        // Sort Member List By Letter Mod End

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

            $querymem = $db->query("SELECT * FROM $table_members ORDER BY $orderby $desc LIMIT $start_limit, $memberperpage");

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

            $querymem = $db->query("SELECT * FROM $table_members $ltrqry ORDER BY $orderby $desc LIMIT $start_limit, $memberperpage");

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

            $num = $db->result($db->query("SELECT count(uid) FROM $table_members"), 0);

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

            $num = $db->result($db->query("SELECT COUNT(uid) FROM $table_members $ltrqry"), 0);

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

        if (($multipage = multi($num, $memberperpage, $page, 'misc.php?action=list&amp;desc='.$desc.$ext)) === false) {
            $multipage = '';
        } else {
            eval('$multipage = "'.template('misc_mlist_multipage').'";');
        }

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

        // Sort Member List By Letter Mod Begin
        $mpurl = 'misc.php?action=list'.$listsort.'&amp;desc='.$desc.''.$ext;
        if (($multipage = multi($num, $memberperpage, $page, $mpurl)) === false) {
            $multipage = '';
        } else {
            eval('$multipage = "'.template('misc_mlist_multipage').'";');
        }
        // Sort Member List By Letter Mod End

============================================================================================================================
=======
Step 3:
=======
===============================
Go To Administration Panel --> Templates
===============================
====================
Edit Template: misc_mlist
====================
==========
Find Code:
==========

<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="header">
<td colspan="6" class="category"><font color="$cattext">$lang[textsortby]</font></td>
</tr>
<tr class="tablerow">
<td bgcolor="$altbg2" align="center" width="18%"><a href="misc.php?action=list&amp;order=postnum&amp;desc=desc"><strong>$lang[textpostnum]</strong></a></td>
<td bgcolor="$altbg2" align="center" width="18%"><a href="misc.php?action=list&amp;order=username"><strong>$lang[textalpha]</strong></a></td>
<td bgcolor="$altbg2" align="center" width="18%"><a href="misc.php?action=list"><strong>$lang[textregdate]</strong></a></td>
<td bgcolor="$altbg2" align="center" width="18%"><a href="misc.php?action=list&amp;order=status"><strong>$lang[status]</strong></a></td>
<td bgcolor="$altbg2" align="center" width="18%"><a href="#search_adv"><strong>$lang[search_advanced] </strong></a></td>
<td bgcolor="$altbg2" align="center" width="10%"><a href="misc.php?action=list&desc=$init[ascdesc]&page=$page$ext"><strong>$ascdesc</strong></a></td>
</tr>
</table>
</td>
</tr>
</table>
<br />

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

<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="6"><strong><font color="$cattext">$lang[textsortby]</font></strong></td>
</tr>
<tr class="ctrtablerow">
<td bgcolor="$altbg2" align="center" width="15%"><a href="misc.php?action=list$listsort&amp;order=postnum&amp;desc=desc"><strong>$lang[textpostnum]</strong></a></td>
<td bgcolor="$altbg2" align="center" width="15%"><a href="misc.php?action=list$listsort&amp;order=username"><strong>$lang[textalpha]</strong></a></td>
<td bgcolor="$altbg2" align="center" width="15%"><a href="misc.php?action=list$listsort"><strong>$lang[textregdate]</strong></a></td>
<td bgcolor="$altbg2" align="center" width="10%"><a href="misc.php?action=list$listsort&amp;order=status"><strong>$lang[status]</strong></a></td>
<td bgcolor="$altbg2" align="center" width="15%"><a href="#search_adv"><strong>$lang[search_advanced]</strong></a></td>
<td bgcolor="$altbg2" align="center" width="10%"><a href="misc.php?action=list$listsort&amp;desc=$init[ascdesc]&amp;page=$page$ext"><strong>$ascdesc</strong></a></td>
</tr>
</table>
</td>
</tr>
</table>
<br />
<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="28"><strong><font color="$cattext">$lang[lettersortby]</font></strong></td>
</tr>
$lettersort
</table>
</td>
</tr>
</table>
<br />

============================================================================================================================
=======
Step 4:
=======
===============================
Go To Administration Panel --> Templates
===============================
========================
Edit Template: misc_mlist_admin
========================
==========
Find Code:
==========

<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="header">
<td colspan="6" class="category"><font color="$cattext">$lang[textsortby]</font></td>
</tr>
<tr class="tablerow">
<td bgcolor="$altbg2" align="center" width="18%"><a href="misc.php?action=list&amp;order=postnum&amp;desc=desc"><strong>$lang[textpostnum]</strong></a></td>
<td bgcolor="$altbg2" align="center" width="18%"><a href="misc.php?action=list&amp;order=username"><strong>$lang[textalpha]</strong></a></td>
<td bgcolor="$altbg2" align="center" width="18%"><a href="misc.php?action=list"><strong>$lang[textregdate]</strong></a></td>
<td bgcolor="$altbg2" align="center" width="18%"><a href="misc.php?action=list&amp;order=status"><strong>$lang[status]</strong></a></td>
<td bgcolor="$altbg2" align="center" width="18%"><a href="#search_adv"><strong>$lang[search_advanced] </strong></a></td>
<td bgcolor="$altbg2" align="center" width="10%"><a href="misc.php?action=list&desc=$init[ascdesc]&page=$page$ext"><strong>$ascdesc</strong></a></td>
</tr>
</table>
</td>
</tr>
</table>
<br />

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

<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="6"><strong><font color="$cattext">$lang[textsortby]</font></strong></td>
</tr>
<tr class="ctrtablerow">
<td bgcolor="$altbg2" align="center" width="15%"><a href="misc.php?action=list$listsort&amp;order=postnum&amp;desc=desc"><strong>$lang[textpostnum]</strong></a></td>
<td bgcolor="$altbg2" align="center" width="15%"><a href="misc.php?action=list$listsort&amp;order=username"><strong>$lang[textalpha]</strong></a></td>
<td bgcolor="$altbg2" align="center" width="15%"><a href="misc.php?action=list$listsort"><strong>$lang[textregdate]</strong></a></td>
<td bgcolor="$altbg2" align="center" width="10%"><a href="misc.php?action=list$listsort&amp;order=status"><strong>$lang[status]</strong></a></td>
<td bgcolor="$altbg2" align="center" width="15%"><a href="#search_adv"><strong>$lang[search_advanced]</strong></a></td>
<td bgcolor="$altbg2" align="center" width="10%"><a href="misc.php?action=list$listsort&amp;desc=$init[ascdesc]&amp;page=$page$ext"><strong>$ascdesc</strong></a></td>
</tr>
</table>
</td>
</tr>
</table>
<br />
<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="28"><strong><font color="$cattext">$lang[lettersortby]</font></strong></td>
</tr>
$lettersort
</table>
</td>
</tr>
</table>
<br />

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