vBShout On All Pages
This modification is in the archives.
Didn't really know where to put this..
Requirements: vBShout Description: This is pretty much an extension of the arcade shout mod. I was trying to figure out how to get the shoutbox on all pages, and so decided to use the ArcadeShout code to do it. This is a very simple hack. Visit: http://dnlister.com to view a live version of it. To install, first open the plugin manager, and find the vBShout [Template Alteration] hook. Open it for editing. Replace all of the code inside with: Code:
function htmlProof($text){ $text = stripslashes($_POST['message']); $text = htmlspecialchars($text); $text = preg_replace('¦<(/?(b|i|font|font color=.*?))>¦ie', 'html_entity_decode(\'$0\')', $text); return $text; };//EoFn htmlProof $Used = 0; $UsedArr = array(); $smilies = $db->query_read(" SELECT smilieid, smilietext, smiliepath, smilie.title, imagecategory.title AS category FROM " . TABLE_PREFIX . "smilie AS smilie LEFT JOIN " . TABLE_PREFIX . "imagecategory AS imagecategory USING(imagecategoryid) ORDER BY imagecategory.displayorder, smilie.displayorder "); $Smilie_Build = ''; $Total_Smilies = $db->num_rows($smilies); if ($Total_Smilies > 0) { while ($emo = $db->fetch_array($smilies)) { if ($vbulletin->options['shout_smilies_show'] > 0) { $Smilie_Cache[] = $emo; } else { $Smilie_Build .= '<a href="#" onclick="return sb_Smilie(\''.$emo['smilietext'].'\')"><img src="'.$emo['smiliepath'].'" alt="'.$emo['title'].'" border="0" /></a> '; } } if ($vbulletin->options['shout_smilies_show'] > $Total_Smilies) { $vbulletin->options['shout_smilies_show'] = $Total_Smilies; } if ($vbulletin->options['shout_smilies_show'] > 0) { while ($Used < $vbulletin->options['shout_smilies_show']) { $GetEmo = $Total_Smilies; $GetEmo = rand(0, $GetEmo); if (!in_array($GetEmo, $UsedArr) && $Smilie_Cache[$GetEmo]) { $Used++; $GetEmo = $Smilie_Cache[$GetEmo]; $Smilie_Build .= '<a href="#" onclick="return sb_Smilie(\''.$GetEmo['smilietext'].'\')"><img src="'.$GetEmo['smiliepath'].'" alt="'.$GetEmo['title'].'" border="0" /></a> '; } } } } else { $Smilie_Build = 'No Emoticons Available'; } $Options_DropDown = array(); // Items included will be parsed to create drop down menus $DropDowns = array(); // Completed constructed drop down menus $Options_DropDown['font_selector'] = array('Default', 'Arial', 'Arial Black', 'Arial Narrow', 'Book Antiqua', 'Century Gothic', 'Comic Sans MS', 'Courier New', 'Fixedsys', 'Franklin Gothic Medium', 'Garamond', 'Georgia', 'Impact', 'Lucida Console', 'Lucida Sans Unicode', 'Microsoft Sans Serif', 'Palatino Linotype', 'System', 'Tahoma', 'Times New Roman', 'Trebuchet MS', 'Verdana'); $Options_DropDown['color_selector'] = array(); $Options_DropDown['color_selector'][] = 'Default'; $hex = array(); $hex[] = '0'; $hex[] = '3'; $hex[] = '6'; $hex[] = '9'; $hex[] = 'C'; $hex[] = 'F'; for ($a = 0; $a < 6; $a++) { for ($b = 0; $b < 6; $b++) { for ($c = 0; $c < 6; $c++) { $Options_DropDown['color_selector'][] = '#' . $hex[$a].$hex[$a].$hex[$b].$hex[$b].$hex[$c].$hex[$c]; } } } if (is_array($Options_DropDown)) { foreach ($Options_DropDown as $Menu => $Options) { $DropDowns[$Menu] = ''; if (is_array($Options)) { foreach ($Options as $Selection) { if (preg_match("#^\#([a-z0-9]+)$#i", $Selection)) { $Extra = ' style="color:'.$Selection.';"'; } else { $Extra = ''; } if ($Selection == 'Default') { $Text = (($Menu == 'color_selector') ? 'Color' : 'Font Face') . ' [Default]'; } else { $Text = $Selection; } $DropDowns[$Menu] .= '<option value="'.$Selection.'"'.$Extra.'>'.$Text.'</option>' . "\n"; } } } } Code:
<!-- ArcadeShout --> $thread[title] <form action="vbshout.php?{$session['sessionurl']}" method="post" name="vbshoutform" onsubmit="return postShout(this)"> <input type='hidden' name='do' value='shout' /> <table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="80%" align="center"> <thead> <tr> <td class="thead"><a style="float:$stylevar[right]" href="#top" onclick="return toggle_collapse('forumhome_vbshout')"><img id="collapseimg_forumhome_vbshout" src="$stylevar[imgdir_button]/collapse_thead$vbcollapse[collapseimg_gamepanel].gif" alt="" border="0" /></a> <center><a href='vbshout.php?{$session['sessionurl_q']}do=archive'>ShoutBoxX</a></center> </td> </tr> </thead> <tbody id="collapseobj_forumhome_vbshout" style="$vbcollapse[collapseobj_forumhome_vbshout]"> <tr> <td class="alt1" align="left" width="100%"> <if condition="!$vboptions[shout_editor_position]"> <if condition="$bbuserinfo[userid] > 0"> <table width='100%' border='0' cellpadding='0' cellspacing='0'> <tr> <td width='100%'> <input type="text" name="shout" style="width: 90%"id="input_box" class="bginput" /> </td> <td style='white-space:nowrap' width='1%'> <input type="submit" value="Shout" class="button" /> <if condition="$vboptions[shout_extra_options]"> <input type='button' class='button' value='Clear' onclick='sb_Clear()' /> </if> </td> </tr> </table> </if> </if> <div id="vbshout" style="overflow:auto;height:84px;width:100%;"> Don't Wait For Me To Load... Get Posting! </div> <if condition="$vboptions[shout_editor_position]"> <if condition="$bbuserinfo[userid] > 0"> <div style="height: 2px"></div> <table width='100%' border='0' cellpadding='0' cellspacing='0'> <tr> <td width='100%'> <input type="text" name="shout" style="width: 90%" class="bginput" /> </td> <td style='white-space:nowrap' width='1%'> <input type="submit" value="Shout" class="button" /> <if condition="$vboptions[shout_extra_options]"> <input type='button' class='button' value='Clear' onclick='sb_Clear()' /> </if> </td> </tr> </table> </if> </if> </td> </tr> </tbody> </table> </form> <br /> <script type='text/javascript'> <!-- postingShout = false function requestShouts() { if (!postingShout) { ShoutRequest = new vB_AJAX_Handler(true) ShoutRequest.onreadystatechange(showShouts) ShoutRequest.send('vbshout.php', 'nocache=' + (5 * Math.random() * 1.33) ) } } function showShouts() { if (ShoutRequest) { if (ShoutRequest.handler.readyState == 4 && ShoutRequest.handler.status == 200 && ShoutRequest.handler.responseText) { Shouts = fetch_object('vbshout') Shouts.innerHTML = '<table cellpadding="1" cellspacing="3" border="0" width="95%" align="left">' + ShoutRequest.handler.responseText + '</table>' setTimeout('requestShouts()', 10000) <if condition="$vboptions[shout_messages_order]"> document.getElementById('vbshout').scrollTop = 99999; </if> } } } function sb_CollectHV(sbForm) { rString = '' inputObjs = sbForm.getElementsByTagName('input') for (i = 0; i < inputObjs.length; i++) { if (inputObjs[i].type == 'hidden' && inputObjs[i].value != '') { rString += '&' + inputObjs[i].name + '=' + PHP.urlencode(inputObjs[i].value) } } return rString } function postShout(formObj) { doShout = new vB_AJAX_Handler(true) doShout.onreadystatechange(postedShout) if (postingShout) { alert('Posting in progress..') return false } Shout = formObj.shout.value if (Shout.replace(/ /g, '') == '') { alert('You must enter a shout!') return false } doShout.send('vbshout.php', 'do=shout&shout=' + PHP.urlencode(Shout) + sb_CollectHV(document.forms['vbshoutform'])) sb_Clear() postingShout = true return false } function postedShout() { if (doShout.handler.readyState == 4 && doShout.handler.status == 200) { postingShout = false requestShouts() } } function sb_Input_SC(sProperty, setting) { eval('document.forms["vbshoutform"].shout.style.' + sProperty + ' = "' + setting + '"') eval('document.forms["vbshoutform"].' + sProperty + '.value = "' + setting + '"') } function sb_Clear() { document.forms["vbshoutform"].shout.value = '' return true; } requestShouts() --> </script> <!-- /ArcadeShout --> Find in the above code: Code:
<center><a href='vbshout.php?{$session['sessionurl_q']}do=archive'>ShoutBoxX</a></center> To change the size, find: Code:
<div id="vbshout" style="overflow:auto;height:84px;width:100%;"> All done! Everything should be working, and you will have a shoutbox on all pages! Download No files for download. |
Similar Mods
vBShout on all pages! | vBulletin 3.5 Add-ons |
Chat Modifications ZH - vBShout On All Pages | vBulletin 3.6 Add-ons |
Add-On Releases vBshout On All Pages | vBulletin 3.6 Add-ons |