Hack Name: BBCode: FLV Player v1.0

Author: GuldantheWarlock (GuldantheWarlock@xmbgarage.com)

Last Updated: May 1, 2009

Description: This modification will allow you to embed an flv video into your post via BBCode.

Supported Version: XMB 1.9.8 SP3

Notes:
This modification makes use of the JW FLV Media Player found at http://www.jeroenwijering.com/
This modification is released under the GPL. You should have recieved a copy of it with this software package.

Please backup your files before installing this modification. Neither XMBGarage nor the author can be held
responsible if your board stops functioning properly due to you installing this modification.

=======================================================================================================

=======
Step 1:
=======

====================
Edit lang/English.lang.php:
====================

========================
Add To End Of File Above ?> :
========================

// BBCode: FLV Player Mod Begin
$lang['bbcode_help_flv'] = "FLV tag\\nEmbeds an flv file.\\nUsage: [flv]url of file[/flv]";
$lang['bbcode_prompt_flv'] = "Please enter the URL of the flv file you would like to link to.";
$lang['cb_insert_flv'] = "Embed flv file";
// BBCode: FLV Player Mod End

=======================================================================================================

=======
Step 2:
=======

=============
Edit header.php
=============

=====
Find:
=====

// additional CSS to load?
if (file_exists($imgdir.'/theme.css')) {
    $cssInclude = '<style type="text/css">'."\n"."@import url('".$imgdir."/theme.css');"."\n".'</style>';
} else {
    $cssInclude = '';
}
    
============
Replace With:
============


$cssInclude = '';
// additional CSS to load?
if (file_exists($imgdir.'/theme.css')) {
    $cssInclude = '<style type="text/css">'."\n"."@import url('".$imgdir."/theme.css');"."\n".'</style>';
}
// BBCode: FLV Player Mod Begin
if (isset($tid) && is_numeric($tid) && (int) $tid > 0) {
    $cssInclude .= "\n".'<script type="text/javascript" src="'.ROOT.'js/swfobject.js"></script>';
}
// BBCode: FLV Player Mod End

=======================================================================================================

=======
Step 3:
=======

======================
Edit /include/functions.inc.php
======================

=====
Find:
=====

    $patterns[] = "#\[email=([^\"'<>]*?){1}([^\"]*?)\](.*?)\[/email\]#Smi";
    $replacements[] = '<a href="mailto:\1\2">\3</a>';
        
==========
Add Below:
==========

    // BBCode: FLV Player Mod Begin
    $patterns[] = "#\[flv\]([a-z]+?://){1}([^\"'<>]*?)\[/flv\]#Smie";
    $replacements[] = 'bbcode_flv(\'$1$2\')';
    // BBCode: FLV Player Mod End

======
Find:
======

