image
Inicio » PHP » Biblioteca de Código PHP » Biblioteca de código

Comunidad

TinyBoard 1.2

Simple message board working on MySQL database. It supports multiple levels, threads, search by topic or free text. SQL part is made up using PHPLib. Zip file includes a working example and images for toolbars.

Versión: 1.2
Requerimientos:   PHP 4, MySQL
Fecha: 02/06/2002
Puntación: [2.6/5] Puntuar
  Volver Volver

Código

<?
/*******************************************
* TinyBoard 1.2 *
* by Francesco Toscan, fathom@unixlover.com *
* Included classes: PHPLib *
* This code is released under GPL license *
********************************************/

$board_tbl_questions = "board_questions";
$board_tbl_answers = "board_answers";

function BoardToolsFull ($ID,$Depth,$FormerID) {
global $PHP_SELF, $type;
require("modules/board-toolsfull.html");
}

function BoardToolsPartial () {
global $PHP_SELF;
require("modules/board-toolspartial.html");
}

function BoardFooter () {
require("modules/board-footer.html");
}

/* Let's simply list messages in questions table and check whether there are replies */
function BoardIndex () {
global $db, $PHP_SELF, $board_tbl_questions, $board_tbl_answers;
$db->query("SELECT ID,Sender,Date,Topic,NumMsgs from $board_tbl_questions order by Date;");
$numrows = $db->num_rows();
if ($numrows != 0) {
echo "<table width="100%" border="0" bgcolor="#000000" cellspacing="0" cellpadding="1" align="center">";
echo "<tr><td>n";
echo "<table width="100%" border="0" bgcolor="#e6e6e6" cellspacing="0" cellpadding="0" align="center">";
echo "<tr>n";
echo "<th bgcolor="#333399" width="60%"><font size="-1" color="#FFFFFF">Topic</font>n";
echo "</th>n";
echo "<th bgcolor="#333399" width="20%"><font color="#FFFFFF" size="-1">Sender</font></th>n";
echo "<th bgcolor="#333399"><font color="#FFFFFF" size="-1">Date</font></th>n";
echo "</tr>n";
while ($db->next_record()) {
$ID = $db->f(ID);
$Sender = $db->f(Sender);
$Date = $db->f(Date);
$Topic = $db->f(Topic);
echo "<tr>n";
echo "<td width="60%"><font size="-2">n";
if ($db->f(NumMsgs) > 0) {
echo "<a href="$PHP_SELF?action=expand_thread&ID=$ID"><img src="pics/plus.gif" border="0" valign="middle"></a> ";
echo "<a href="$PHP_SELF?action=show_msg&ID=$ID&type=question">$Topic</a></font></td>n";
}
else {
echo "<img src="pics/stateful.gif" border="0"> ";
echo "<a href="$PHP_SELF?action=show_msg&ID=$ID&type=question">$Topic</a></font></td>n";
}
echo "<td width="20%" align="center"><font size="-2">$Sender</font></td>n";
echo "<td align="center"><font size="-2">$Date</font></td>n";
echo "</tr>n";
}
echo "</table>n";
echo "</td></tr></table>n";
}
else {
echo "No message found.n";
}
BoardFooter();
}

/* We want to add messages */
function BoardAddNewMsg() {
global $db, $CodSede, $Sender, $Text, $Topic, $PHP_SELF, $board_tbl_questions, $board_tbl_answers;
/* Let's make an unique ID for each message. */
$ID = uniqid(rand(),true);
$Date = date("Y/m/d");
/* Check whether ID is really unique */
$db->query("SELECT ID from $board_tbl_questions where ID="$ID";");
$numrows = $db->num_rows();
if ($numrows != 0) {
while ($numrows != 0) {
$ID = uniqid(rand(),true);
$numrows = $db->num_rows();
}
}
/* Insert query */
$query = "INSERT INTO $board_tbl_questions SET ID="$ID",Sender="$CodSede",Date="$Date",Text="$Text",Topic="$Topic";";
if ($db->query($query)) {
echo "<center>Message sent.<br>n";
echo "<a href="$PHP_SELF">Back</a></center>n";
}
else {
echo "Problem has occurred while sending message. Send failed.n";
}
BoardFooter();
}

