65.9K
CodeProject 正在变化。 阅读更多。
Home

StP 论坛

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.13/5 (8投票s)

2002年3月18日

8分钟阅读

viewsIcon

90992

downloadIcon

1869

为您的网站提供基于ASP的论坛。

Sample Image - stpforum.jpg

引言

我一直在寻找一个ASP论坛添加到我的网站上,也找到了一些。有的我不喜欢外观,有的很难集成到我的网站(几乎每页都需要修改),所以我就决定自己做一个论坛。我在网上搜索了各种不同脚本语言的论坛,然后列出了我希望在我的论坛中看到的基本功能。请记住,这不是一个像CodeProject上你看到的留言板,这是一个论坛。虽然我仍然不确定它们之间的区别 :) 在上面的图片中,你可以看到论坛的截图。如果你想看在线演示,请访问我的网站

好的,让我向你介绍论坛的功能(我称之为StP论坛,StP是我昵称的缩写,全称是StPatrick *s*)

特点

以下是StP论坛的主要功能列表

  • 会员系统(还跟踪每个会员的总发帖数)
  • 匿名发帖(可在配置文件中开启/关闭)
  • 版主(目前每个论坛只有一个版主)。他们可以锁定/解锁其论坛中的主题,删除帖子。
  • 表情符号替换为图片
  • 支持伪代码([b],[i] 等...)
  • 论坛搜索
  • 不良词语过滤器

未来将添加更多功能。如果你有什么想法,请告诉我 :)

文件列表

论坛中的所有文件都可以用作包含文件到你的主文件中。就像你`<BODY>`标签内的文本一样。

  • config.asp - 配置文件
  • admin_inc.asp - 管理文件
  • forum_inc.asp - 显示论坛和主题的主文件
  • login_inc.asp - 登录表单和代码
  • mail_inc.asp - 发送邮件给会员的表单
  • members_inc.asp - 会员列表和特定会员信息页面
  • post_inc.asp - 创建新主题、帖子或编辑现有帖子的表单。
  • ppreview.asp - 提交前预览帖子的独立文件
  • profile_inc.asp - 用于更改个人资料和注册的表单
  • search_inc.asp - 搜索表单和搜索结果页面

所有带有“_inc”的文件通常是用于将它们包含到你自己的文件中,使用SSI(服务器端包含)在你想要显示它们的地方。这让你有机会根据自己的需求定制页面,拥有自己的背景、格式、附加文本或其他任何内容。如果你想要它们保持原样,只需创建空的ASP页面,并在你的`BODY`标签内包含相应的文件。请记住配置你的论坛。至少需要更改数据库连接字符串才能使论坛正常工作。

配置

要配置你的论坛,请使用config.asp文件。在里面你会发现一些可以更改的变量。尽管我认为它们都描述得很清楚,但我还是在这里逐一说明。

数据库选项

第一个也是最主要的变量是ConnString。你需要将其设置为你的数据库连接字符串,例如“DSN=MyDB”或无DSN连接。

外观
  • HeadCellColor - 论坛头部的背景颜色
  • HeadFontColor - 论坛头部的文本颜色
  • CategoryCellColor - 分类单元格的背景颜色(`TD`标签)
  • CategoryFontColor - 分类的文本颜色
  • ForumCellColor - 论坛其余部分的背景颜色。也用作回复的背景
  • ForumCellAltColor - 论坛的备用背景颜色。用作主题文本和行高亮的背景(如果启用)
  • ForumFontColor - 文本颜色
  • HighlightRows - TrueFalse。决定鼠标悬停时是否高亮显示行。
文件和目录
  • ImagesDir - 存储所有图片的文件夹。如果图片与文件在同一目录,则留空。最终的图片路径计算方式为:ImagesDir + ImageName
  • ForumFile - 主要论坛文件名,包含forum_inc.asp
  • MembersFile, AdminFile, EmailFile, PostFile, LoginFile, ProfileFile, SearchFile - 分别用于会员、管理、电子邮件表单、新主题/帖子、登录表单、个人资料/注册、搜索的文件名,其中包含相应的文件。这些不是包含文件名,而是你自己的文件名。
  • NewTopicImage, ReplyImage, LoginImage, RegisterImage, ProfileImage, SearchImage - 对应链接的图片,顾名思义。可以设置为""(空字符串)。在这种情况下,将使用文本链接。
  • MessageImages - 包含所谓的“消息图片”的字符串(以“|”作为分隔符)。当有人发帖时,他可以选择一个图片显示在其主题旁边(或不显示任何图片)。
