oryginał: TBDev
poprawki: Piter
screen: tutajlista poprawek:
- polskie znaki
- wyświetlanie gifów: warn, ban i donator
- możliwość usuwania własnych wiadomości przez userów
- zablokowanie wysłania pustej wiadomości
- auto odświeżanie co minutę
dodaj do bazy:CREATE TABLE `shoutbox` (
`id` smallint(6) NOT NULL auto_increment,
`userid` smallint(6) NOT NULL default '0',
`username` varchar(25) NOT NULL default '',
`date` int(11) NOT NULL default '0',
`text` text NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1;utwórz plik
shoutbox.php i dodaj do niego kod:
<?
// Hanne's Shoutbox updated by DryKillLogic
// www.trackerx.com.ar -2007-
/*************************/
/* Poprawki Piter */
/* dla torrentinvite.org */
/* nie dla szmat */
/* z torrentmania */
/*************************/
require_once("include/bittorrent.php");
dbconn(false);
loggedinorreturn();
//deleting messages
if (isset($_GET['del']))
{
if (is_numeric($_GET['del']))
{
$query = "SELECT * FROM shoutbox WHERE id=".$_GET['del'];
$result = mysql_query($query);
}
else {
echo "<center>Invalid message ID</center>";
exit;}
$row = mysql_fetch_row($result);
if (get_user_class() >= UC_MODERATOR)
{
mysql_query("DELETE FROM shoutbox WHERE id=".$_GET['del']);
}
else
{
mysql_query("DELETE FROM shoutbox WHERE id=".$_GET['del']." AND userid=" . $CURUSER['id']);
}
}
?>
<html><head>
<script language=JavaScript>
<!--
//Disable right click script III- By Renigade (renigade@mediaone.net)
//For full source code, visit http://www.dynamicdrive.com
var message="";
///////////////////////////////////
function clickIE() {if (document.all) {(message);return false;}}
function clickNS(e) {if
(document.layers||(document.getElementById&&!document.all)) {
if (e.which==2||e.which==3) {(message);return false;}}}
if (document.layers)
{document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS;}
else{document.onmouseup=clickNS;document.oncontextmenu=clickIE;}
document.oncontextmenu=new Function("return false")
// -->
</script>
<title>ShoutBox</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<META HTTP-EQUIV=REFRESH CONTENT="60" URL=shoutbox.php">
<style type="text/css">
A {color: #000000; font-weight: bold; }
A:hover {color: #FF0000; text-decoration: underline overline;}
.small {font-size: 8pt; font-family: verdana; }
.date {font-size: 7pt;}
</style>
<STYLE>BODY {
SCROLLBAR-3DLIGHT-COLOR: #004E98;
SCROLLBAR-ARROW-COLOR: #004E98;
SCROLLBAR-DARKSHADOW-COLOR: white;
SCROLLBAR-BASE-COLOR: white
}
</STYLE>
</head>
<body bgcolor=#F5F4EA>
<?
/*
if ($CURUSER["chatpost"] == 'no')
{
print("<h2><br><center>You are banned.</center></h2>");
exit;
}
else
{
*/
if($_GET["sent"]=="yes")
if(!$_GET["shbox_text"])
{
$userid=$CURUSER["id"];
}
else
{
$userid=$CURUSER["id"];
$username=$CURUSER["username"];
$date=sqlesc(time());
$text=trim($_GET["shbox_text"]);
$text = stripslashes($text);
if (!empty($text))
mysql_query("INSERT INTO shoutbox (id, userid, username, date, text) VALUES ('id'," . sqlesc($userid) . ", " . sqlesc($username) . ", $date, " . sqlesc($text) . ")") or sqlerr(__FILE__, __LINE__);
print "<script type=\"text/javascript\">parent.document.forms[0].shbox_text.value='';</script>";
}
$res = mysql_query("SELECT * FROM shoutbox ORDER BY date DESC LIMIT 70") or sqlerr(__FILE__, __LINE__);
if (mysql_num_rows($res) == 0)
print("\n");
else
{
print("<table border=0 cellspacing=0 cellpadding=2 width='100%' align='left' class='small'>\n");
while ($arr = mysql_fetch_assoc($res))
{
$res2 = mysql_query("SELECT username,class,avatar,donor, title,enabled,warned FROM users WHERE id=$arr[userid]") or sqlerr(__FILE__, __LINE__);
$arr2 = mysql_fetch_assoc($res2);
$resowner = mysql_query("SELECT id, username, class FROM users WHERE id=$arr[userid]") or print(mysql_error());
$rowowner = mysql_fetch_array($resowner);
if ($rowowner["class"] == "7")
$usercolor= "<font color=#0033cc>" .htmlspecialchars($rowowner["username"]). "</font>";
if ($rowowner["class"] == "6")
$usercolor= "<font color=#9966ff>" .htmlspecialchars($rowowner["username"]). "</font>";
elseif ($rowowner["class"] == "5")
$usercolor= "<font color=#66ccff>" .htmlspecialchars($rowowner["username"]). "</font>";
elseif ($rowowner["class"] == "4")
$usercolor= "<font color=#ff00ff>" .htmlspecialchars($rowowner["username"]). "</font>";
elseif ($rowowner["class"] == "3")
$usercolor= "<font color=#ff9900>" .htmlspecialchars($rowowner["username"]). "</font>";
elseif ($rowowner["class"] == "2")
$usercolor= "<font color=#00ff00>" .htmlspecialchars($rowowner["username"]). "</font>";
elseif ($rowowner["class"] == "1")
$usercolor= "<font color=#330000>" .htmlspecialchars($rowowner["username"]). "</font>";
elseif ($rowowner["class"] == "0")
$usercolor= "<font color=#ff0000>" .htmlspecialchars($rowowner["username"]). "</font>";
if (get_user_class() >= UC_MODERATOR) {
$del="[<a href=/shoutbox.php?del=".$arr[id].">D</a>]";
}
else if ($arr['userid'] == $CURUSER['id']){
$del="[<a href=/shoutbox.php?del=".$arr[id].">D</a>]";
}
else
$del="";
print("<tr><td><font color=gray><span class='date'>".strftime("%d.%m %H:%M",$arr["date"]).":.</font>
$del
</span>
<a href='userdetails.php?id=".$arr["userid"]."' target='_blank'>$usercolor</a>" .
($arr2["donor"] == "yes" ? "<img src=pic/star.gif alt=\"Donator\">" : "") .
($arr2["warned"] == "yes" ? "<img src="."/pic/warned.gif alt=\"Warned\">" : "") .($arr2["enabled"] == "no" ? "<img src="."/pic/disabled.gif alt=\"Disabled\">" : "").format_comment(
" $arr[text]
"));
}
print("</table>");
}
?>
</body>
</html>w
index.php tam gdzie ma być wyświetlane dodaj:
<h2 class="index" align="center">ShoutBox</h2>
<script language=javascript>
function SmileIT(smile,form,text){
document.forms[form].elements[text].value = document.forms[form].elements[text].value+" "+smile+" ";
document.forms[form].elements[text].focus();
}
</script>
<table width='100%' border='1' cellspacing='0' cellpadding='1'><tr><td class=text>
<iframe src='shoutbox.php' width='100%' height='120' frameborder='0' name='sbox' marginwidth='0' marginheight='0'></iframe><br><br>
<form action='shoutbox.php' method='get' target='sbox' name='shbox' onSubmit=\"mySubmit()\">
<center>Wiadomo¶æ: <input type='text' maxlength=180 name='shbox_text' size='100'> <input type='submit' value='Wy¶lij'> <input type='hidden' name='sent' value='yes'><input type="submit" name="refresh" value="Odswie¿" />
<center><a href="javascript: SmileIT(';-)','shbox','shbox_text')"><img src=pic/smilies/wink.gif width="20" height="20" border=0></a><a href="javascript: SmileIT(':-P','shbox','shbox_text')"><img src=pic/smilies/tongue.gif width="20" height="20" border=0></a><a href="javascript: SmileIT(':-)','shbox','shbox_text')"><img border=0 src=pic/smilies/smile1.gif></a><a href="javascript: SmileIT(':w00t:','shbox','shbox_text')"><img border=0 src=pic/smilies/w00t.gif></a><a href="javascript: SmileIT(':-D','shbox','shbox_text')"><img border=0 src=pic/smilies/grin.gif></a><a href="javascript: SmileIT(':lol:','shbox','shbox_text')"><img border=0 src=pic/smilies/laugh.gif></a><a href="javascript: SmileIT(':-/','shbox','shbox_text')"><img border=0 src=pic/smilies/confused.gif></a><a href="javascript: SmileIT(':-(','shbox','shbox_text')"><img border=0 src=pic/smilies/sad.gif></a><a href="javascript: SmileIT(':-O','shbox','shbox_text')"><img src=pic/smilies/ohmy.gif border=0></a><a href="javascript: SmileIT('8-)','shbox','shbox_text')"><img src=pic/smilies/cool1.gif width="18" height="18" border=0></a><a href="javascript: SmileIT(':sly:','shbox','shbox_text')"><img src=pic/smilies/sly.gif width="18" height="18" border=0></a><a href="javascript: SmileIT(':greedy:','shbox','shbox_text')"><img src=pic/smilies/greedy.gif width="18" height="18" border=0></a><a href="javascript: SmileIT(':weirdo:','shbox','shbox_text')"><img src=pic/smilies/weirdo.gif width="18" height="18" border=0></a><a href="javascript: SmileIT(':sneaky:','shbox','shbox_text')"><img src=pic/smilies/sneaky.gif width="18" height="18" border=0></a><a href="javascript: SmileIT(':shit:','shbox','shbox_text')"><img src=pic/smilies/shit.gif width="18" height="18" border=0></a><a href="javascript: SmileIT(':?:','shbox','shbox_text')"><img src=pic/smilies/question.gif width="18" height="18" border=0></a><a href="javascript: SmileIT(':!:','shbox','shbox_text')"><img src=pic/smilies/excl.gif width="18" height="18" border=0></a></center>
</td></tr></table></form>dodatkowo w
cleanup.php jeżeli chcecie aby kasowało wiadomości (tutaj po 2 dniach):
//delete from shoutbox after 2 days
$secs = 2*86400;
$dt = sqlesc(get_date_time(gmtime() - $secs));
mysql_query("DELETE FROM shoutbox WHERE " . time() . " - date > $secs") or sqlerr(__FILE__, __LINE__);