/* Expanding threads by question ID */
function BoardThreadExpand($ID,$maxDepth) {
global $db, $PHP_SELF, $board_tbl_questions, $board_tbl_answers;
/* First of all the former message */
if ($maxDepth == 1) {
$db->query("SELECT ID,Sender,Date,Topic from $board_tbl_questions where ID="$ID";");
}
else {
$db->query("SELECT ID,Sender,Date,Topic from $board_tbl_answers where ID="$ID";");
}
$db->next_record();
$Sender = $db->f(Sender);
$Date = $db->f(Date);
$Topic = $db->f(Topic);
echo "<table width="100%" border="0" bgcolor="#000000" cellspacing="0" cellpadding="1" align="center">";
echo "<tr><td>n";
echo "<table width="100%" border="0" bgcolor="#e6e6e6" cellspacing="0" cellpadding="0" align="center">";
echo "<tr>n";
echo "<th bgcolor="#333399" width="60%"><font size="-1" color="#FFFFFF">Topic</font>n";
echo "</th>n";
echo "<th bgcolor="#333399" width="20%"><font color="#FFFFFF" size="-1">Sender</font></th>n";
echo "<th bgcolor="#333399"><font color="#FFFFFF" size="-1">Date</font></th>n";
echo "</tr>n";
echo "<tr>n";
echo "<td width="60%"><font size="-2">n";
echo "<a href="javascript: history.back(-1)">";
echo "<img src="pics/minus.gif" border="0" valign="middle"></a> ";
if ($maxDepth == 1) {
echo "<a href="$PHP_SELF?action=show_msg&ID=$ID&type=question">$Topic</a></font></td>n";
}
else {
echo "<a href="$PHP_SELF?action=show_msg&ID=$ID&type=answer">$Topic</a></font></td>n";
}
echo "<td width="20%" align="center"><font size="-2">$Sender</font></td>n";
echo "<td align="center"><font size="-2">$Date</font></td>n";
echo "</tr>n";
/* List all messages matching thread ID */
$query = "SELECT ID,Sender,Date,Topic,Depth,NumMsgs from $board_tbl_answers where FormerID="$ID" OR OrigID="$ID";";
$db->query($query);
$numMsgs = $db->num_rows();
while ($db->next_record()) {
if ($db->f(Depth) == $maxDepth) {
$ID = $db->f(ID);
$Sender = $db->f(Sender);
$Date = $db->f(Date);
$Topic = $db->f(Topic);
$Depth = $db->f(Depth);
echo "<tr>n";
echo "<td width="60%"><font size="-2">n";
if ($db->f(NumMsgs) > 0) {
$newDepth = $Depth +1;
echo "<a href="$PHP_SELF?action=expand_thread&ID=$ID&maxDepth=$newDepth"><img src="pics/plus.gif" border="0" valign="middle"></a> ";
echo "<a href="$PHP_SELF?action=show_msg&ID=$ID&type=answer">$Topic</a></font></td>n";
}
else {
echo "<img src="pics/node.gif" border="0"> ";
echo "<a href="$PHP_SELF?action=show_msg&ID=$ID&type=answer">$Topic</a></font></td>n";
}
echo "<td width="20%" align="center"><font size="-2">$Sender</font></td>n";
echo "<td align="center"><font size="-2">$Date</font></td>n";
echo "</tr>n";
}
}
echo "</table>n";
echo "</td></tr></table>n";
echo "<br>n";
echo "<font size="-2">Level <b>$maxDepth</b></font>n";
BoardFooter();
}

function BoardShowMsg ($ID,$type) {
global $db, $PHP_SELF, $board_tbl_questions, $board_tbl_answers;
if ($type == "question") {
$query = "SELECT ID,Sender,Topic,Date,Text from $board_tbl_questions where ID="$ID";";
}
else {
$query = "SELECT ID,Sender,Topic,Date,Text,FormerID,Depth from $board_tbl_answers where ID="$ID";";
}
$db->query($query);
$numrows = $db->num_rows();
if ($numrows > 0) {
$db->next_record();
$Sender = $db->f(Sender);
$Topic = $db->f(Topic);
$Date = $db->f(Date);
$Text = $db->f(Text);
$FormerID = $db->f(FormerID);
$Depth = $db->f(Depth);
BoardToolsFull($ID,$Depth,$FormerID);
require("modules/board-show.html");
}
else {
echo "Message ID $ID not found.n";
}
BoardFooter();
}

