View Single Post
  #1  
Old 12-12-2009, 02:42 AM
Arianna's Avatar
Arianna Arianna is offline
Dev Staff
 
Join Date: Sep 2009
Posts: 334
Gender: Female
Credits: 21,754
Arianna will become famous soon enough
Default Shoutbox Mod ~ Finished. :) [[Also converts BBcode]]

Excuse me if this has been posted before. xD But I have a mod which I've just made. It's really simple, just a new database and a page, so tell me if you find any errors.
Run this SQL query:
Code:
CREATE TABLE  `yoursite_adopts`.`adopts_shoutbox` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT ,
`user` VARCHAR( 50 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL ,
`date` VARCHAR( 20 ) NOT NULL ,
`comment` VARCHAR( 10000 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL ,
PRIMARY KEY (  `id` )
) ENGINE = MYISAM
Now make a file called 'shoutbox.php' with these contents...
PHP Code:
<?php

// **********************************************************************
// Rusnak PHP Adoptables Script
// Copyright 2009 Brandon Rusnak
// For help and support: http://www.rusnakweb.com/forum/
//
// Redistribution prohibited without written permission
// **********************************************************************

// Wake the sleeping giant

// **********************************************************************
// Basic Configuration Info
// **********************************************************************

include("inc/functions.php");
include(
"inc/config.php");
include(
"inc/bbcode.php");

$themeurl grabanysetting("themeurl");

// **********************************************************************
// Define our top links by calling getlinks()
// **********************************************************************

$links getlinks();

// **********************************************************************
// Define our ads by calling getads()
// **********************************************************************

$ads getads("any");

// **********************************************************************
// Grab any dynamic article content from the content table
// **********************************************************************

$pagecontent getsitecontent("index");
$article_title $pagecontent[title];
$article_content $pagecontent[content];
$article_content nl2br($article_content);

// **********************************************************************
// Grab any settings that we will need for the current page from the DB
// **********************************************************************

$browsertitle grabanysetting("browsertitle");
$sitename grabanysetting("sitename");
$slogan grabanysetting("slogan");

// **********************************************************************
// Check and see if the user is logged in to the site
// **********************************************************************

$loginstatus logincheck();
$isloggedin $loginstatus[loginstatus];
$loggedinname $loginstatus[username];

// **********************************************************************
// End Prepwork - Output the page to the user
// **********************************************************************

$article_title "Shoutbox";
$article_content "<p>Welcome to our shoutbox. Keep it G-rated and nice. You will be <b>banned</b> if you do not obey these rules. Thanks.</p>";

$article_content $article_content."<div class='enclosecomments'>";
$query "SELECT * FROM ".$prefix."shoutbox ORDER BY id DESC LIMIT 0, 10";
$result mysql_query($query);
$num mysql_numrows($result);

//Loop out code
$i=0;
while (
$i $num) {
    
$id=@mysql_result($result,$i,"id");
    
$user=@mysql_result($result,$i,"user");
    
$date=@mysql_result($result,$i,"date");
    
$nolinecomment=@mysql_result($result,$i,"comment");
    
$nolinecomment bbconvert($nolinecomment);
    
$comment=nl2br($nolinecomment);
    
$commentdiv "<div class='comment' style='width:94%;padding:2%;background-color:aliceblue;margin-bottom:5px;'><div class='userdate' style='width:50%;height:25px;color:red;'>".$user." - ".$date."</div>".$comment."</div>";
    
$article_content $article_content.$commentdiv;
    
$i++;
}
$article_content $article_content."</div><p>Post a shoutout!</p>";
$article_content $article_content."<form action='shoutbox.php' method='post'>
This here is where you write the comment. Listen... keep it G-rated. Or we'll just delete the comment.
<textarea rows='15' cols='60' name='comment' wrap='physical' ></textarea><br>
<input type='submit' /></form>"
;

//here the user posts a comment
$comment $_POST["comment"];
if (
$comment != "") {
    
$date date("Y-m-d H:i:s");
    
// $date = "10-23-3 21:02:35";
    
$user $loggedinname;
    if (
$isloggedin!="yes") {
        
$user "Guest";
        }
    
$comment $comment;
    
mysql_query("INSERT INTO ".$prefix."shoutbox VALUES ('', '$user', '$date', '$comment')");
    
$article_content $article_content."<p>Your comment has been posted. Click <a href='shoutbox.php'>here</a> to view it.</p>";
}
else {
    
$article_content $article_content."Post a shout out, if you'd like.";
    }
// **********************************************************************
// Begin Template Definition
// **********************************************************************

//Define our current theme
$file $themeurl;

// Do the template changes and echo the ready template
$template file_get_contents($file);

$template replace(':ARTICLETITLE:',$article_title,$template);
$template replace(':ARTICLECONTENT:',$article_content,$template);
$template replace(':ARTICLEDATE:',$article_date,$template);

$template replace(':BROWSERTITLE:',$browsertitle,$template);
$template replace(':SITENAME:',$sitename,$template);

//Define our links
$template replace(':LINKSBAR:',$links,$template);

//Get the content for the side bar...
$sidebar getsidebar();
$template replace(':SIDEFEED:',$sidebar,$template);

// Okay - now what we're going to do is get the style switchery thing
$style getstyle();
$template replace(':STYLESHEET:',$style,$template);

//Get the ad content...
$template replace(':ADS:',$ads,$template);

//Get the slogan info
$template replace(':SLOGAN:',$slogan,$template);


echo 
$template;

// **********************************************************************
// End Template Definition
// **********************************************************************
?>
It works. :) Guests will post as "Guest". You can, of course, edit the code a bit so only members may post.

EDIT: PLEASE READ Sea's post below this. Shoutboxes take quite a lot of server load. I don't know much about it, but Sea does, so listen to her. :)
Reply With Quote