Code Project 讨论区






4.78/5 (35投票s)
CodeProject 中使用的讨论版 ASP 脚本。这是一个面向 CodeProject 社区的开源项目。
欢迎使用 CodeProject 讨论版脚本
引言
这是启发 CodeProject 最初概念的“项目”中的第一个。我们提供了这些脚本来帮助开发人员,并希望像您一样的开发人员能通过测试、提交错误报告、提出改进建议和提交扩展来回报我们。
我们邀请您在自己的网站上使用这些脚本,但我们要求您在左上角保留“由 CodeProject 提供支持”的标志。我们还提前请求您的耐心和理解。这些脚本无疑将发生巨大的变化,因此建议您定期回来查看最新发展,或订阅通讯以接收更新通知。
截至 2000 年 7 月 5 日,我们提供了处理消息组织核心工作的 ActiveX 控件的源代码。我们本来希望对代码进行大量注释,甚至提供代码工作原理的分步说明,但我们实在是没有时间,并决定发布当前版本比完全不发布要好。如果您发现错误或做出改进,请发送给我们。
2001 年 8 月 26 日 - Philip Andrew 提供了论坛的PHP 版本。
论坛
CodeProject 使用的讨论版由 Uwe Keim 编写,包括一个 ActiveX 控件(使用 Visual C++ 编写)和一组 ASP 脚本。ActiveX 控件提供对论坛消息数据库的低级访问,并提供功能以简化参数在页面之间传递的方式。目前 ActiveX 控件仅以 DLL 形式发布,部分原因是我们尚未完成编写,部分原因是我们几乎还没有开始对其进行文档化 :)
新增:Uwe 编写了一个新版本的论坛,该版本仅为 ASP,因此不再需要处理 ActiveX 控件。该论坛的实现非常简洁,但将为您提供运行讨论版所需的一切。目前它们仅支持 Access,但迁移到 SQLServer 是一个简单的练习留给读者。请参阅此页面顶部的下载部分获取文件。
因此,我们开始讨论脚本。从这里开始的所有讨论都将仅集中在 ActiveX 版本上。非 ActiveX 版本非常相似,尽管目录结构和文件嵌套略有不同。
这些脚本分为几类
- 应用程序脚本 - 这些负责繁重的工作
- 包含文件 - 这些提供配置、通用例程和插件 HTML
- 通用用户界面脚本 - 这些显示论坛,提供添加和编辑消息的方法,以及管理员和错误处理。
还有
- 一个目录,包含这些论坛脚本以及我们将发布的其他脚本使用的通用图像
- 一个目录,包含我们将发布的其他脚本也使用的通用脚本
- 一个数据目录,包含论坛数据库
- 一个 bin 目录,包含 ActiveX 控件
假设您运行的是 NT4 Server 或更高版本,并带有 IIS4 或更高版本,或者 Win9X 搭配 PWS。论坛存储在 Access 数据库中,并使用 Jet Engine 进行访问。
快速开始
好的,您已经获得了文件,并且想要开始使用而不是继续阅读本文。我不会责怪您。您需要这样做:
- 将 zip 文件解压到一个目录(例如,“CodeProject”),确保 zip 文件中包含的目录结构保持不变。
- 在
/CodeProject/forum/bin
目录中注册 ActiveX 控件 - 编辑
/CodeProject/common/config.asp
以适合您的网站。 - 编辑
/CodeProject/forum/includes/config.asp
以适合您的讨论版。 - 确保您的访问者对文件
/CodeProject/forum/data/forum.mdb
具有读写权限。 - (可选)在您的系统上注册一个电子邮件组件,并编辑
/CodeProject/common/email.inc
以适合。
现在只需将浏览器指向 /CodeProject/forum/index.asp
即可开始使用
工作原理
脚本由一组主要的(位于根目录中的)用户界面脚本组成,这些脚本利用(位于 /forum/app
目录中的)工作脚本来实际执行操作。这些脚本随后将浏览器重定向回用户界面脚本。
系统的核心位于 /forum/includes/forum.inc
。此文件包含论坛类的定义,是主论坛 ActiveX 控件的包装器。此类是主要的通信点,包含所有论坛相关的功能。您永远不会直接与论坛 ActiveX 控件通信,而是通过此类间接通信。
此类不仅包含执行操作的方法,还包含返回各种应用程序脚本 URL 的函数。通过这样做,我们可以设置 /forum/includes/config.asp
文件中各种脚本的名称,这使得更改目录结构变得极其简单。
管理论坛
每条消息都有作者设置的密码,允许作者修改或删除消息。除此之外,您还可以通过使用全局密码来修改或删除消息。全局密码在 /forum/includes/config.asp
中定义,只需将“&ad=<password>
”附加到您当前正在查看的任何 URL 的末尾即可使用。
例如,如果您正在查看 ID 为 1 的论坛索引,并且您的 URL 是 http://www.myserver.com/codeproject/forum/index.asp?forumid=1
,则要进入管理模式,只需将 URL 修改为
http://www.myserver.com/codeproject/forum/index.asp?forumid=1&ad=12345
其中“12345”是密码(在 /forum/includes/config.asp
中定义为 ADMIN_PW
。然后,您将获得管理论坛的选项(设置论坛名称和描述,以及发布新消息或回复消息时要发送电子邮件的电子邮件地址)。
要添加或删除论坛本身,您必须物理修改数据库。这只是我们尚未完成的事情之一……
在管理模式下,您还可以选择修改或删除消息。此外,一旦进入管理模式,您将继续处于管理模式,直到您浏览完论坛脚本。只需删除“&ad=<password>
”即可退出管理模式。
最新动态…
最新版本的脚本具有增强的用户界面,以及一些内部更改,旨在修复第一个版本中的一些问题。简而言之:
- 同一级别的消息回复现在按升序排序。这使得消息视图更加直观
- 添加了“预览”模式,每条消息的前几个词将显示在每条消息标题下方
- ActiveX 控件已完全重写,以提高效率
- 用户界面已重新设计和优化
待办事项…
太多了。这仅仅是论坛的草图,甚至没有描述每个文件做什么,也没有描述我们计划如何扩展脚本。我们将不断努力改进这些脚本,并且对主 CodeProject 论坛的所有扩展和修改都将包含在这些可下载的文件中。
请将此视为一个进行中的项目!