Originally Posted by DjTaz
I hadnt tried that hack myself as its not something i want, but the code looks to be sound from what i can see - are you sure you did it exactly as it said ?
Step 1 is important
1) Change the hook location for 'vBShout [Template Alteration]' to: forumdisplay_complete
and in Step 2 basically you change the code to this :
Code:
$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";
}
}
}
}
function isBanned($user)
{
return (isBanned_Check($user['userid'], 'shout_banned_users') || isBanned_Check($user['usergroupid'], 'shout_banned_usergroups'));
}
function isBanned_Check($bash, $against)
{
global $vbulletin;
return in_array($bash, iif($vbulletin->options[$against], explode(',', $vbulletin->options[$against]), array()));
}
if ($vbulletin->options['shout_banned_perms'] == 2 && isBanned($vbulletin->userinfo))
{
$Shoutox = '';
}
else
{
eval('$Shoutbox = "' . fetch_template('forumhome_vbshout') . '";');
}
if ($forumid ==1)
{
$vbulletin->templatecache['FORUMDISPLAY'] = str_replace('$navbar', '$navbar' . ' $Shoutbox', $vbulletin->templatecache['FORUMDISPLAY']);
}
I changed the forumid to 1 on my forums and it works well when i clicked on Main Forum - but it wont work if you dont change the hook location ... well done to lierduh for that edit !
|