Drupal高手建站技術手冊

Drupal高手建站技術手冊

本書從Drupal的基本概念和配置到模組的使用和開發、主題到安裝和定製,幾乎涵蓋了Drupal建站的各個方面,適合所有想要學習Drupal的開發人員;即使沒有網站開發經驗,也可以作為踏入網站開發領域的入門書籍。作者在書中與讀者分享了多年的Drupal開發經驗,對正在使用Drupal的開發者也具有很好的借鑑作用。

基本信息

宣傳語

中國Drupal培訓第一人“方醫生”力作

國內第一本介紹Drupal建站的圖書

字字珠璣,絕對乾貨,物超所值!

贈送價值300元的Drupal培訓視頻

內容簡介

本書全面、系統地介紹了當今最流行的開源內容管理系統Drupal的建站方法,不僅由淺入深地介紹了Drupal的基礎知識、而且對重要的配置過程均配以截圖進行詳細的講解;在此基礎上,介紹了Drupal模組開發和主題定製方面的知識,為讀者對Drupal進行二次開發提供了很有價值的參考;最後通過兩個完整的案例使讀者對Drupal建站全過程進行近距離接觸,以增強讀者使用Drupal進行實際開發的能力。在本書的配套光碟中列出了這兩個案例的原始碼,以及14小時的學習視頻,將為讀者學習Drupal建站起到很好的輔助作用。

Drupal誕生於2000年,是一個基於PHP語言編寫的用於開發網站的開發型CMF(內容管理框架)。Drupal強大的定製開發能力,也使其成為眾多有技術實力的網站建設公司優先選用的網站開發平台。

任何網站建設公司自己開發的系統,在技術上都無法達到Drupal的水平,這正是開源軟體的優勢所在:PHPCHINA作為PHP的中文官方網站,同時也是國內最大的開源社區;其中自然也有很多關於Drupal的技術討論的話題,但是非常遺憾並沒有關於Drupal的系統介紹和講解。隨著《Drupal高手建站技術手冊》這本書的問世,彌補了國內在Drupal技術方面的一塊空白,為廣大PHP愛好者以及公司提供了強有力的技術支持後盾,同時也為Drupal在國內更好的推廣起到了基石的作用。

由於Drupal具有便於搜尋引擎收錄的URL,提供了強大的個性化環境、提供了基於角色的許可權系統、提供的站內搜尋系統能對站內的所有內容進行索引和搜尋、模板系統將內容和表現分離、提供內建的新聞聚合工具、強大的多語言支持體系等等優勢,所以國外很多著名的政府機構(聯合國,美國白宮)、商業公司(華納兄弟,聯邦快遞)、高等學府(美國哈佛大學,美國美國麻省理工學院)、技術社區(Ubuntu、Fedora、Firefox)的網站都是使用Drupal搭建的。因此,我們也希望國內能夠通過《Drupal高手建站技術手冊》這本書讓Drupal真正被國內的企業和PHP技術人員所認可,讓其在開源領域綻放出更加絢麗的色彩!

PHPChina 總經理 李薇

前言

Drupal是當今開源內容管理系統中的王者,連續幾年獲得優秀開源cms 大獎的殊榮。它依靠優良的架構、多語言支持、Web 2.0的特質、豐富的第三方模組、簡練的主題模板引擎和強大的Drupal API,獲得了無數開發者的青睞。目前,國內外越來越多的網站在採用Drupal構建,很多著名的公司、組織和個人也使用Drupal作為其入口網站的框架。在經過了近十年的發展後,Drupal 6現已成為最流行也是最穩定的Drupal版本,這是全球近700名開發者在Drupal 5的基礎上做了大量的改進、使其更加完善和強健的成果。

Drupal包含了內容管理、用戶管理、角色和許可權訪問控制、模組管理、主題和模板管理等網站基礎功能。掌握了Drupal,就等於掌握了一個強大建站工具;將幫助讀者在未來的網站項目中,保證質量的同時有效地縮短開發周期,儘快實現網站原型。

作者是國內最早使用Drupal的開發者之一,參與和獨立完成了很多國內外的Drupal項目,在本領域經驗頗豐。作者結合實踐中的項目經驗和多年的培訓經驗完成此書,旨在為讀者搭建一個通往Drupal世界的橋樑。本書依據Drupal的學習路徑,由淺入深地介紹Drupal建站知識;對關鍵操作進行了詳細的講解,並配以截圖和代碼片段讓讀者更準確地掌握操作技能;最後通過兩個項目案例的講解,系統介紹了如何使用Drupal解決實際項目中的需求。相信讀者在學習完本書後,必具備獨立開發Drupal網站的能力。

本書特色

1.遵循Drupal學習路徑

本書每一章節的排列順序都按照學習Drupal的路徑進行編排,從基礎的背景知識到實際項目經驗,構建了Drupal完整的學習路徑。每結束一章的學習,意味著讀者能根據前面所學的知識構建某個難度等級的Drupal網站。這樣可最大程度地保證讀者學習的成果。

2.內容全面、系統、深入

