============================================================================================================================
Modification Name: Quick Edit Box

Version: 3.0

Author: GuldantheWarlock (GuldantheWarlock@xmbgarage.com)

Last Updated: October 29, 2010

Description:
This modification will add a QuickEdit box at the bottom of your page allowing you to edit the following options at any time:
    - Browse the board invisible
    - Theme
    - Mood
    - Avatar URL
    - Signature

This modification has settings in the admin panel under Settings to turn the quick edit box on/off and an option to enable/disable the avatar display.
This modification can be turned on/off via the user's control panel.

Supported Version: XMB 1.9.5 SP1

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

Please backup your files before installing this modification.
Neither XMB Garage nor the author can be held responsible if your board stops functioning properly due to you installing this modification.
============================================================================================================================
=======
Step 1:
=======
==============================
Go To Admin Panel --> Insert Raw SQL
==============================
===============================
Paste The Following Code and Hit Submit
===============================

ALTER TABLE $table_settings ADD quickedit_status SET('on','off') NOT NULL default 'on';
ALTER TABLE $table_settings ADD quickedit_avatar SET('on','off') NOT NULL default 'off';
ALTER TABLE $table_members ADD qe_status SET('on', 'off') NOT NULL default 'on';

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

$mailer = array();

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

// Quick Edit Box Mod Begin
$QuickEdit = '';
// Quick Edit Box Mod End

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

    $loginout = '<a href="misc.php?action=logout">'.$lang['textlogout'].'</a>';

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

    // QuickEdit Box Mod Begin
    QuickEdit::update();
    // QuickEdit Box Mod End
    
============================================================================================================================
=======
Step 3:
=======
==============
Edit File: cp.php
==============
==========
Find Code:
==========

        $resetSigOn = $resetSigOff = '';
        if($SETTINGS['resetsigs'] == 'on') {
            $resetSigOn = $selHTML;
        } else {
            $resetSigOff = $selHTML;
        }
        
===============
Add Code Below:
===============

        // Quick Edit Box Mod Begin
        $quickediton = $quickeditoff = '';
        switch($SETTINGS['quickedit_status']) {
            case 'on':
                $quickediton = $selHTML;
                break;
            default:
                $quickeditoff = $selHTML;
                break;
        }
        
        $quickeditavataron = $quickeditavataroff = '';
        switch($SETTINGS['quickedit_avatar']) {
            case 'on':
                $quickeditavataron = $selHTML;
                break;
            default:
                $quickeditavataroff = $selHTML;
                break;
        }
        // Quick Edit Box Mod End
        
==========
Find Code:
==========

        printsetting1($lang['reportpoststatus'], 'reportpostnew', $reportposton, $reportpostoff);
        
==========
Add Below:
==========

        // Quick Edit Box Mod Begin
        printsetting1($lang['quickedit_status'], 'qestatusnew', $quickediton, $quickeditoff);
        printsetting1($lang['quickedit_avatar'], 'qeavatarnew', $quickeditavataron, $quickeditavataroff);
        // Quick Edit Box Mod End
        
==========
Find Code:
==========

        $resetSigNew = ($resetSigNew == 'on') ? 'on' : 'off';
        
==========
Add Below:
==========

        // Quick Edit Box Mod Begin
        $qestatusnew = ($qestatusnew == 'on') ? 'on' : 'off';
        $qeavatarnew = ($qeavatarnew == 'on') ? 'on' : 'off';
        // Quick Edit Box Mod End
        
