📄 class.discussion.php
字号:
}
else
{
$html.=" <a href='$PHP_SELF?$link_args&offset=$offset_page'>$page_num</a>";
}
}
}
if( $offset_next <= $num_rows_all )
{
$html.=" <b><a href='$PHP_SELF?$link_args&offset=$offset_next'>Next</a></b>";
}
$html.=" ]";
$html.="<br>";
return $html;
}
else
{
return false;
}
}
/**
* 生成链接到文章的html代码
*
* @param $id (整数) 文章的id
* @param $subject (字符串) 文章的主题
* @param $name (字符串) 文章的发表者
* @param $email (字符串) 发表者的email
* @param $date (字符串) 发表日期
* @return $html (字符串) 显示链接的html代码
*/
function show_link($id, $subject, $name, $email, $date)
{
global $PHP_SELF;
if($email)
{
$name = "<a href='mailto:$email'>$name</a>";//显示作者的email
}
$date = strtotime(substr($date,5,2).'/'.
substr($date,8,2).'/'.
substr($date,0,4).' '.
substr($date,11,5));
$date = date("M j, Y, g:i A", $date);//格式化日期
$html.= "$this->font2<li><a href='$PHP_SELF?view=$id'><b>$subject</b></a>";
$html.= " by $name - <font size='-1'>$date</font>\n";
if($this->admin)
{
$html.= "<a href='$PHP_SELF?delete=$id'>delete</a>\n";
}
$html.= "</font>\n";
return $html;
}
/**
* 显示一篇文章的内容
* @param $id (整数) 文章的id
* @param $subject (字符串) 文章的主题
* @param $name (字符串) 作者的名字
* @param $email (字符串)作者的email
* @param $date (字符串) 发表日期
* @param $body (字符串)文章的内容
* @return $html (字符串) 显示这些信息的html代码
*/
function show_post($id, $subject, $name, $email, $date, $body)
{
global $PHP_SELF;
if($email)
{
$name = "<a href='mailto:$email'>$name</a>";
}
$date = strtotime(substr($date,5,2).'/'.
substr($date,8,2).'/'.
substr($date,0,4).' '.
substr($date,11,5));
$date = date("M j, Y, g:i A", $date);
$html.= "<table border=0 cellpadding=2 cellspacing=0 width=500>\n";
$html.= "<tr><td colspan=2 bgcolor='$this->th_color'>";
$html.= "$this->font1<a href='$PHP_SELF?view=$id'><b>$subject</b></a>";
$html.= " by $name - <font size='-1'>$date</font>\n";
if($this->admin)
{
$html.= "<a href='$PHP_SELF?delete=$id'>delete</a>\n";
}
$html.= "</font></td></tr><tr>\n";
$html.= "<td> </td>\n";
$html.= "<td width='100%'>$this->font2 $body</font></td>\n";
$html.= "</tr></table><br>\n";
return $html;
}
/**
* 生成发表文章所用的表单
* @param $parent_id (整数) 父级文章的id
* @param $thread_id (整数) 线程id
* @param $subject (整数) 主题
* @return $html (字符串) 显示表单的html代码
*/
function show_form($parent_id=0, $thread_id=0, $subject='')
{
global $PHP_SELF;
if($parent_id)
{
$msg = 'Reply to this post';
}
else
{
$msg = 'Post a new message';
}
$html.= "<a name='reply'>\n";
if($this->use_javascript)
{
$html.= "<script>\n";
$html.= "function check_form(){\n";
$html.= " if(document.dform.subject.value.length < 1){\n";
$html.= " alert ('You must enter a subject!')\n";
$html.= " return false\n";
$html.= " }\n";
$html.= "}\n";
$html.= "</script>\n";
}
$html.= "<form name='dform' action='$PHP_SELF' method='post' onSubmit='return check_form()'>\n";
$html.= "<input type='hidden' name='post' value='post'>\n";
$html.= "<input type='hidden' name='parent_id' value='$parent_id'>\n";
$html.= "<input type='hidden' name='thread_id' value='$thread_id'>\n";
$html.= "<table border=0 cellpadding=3 cellspacing=0 bgcolor='$this->form_color'>\n";
$html.= "<tr><td colspan=2 bgcolor='$this->th_color'>$this->font1<b>$msg:</b></font></td></tr>\n";
$html.= "<tr><td>$this->font2 Name:</td><td><input type='text' size=35 name='name'></td></tr>\n";
$html.= "<tr><td>$this->font2 Email:</td><td><input type='text' size=35 name='email'></td></tr>\n";
$html.= "<tr><td>$this->font2 Subject:</td><td><input type='text' size=35 name='subject' value=\"$subject\"></td></tr>\n";
$html.= "<tr><td colspan=2>$this->font2 Message:</td></tr>\n";
$html.= "<tr><td colspan=2><textarea rows=10 cols=40 name=body wrap='virtual'></textarea></td></tr>\n";
$html.= "<tr><td colspan=2 align='right'><input type='submit' value=' Post '></td></tr>\n";
$html.= "</table>\n";
$html.= "</form>\n";
return $html;
}
/**
* 把文章内容添加到数据库中
*
* @param $parent_id (整形) 父级文章的id
* @param $thread_id (整形) 线程id
* @param $subject (整形) 主题
* @param $name (字符串) 作者名
* @param $email (字符串) 作者email
* @param $subject (字符串) 文章的主题
* @param $body (字符串) 文章内容
* @return $html (字符串) html代码
*/
function add_post($parent_id, $thread_id, $name, $email, $subject, $body)
{
global $HTTP_HOST;
if(! $name)
{
$name = '[anonymous]';
}
if(! $body)
{
$body = '[no text]';
}
if(! $subject)
{
$this->error = 'You must enter a subject!';
return false;
}
$bad_words = 'shit|piss|fuck|cunt|twat|pussy|cock|tits|cum';
$bw_replace = '[beep]'; //'!@#$%';
$name = eregi_replace($bad_words, $bw_replace, strip_tags(trim($name)));
$email = eregi_replace($bad_words, $bw_replace, strip_tags(trim($email)));
$subject = eregi_replace($bad_words, $bw_replace, strip_tags(trim($subject)));
$body = eregi_replace($bad_words, $bw_replace, strip_tags(trim($body)));
$body = str_replace("\n", '<br>', $body); // better than nl2br()
if($this->use_ubb_code)
{
include_once('ubb2html.inc.php');
$body = ubb2html($body);
}
if($this->dup_check)
{
$sql = "SELECT id FROM $this->table_name
WHERE parent_id='$parent_id'
AND name='$name' AND email='$email' AND subject='$subject' AND body='$body'";
$result = mysql_query($sql, $this->link_id);
if(mysql_num_rows($result))
{
$this->error = 'Duplicate posts are not allowed!';
return false;
}
}
$sql = "INSERT INTO $this->table_name (board_id, parent_id, thread_id, date, name, email, subject, body)
VALUES('$this->board_id', '$parent_id', '$thread_id', NOW(), '$name', '$email', '$subject', '$body')";
$result = mysql_query($sql, $this->link_id);
if(mysql_affected_rows($this->link_id))
{
if($this->mail_reply)
{
$sql = "SELECT DISTINCT email FROM $this->table_name
WHERE (thread_id='$thread_id' OR id='$thread_id')
AND email != '$email'";
$result = mysql_query($sql, $this->link_id);
$num_posts = mysql_num_rows($result);
while($record = mysql_fetch_object($result))
{
$to = $record->email;
if(ereg(".+@.+\\..+", $to))
{
mail($to, $subject, $body, "From: discussion@$HTTP_HOST");
}
}
}
return true;
}
else
{
$this->error = 'Could not add post!';
return false;
}
}
/**
*删除一篇文章,及其相关文章
*
* @param $id (整数) 要删除的文章的id
* @return true 表示成功, false 表示失败
*/
function delete_post($id)
{
$sql = "SELECT id FROM $this->table_name WHERE parent_id='$id'";
$result = mysql_query($sql, $this->link_id);
while($record = mysql_fetch_object($result))
{
$this->delete_post($record->id);
}
$sql = "DELETE FROM $this->table_name WHERE id='$id'";
$result = mysql_query($sql, $this->link_id);
if(mysql_affected_rows($this->link_id))
{
return true;
}
else
{
$this->error = 'Could not delete post!';
return false;
}
}
/**
* 生成显示错误信息的代码
* @param $msg (字符串) 错误信息,如果为空就使用 $this->error
* @return $html (字符串) html代码
*/
function error_msg($msg='')
{
if(! $msg) $msg = $this->error;
$html.= "<br>$this->font2<font color='$this->err_color'><b>$msg</b></font></font><br><br>";
return $html;
}
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -