View Full Version : ShoutBox - vBa CMPS Module
DGTLMIK
05-26-2005, 04:29 PM
I have the Shoutbox Hack found HERE (https://vborg.vbsupport.ru/showthread.php?t=68861) installed and running and I would like to make a vBadvanced CMPS Module similar to the "Latest Forum Topics" Module but only display the latest 5 Shouts (see attached).
I have the 'Shout Now' button working correctly, now I just need to know how to display the Last 5 Shouts, here is my Template Code so far:
<table align="center" border="0" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" class="tborder" width="100%">
<tr>
<td class="tcat"><span class="smallfont"><b>$vba_options[portal_blockbullet] <a href="$vboptions[bburl]/shoutbox.php?">ShoutBox</a></b></span></td>
</tr>
<tr>
<td class="$getbgrow"><span class="smallfont">
<b><u>Username</u></b>
<br />
Shout Text
<br />
<i>Timestamp</i>
<br /><br />
<b><u>Username</u></b>
<br />
Shout Text
<br />
<i>Timestamp</i>
<br /><br />
<b><u>Username</u></b>
<br />
Shout Text
<br />
<i>Timestamp</i>
<br /><br />
<b><u>Username</u></b>
<br />
Shout Text
<br />
<i>Timestamp</i>
<br /><br />
<b><u>Username</u></b>
<br />
Shout Text
<br />
<i>Timestamp</i>
<br /><br />
</span>
<center>
<form action="$vboptions[bburl]/shoutbox.php?" method="post"><input type="hidden" name="do" value="addshout"><input type="text" class="bginput" name="message" value="" size="25" ><br />
<span class="smallfont">
<i>(50 Character Limit)</i>
</span><br /><br />
<input type="submit" name="submit" value="Shout Now" class="bginput" accesskey="s"></form>
</center>
</td>
</tr>
</table>
<br />
I prefer NOT to use iFrames if at all possible.
Thanks in advance!
DGTLMIK
06-03-2005, 01:36 PM
Making progress...
Here is my PHP code:
<?php
$latestshouts = $DB_site->query("
SELECT s.*, u.username AS absusername
FROM " . TABLE_PREFIX . "shoutbox_posts s
LEFT JOIN " . TABLE_PREFIX . "user u ON (s.userid=u.userid)
WHERE (deleted='0' OR deleted IS NULL)
ORDER BY time DESC LIMIT 5
");
while ($shoutbox_post=$DB_site->fetch_array($latestshouts)) {
$shoutbox_post_user = $shoutbox_post['username'];
$shoutbox_post_text = $shoutbox_post['text'];
$shoutbox_text = parse_bbcode2("$shoutbox_post_text", $vboptions['shoutbox_allowhtml'], $vboptions['shoutbox_allowimage'], $vboptions['shoutbox_allowsmilies'], $vboptions['shoutbox_allowbbcode'], 0, 1);
$shoutbox_post_date = vbdate($vboptions['dateformat'], $shoutbox_post['time'], 1);
$shoutbox_post_time = vbdate($vboptions['timeformat'], $shoutbox_post['time']);
}
eval('$home[$mods[\'modid\']][\'content\'] .= "' . fetch_template('adv_portal_shoutbox') . '";');
?>
Here is my new Template Code:
<table align="center" border="0" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" class="tborder" width="100%">
<tr>
<td class="tcat"><span class="smallfont"><b>$vba_options[portal_blockbullet] <a href="$vboptions[bburl]/shoutbox.php?">Shoutbox</a></b></span></td>
</tr>
<if condition="!$bbuserinfo['userid']">
<tr><td class="$getbgrow"><span class="smallfont">Registered Members can use the Shoutbox here.<br /><br /><phrase 1="$vboptions[bburl]">$vbphrase[not_a_member_yet_register_now]</phrase></span></td></tr>
<else />
<tr><td class="alt2"><span class="smallfont">
<u>$shoutbox_post_user</u>:<br />
$shoutbox_text<br />
<i>$shoutbox_post_date @ $shoutbox_post_time</i>
</span></td></tr>
<tr><td class="alt1" align="center">
<form action="$vboptions[bburl]/shoutbox.php?" method="post"><input type="hidden" name="do" value="addshout"><input type="text" class="bginput" name="message" value="" size="17" > <input type="submit" name="submit" value="Go" class="bginput" accesskey="s"></form><br />
<span class="smallfont">
<i>(50 Character Limit)</i>
</span></td></tr>
</if>
</table>
<br />
Now, the problem is it only displays the 5th Latest Shout. I want it to display the Latest 5 Shouts in alternating colors like the Latest Forum Topics Module does (see attachment).
I think your code has to look something like this:
<?php
$latestshouts = $DB_site->query("
SELECT s.*, u.username AS absusername
FROM " . TABLE_PREFIX . "shoutbox_posts s
LEFT JOIN " . TABLE_PREFIX . "user u ON (s.userid=u.userid)
WHERE (deleted='0' OR deleted IS NULL)
ORDER BY time DESC LIMIT 5
");
while ($shoutbox_post=$DB_site->fetch_array($latestshouts)) {
$shoutbox_post_user = $shoutbox_post['username'];
$shoutbox_post_text = $shoutbox_post['text'];
$shoutbox_text = parse_bbcode2("$shoutbox_post_text", $vboptions['shoutbox_allowhtml'], $vboptions['shoutbox_allowimage'], $vboptions['shoutbox_allowsmilies'], $vboptions['shoutbox_allowbbcode'], 0, 1);
$shoutbox_post_date = vbdate($vboptions['dateformat'], $shoutbox_post['time'], 1);
$shoutbox_post_time = vbdate($vboptions['timeformat'], $shoutbox_post['time']);
eval('$shoutboxbits .= "' . fetch_template('adv_portal_shoutboxbits') . '";');
}
eval('$home[$mods[\'modid\']][\'content\'] .= "' . fetch_template('adv_portal_shoutbox') . '";');
?>
adv_portal_shoutbob
<table align="center" border="0" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" class="tborder" width="100%">
<tr>
<td class="tcat"><span class="smallfont"><b>$vba_options[portal_blockbullet] <a href="$vboptions[bburl]/shoutbox.php?">Shoutbox</a></b></span></td>
</tr>
<if condition="!$bbuserinfo['userid']">
<tr><td class="$getbgrow"><span class="smallfont">Registered Members can use the Shoutbox here.<br /><br /><phrase 1="$vboptions[bburl]">$vbphrase[not_a_member_yet_register_now]</phrase></span></td></tr>
<else />
$shoutboxbits
<tr><td class="alt1" align="center">
<form action="$vboptions[bburl]/shoutbox.php?" method="post"><input type="hidden" name="do" value="addshout"><input type="text" class="bginput" name="message" value="" size="17" > <input type="submit" name="submit" value="Go" class="bginput" accesskey="s"></form><br />
<span class="smallfont">
<i>(50 Character Limit)</i>
</span></td></tr>
</if>
</table>
<br />
adv_portal_shoutboxbits
<tr><td class="alt2"><span class="smallfont">
<u>$shoutbox_post_user</u>:<br />
$shoutbox_text<br />
<i>$shoutbox_post_date @ $shoutbox_post_time</i>
</span></td></tr>
I think....someone please correct me if I'm wrong.
As for the alternating colors, I can't remember the code for that off the top of my head, but if you look through the latest posts block it should be in there.
DGTLMIK
06-03-2005, 02:33 PM
jugo, you rock! That did the trick, thank you very much! :up:
Chris Croft
06-08-2005, 12:31 PM
WHats the SQL Query that I can run for the database?
xfaethorx
06-09-2005, 06:32 PM
this is great but i'd like to get this to refresh in an iframe just the same way the main shoutbox works. What would i have to add to do that?
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.