基 础 篇
第1章 Drupal入门 2 1.1 内容管理系统(CMS) 2 1.2 开源的PHP WCMS 3 1.2.1 Drupal 3 1.2.2 Joomla 5 1.2.3 Typo3 7 1.2.4 WordPress 8 1.2.5 比较 10 1.3 Drupal功能总览 11 1.3.1 内容管理 11 1.3.2 用户管理 12 1.3.3 主题模板 13 1.3.4 博客平台 14 1.3.5 论坛社区 15 1.3.6 多语言支持 16 1.3.7 站点管理工具 16 1.3.8 模块 17 1.3.9 其他特性 17 1.4 小结 18
第2章 安装Drupal 6 19 2.1 版本的选择 19 2.2 获得Drupal 19 2.3 创建数据库 20 2.4 使用安装向导 24 2.4.1 选择向导的界面语言 24 2.4.2 创建settings.php文件 24 2.4.3 设置数据库 25 2.4.4 设置站点初始信息 27 2.4.5 完成安装 30 2.5 Hello Drupal! 32 2.5.1 创建个人博客 32 2.5.2 开启功能模块 32 2.5.3 发布第一篇博客 33 2.5.4 选择合适的主题 35 2.6 小结 37
第3章 Drupal的基本概念 38 3.1 节点(Node) 38 3.2 内容类型(Content Type) 39 3.3 模块(Module) 39 3.4 主题(Theme) 40 3.5 区块(Block) 42 3.6 菜单(Menu) 42 3.7 用户(User) 43 3.8 评论(Comment) 43 3.9 分类(Taxonomy) 44 3.10 小结 44
第4章 管理Drupal 45 4.1 介绍 45 4.2 内容管理 46 4.2.1 创建节点 47 4.2.2 管理节点 51 4.2.3 管理评论 52 4.2.4 管理节点类型 53 4.2.5 发布设置 60 4.2.6 RSS发布设置 61 4.2.7 类别管理 62 4.3 用户管理 64 4.3.1 用户管理 65 4.3.2 访问规则 67 4.3.3 角色 69 4.3.4 用户相关设置 71 4.4 站点创建 74 4.4.1 区块管理 75 4.4.2 菜单导航管理 80 4.4.3 模块管理 83 4.4.4 主题管理 85 4.5 站点配置 89 4.5.1 动作(Actions) 89 4.5.2 管理专用主题(Administration theme) 91 4.5.3 简洁URL(Clean URLs) 91 4.5.4 日期与时间(Date and Time) 93 4.5.5 错误报告(Error reporting) 94 4.5.6 文件系统(File system) 94 4.5.7 图像处理工具(Image toolkit) 95 4.5.8 输入格式(Input formats) 95 4.5.9 日志和报警(Logging and alerts) 99 4.5.10 性能(Performance) 99 4.5.11 站点信息(Site information) 101 4.5.12 站点维护(Site maintenance) 101 4.6 站点报告 102 4.6.1 最近日志记录 102 4.6.2 出现“访问被拒绝(Access denied)”的页面 103 4.6.3 查看返回404错误的路径 103 4.6.4 站点状态 104 4.7 小结 105
第5章 主要模块介绍 106 5.1 博客(Blog) 106 5.2 文集(Book) 108 5.2.1 创建文集 109 5.2.2 管理文集 111 5.3 联系表单(Contact) 111 5.3.1 联系表单类别管理 112 5.3.2 网站用户的联系表单 113 5.3.3 联系表单链接 115 5.4 论坛(Forum) 116 5.4.1 容器(Container)和论坛(Forum) 118 5.4.2 论坛全局设置 119 5.5 本地化(Locale)和翻译(Content Translation) 121 5.5.1 更换界面语言 121 5.5.2 修改现有翻译 124 5.5.3 导出翻译包 125 5.5.4 为节点创建多语言版本 126 5.5.5 本地化域名 127 5.6 自定义路径(Path) 128 5.6.1 创建节点时设置自定义路径 128 5.6.2 使用后台集中管理自定义路径 128 5.7 访问统计(Statistics) 130 5.8 触发器(Trigger) 130 5.9 小结 132
第6章 部署Drupal 133 6.1 测试环境与生产环境 133 6.2 选择最适合你的服务器架构 133 6.2.1 单服务器 133 6.2.2 Web服务器和数据库服务器 134 6.2.3 更复杂的架构 134 6.3 部署流程 135 6.3.1 第一次部署 135 6.3.2 更新运行中的Drupal网站 137 6.4 小结 138
第7章 Drupal网站维护 139 7.1 网站清理 139 7.1.1 清理缓存 139 7.1.2 清理垃圾节点和评论 140 7.1.3 非法用户 140 7.1.4 垃圾上传文件 141 7.1.5 日志 142 7.2 网站备份 142 7.2.1 准备工作 142 7.2.2 数据库备份 142 7.2.3 网站程序备份 143 7.2.4 用户文件备份 143 7.3 网站数据恢复 143 7.3.1 使用phpMyAdmin 144 7.3.2 使用BigDump 144 7.4 小结 146
高 级 篇
第8章 常用第三方模块 148 8.1 CCK 148 8.1.1 为什么需要字段 148 8.1.2 扩展内容类型 149 8.1.3 CCK提供的字段类型 153 8.2 Views 157 8.2.1 基础概念 157 8.2.2 创建视图 159 8.2.3 列表样式 167 8.2.4 导入与导出 168 8.3 Panels 169 8.3.1 Panel布局 170 8.3.2 创建Panel节点 171 8.3.3 创建Panel区块 172 8.4 小结 173
第9章 Drupal模块开发 174 9.1 开发环境搭建 174 9.1.1 开发工具 174 9.1.2 Drupal运行环境 177 9.1.3 Devel模块 178 9.2 模块开发基础 179 9.2.1 钩子函数 180 9.2.2 菜单系统 180 9.3 创建Drupal模块 180 9.3.1 为模块命名 181 9.3.2 模块文件夹 181 9.3.3 模块注册文件 181 9.3.4 创建页面 182 9.3.5 创建自定义区块 184 9.4 小结 186
第10章 Drupal主题开发 187 10.1 Drupal的主题机制 188 10.1.1 MVC架构 188 10.1.2 模板技术和网站主题 189 10.1.3 Drupal主题引擎 190 10.2 theme函数 193 10.2.1 执行流程 194 10.2.2 hook_theme 194 10.3 主要模板文件 195 10.3.1 通用模板变量 196 10.3.2 page.tpl.php 197 10.3.3 node.tpl.php 199 10.3.4 block.tpl.php 200 10.3.5 comment.tpl.php 201 10.4 小结 202
第11章 Drupal API 203 11.1 API文档使用指南 203 11.2 操作节点 204 11.2.1 节点对象 204 11.2.2 载入节点(node_load) 205 11.2.3 获得节点展示代码(node_view) 205 11.2.4 保存节点(node_save) 206 11.2.5 删除节点(node_delete) 206 11.2.6 节点钩子函数(hook_nodeapi) 206 11.3 操作用户 208 11.3.1 用户对象 208 11.3.2 全局$user变量 209 11.3.3 载入用户(user_load) 209 11.3.4 用户钩子函数(hook_user) 210 11.4 操作数据库 212 11.4.1 数据库查询(db_query) 213 11.4.2 获得结果(db_fetch_object和db_fetch_array) 214 11.4.3 分页查询(pager_query) 214 11.5 表单API 216 11.5.1 创建表单 216 11.5.2 表单提交数据的验证 219 11.5.3 处理提交数据 221 11.5.4 修改已存在的表单 222 11.6 小结 223
第12章 Drupal网站安全 224 12.1 访问权限控制 224 12.2 过滤用户输入内容 225 12.3 安全的数据库查询 225 12.4 防止跨站请求伪造(CSRF) 227 12.5 小结 228
实 战 篇
第13章 实践项目一:大学教务处新闻网站 230 13.1 项目背景 230 13.2 需求分析 230 13.2.1 需求分析的重要性 230 13.2.2 用例图 231 13.2.3 网站功能 231 13.2.4 非功能性需求 232 13.2.5 项目估计 233 13.3 设计 233 13.3.1 核心页面设计 233 13.3.2 主要内容类型 236 13.3.3 所需模块 236 13.3.4 主题 237 13.3.5 用户角色与权限 237 13.4 系统实现 238 13.4.1 新闻审核 238 13.4.2 新闻视图 240 13.4.3 创建首页 242 13.4.4 注册规则 243 13.4.5 联系表单 244 13.4.6 自定义错误页面 245 13.4.7 定制主题 246 13.4.8 安装中文语言包 248 13.5 测试 248 13.5.1 软件测试简介 249 13.5.2 使用SimpleTest进行单元测试 249 13.5.3 使用虚拟机搭建测试环境 251 13.5.4 测试用例 254 13.6 小结 255
第14章 实践项目二:在线订餐系统 256 14.1 项目背景 256 14.2 需求分析与功能设计 256 14.2.1 核心业务数据 257 14.2.2 页面设计 257 14.2.3 所需模块 258 14.3 系统实现 258 14.3.1 创建内容类型 258 14.3.2 订餐模块的开发 260 14.3.3 订单列表 264 14.3.4 订餐页面的美化 265 14.4 小结 265
附录A PHP基础 266 附录B MySQL基础 281 附录C 第三方模块介绍 302