pennylessz28
10-08-2005, 04:02 PM
Not my hack. I take no credit for this. But it isn't listed on this site, and it might as well be.
The following instructions will allow you to add vBShout v2.0 (http://www.vbulletin.org/forum/showthread.php?t=93097) by Zero Tolerance (http://www.vbulletin.org/forum/member.php?u=48782) as a fully collapsible module to your vBadvanced CMPS homepage v2.0.0, and remove it from your Forum Home [if you want]. Note, you must have both the vBShout product and CMPS installed with vBulletin 3.5.0 - it may work with Betas, but I really don't know.
Adding vBShout to CMPS:
1) Create a new template based module called 'Shoutbox' in CMPS [ACP > vBa CMPS > Add Module > Template].
2) In 'Column', choose 'Center Column'.
3) Set 'Active' and 'Update All Pages' to Yes [assuming you want it to be active, and update all pages].
4) In 'Template Content', paste the following code [this relies on you running your CMPS & vB in the same folder]. This will add a template to the selected Style called 'adv_portal_vbshout'.
<td class="alt1" align="left" width="100%">
<form action="vbshout.php?{$session['sessionurl']}" method="post" name="vbshoutform" onsubmit="return postShout(this)">
<input type='hidden' name='do' value='shout' />
<input type='hidden' name='color' />
<input type='hidden' name='fontFamily' />
<input type='hidden' name='fontWeight' />
<input type='hidden' name='textDecoration' />
<input type='hidden' name='fontStyle' />
<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%" 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>
<div style="height: 2px"></div>
</if>
</if>
<div id="vbshout" style="overflow:auto;height:{$vboptions['shout_box_height']}px;width:100%;">
Loading...
</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>
</form>
</td>
<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 getSelectionValue(eSelector)
{
return eSelector.options[eSelector.options.selectedIndex].value == 'Default' ? '' : eSelector.options[eSelector.options.selectedIndex].value
}
function sb_PropChange(eSelector, sProperty)
{
sb_Input_SC(sProperty, getSelectionValue(eSelector))
}
function sb_PropChange_Button_Value(sProperty)
{
trueValue = ''
switch (sProperty)
{
case 'fontWeight':
falseValue = 'bold'
break;
case 'textDecoration':
falseValue = 'underline'
break;
case 'fontStyle':
falseValue = 'italic'
break;
}
return (eval('document.forms["vbshoutform"].' + sProperty + '.value'))? trueValue : falseValue
}
function sb_PropChange_Button(cButton, sProperty)
{
if (cButton.value.match(/\*/))
{
cButton.value = cButton.value.replace(/\s+\*/, '')
}
else
{
cButton.value = cButton.value + ' *'
}
sb_Input_SC(sProperty, sb_PropChange_Button_Value(sProperty))
}
function sb_Smilie(code)
{
document.forms["vbshoutform"].shout.value += ' ' + code
return false
}
function sb_Clear()
{
document.forms["vbshoutform"].shout.value = ''
return true;
}
function sb_Smilies(cButton)
{
if (cButton.value.match(/\*/))
{
cButton.value = cButton.value.replace(/\s+\*/, '')
}
else
{
cButton.value = cButton.value + ' *'
}
document.getElementById('shout_emo').style.display = (document.getElementById('shout_emo').style.display == 'none')? '' : 'none'
}
requestShouts()
-->
</script>
5) In the 'Module Shell Template Options' section when adding a template, add the following URL in 'Module Link'.
http://www.mysite.com/vbshout.php?do=archive
The above, again assumes you have CMPS & vBa running in the same folder. Replace www.mysite.com with the address of your website.
If your CMPS & vB are not installed in the same folder, you will need to replace all instances of 'vbshout.php' in the template and in 'Module Link' with the path to where you have vBShout installed in relation to your CMPS. For example if you have CMPS installed in the root folder, and vBshout within a folder called 'forum' you would need to replace all instances of 'vbshout.php' with '/forum/vbshout.php'.
If you want to be lazy you can upload the .module file.
The following instructions will allow you to add vBShout v2.0 (http://www.vbulletin.org/forum/showthread.php?t=93097) by Zero Tolerance (http://www.vbulletin.org/forum/member.php?u=48782) as a fully collapsible module to your vBadvanced CMPS homepage v2.0.0, and remove it from your Forum Home [if you want]. Note, you must have both the vBShout product and CMPS installed with vBulletin 3.5.0 - it may work with Betas, but I really don't know.
Adding vBShout to CMPS:
1) Create a new template based module called 'Shoutbox' in CMPS [ACP > vBa CMPS > Add Module > Template].
2) In 'Column', choose 'Center Column'.
3) Set 'Active' and 'Update All Pages' to Yes [assuming you want it to be active, and update all pages].
4) In 'Template Content', paste the following code [this relies on you running your CMPS & vB in the same folder]. This will add a template to the selected Style called 'adv_portal_vbshout'.
<td class="alt1" align="left" width="100%">
<form action="vbshout.php?{$session['sessionurl']}" method="post" name="vbshoutform" onsubmit="return postShout(this)">
<input type='hidden' name='do' value='shout' />
<input type='hidden' name='color' />
<input type='hidden' name='fontFamily' />
<input type='hidden' name='fontWeight' />
<input type='hidden' name='textDecoration' />
<input type='hidden' name='fontStyle' />
<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%" 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>
<div style="height: 2px"></div>
</if>
</if>
<div id="vbshout" style="overflow:auto;height:{$vboptions['shout_box_height']}px;width:100%;">
Loading...
</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>
</form>
</td>
<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 getSelectionValue(eSelector)
{
return eSelector.options[eSelector.options.selectedIndex].value == 'Default' ? '' : eSelector.options[eSelector.options.selectedIndex].value
}
function sb_PropChange(eSelector, sProperty)
{
sb_Input_SC(sProperty, getSelectionValue(eSelector))
}
function sb_PropChange_Button_Value(sProperty)
{
trueValue = ''
switch (sProperty)
{
case 'fontWeight':
falseValue = 'bold'
break;
case 'textDecoration':
falseValue = 'underline'
break;
case 'fontStyle':
falseValue = 'italic'
break;
}
return (eval('document.forms["vbshoutform"].' + sProperty + '.value'))? trueValue : falseValue
}
function sb_PropChange_Button(cButton, sProperty)
{
if (cButton.value.match(/\*/))
{
cButton.value = cButton.value.replace(/\s+\*/, '')
}
else
{
cButton.value = cButton.value + ' *'
}
sb_Input_SC(sProperty, sb_PropChange_Button_Value(sProperty))
}
function sb_Smilie(code)
{
document.forms["vbshoutform"].shout.value += ' ' + code
return false
}
function sb_Clear()
{
document.forms["vbshoutform"].shout.value = ''
return true;
}
function sb_Smilies(cButton)
{
if (cButton.value.match(/\*/))
{
cButton.value = cButton.value.replace(/\s+\*/, '')
}
else
{
cButton.value = cButton.value + ' *'
}
document.getElementById('shout_emo').style.display = (document.getElementById('shout_emo').style.display == 'none')? '' : 'none'
}
requestShouts()
-->
</script>
5) In the 'Module Shell Template Options' section when adding a template, add the following URL in 'Module Link'.
http://www.mysite.com/vbshout.php?do=archive
The above, again assumes you have CMPS & vBa running in the same folder. Replace www.mysite.com with the address of your website.
If your CMPS & vB are not installed in the same folder, you will need to replace all instances of 'vbshout.php' in the template and in 'Module Link' with the path to where you have vBShout installed in relation to your CMPS. For example if you have CMPS installed in the root folder, and vBshout within a folder called 'forum' you would need to replace all instances of 'vbshout.php' with '/forum/vbshout.php'.
If you want to be lazy you can upload the .module file.