==========
Find Code:
==========

        $db->query("UPDATE $table_settings SET
        
========================
Add To End Of Line Before  ");
========================

, quickedit_status='$qestatusnew', quickedit_avatar='$qeavatarnew'

============================================================================================================================
=======
Step 4:
=======
==================
Edit File: functions.php
==================
==========
Find Code:
==========

function nav($add=false, $raquo=true) {

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

 // Quick Edit Box Mod Begin
class QuickEdit {
    static function requestVar($var, $default='') {
        return isset($_POST[$var]) ? $_POST[$var] : (isset($_GET[$var]) ? $_GET[$var] : $default);
    }
    static function requestInt($var, $default=0) {
        return (isset($_POST[$var]) && is_numeric($_POST[$var])) ? (int) $_POST[$var] : ((isset($_GET[$var]) && is_numeric($_GET[$var])) ? (int) $_GET[$var] : $default);
    }
    static function update() {
        global $QuickEdit, $db, $lang, $self, $table_members, $SETTINGS, $THEME;

        if ($SETTINGS['quickedit_status'] == 'off' || !(isset($_POST['qe_submit']) && !empty($_POST['qe_submit']))) {
            return;
        }

        $avatar = '';
        if ($SETTINGS['avastatus'] == 'on') {
            $qe_avatar = checkInput(str_replace(' ', '&20', $_POST['qe_newavatar']), '', '', 'javascript', false);
            if (empty($qe_avatar)) {
                $avatar = "avatar='$qe_avatar', ";
                $self['avatar'] = '';
            } else {
                $newav_size = @getimagesize($qe_avatar);
                $max_avsize = explode('x', $SETTINGS['max_avatar_size']);
                if (!!(!$newav_size && strpos($qe_avatar, '.swf') !== false) || ($newav_size[0] > $max_avsize[0] && $max_avsize[0] > 0) || ($newav_size[1] > $max_avsize[1] && $max_avsize[1] > 0)) {
                    $avatar = "avatar='$qe_avatar', ";
                    $self['avatar'] = $qe_avatar;
                }
            }
        }

        $self['mood'] = checkInput($_POST['qe_newmood'], '', '', 'javascript', false);
        $self['invisible'] = (int) $_POST['qe_newinv'];
        $self['theme'] = (int) $_POST['qe_newtheme'];
        $self['sig'] = checkInput($_POST['qe_newsig'], '', $SETTINGS['sightml'], '', false);

        $db->query("UPDATE $table_members SET avatar='$qe_avatar', sig='$self[sig]', theme='$self[theme]', mood='$self[mood]', invisible='$self[invisible]' WHERE uid = $self[uid]");

        redirect($_SERVER['REQUEST_URI'], 0);
    }

    static function display() {
        global $QuickEdit, $db, $lang, $self, $table_themes, $SETTINGS, $THEME;

        if ($SETTINGS['quickedit_status'] == 'off' || $self['qe_status'] == 'off') {
            return;
        }
        
        if (X_MEMBER) {
            $_fid = QuickEdit::requestInt('fid');
            $_tid = QuickEdit::requestInt('tid');
            $_pid = QuickEdit::requestInt('pid');
            $_page = QuickEdit::requestInt('page', 1);
            $_member = QuickEdit::requestVar('member');
            $_action = QuickEdit::requestVar('action');

            $qe_invon = $qe_invoff = '';
            switch($self['invisible']) {
                case 1:
                    $qe_invon = ' checked="checked"';
                    break;
                default:
                    $qe_invoff = ' checked="checked"';
                    break;
            }

            $qe_themelist = array();
            $qe_themelist[] = '<select name="qe_newtheme">';
            $qe_themelist[] = '<option value="0">'.$lang['textusedefault'].'</option>';
            $query = $db->query("SELECT themeid, name FROM $table_themes ORDER BY name ASC");
            while($theme = $db->fetch_array($query)) {
                $qe_themelist[] = '<option value="'.$theme['themeid'].'"'.(($self['theme'] == $theme['themeid']) ? ' selected="selected"' : '').'>'.stripslashes($theme['name']).'</option>';
            }
            $db->free_result($query);
            $qe_themelist[] = '</select>';
            $qe_themelist = implode("\n", $qe_themelist);

            $qe_rowspan   = 3;
            $qe_avatar = $qe_avatarbox = '';
            if ($SETTINGS['avastatus'] == 'on') {
                $qe_avatarbox = '<tr><td align="left" valign="middle" class="tablerow">'.$lang['textavatarurl'].'</td><td align="left" valign="middle" class="tablerow"><input type="text" name="qe_newavatar" size="30" value="'.$self['avatar'].'" /></td></tr>';
                if ($SETTINGS['quickedit_avatar'] == 'on' && $self['avatar'] != '') {
                    if (false !== ($pos = strpos($self['avatar'], ',')) && substr($self['avatar'], $pos-4, 4) == '.swf') {
                        $flashavatar = explode(',', $self['avatar']);
                        $qe_avatar = '<object type="application/x-shockwave-flash" data="'.$flashavatar[0].'" width="'.$flashavatar[1].'" height="'.$flashavatar[2].'"><param name="movie" value="'.$flashavatar[0].'" /><param name="allowScriptAccess" value="never" /></object>';
                    } else {
                        $qe_avatar = '<img src="'.$self['avatar'].'" alt="'.$lang['altavatar'].'" />';
                    }
                    
                    $qe_avatar .= "</td>\n<td bgcolor=\"".$THEME['altbg2']."\">";
                    $qe_colspan = 4;
                }
            }
            $qe_showsig = stripslashes($self['sig']);
            eval('$QuickEdit = "'.template('QuickEdit').'";');
        }
    }
}
// Quick Edit Box Mod End

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

array_unique(array_merge(func_get_args(), array(

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

array_unique(array_merge(func_get_args(), array('QuickEdit',

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

            templatecache(X_CACHE_PUT, $template['name'], $template['template']);
        }
        
===============
Add Code Below:
===============

        // Quick Edit Box Mod Begin
        $db->free_result($query);
        QuickEdit::display();
        // Quick Edit Box Mod End
        
==========
Find Code:
==========

        $footer = '';
    
================
Replace Code With:
================

        $footer = $QuickEdit = '';
    
============================================================================================================================
=======
Step 5:
=======
=================
Edit File: memcp.php
=================
==========
Find Code:
==========

        if ($SETTINGS['sightml'] == 'on') {
            $htmlis = $lang['texton'];
        } else {
            $htmlis = $lang['textoff'];
        }
        
===============
Add Code Below:
===============

        // Quick Edit Box Mod Begin
        $qe_statuson = $qe_statusoff = '';
        switch($member['qe_status']) {
            case 'on':
                $qe_statuson = $selHTML;
                break;
            default:
                $qe_statusoff = $selHTML;
                break;
        }
        // Quick Edit Box Mod End
        
==========
Find Code:
==========

        $newsletter     = (isset($newnewsletter) && $newnewsletter == 'yes') ? 'yes' : 'no';
        
===============
Add Code Below:
===============

        // Quick Edit Box Mod Begin
        $qe_status = (isset($qe_statusnew) && $qe_statusnew == 'on') ? 'on' : 'off';
        // Quick Edit Box Mod End
        
==========
Find Code:
==========

        $db->query("UPDATE $table_members SET $pwtxt email='$email'
        
========================
Add To End Of Line Before ");
========================

, qe_status='$qe_statusnew'

============================================================================================================================
=======
Step 6:
=======
=======================
Edit File: lang/English.lang.php
=======================
=========================
Add To End Of File ABOVE  ?>
=========================

// Quick Edit Box Mod Begin
$lang['quickedit'] = 'Quick Edit';
$lang['quickedit_status'] = 'Quick Edit Status:';
$lang['quickedit_avatar'] = 'Quick Edit Avatar Display:';
// Quick Edit Box Mod End

============================================================================================================================
=======
Step 7:
=======
===============================
Go To Administration Panel --> Templates
===============================
=====================
Create Template: QuickEdit
=====================
===================================
Paste The Following Code and Submit Changes:
===================================

<br />
<form action="{$_SERVER['REQUEST_URI']}" id="quickedit" name="quickedit" method="post">
<input type="hidden" name="action" value="$_action" />
<input type="hidden" name="fid" value="$_fid" />
<input type="hidden" name="member" value="$_member" />
<input type="hidden" name="page" value="$_page" />
<input type="hidden" name="pid" value="$_pid" />
<input type="hidden" name="tid" value="$_tid" />
<table cellspacing="0" cellpadding="0" border="0" width="{$THEME['tablewidth']}" align="center">
<tr>
<td bgcolor="{$THEME['bordercolor']}">
<table border="0" cellspacing="{$THEME['borderwidth']}" cellpadding="{$THEME['tablespace']}" width="100%">
<tr>
<td class="category" colspan="4"><a title="{$lang['texteditpro']}" href="memcp.php?action=profile"><strong><font color="{$THEME['cattext']}">{$lang['quickedit']}</font></strong></a></td>
</tr>
<tr>
<td bgcolor="{$THEME['altbg2']}">$qe_avatar
<table width="100%" cellpadding="0" cellspacing="0">
<tr class="tablerow">
<td align="left" valign="middle">{$lang['textinvisible']}:</td>
<td align="left" valign="middle"><input type="radio" name="qe_newinv" value="1"$qe_invon />&nbsp;{$lang['textyes']}&nbsp;&nbsp;&nbsp;<input type="radio" name="qe_newinv" value="0"$qe_invoff />&nbsp;{$lang['textno']}</td>
<td align="left" valign="top" rowspan="$qe_rowspan">{$lang['textsig']}<br /><textarea rows="5" cols="45" name="qe_newsig">$qe_showsig</textarea></td>
</tr>
<tr class="tablerow">
<td align="left" valign="middle">{$lang['texttheme']}</td>
<td align="left" valign="middle">$qe_themelist</td>
</tr>
<tr class="tablerow">
<td align="left" valign="middle">{$lang['mood']}</td>
<td align="left" valign="middle"><input type="text" name="qe_newmood" size="30" value="$self[mood]" /></td>
</tr>
$qe_avatarbox
</table>
</td>
</tr>
<tr>
<td bgcolor="{$THEME['altbg2']}" class="ctrtablerow" colspan="4"><input type="submit" class="submit" name="qe_submit" value="{$lang['textsubmitchanges']}" /></td>
</tr>
</table>
</td>
</tr>
</table>
</form>

============================================================================================================================
=======
Step 8:
=======
===============================
Go To Administration Panel --> Templates
===============================
=================
Edit Template: footer
=================
=============================================
Add Code To Beginning Of The Template and Submit Changes
=============================================

$QuickEdit

============================================================================================================================
=======
Step 8:
=======
===============================
Go To Administration Panel --> Templates
===============================
=======================
Edit Template: memcp_profile
=======================
==========
Find Code:
==========

<tr>
<td bgcolor="$altbg1" class="tablerow" width="22%">$lang[textgetnews]</td>
<td bgcolor="$altbg2" class="tablerow"><input type="checkbox" name="newnewsletter" value="yes" $newschecked /> </td>
</tr>

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

<tr class="tablerow">
<td bgcolor="$altbg1" width="22%">$lang[quickedit_status]</td>
<td bgcolor="$altbg2"><select name="qe_statusnew">
<option value="on" $qe_statuson>$lang[texton]</option>
<option value="off" $qe_statusoff>$lang[textoff]</option>
</select>
</td>
</tr>
============================================================================================================================
Enjoy!