本書介紹了從Drupal的下載與安裝到後台管理的各項功能,從第三方模組的使用到自定義模組的開發,幾乎涵蓋了Drupal建站的各種技能。很多重要的知識點,不只停留於表面操作流程的講解,還對其功能實質和設計原理進行了講解,旨在使讀者不僅掌握工具的使用,還能體會其中蘊涵的思想。

3.適合不同層次的讀者閱讀

不管是從未開發過網站的初學者,還是精通PHP的高級開發工程師,相信都可從本書中有所收穫。本書在講解時,充分考慮了不同層次讀者的需要,即對關鍵的知識點進行了詳細的講解,又避免過於在基礎的知識點上停留。

4.完整的項目案例講解

本書詳細介紹了大學教務處新聞系統和線上訂餐系統的案例(在本書的配套光碟中列出了這兩個案例的原始碼)。與其他書不同的是,作者結合軟體工程思想,從需求分析、設計與實現到測試完整軟體產品開發流程對兩個實例項目進行了講解,旨在培養讀者Drupal網站項目的全局觀。

5.提供技術支持,答疑解惑

讀者閱讀本書時若有疑問可發E-mail獲得幫助,同時歡迎訪問“方醫生798工廠”,查看筆者最新的技術部落格文章並進行交流。

本書內容及體系結構

第1篇 基礎篇(第1~7章)

本篇主要內容包括:Drupal入門、安裝Drupal 6、Drupal的基本概念、管理Drupal、主要模組介紹、部署Drupal和Drupal網站維護。通過本篇的學習,讀者可以掌握內容管理系統的概念、Drupal下載和安裝、Drupal的核心概念、後台管理的主要功能、核心模組的使用以及Drupal網站的部署和維護等知識和技能。

第2篇 高級篇(第8~12章)

本篇主要內容包括:常用第三方模組、Drupal模組開發、Drupal主題開發、Drupal API和Drupal網站安全等內容。通過本篇的學習,讀者可以掌握Drupal最重要的三大第三方模組:CCK、Views和Panels的使用,還會掌握使用Drupal API開發自定義模組的技能,以便修改和擴展Drupal。還將學到如何使用Drupal的主題模板引擎定製Drupal網站的表現層。此外,通過第12章Drupal網站安全的學習,可加深開發者對網站安全的重視,並給出Drupal網站應對常見攻擊的方法。

第3篇 實戰篇(第13~14章)

本篇主要內容包括:大學教務處新聞系統和線上訂餐系統的設計與實現。第一個實踐項目重點是讓讀者熟知Drupal網站開發的流程;第二個實踐項目重點在詳解使用Drupal API開發自定義模組。通過本篇的學習,讀者可以掌握如何使用Drupal解決實際項目中的需求。

附錄

本篇主要內容包括:PHP入門、MySQL入門和第三方模組介紹。前兩者對沒有接觸過PHP網站開發的讀者是很好的入門學習資料。第三方模組介紹中對常用的Drupal第三方模組按照分類進行了簡要介紹,可作為讀者在選擇模組時的參考依據。

本書讀者對象

 正使用Drupal的網站開發者;

 專注國外網站項目外包領域的開發者;

 PHP網站開發的初學者;

 想利用Drupal作為系統架構的架構師;

 開源PHP項目的愛好者;

 大中專院校的學生;

 社會培訓班學員。

本書作者

本書主要由方擎編寫,同時參與編寫的還有巴蕾、昊燃、黃葉新、李增輝、劉聰、龍志標、孟劼、米愛中、秦俠、冉劍、任瀟、譚勵、王大亮、伍雲輝。在此一併表示感謝。

編者

2010年7月於北京

目錄

基 礎 篇

第1章 Drupal入門 2

1.1 內容管理系統(CMS) 2

1.2 開源的PHP WCMS 3

1.2.1 Drupal 3

1.2.2 Joomla 5

1.2.3typo37

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 日誌和報警(loggingand 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

文摘

文摘文摘

用戶是網站的客群,也是網站內容的貢獻者。現在大多數的網站都支持用戶註冊。Drupal適合構建從個人網站到社區驅動的網站(community-driven),是一個多用戶系統,支持用戶註冊和身份驗證,並具有維護個人信息的功能。

管理員可以通過後台管理的“用戶管理”功能查看當前網站的全部用戶,並可批量更新用戶狀態、按排用戶角色或刪除用戶。Drupal採用“基於角色的訪問控制”的許可權管理機制。角色可以理解為一個用戶組,組內的成員具有相同的對網站的訪問和操作許可權。每個用戶可以同時具有一個或多個角色。在後台可以管理“用戶角色(IJserRoles)”和“許可權(Permission)”。管理員在後台管理的角色管理中可根據網站需求增加角色,如如普通管理員、新聞發布者、站點維護者等。但Drupal中有兩個預先定義的角色不能被更改:

·匿名用戶(.AnonymousUser):未註冊用戶或己註冊但未同過審核的用戶;

·認證用戶(AuthenticatedUser):已註冊並同過審核的用戶。

每個許可權項,如創建節點(CreateStoryNode)等許可權,是由模組提供的,使用鉤子函式hookperm在模組中定義。許可權不能在後台管理中手動創建。

相關詞條

相關搜尋

熱門詞條

聯絡我們