现在,让我们将各个部分整合到一起。该系统有两个基本视图:用户视图和管理员视图。在仔细考虑需要的功能之后,我们提出了两个流程设计,一个视图对应一个流程设计。它们分别如图28-1和图28-2所示。
图 28-1 Book-O-Rama系统的用户视图可使得用户按照目录查看图书,浏览图书的详细信息,将书添加到购物车,以及购买它们 图 28-2 Book-O-Rama系统管理员视图允许管理员插入、编辑和删除图书及目录在图28-1中,我们显示了网站中用户部分的脚本之间的主要链接。用户将首先进入主页面,该页面给出了网站中所有图书的目录。从该页面开始,用户可以进入特定的图书目录,从该目录又可以进入某一本书的详细介绍。
我们将为用户提供一个链接以添加特定的图书到购物车。根据购物车中的商品,用户可以与该在线商店结账付款。
图28-2所示的是管理员界面——它需要更多的脚本,但是新脚本却并不是很多。这些脚本允许管理员登录并插入图书和目录记录。
实现编辑、删除图书和目录最简单的方法是为管理员提供一个界面,该界面与用户界面略有不同。管理员仍然能够浏览目录和图书,但与用户访问购物车不同的是,管理员能够进入特定的图书和目录,并且编辑和删除该书和目录。通过设计适用一般用户和管理员的同样脚本,我们可以节省时间和精力。
该应用程序由如下所示的三个主要代码模块组成:
■目录
■购物车和订单处理(我们将此二者捆绑在一起是因为它们之间的联系非常紧密)
■管理
与第27章“建立用户身份验证机制和个性化设置”介绍的项目一样,我们也要创建和使用一组函数库。在这个项目中,我们将使用一个函数API,它与上一个项目的函数API类似。我们试图把输出HTML的代码放到一个函数库中,以支持分离逻辑和内容的原则,更重要的是,这样做可以使代码更易阅读和维护。
针对这个项目,我们也需要对Book-O-Rama数据库作一些小修改。我们已经重新命名了数据库book_sc(购物车),以区分在本书第二篇所创建的数据库。
本项目所需的所有代码都可以在本书附带的文件中找到。表28-1给出了本应用程序中用到的这些文件的摘要。
现在,让我们开始了解每个模块的具体实现。
提示 该应用程序的代码量非常大。其中要实现的许多功能我们都已经见过(特别是在上一章中),例如,将数据保存到数据库,从数据库中取回数据,授予用户管理权限。在这方面的代码,我们只简要地看一下,而将大部分时间花在购物车函数上。