version 1.8, 2002/04/13 22:49:49 |
version 1.9, 2002/04/25 08:42:46 |
|
|
Module: WolBoard.php3 |
Module: WolBoard.php3 |
|
|
Author: Martin Karas a.k.a. Wolcano |
Author: Martin Karas a.k.a. Wolcano |
Date: 14.03.2002 |
Date: 24.04.2002 |
Mail: wolcano@pobox.sk |
Mail: wolcano@pobox.sk |
Version: v5.1 |
Version: v5.2 |
License: not chosen yet - this file is strictly private, |
License: not chosen yet - this file is strictly private, |
you may not copy/change/distribute it without authors |
you may not copy/change/distribute it without authors |
explicit premission. |
explicit premission. |
Description: Simple message-board. Can store data in files or |
Description: Simple message-board. Can store data in files or |
PEAR-compliant DB (not fully implemented yet) |
PEAR-compliant DB (not fully implemented yet) |
|
Copyright: Platon SDG http://www.platon.sk |
|
|
TODO: (see TODO file) |
TODO: (see TODO file) |
|
|
|
|
<user_line> :== <username>:<email>:<md5sum_of_password> |
<user_line> :== <username>:<email>:<md5sum_of_password> |
|
|
Database specification: |
Database specification: |
create table messages <unknown for now> |
See "sql/" files. |
|
|
create table users <unknown> |
|
|
|
|
|
Input parameters: |
Input parameters: |
$pagesize - # of messages per page |
$pagesize - # of messages per page |
$page - #th page |
$page - #th page |
|
|
$archive - archive file prefix |
$archive - archive file prefix |
$archive_no - index of archived file |
$archive_no - index of archived file |
$submit_type - submit button type |
$submit_type - submit button type |
|
$reply_to - index of message you want to reply (inserts quoted message) |
|
|
CHANGE LOG: |
CHANGE LOG: |
|
* 5.2 - added "reply" link |
* 5.1 - updated SQL queries |
* 5.1 - updated SQL queries |
- sprtinf()-ed and quote()-ed all SQL queries |
- sprtinf()-ed and quote()-ed all SQL queries |
- some bug fixes |
- some bug fixes |
|
|
|
|
|
|
// IMPORTANT CONSTANTS (change if needed) |
// IMPORTANT CONSTANTS (change if needed) |
$WB_version = "5.1"; |
$WB_version = "5.2"; |
$WB_name = "Wol's Message Board"; |
$WB_name = "Wol's Message Board"; |
$strip_slashes = 0; |
$strip_slashes = 0; |
$DEFAULT_HEAD_FRAME = ""; |
$DEFAULT_HEAD_FRAME = ""; |
|
|
$min_msgs_in_board = 50; |
$min_msgs_in_board = 50; |
|
|
// Database defaults |
// Database defaults |
$use_db = 1; |
$use_db = 0; |
$db_message_table = "wolboard_messages"; |
$db_message_table = "wolboard_messages"; |
$db_user_table = "wolboard_users"; |
$db_user_table = "wolboard_users"; |
//$db_host = "db.host.sk"; |
//$db_host = "db.host.sk"; |
|
|
); |
); |
} // create_link() |
} // create_link() |
|
|
|
function create_reply($msg_arr) { |
|
/* |
|
$msg_arr keys: time, name, message, email |
|
*/ |
|
$quote_string = "> "; |
|
$ret = $msg_arr["name"] . |
|
" (" . |
|
format_time($msg_arr["time"]) . |
|
")<br>\n$quote_string" . |
|
eregi_replace("\n", "\n$quote_string", $msg_arr["message"]) . |
|
"<br>"; |
|
return $ret; |
|
} // create_reply($msg_arr) |
|
|
function wait_read_lock($f, $max_wait = 9999) { |
function wait_read_lock($f, $max_wait = 9999) { |
$start = time(); |
$start = time(); |
while ((!flock($f, 1)) && ($start + $max_wait < time())) |
while ((!flock($f, 1)) && ($start + $max_wait < time())) |
|
|
} // get_time($str) |
} // get_time($str) |
|
|
function get_pass($str) { |
function get_pass($str) { |
return rawurldecode(trim(strtr(strrchr($str, ":"), ":", ";"))); |
return rawurldecode(trim(strtr(strrchr($str, ":"), ":", " "))); |
} // get_pass($str) |
} // get_pass($str) |
|
|
function get_email($str) { |
function get_email($str) { |
|
|
} |
} |
} |
} |
|
|
function show_data_form($user_file, $self, $nick, |
function show_data_form($user_file, $self, $nick, $message, |
$style, $WB_name, $autorefresh, $pagesize, $use_db = 0, $db_conn = 0) { |
$style, $WB_name, $autorefresh, $pagesize, $use_db = 0, $db_conn = 0) { |
// TODO !!!!!! |
// TODO !!!!!! |
global $headframe; |
global $headframe; |
Line 827 Current time is <?echo format_time(time( |
|
Line 841 Current time is <?echo format_time(time( |
|
?>" target="<?echo $bodyframe?>"> |
?>" target="<?echo $bodyframe?>"> |
<tr> |
<tr> |
<td align=center valign=middle rowspan=3> |
<td align=center valign=middle rowspan=3> |
<textarea name="message" cols=30 rows=5></textarea></td> |
<textarea name="message" cols=30 rows=<? |
|
echo (sizeof(explode("\n",$message)) + 5)?>><?echo $message?></textarea></td> |
<td align=center valign=middle><font face="Arial" color=#ffcc00 size=3>Nick</font></td> |
<td align=center valign=middle><font face="Arial" color=#ffcc00 size=3>Nick</font></td> |
<td align=left valign=middle> |
<td align=left valign=middle> |
<select name="nick"> |
<select name="nick"> |
Line 849 Current time is <?echo format_time(time( |
|
Line 864 Current time is <?echo format_time(time( |
|
</td> |
</td> |
</tr> |
</tr> |
<tr> |
<tr> |
<td valign=middle align=center colspan=2 rowspan=1><input type=submit name=submit_type value="Send"<? |
<td valign=middle align=center colspan=1 rowspan=1><input type=submit name=submit_type value="Send"<? |
// TODO redo the JS inline function (it doesn't clear the memo now) |
// TODO redo the JS inline function (it doesn't clear the memo now) |
if (!$show_body) |
if (!$show_body) |
echo " onClick=\"javascript:submit();message.value=''\""; |
echo " onClick=\"javascript:submit();message.value=''\""; |
|
|
?>></td> |
?>></td> |
</tr> |
|
<tr></tr> |
|
<tr> |
|
<td align=center> |
<td align=center> |
<a href="<?echo $self . "?" . link_replace(create_link(), "createuser", "1")?>">New nick</a> |
<a href="<?echo $self . "?" . link_replace(create_link(), "createuser", "1")?>">New nick</a> |
</td> |
</td> |
|
</tr> |
|
<tr></tr> |
|
<tr> |
<td align=right><? |
<td align=right><? |
if (!$style) |
if (!$style) |
echo "Board\t /</td><td><a href=$self?" . |
echo "Board\t /</td><td><a href=$self?" . |
Line 1004 Current time is <?echo format_time(time( |
|
Line 1019 Current time is <?echo format_time(time( |
|
|
|
function show_message($message, $style = 0) { |
function show_message($message, $style = 0) { |
global $self; |
global $self; |
|
global $headframe; |
switch($style) { |
switch($style) { |
case 1: |
case 1: |
// Chat message line |
// Chat message line |
Line 1026 Current time is <?echo format_time(time( |
|
Line 1042 Current time is <?echo format_time(time( |
|
break; |
break; |
default: |
default: |
// Board message style |
// Board message style |
// remark this /* so the modes switch |
// remark this /* to a //* and the modes will switch |
/* |
/* |
echo "<tr><td valign=top class=email>"; |
echo "<tr><td valign=top class=email>"; |
if ($message["email"] != "") |
if ($message["email"] != "") |
Line 1058 Current time is <?echo format_time(time( |
|
Line 1074 Current time is <?echo format_time(time( |
|
"nick", |
"nick", |
$message["name"]) . |
$message["name"]) . |
">delete</a>\n"; |
">delete</a>\n"; |
|
echo "<a href=$self?" . |
|
link_replace( |
|
create_link(), |
|
"reply_to", |
|
rawurlencode($message["name"]."#".$message["time"]) |
|
) . |
|
" target=$headframe>reply</a>\n"; |
echo "</td></tr><tr><td>"; |
echo "</td></tr><tr><td>"; |
echo "\t" . $message["message"] . "\n"; |
echo "\t" . $message["message"] . "\n"; |
echo "</td></tr>\n"; |
echo "</td></tr>\n"; |
Line 1186 Current time is <?echo format_time(time( |
|
Line 1209 Current time is <?echo format_time(time( |
|
if (good($archive_no) && !$use_db) |
if (good($archive_no) && !$use_db) |
$message_file = $old_messages_folder . $hist_file_prefix . $archive_no; |
$message_file = $old_messages_folder . $hist_file_prefix . $archive_no; |
|
|
|
// check for superuser view |
|
if (($nick == $root_name) && (md5($pass) == $root_md5_password)) |
|
$superuser = 1; |
|
else |
|
$superuser = 0; |
|
|
//header ("Cache-Control: no-cache, must-revalidate"); |
//header ("Cache-Control: no-cache, must-revalidate"); |
//header ("Pragma: no-cache"); |
//header ("Pragma: no-cache"); |
|
|
Line 1206 Current time is <?echo format_time(time( |
|
Line 1235 Current time is <?echo format_time(time( |
|
$message_file = $db_message_table; |
$message_file = $db_message_table; |
} |
} |
} |
} |
|
|
|
// Insert quoted REPLY TO message |
|
if (good($reply_to)) { |
|
$pivot = strrpos($reply_to, "#"); |
|
if (!($pivot === false)) { |
|
$tmp_name = substr($reply_to, 0, $pivot); |
|
$tmp_time = substr($reply_to, $pivot + 1); |
|
$messages = read_messages($message_file, $user_file, $superuser, |
|
$use_db, $db_conn); |
|
for ($i = 0; $i < sizeof($messages); $i++) { |
|
if (($messages[$i]["time"] == $tmp_time) && |
|
($messages[$i]["name"] == $tmp_name)){ |
|
$found = true; |
|
break; |
|
} |
|
} |
|
if ($found) { |
|
$tmp_msg = create_reply($messages[$i]); |
|
if (good($message)) { |
|
$tmp_msg .= $message; |
|
} |
|
$message = $tmp_msg; |
|
$message = strip_tags($message); |
|
} |
|
} |
|
} |
|
|
// CREATE NEW USER |
// CREATE NEW USER |
if ($createuser) { |
if ($createuser) { |
$mails = get_emails($user_file, $use_db, $db_handle); |
$mails = get_emails($user_file, $use_db, $db_handle); |
Line 1226 Current time is <?echo format_time(time( |
|
Line 1282 Current time is <?echo format_time(time( |
|
} |
} |
|
|
// WRITE MESSAGE TO DB |
// WRITE MESSAGE TO DB |
if (good($message) && good($submit_type)) { |
if (good($message) && good($submit_type) && $submit_type == "Send") { |
if (write_message($message_file, $user_file, $nick, $message, 0, |
if (write_message($message_file, $user_file, $nick, $message, 0, |
$old_messages_folder, $max_msgs_in_one_file, $min_msgs_in_board, |
$old_messages_folder, $max_msgs_in_one_file, $min_msgs_in_board, |
$hist_file_prefix, $allowed_tags, $use_db, $db_handle)) |
$hist_file_prefix, $allowed_tags, $use_db, $db_handle)) |
; // something failed, ignoring for now |
; // something failed, ignoring for now |
|
$message = ""; |
} |
} |
|
|
// DELETE MESSAGE FROM DB |
// DELETE MESSAGE FROM DB |
Line 1262 Current time is <?echo format_time(time( |
|
Line 1319 Current time is <?echo format_time(time( |
|
} |
} |
} |
} |
|
|
// check for superuser view |
|
if (($nick == $root_name) && (md5($pass) == $root_md5_password)) |
|
$superuser = 1; |
|
else |
|
$superuser = 0; |
|
|
|
// We don't want to show body, when other form is shown |
// We don't want to show body, when other form is shown |
|
|
Line 1306 Current time is <?echo format_time(time( |
|
Line 1358 Current time is <?echo format_time(time( |
|
</head> |
</head> |
<body bgcolor=black text=#C0C0C0 link=#888ff alink=#888ff vlink=#888ff> |
<body bgcolor=black text=#C0C0C0 link=#888ff alink=#888ff vlink=#888ff> |
<? |
<? |
show_data_form($user_file, $self, $nick, $style, $WB_name, |
show_data_form($user_file, $self, $nick, $message, $style, |
$autorefresh, $pagesize, $use_db, $db_handle); |
$WB_name, $autorefresh, $pagesize, $use_db, $db_handle); |
} |
} |
|
|
if ($show_body) { |
if ($show_body) { |