function createAbsFSizeFromRel($rel) {

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

// BBCode: FLV Player Mod Begin
function bbcode_flv($path) {
    global $thisbg, $THEME;
    
    $rand = md5(uniqid(mt_rand()));
    
    $flvembed   = array();
    $flvembed[] = '<div id="flvplayer'.$rand.'"></div>';
    $flvembed[] = '<script language="JavaScript" type="text/javascript">';
    $flvembed[] = "var so = new SWFObject('".ROOT."js/mediaplayer.swf', 'mpl', '470', '320', '8');";
    $flvembed[] = "so.addParam('allowscriptaccess', 'always');";
    $flvembed[] = "so.addParam('allowfullscreen', 'true');";
    $flvembed[] = "so.addVariable('height', '320');";
    $flvembed[] = "so.addVariable('width', '470');";
    $flvembed[] = "so.addVariable('file', '$path');";
    $flvembed[] = "so.addVariable('backcolor',   '0x".(($thisbg == $THEME['altbg2']) ? $THEME['altbg1'] : $THEME['altbg2'])."');";
    $flvembed[] = "so.addVariable('frontcolor',  '0x".$THEME['tabletext']."');";
    $flvembed[] = "so.addVariable('lightcolor',  '0x".$THEME['link']."');";
    $flvembed[] = "so.addVariable('screencolor', '0x".(($thisbg == $THEME['altbg2']) ? $THEME['altbg1'] : $THEME['altbg2'])."');";
    $flvembed[] = "so.write('flvplayer".$rand."');";
    $flvembed[] = '</script>';
    
    return str_replace('0x#', '0x', implode('', $flvembed));
}
// BBCode: FLV Player Mod End

=======================================================================================================

=======
Step 4:
=======

=================
Edit js/bbcodefns-ie.js
=================

======
Find:
======

function storeCaret(textEl) {

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

// BBCode: FLV Player Mod Begin
function flv() {
    if (helpmode) {
        alert(bbcode_help_flv);
    } else if (advmode) {
        AddText('', '', "[flv] [/flv]", messageElement);
    } else {
        var txt = prompt(bbcode_prompt_flv, "myfile.flv");
        if (txt != null) {
            AddText('', '', "[flv]"+txt+"[/flv]", messageElement);
        }
    }
}
// BBCode: FLV Player Mod End

=======================================================================================================

=======
Step 5:
=======

=====================
Edit js/bbcodefns-mozilla.js
=====================

======
Find:
======

function storeCaret() {

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

// BBCode: FLV Player Mod Begin
function flv() {
    if (helpmode) {
        alert(bbcode_help_flv);
    } else if (advmode) {
        if (hasSelection(messageElement)) {
            wrapText('[flv]', '[/flv]', messageElement);
        } else {
            AddText('[flv]', '[/flv]', ' ', messageElement);
        }

    } else {
        if (hasSelection(messageElement)) {
            var text = prompt(bbcode_prompt_flv, fetchSelection(messageElement));
            if (text == fetchSelection(messageElement)) {
                wrapText('[flv]', '[/flv]', messageElement);
            } else {
                AddText('[flv]', '[/flv]', text, messageElement);
            }
        } else {
            var text = prompt(bbcode_prompt_flv, 'myfile.flv');
            AddText('[flv]', '[/flv]', text, messageElement);
        }
    }
}

// BBCode: FLV Player Mod End

=======================================================================================================

=======
Step 6:
=======

========================
Edit include/bbcodefns-opera.js
========================

======
Find:
======

function storeCaret(textEl) {

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

// BBCode: FLV Player Mod Begin
function flv() {
    if (helpmode) {
        alert(bbcode_help_flv);
    } else if (advmode) {
        AddText('', '', "[flv] [/flv]", messageElement);

    } else {
        var txt = prompt(bbcode_prompt_flv, "myfile.flv");
        if (txt != null) {
            AddText('', '', "[flv]"+txt+"[/flv]", messageElement);
        }
    }
}
// BBCode: FLV Player Mod End

=======================================================================================================

=======
Step 7:
=======

=========================
Go to Admin Panel -> Templates
=========================

========================
Edit template: functions_bbcode
========================

=====
Find:
=====

var bbcode_help_underline   = "$lang[bbcode_help_underline]";
var bbcode_prompt_underline = "$lang[bbcode_prompt_underline]";

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

var bbcode_help_flv   = "$lang[bbcode_help_flv]";
var bbcode_prompt_flv = "$lang[bbcode_prompt_flv]";

=======================================================================================================

=======
Step 8:
=======

=========================
Go to Admin Panel -> Templates
=========================

===========================
Edit template: functions_bbcodeinsert
===========================

======
Find:
======

<a href="javascript:list()"><img src="$imgdir/bb_list.gif" border="0" width="23" height="22" alt="$lang[cb_insert_list]" /></a></td>

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

<a href="javascript:list()"><img src="$imgdir/bb_list.gif" border="0" width="23" height="22" alt="$lang[cb_insert_list]" /></a>
<a href="javascript:flv();"><img src="$THEME[imgdir]/bb_flv.gif" border="0" width="22" height="22" alt="$lang[cb_insert_flv]" /></a></td>

=======================================================================================================

=======
Step 9:
=======

Upload the included 'mediaplayer.swf' and 'swfobject.js' from the Contents folder to your forum's js folder.
Upload the included 'bb_flash.gif' from the Contents folder to your forum's theme directories.

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