function BoardNewMsg () {
require("modules/board-newmsg.html");
}

function BoardAddReply ($ID) {
global $PHP_SELF, $db, $type, $Depth, $Sender, $Text, $Topic, $FormerID, $board_tbl_questions, $board_tbl_answers;
$newID = uniqid(rand(),true);
$Date = date("Y/m/d");
if ($type == "question") {
$query = "INSERT INTO $board_tbl_answers SET ID="$newID",OrigID="$ID",FormerID="$ID", Depth="1",Sender="$Sender",Date="$Date", Topic="$Topic",Text="$Text";";
$db->query($query);
$update = "UPDATE $board_tbl_questions SET NumMsgs=NumMsgs +1 WHERE ID="$ID";";
$db->query($update);
echo "<center>Message sent.<br>n";
echo "<a href="$PHP_SELF">Back</a></center>n";
}
else {
$Depth = $Depth +1;
$query = "INSERT INTO $board_tbl_answers SET ID="$newID", OrigID="$ID",FormerID="$FormerID", Depth="$Depth",Sender="$Sender", Date="$Date",Topic="$Topic", Text="$Text";";
$db->query($query);
$update = "UPDATE $board_tbl_answers SET NumMsgs=NumMsgs +1 WHERE ID="$ID";";
$db->query($update);
echo "<center>Message sent.<br>n";
echo "<a href="$PHP_SELF">Back</a></center>n";
}
BoardFooter();
}

function BoardReplyMsg($ID) {
global $PHP_SELF, $db, $FormerID, $Depth, $type, $CodSede, $board_tbl_questions, $board_tbl_answers;
if ($type == "question") {
$query = "SELECT Sender,Topic,Date,Text from $board_tbl_questions where ID="$ID";";
}
else {
$query = "SELECT Sender,Topic,Date,Text from $board_tbl_answers where ID="$ID";";
}
$db->query($query);
$numrows = $db->num_rows();
if ($numrows > 0) {
$db->next_record();
$Sender = $db->f(Sender);
$Topic = $db->f(Topic);
$Date = $db->f(Date);
$Text = $db->f(Text);
}
BoardToolsPartial();
require("modules/board-replymsg.html");
BoardFooter();
}