表情符号
  • UseSmiles - 布尔值(`True/False`),决定是否在显示时将表情符号转换为图片。如果设置为`False`,其他表情符号参数将无关紧要。
  • SmiliesImages - 表情符号的图片(文件名)。这是一个字符串,不同文件之间以“|”分隔。例如:smile.gif|biggrin.gif|confused.gif
  • SmiliesTypes - 要替换为图片的文本。字符串,不同类型之间以“|”分隔。例如::)|:-D|:confused:
  • SmiliesDescriptions - 每个表情符号的简短描述,将在帖子表单中显示为工具提示。
不良词语
  • BadWordsFilter - 布尔值,决定是否使用不良词语过滤器。要使用它,请设置为`True`。
  • BadWords - 包含不良词语的字符串,并以“|”作为分隔符。此处不提供示例,你懂的 :)
HTML和伪代码
  • AllowHTMLLevel - HTML级别。0表示所有HTML都会从帖子中被剥离(将所有开闭括号(<>)转换为其HTML形式)。1表示只限制某些标签,请参阅RestrictedTags。2 - 所有HTML都可用并按原样显示。
  • RestrictedTags - 如果AllowHTMLLevel设置为1,则此字符串(以“|”分隔)中的标签将从帖子中剥离。例如:“SCRIPT|IFRAME|EMBED|FRAME”
  • AllowPseudoCode - 布尔值,指示论坛是否允许使用伪代码。如果为`False`,则所有伪代码将按原样显示。

当前版本论坛支持的伪代码

  • [b] - 加粗文本
  • [i] - 斜体文本
  • [u] - 下划线文本
  • [s] - 删除线文本
  • [center],[right] - 文本居中/右对齐
  • [quote] - 转换为`BLOCKQUOTE`标签
  • [color=*] - 转换为`<FONT color="*">`标签
  • [size=*] - 字体大小,替换为`<FONT size="*">`
  • [url=*]**[/url] - 定义URL,替换为`<A href="*" target=_blank>**</A>`
  • [mail=*]**[/mail] - 与URL相同,但会在*前添加`mailto:`
Session变量
  • USER_LEVEL - 设置存储会员级别的Session变量的名称。
  • USER_NAME - 包含会员姓名的Session变量的名称。
其他参数
  • ForumName - 你的论坛名称。不要设置为空字符串,因为它用于后向导航(从主题到论坛列表)
  • AllowAnonymous - 布尔值。指示是否允许匿名发帖,还是用户必须拥有帐户。
  • AnonymousUserName - 如果匿名帖子被发布,在显示时,这会显示在用户名下方。

你会注意到配置文件顶部有一个小的`STYLE`标签。其中定义了`BLOCKQUOTE`标签以及一个名为SmartLink的类,它代表主题/论坛的名称。当某个论坛有新帖子时,链接会发生变化,用户会看到论坛/主题有新帖子。默认情况下,新主题设置为粗体,而没有新帖子的论坛/主题则为常规。你可以将其更改为不同的颜色,例如。

此外,配置文件中还有许多其他内容你可以查看。例如字段的序数。除非你知道你在做什么,否则不要更改它们。大多数数据库操作是使用字段的序数而不是它们的名称来提高数据库访问速度。但在某些地方不是这样,所以这并不是一个开始更改表中字段名称的指南 :)

还有一件事你可能想改变的是电子邮件的发送方式。查看配置文件末尾,你会看到一个名为MailClient的小类。默认情况下,使用CDO.Message发送电子邮件。你可能想使用其他东西,比如ASPMail或其他。只需更改progID,并确保你的组件具有相同的方法和参数。

快速更改伪代码指南

如果你想添加新的伪代码,并且熟悉正则表达式,那么你可以轻松做到。查看配置文件中名为FormatText的函数。你会看到几行看起来相同的代码,例如

retval = ReplacePCode(retval, "", "", "<B>$1</B>")

这是什么意思?这是一个简单的替换。`[b]`和`[/b]`将被替换为`<B>`和`</B>`,它们之间的文本将替换`$1`。这里没有新东西,它只是正则表达式的一种简化形式。

现在来说更复杂的事情,比如`[color]`代码。看看定义它的那一行

retval = ReplacePCode(retval, "[color=(.+)]", "[/color]", _
                                        "<FONT color=$1>$2</FONT>")

(.+)”表示此处至少应有一个任意字符,该文本(此处为颜色)将替换第二个参数中的`$1`。所有其他文本,在标签之间,将替换第二个参数中的`$2`。

对于从未用过正则表达式的人来说,这可能看起来很复杂,但你总得从某个地方开始,不是吗? :)

附注

如果你打算在自己的网站上使用这个论坛,请在论坛表格底部保留指向我的链接,这不会给你带来太多麻烦 :)

任何bug、建议、想法和功能请求,你可以在这里发布,或在我的网站发布,或直接发送到我的电子邮件

© . All rights reserved.