============================================================================================================================
Modification Title: Forum Jump Selection

Version: 1.0

Author: John Briggs

Description: This modification will provide a drop down menu of all forums and categories in the header and footer navigation.

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: functions.php
==================
==========
Find Code:
==========

function shortenString($string, $len=100, $shortType=X_SHORTEN_SOFT, $ps='...') {
    if(strlen($string) > $len) {
        if(($shortType & X_SHORTEN_SOFT) === X_SHORTEN_SOFT) {
            $string = preg_replace('#^(.{0,'.$len.'})([\W].*)#', '\1'.$ps, $string);
        }
        if((strlen($string) > $len+strlen($ps)) && (($shortType & X_SHORTEN_HARD) === X_SHORTEN_HARD)) {
            // simply cut it this time. We don't care about very long words
            $string = substr($string, 0, $len).$ps;
        }
        return $string;
    } else {
        return $string;
    }
}

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

// Forum Jump Selection Mod Begin
function forumJump() {
    global $db, $table_forums, $self, $lang;

    $restrict = array();
    switch ($self['status']) {
        case 'Member':
            $restrict[] = "private != '3'";
        case 'Moderator':
        case 'Super Moderator':
            $restrict[] = "private != '2'";
        case 'Administrator':
            $restrict[] = "userlist = ''";
        case 'Super Administrator':
            break;
        default:
            $restrict[] = "private != '3'";
            $restrict[] = "private != '2'";
            $restrict[] = "userlist = ''";
            $restrict[] = "password = ''";
            break;
    }
    $restrict = implode(' AND ', $restrict);

    if ($restrict != '') {
        $sql = $db->query("SELECT fid, type, name, fup, status, private, userlist, password, displayorder FROM $table_forums WHERE $restrict AND status = 'on' ORDER BY displayorder");
    } else {
        $sql = $db->query("SELECT fid, type, name, fup, private, userlist, password, displayorder FROM $table_forums ORDER BY displayorder");
    }

    $standAloneForums = array();
    $forums = array();
    $categories = array();
    $subforums = array();
    while ($forum = $db->fetch_array($sql)) {
        if (!X_SADMIN && $forum['password'] != '') {
            $fidpw = isset($_COOKIE['fidpw'.$forum['fid']]) ? trim($_COOKIE['fidpw'.$forum['fid']]) : '';
            if ($forum['password'] !== $fidpw) {
                continue;
            }
        }
        switch ($forum['type']) {
            case 'group':
                $categories[] = $forum;
                break;
            case 'sub':
                if (!isset($subforums[$forum['fup']])) {
                    $subforums[$forum['fup']] = array();
                }
                $subforums[$forum['fup']][] = $forum;
                break;
            case 'forum':
            default:
                if ($forum['fup'] == 0) {
                    $standAloneForums[] = $forum;
                } else {
                    if (!isset($forums[$forum['fup']])) {
                        $forums[$forum['fup']] = array();
                    }
                    $forums[$forum['fup']][] = $forum;
                }
                break;
        }
    }
    $db->free_result($sql);

    $forumselect = array();

    $forumselect[] = "<select class=\"smalltxt\" onchange=\"if (this.options[this.selectedIndex].value) {window.location=(''+this.options[this.selectedIndex].value)}\">";
    $forumselect[] = '<option value="" selected="selected">'.$lang['forumjumpselect'].'</option>';

    unset($forum);
    reset($forums);

    foreach ($standAloneForums as $forum) {
        $forumselect[] = '<option value="'.ROOT.'forumdisplay.php?fid='.$forum['fid'].'"> &nbsp; &raquo; '.stripslashes($forum['name']).'</option>';
        if (isset($subforums[$forum['fid']])) {
            foreach ($subforums[$forum['fid']] as $sub) {
                $forumselect[] = '<option value="'.ROOT.'forumdisplay.php?fid='.$sub['fid'].'">&nbsp; &nbsp; &raquo; '.stripslashes($sub['name']).'</option>';
            }
        }
    }

    foreach ($categories as $group) {
        if (isset($forums[$group['fid']])) {
            $forumselect[] = '<option value=""></option>';
            $forumselect[] = '<option value="'.ROOT.'index.php?gid='.$group['fid'].'">'.stripslashes($group['name']).'</option>';
            foreach ($forums[$group['fid']] as $forum) {
                $forumselect[] = '<option value="'.ROOT.'forumdisplay.php?fid='.$forum['fid'].'"> &nbsp; &raquo; '.stripslashes($forum['name']).'</option>';
                if (isset($subforums[$forum['fid']])) {
                    foreach ($subforums[$forum['fid']] as $sub) {
                        $forumselect[] = '<option value="'.ROOT.'forumdisplay.php?fid='.$sub['fid'].'">&nbsp; &nbsp; &raquo; '.stripslashes($sub['name']).'</option>';
                    }
                }
            }
        }
    }
    $forumselect[] = '</select>';
    return implode("\n", $forumselect);
}
// Forum Jump Selection Mod End

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

// Forum Jump Selection Mod Begin
$lang['forumjumpselect'] = "Select A Forum";
// Forum Jump Selection Mod End

============================================================================================================================
=======
Step 3:
=======
================
Edit File: header.php
================
==========
Find Code:
==========

$threadSubject = '';

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

// Forum Jump Selection Mod Begin
$quickjump = '';
// Forum Jump Selection Mod End

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

// if the user is registered, check for new u2u's
$newu2umsg = '';
if (X_MEMBER) {
    $query = $db->query("SELECT COUNT(readstatus) FROM $table_u2u WHERE owner='$self[username]' AND folder='Inbox' AND readstatus='no'");
    $newu2unum = $db->result($query, 0);
    if ($newu2unum > 0) {
        $newu2umsg = "<a href=\"#\" onclick=\"Popup('u2u.php', 'Window', 700, 450);\">$lang[newu2u1] $newu2unum $lang[newu2u2]</a>";
    }
}

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

// Forum Jump Selection Mod Begin
$quickjump = forumJump();
// Forum Jump Selection Mod End

============================================================================================================================
=======
Step 4:
=======
==========================
Go To Admin Panel --> Templates
==========================
=================
Edit Template: header
=================
==========
Find Code:
==========

<td align="right"><a href="#bottom"><img src="$imgdir/arrow_dw.gif" border="0" alt="$lang[gotobottom]" /></a></td>

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

<td align="right">$quickjump</td>
<td align="right" width="1"><a href="#bottom"><img src="$imgdir/arrow_dw.gif" border="0" alt="$lang[gotobottom]" /></a></td>

============================================================================================================================
=======
Step 5:
=======
==========================
Go To Admin Panel --> Templates
==========================
=================
Edit Template: footer
=================
==========
Find Code:
==========

<td align="right" bgcolor="$altbg1" width="2%"><a href="#top"><img src="$imgdir/arrow_up.gif" style="margin-right: 3px" border="0" alt="$lang[gototop]" /></a></td>

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

<td class="tablerow" align="right" bgcolor="$altbg1">$quickjump&nbsp;</td>
<td align="right" bgcolor="$altbg1" width="2%"><a href="#top"><img src="$imgdir/arrow_up.gif" style="margin-right: 3px" border="0" alt="$lang[gototop]" /></a></td>

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