function BoardPerformSearch ($what) {
global $PHP_SELF, $db, $Topic, $Text, $board_tbl_questions, $board_tbl_answers;
$found = 0;
switch ($what) {
case topic:
$query = "SELECT ID,Sender,Topic,Date,NumMsgs from $board_tbl_questions WHERE Topic LIKE "%$Topic%";";
$db->query($query);
echo "<h4>Search results</h4>n";
BoardToolsPartial();
if ($db->num_rows() > 0) {
$found++;
echo "<table width="100%" border="0" bgcolor="#000000" cellspacing="0" cellpadding="1" align="center">";
echo "<tr><td>n";
echo "<table width="100%" border="0" bgcolor="#e6e6e6" cellspacing="0" cellpadding="0" align="center">";
echo "<tr>n";
echo "<th bgcolor="#333399" width="60%"><font size="-1" color="#FFFFFF">Topic</font>n";
echo "</th>n";
echo "<th bgcolor="#333399" width="20%"><font color="#FFFFFF" size="-1">Sender</font></th>n";
echo "<th bgcolor="#333399"><font color="#FFFFFF" size="-1">Date</font></th>n";
echo "</tr>n";
while ($db->next_record()) {
$ID = $db->f(ID);
$Sender = $db->f(Sender);
$Date = $db->f(Date);
$Topic = $db->f(Topic);
echo "<tr>n";
echo "<td width="60%"><font size="-2">n";
if ($db->f(NumMsgs) > 0) {
echo "<a href="$PHP_SELF?action=expand_thread&ID=$ID"><img src="pics/plus.gif" border="0" valign="middle"></a> ";
echo "<a href="$PHP_SELF?action=show_msg&ID=$ID&type=question">$Topic</a></font></td>n";
}
else {
echo "<img src="pics/stateful.gif" border="0"> ";
echo "<a href="$PHP_SELF?action=show_msg&ID=$ID&type=question">$Topic</a></font></td>n";
}
echo "<td width="20%" align="center"><font size="-2">$Sender</font></td>n";
echo "<td align="center"><font size="-2">$Date</font></td>n";
echo "</tr>n";
}
echo "</table>n";
echo "</td></tr></table>n";
}
else {
echo "No message found.n";
}
break;

case text:
$query = "SELECT ID,Topic,Sender,Date,NumMsgs from $board_tbl_questions WHERE Text LIKE "%$Text%";";
$db->query($query);
echo "<h4>Search results</h4>n";
BoardToolsPartial();
echo "<table width="100%" border="0" bgcolor="#000000" cellspacing="0" cellpadding="1" align="center">";
echo "<tr><td>n";
echo "<table width="100%" border="0" bgcolor="#e6e6e6" cellspacing="0" cellpadding="0" align="center">";
echo "<tr>n";
echo "<th bgcolor="#333399" width="60%"><font size="-1" color="#FFFFFF">Topic</font>n";
echo "</th>n";
echo "<th bgcolor="#333399" width="20%"><font color="#FFFFFF" size="-1">Sender</font></th>n";
echo "<th bgcolor="#333399"><font color="#FFFFFF" size="-1">Date</font></th>n";
echo "</tr>n";
if ($db->num_rows() > 0) {
$found++;
while ($db->next_record()) {
$ID = $db->f(ID);
$Sender = $db->f(Sender);
$Date = $db->f(Date);
$Topic = $db->f(Topic);
echo "<tr>n";
echo "<td width="60%"><font size="-2">n";
echo "<img src="pics/stateful.gif" border="0"> ";
echo "<a href="$PHP_SELF?action=show_msg&ID=$ID&type=question">$Topic</a></font></td>n";
echo "<td width="20%" align="center"><font size="-2">$Sender</font></td>n";
echo "<td align="center"><font size="-2">$Date</font></td>n";
echo "</tr>n";
}
echo "</table>n";
echo "</td></tr></table>n";
}
$query = "SELECT ID,Topic,Sender,Date,Depth,NumMsgs from $board_tbl_answers WHERE Text LIKE "%$Text%";";
$db->query($query);
if ($db->num_rows() > 0) {
$found++;
while ($db->next_record()) {
$ID = $db->f(ID);
$Sender = $db->f(Sender);
$Date = $db->f(Date);
$Topic = $db->f(Topic);
$Depth = $db->f(Depth);
echo "<tr>n";
echo "<td width="60%"><font size="-2">n";
echo "<img src="pics/stateful.gif" border="0"> ";
echo "<a href="$PHP_SELF?action=show_msg&ID=$ID&type=answer">$Topic</a></font></td>n";
echo "<td width="20%" align="center"><font size="-2">$Sender</font></td>n";
echo "<td align="center"><font size="-2">$Date</font></td>n";
echo "</tr>n";
}
echo "</table>n";
/* if ($found == "0") {
echo "<table width="100%" border="0" bgcolor="#e6e6e6" cellspacing="0" cellpadding="0" align="center">";
echo "<tr><td align="center">No message found</td></tr></table>n";
} */
echo "</td></tr></table>n";
}
break;

default:
echo "Missing search key.n";
break;
}
BoardFooter();
}

function BoardSearchMsg() {
global $PHP_SELF, $board_tbl_questions, $board_tbl_answers;
require("modules/board-searchmsg.html");
BoardFooter();
}

/* Use at your own risk :)) */
?>


Ejemplo

Ir al ejemplo

  Volver Volver







Comparte



 
Valid HTML 4.01!
Última modificación:31 de Agosto de 2017. Spain - Espa�a.
© 1998-2004 por . Todos los derechos reservados.