PDA

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" >&nbsp;<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).

jugo
06-03-2005, 02:21 PM
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" >&nbsp;<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?