B giáo dc và đào to
Trng i hc M TP.HCM
Khoa công ngh thông tin
v(w
Khoá lun tt nghip
tài
Xây dng Website hc tp trc tuyn
ngành công ngh thông tin
GVHD: NINH XUÂN HNG
SVTH: TRNG VNH NGHIP - 10701086
PHM NGC HUY - 10761217
Niên khoá 2007 - 2011
LI CM N
u tiên, chúng em xin gi li cm n chân thành đn quý Thy, Cô khoa Công
Ngh Thông Tin, trng i hc M đã tn tình ging dy, truyn đt nhng kin thc,
kinh nghim quý báu và đã khích l, h tr mi mt cho chúng em trong sut bn nm
đi hc chun b hành trang vào đi.
c bit, chúng em xin cm n Thy Ninh Xuân Hng, ngi luôn sn sàng và
tn tình hng dn, giúp đ, đng viên chúng em trong su
t quá trình thc hin đ án
này.
Chúng em xin cm n tt c bn bè đã và đang luôn đng viên, chia s, giúp đ
chúng tôi tn tình trong sut thi gian hc tp cng nh thc hin đ án.
Cui cùng, chúng con kính gi li cm n sâu sc nht đn toàn th gia đình. Cm
n Cha, M đã khó nhc sinh thành và giáo dng chúng con. Cm n tt c mi ngi
đã tin tng, khích l
, đng viên và to mi điu kin tt nht cho chúng con trong sut
thi gian qua đ chúng con có đc thành qu nh ngày hôm nay.
TPHCM, tháng 2 nm 2011
Nhóm thc hin
Trng Vnh Nghip
Phm Ngc Huy
LI NHN XÉT GIÁO VIÊN HNG DN
LI NHN XÉT GIÁO VIÊN PHN BIN
Khóa lun Xây dng website hc tp trc tuyn ngành công ngh thông tin
1
MC LC
LI M U 11
PHN I DRUPAL 13
I. TNG QUAN V DRUPAL 13
I.1. Khái nim 13
I.2. Lch s 13
I.3. Nn tng 13
I.4. ng dng 13
I.5. u đim 13
I.6. Nhc đim 14
II. CÁCH HOT NG CA DRUPAL 14
II.1. Technology Stack 14
II.2. Core 15
II.3. Module 15
II.4. Hooks 16
II.5. Themes 16
II.6. Nodes 16
II.7. Blocks 17
III. MODULE CHUN CA DRUPAL 17
III.1. Aggregator 17
III.2. Blog 17
III.3. Blog API 17
III.4. Book 17
III.5. Comment 18
III.6. Contact 18
III.7. Filter 18
III.8. Forum 18
III.9. Help 18
III.10. Legacy 18
III.11. Node 19
IV. CÁC MODULE H TR THÊM 19
IV.1. Views 19
IV.2. Panels 19
IV.3. Content Construction Kit (CCK) 20
IV.4. Ckeditor 20
V. XÂY DNG MODULE CHO DRUPAL 20
V.1. File .info và .module 20
V.1.1. File .info 20
V.1.2. File .module 21
V.2. Mt s hook c bn 21
V.3. nh ngha mt hook mi 24
V.3.1. Cách to mt hook 24
Khóa lun Xây dng website hc tp trc tuyn ngành công ngh thông tin
2
V.3.2. S dng hook vào các module khác 24
V.4. jQuery trong Drupal 24
V.5. Form API 25
V.5.1. To form 25
V.5.2. Giao din hóa form 26
V.5.3. Kim tra d liu 26
V.5.4. Gi form lên trang web 26
VI. T CHC LU TR CA DRUPAL 27
VII. TÍNH AN TOÀN CA DRUPAL 29
VII.1. An toàn đi vi ngi dùng 29
VII.2. An toàn đi vi mã ngun 29
VII.3. Tính an toàn đi vi d liu 30
PHN II MOODLE 31
I. TNG QUAN V MOODLE 31
I.1. Khái Nim 31
I.2. Lch s 31
I.3. u đim 31
II. TÀI NGUYÊN MOODLE H TR 31
II.1. Nhãn (Label) 31
II.2. Trang vn bn (Text Page) 31
II.3. Trang web (Web Page) 32
II.4. Liên kt m
t file hay website (URL) 32
II.5. Th mc (Folder) 32
II.6. Gói ni dung (IMS Content Package) 32
III. CÁC HOT NG MOODLE H TR 32
III.1. Nhim v (Assignments) 32
III.1.1. Tùy chn cách upload file (Advance uploading of file) 33
III.1.2. Kim tra trc tuyn (Online Text) 33
III.1.3. Upload mt file (Upload a single file) 34
III.1.4. Hot đng offline (Offline Activity) 34
III.2. Tán gu (Chat) 34
III.3. Din đàn (Forum) 34
III.4. Bài hc (Lesson) 35
III.5. Câu hi (Quiz) 36
III.5.1. To danh mc 37
III.5.2. To câu hi 38
III.6. Bng thut ng (Glossary) 38
III.7. Wiki 39
III.8. La chn (Choice) 40
III.9. Kho sát (Survey) 41
III.10. Gói SCORM (SCORM Package) 42
IV. XÂY DNG MODULE CHO MOODLE 42
IV.1. Cu trúc module 42
Khóa lun Xây dng website hc tp trc tuyn ngành công ngh thông tin
3
IV.2. Vit module mi da trên NEWMODULE Template 42
V. QUN TR 43
V.1. Thông báo (Notification) 43
V.2. Ngi dùng (Users) 43
V.2.1. Chng thc (Authentication) 43
V.2.2. Tài khon (Accounts) 45
V.2.3. Quyn (Permissions) 45
V.3. Khóa hc (Course) 46
V.4. nh v (Location) 49
V.5. Ngôn ng (Languages) 49
V.6. Modules 50
V.7. Bo mt (Security) 51
V.8. Giao din (Apperance) 52
V.9. Trang chính (Front Page) 54
V.10. Server 55
PHN III CHUN SCORM 56
I. KHÁI QUÁT V SCORM 56
I.1. Quá trình phát trin ca SCORM 56
I.2. Li ích kinh doanh ca SCORM 56
II. CÁC KHÁI NIM C BN LIÊN QUAN N SCORM 57
II.1. Asset 57
II.2. SCO (Sharable Content Object) 57
II.3. S khác nhau gia Asset và SCO 57
III. CU TRÚC SCORM 58
III.1. CAM (Content Aggregation Model) 58
III.1.1. Content Model 58
III.1.2. Meta-data 59
III.1.3. Content Package 61
III.2. RTE (Run time Environment) 62
III.2.1. Launch 62
III.2.2. Application Program Interface (API) 62
III.2.3. Data Model 62
PH
N IV XÂY DNG WEBSITE HC TP TRC TUYN NGÀNH CÔNG
NGH THÔNG TIN NG DNG DRUPAL VÀ MOODLE 67
I. PHÂN TÍCH 67
I.1. Mô t bài toán 67
I.2. Yêu cu chc nng 67
I.2.1. Yêu cu lu tr 67
I.2.2. Yêu cu nghip v 67
I.3. Yêu cu phi chc nng 68
I.3.1. Tính tin hoá 68
I.3.2. Tính bo mt 68
I.3.3. Tính tng thích 68
Khóa lun Xây dng website hc tp trc tuyn ngành công ngh thông tin
4
I.4. Phng pháp 68
II. THIT K 68
II.1. Thit k tng th 69
II.1.1. Thit k vic trình bày tin tc 69
II.1.2. Thit k khóa hc 69
II.1.3. Bài thi 69
II.1.4. Np bài tp 69
II.1.5. Din đàn tho lun 69
II.1.6. Chm đim 70
II.1.7. Thông báo 70
II.1.8. Qun lý ngi dùng 70
II.1.9. ng nhp 70
II.2. S đ website 70
III. Trin khai 76
III.1. Chun b 76
III.2. Cài đt 76
III.2.1. Cài đt Xampp 76
III.2.2. Cài đt Drupal 78
III.2.3. Cài đt Moodle 82
III.2.4. Cài đt module h tr thêm trong Drupal 85
III.3. Xây dng h th
ng website 86
III.3.1. Drupal 86
III.3.1.1. Xây dng trang “Gii thiu” 86
III.3.1.2. Xây dng trang “Tin tc – Thông báo” 91
III.3.1.3. Hin th tin t website Moodle 95
III.3.1.4. Xây dng trang “nh hot đng” 97
III.3.1.5. To trang “Liên h” 100
III.3.1.6. Xây dng trang ch 101
III.3.1.7. Xây dng menu cho user qun tr 108
III.3.2. Moodle 112
III.3.2.1. Xây dng khóa hc 112
III.3.2.1.1. Tài nguyên khóa hc 121
III.3.2.1.2. Hot đng khóa hc 123
III.3.2.1.3. Các block ca khóa hc 128
III.3.2.2. Xây dng đ thi 129
III.3.2.2.1. To câu hi 129
III.3.2.2.2. Làm bài thi 132
III.3.2.3. im s 133
III.3.2.3.1. Chm đim 133
III.3.2.3.2. Xem đim 136
IV.
ÁNH GIÁ VÀ HNG PHÁT TRIN 139
IV.1. ánh giá 139
IV.2. Hng phát trin 139
Khóa lun Xây dng website hc tp trc tuyn ngành công ngh thông tin
5
TÀI LIU THAM KHO 140
PH LC 141
I. Xây dng bài ging 141
I.1. eXe 141
I.1.1. Cài đt 141
I.1.2. Thc hành 141
I.1.2.1. Khi đng mt d án bài ging 141
I.1.2.2. nh ngha thuc tính ( Defining Properties) 141
I.1.2.3. Xác đnh cu trúc bài ging (Defining an outline) 143
I.1.2.4. Ý ngha các thành phn iDevices 144
I.1.3. Minh ho s dng mt s công c iDevice 146
I.2. PPT2Flash Professional 151
I.2.1. Cài đt 151
I.2.2. Thc hành 151
II. To câu hi trc nghim 157
II.1. HotPotato 157
II.1.1. Tng quan 157
II.1.2. Jquiz: 158
II.1.3. Mt s cu hình cn thit chung c
a HotPot6: 160
II.2. QuizCreator 161
II.2.1. Cài đt 161
II.2.2. To câu hi 161
II.2.3. Thit lp 165
Khóa lun Xây dng website hc tp trc tuyn ngành công ngh thông tin
6
MC LC HÌNH
Hình 1-1. Drupal’s Technology Stack 14
Hình 1-2. Tng quan v Drupal core (không bao gm tt c chc nng) 15
Hình 1-3. Module có th đc thêm vào đ tng cng các chc nng. 16
Hình 1-4. Kiu node đc bt ngun t mt node c bn và có th thêm các trng. 27
Hình 1-5. Mi quan h gia các bng trong c s d liu ca Drupal. 28
Hình 3-1. Cu trúc gói ni dung 61
Hình 3-2. Mô hình RTE 62
Hình 3-3. C ch giao tip gia LMS và SCO 64
Hình 3-4. SCO gi hàm LMSInittialize() t LMS 65
Hình 3-5. SCO kim tra và truyn cho LMS qun lý 65
Hình 3-6. SCO gi hàm LMSFinish() t LMS đ kt thúc phiên làm vic 66
Hình 4-1. S đ website Drupal 71
Hình 4-2. Thit k Tin tc – Thông báo 72
Hình 4-3. S đ website Moodle 73
Hình 4-4. Các khóa hc 74
Hình 4-5. Thit k khóa hc 75
Hình 4-6. Start Apache và MySql 76
Hình 4-7. Cài đt chy service 77
Hình 4-8. Màn hình web server 78
Hình 4-9. To c s d liu cho website Drupal 79
Hình 4-10. Chn ngôn ng cài đt Drupal 79
Hình 4-11. in thông tin Database 80
Hình 4-12. in thông tin site name, site email 81
Hình 4-13. in thông tin ngi qun tr 81
Hình 4-14. Drupal đã cài đt thành công 82
Hình 4-15. La chn gói ngôn ng cài đt 82
Hình 4-16. ng dn website 83
Hình 4-17. Cu hình c s d li
u 83
Hình 4-18. Kim tra cu hình máy ch 84
Hình 4-19. Màn hình đang cài đt 84
Hình 4-20. Màn hình cài đt thành công Moodle 85
Hình 4-21. Enable module plugin Drupal 86
Hình 4-22. To mt Content Type 87
Hình 4-23. in thông tin Content Type 87
Hình 4-24. Content Type ‘Gioi thieu’ đã to 88
Hình 4-25. To trang Gii thiu 88
Hình 4-26. in tiêu đ và ni dung trang 89
Khóa lun Xây dng website hc tp trc tuyn ngành công ngh thông tin
7
Hình 4-27. Tùy chnh trang Gii thiu 90
Hình 4-28. Menu Gii thiu 90
Hình 4-29. Ni dung trang Gii thiu 91
Hình 4-30. To Vocabulary Taxonomy 92
Hình 4-31. Chn loi content cn phân loi 92
Hình 4-32. Add terms Taxonomy 93
Hình 4-33. Chn loi Tin tc – Thông báo 93
Hình 4-34. Các field sau khi add 94
Hình 4-35. Filter View 94
Hình 4-36. Truyn đi s cho View 95
Hình 4-37. Enable Aggergator 95
Hình 4-38. Add Feed 96
Hình 4-39. Update Item 96
Hình 4-40. Aggregator item 97
Hình 4-41. To ImageCache 98
Hình 4-42. Action ImageCache 98
Hình 4-43. Field cn Rewrite 99
Hình 4-44. Code Rewrite 100
Hình 4-45. Form liên h 101
Hình 4-46. Giao din trang ch Drupal 102
Hình 4-47. To Custom Page Trang ch 103
Hình 4-48. Chn Layout Builder 104
Hình 4-49. Show layout designer 104
Hình 4-50. Giao din tùy chnh Layout Page 105
Hình 4-51. Add Content 106
Hình 4-52. Truyn đi s cho View Tin tc – Thông báo 107
Hình 4-53. Xem Taxonomy Term ID 108
Hình 4-54. Menu cho user qun tr 108
Hình 4-55. View qun tr 109
Hình 4-56. Style Bulk Operation 110
Hình 4-57. Hi
n th theo Bulk Operations 111
Hình 4-58. Menu qun tr 112
Hình 4-59. Thêm/sa các khóa hc 113
Hình 4-60. Thêm mc mi 113
Hình 4-61. Khai báo và mô t mc mi 114
Hình 4-62. Thêm khóa hc mi 115
Hình 4-63. Mt khóa hc theo ch đ 116
Hình 4-64. Activity completion condition 117
Hình 4-65. Mt khóa hc theo tun 118
Hình 4-66. Allow access form 119
Hình 4-67. Mt khóa hc theo chun SCORM 119
Hình 4-68. Bt ch đ chnh sa 120
Hình 4-69. Sau khi bt ch đ chnh sa 121
Khóa lun Xây dng website hc tp trc tuyn ngành công ngh thông tin
8
Hình 4-70. Tài nguyên dng Page 122
Hình 4-71. Tài nguyên dng Folder 122
Hình 4-72. Bài tp cho sinh viên 122
Hình 4-73. Gói SCORM 122
Hình 4-74. Din đàn tho lun 123
Hình 4-75. To ch đ tho lun mi 124
Hình 4-76. Hi đáp trc tuyn 125
Hình 4-77. Chat 125
Hình 4-78. Thm dò ý kin 126
Hình 4-79. Kt qu thm dò 126
Hình 4-80. Thit lp thông tin np bài tp 127
Hình 4-81. Upload file bài tp 128
Hình 4-82. Block Tin mi nht 128
Hình 4-83. S kin sp din ra 128
Hình 4-84. Hot đng gn đây 129
Hình 4-85. Thành viên trc tuyn 129
Hình 4-86. Message 129
Hình 4-87. To thi 130
Hình 4-88. T
o câu hi 130
Hình 4-89. a câu hi vào thi 131
Hình 4-90. Question Bank 132
Hình 4-91. Thi gia k 132
Hình 4-92. Thi cui k 133
Hình 4-93. Xem bài tp đã np 133
Hình 4-94. Chm đim bài tp 134
Hình 4-95. Cp nht 134
Hình 4-96. Chuyn thành bn nháp 135
Hình 4-97. Cho đim bài tp 135
Hình 4-98. im s 136
Hình 4-99. User Report (Giáo viên) 136
Hình 4-100. Grader Report 137
Hình 4-101. Xem đim Sinh viên 137
Hình 4-102. User report (Sinh viên) 138
Hình 4-103. Overview Report 138
Hình 5-1. M file 141
Hình 5-2. Properties 142
Hình 5-3. Metadate 143
Hình 5-4. Cu trúc bài ging 144
Hình 5-5. Activity (Hot đng) 146
Hình 5-6. Các thao tác khi son tho 147
Hình 5-7. Chnh sa ni dung 147
Hình 5-8. Attachment (Tp gn) 148
Khóa lun Xây dng website hc tp trc tuyn ngành công ngh thông tin
9
Hình 5-9. Case Study (Nghiên cu trng hp) 148
Hình 5-10. Free Text Area (Vn bn t do) 149
Hình 5-11. Images Gallery 149
Hình 5-12. Image Manyfier 150
Hình 5-13. Math 151
Hình 5-14. PPT2Flash Professional 151
Hình 5-15. To các slide bài ging 152
Hình 5-16. Thay đi giao din 152
Hình 5-17. Tùy chnh chung cho gói hc (Basic) 153
Hình 5-18. Tùy chnh xut file (Output) 153
Hình 5-19. Tùy chnh cách chi file (Playback) 154
Hình 5-20. Tùy chnh âm thanh (Audio) 154
Hình 5-21. Xut ra gói chun scorm 155
Hình 5-22. Xut ra dng flash 156
Hình 5-23. Xut ra dng Email 156
Hình 5-24. Hot Potato 158
Hình 5-25. Son câu hi 159
Hình 5-26. Thit lp Auto-Response 159
Hình 5-27. Export file 160
Hình 5-28. Cu hình chung HotPotato 161
Hình 5-29. QuizCreator 162
Hình 5-30. Giao din chính ca chng trình 163
Hình 5-31. Các loi câu hi 163
Hình 5-32. S lng câu hi đã có 163
Hình 5-33. To câu h
i 164
Hình 5-34. Chèn âm thanh 164
Hình 5-35. Quiz Properties 165
Hình 5-36. Quiz Information 166
Hình 5-37. Quiz Settings 167
Hình 5-38. Question Settings 168
Hình 5-39. Quiz Result 169
Hình 5-40. Nút Publish 170
Hình 5-41. Xut dng chun SCORM 170
Hình 5-42. Cu hình file xut ra 171
Khóa lun Xây dng website hc tp trc tuyn ngành công ngh thông tin
10
MC LC BNG
Bng 2-1. Mô t thông s Wiki 40
Bng 5-1. Ý ngha các thành phn iDevice 144
Khóa lun Xây dng website hc tp trc tuyn ngành công ngh thông tin
11
LI M U
Tri qua nhiu nm nay, phng thc qun lý đào to theo kiu truyn thng cho
thy s đóng góp không th chi cãi trong vic ci thin cht lng ging dy và hc tp.
Tuy nhiên, cùng vi xu hng phát trin ca công ngh thông tin và các phng tin
truyn thông, chính phng thc đó cng bc l mt s yu kém nh hng đn vic
truyn
đt và tip thu kin thc, trong đó có th k đn vic qun lý h s không đt hiu
qu cao, ni dung các giáo trình, sách giáo khoa thng khó có th cp nht kp thi, hình
thc bài ging không to nên s hng thú hc tp cho hc viên, vic tra cu các tài liu
tham kho rt hn ch và mt nhiu thi gian…iu đó mang li hiu qu hc tp không
cao mà chi phí cho h
c tp và đào to li ln dn đn s lãng phí không nh c v thi
gian và tin bc.
Do đó, khái nim hc tp trc tuyn ra đi nhm khc phc nhng nhc đim ca
phng pháp hc tp truyn thng cng nh đáp ng nhu cu ngày càng cao ca nhà
trng và hc viên. Cùng vi s phát trin mnh m c
a Công ngh mã ngun m cng
đã phn nào giúp nhà trng gim chi phí trong vic đào to. Trong s đó, Drupal và
Moodle là hai công ngh mã ngun m min phí đc đánh giá cao nht hin nay tr
giúp đc lc trong vic xây dng website hc tp trc tuyn.
ó cng chính là lý do chúng em chn mã ngun m Drupal và Moodle cho đ tài
“Xây dng website hc tp trc tuyn ngành Công ngh thông tin”. Khóa lun bao gm
các ni dung sau:
• Phn 1: Drupal
Trình bày tng quan v Drupal: khái nim, lch s, u đim…, cách t chc hot
đng Drupal, khái nim và ý ngha các Module chun ca Drupal cng nh các
Module cài đt thêm, tìm hiu v cách xây dng module cho Drupal, cách t chc
lu tr và tính an toàn ca Drupal.
• Phn 2: Moodle
Trình bày tng quan v Moodle, ý ngha, cách s dng các tài nguyên và hot
đng Moodle h tr, cng nh cách qun tr trong h thng Moodle
• Phn 3: Chun SCORM
Trình bày khái quát v
chun SCORM, các khái nim liên quan đn SCORM, cu
trúc ca SCORM.
• Phn 4: Xây dng website hc tp trc tuyn ngành công ngh thông tin ng
dng Drupal và Moodle
Khóa lun Xây dng website hc tp trc tuyn ngành công ngh thông tin
12
ng dng xây dng giao din website da trên Drupal và xây dng h thng hc
tp trc tuyn da trên Moodle
• Ph lc
Hng dn cách s dng các công c son tho bài ging và to câu hi trc
nghim cho khóa hc
Khóa lun Xây dng website hc tp trc tuyn ngành công ngh thông tin
13
PHN I DRUPAL
I. TNG QUAN V DRUPAL
I.1. Khái nim
Drupal là mt khung sn phát trin phn mm hng module, mt h thng qun
tr ni dung min phí và mã ngun m. Cng ging nh các h thng qun tr ni dung
hin đi khác, Drupal cho phép ngi qun tr h thng to và t chc d liu, tùy chnh
cách trình bày, t đng hóa các tác v điu hành và qun lý h
thng nhng. Drupal có
cu trúc lp trình rt tinh vi, da trên đó, hu ht các tác v phc tp có th đc gii
quyt vi rt ít đon mã đc vit, thm chí không cn. ôi khi, Drupal cng đc gi là
"khung sn phát trin ng dng web", vì kin trúc thông minh và uyn chuyn ca
Drupal.
Drupal đc chy trên rt nhiu môi trng khác nhau, bao gm Windows, Mac
OS X, Linux, FreeBSD, OpenBSD và các môi trng h tr máy phc v
web Apache
(phiên bn 1.3+) hoc IIS (phiên bn 5+) có h tr ngôn ng PHP (phiên bn 4.3.3+).
Drupal kt ni vi c s d liu MySQL hoc PostgreSQL đ lu ni dung và các thit
lp.
I.2. Lch s
u tiên, Drupal đc Dries Buytaert và Hans Snijder (đn t đi hc Antwerp),
to ra theo dng mt h thng bng tin (Bulletin board system). n nm 2001, Drupal
tr thành mt công trình ngun m. Drupal, trong ting Anh, đc chuyn ng t ch
"druppel" ca ting Hà Lan, ngha là "git nc". Hin nay, có mt cng đng rng ln
đang giúp đ phát trin Drupal.
I.3. Nn tng
• PHP
• MySQL
• PostgreSQL
• Apache
• Jquery
• XMLRPC
I.4. ng dng
Vi Drupal cùng vi các module cng thêm có th xây dng nhiu ng dng mà
không cn phi b ra nhiu thi gian đ phát trin, các hng ng dng có th phát tri
n
da trên Drupal nh:
− Hng cá nhân/ t chc: Blog, Calendar, Dicussing forum,…
− Hng cng đng: Multi blog site, Organic Groups, Voting,…
− Hng doanh nghip: Webservice, Brochure, Newsletter, News site,…
I.5. u đim
Khóa lun Xây dng website hc tp trc tuyn ngành công ngh thông tin
14
¬ H thng module linh hot
Drupal phát trin theo hng module nên có th d dàng thêm hay g b theo nhu
cu hoc có th kt hp vi module khác hình thành mt ng dng ln hn, đa chc nng
hn.
¬ Tùy chnh Theme h thng
Drupal h tr PHPTemplate cho phép to ra giao din phong phú, linh đng.
¬ To ni dung m rng
Ngoài các kiu ni dung c bn nh Page, Story, Forum, Blog, Drupal cho phép
to thêm cá kiu ni dung mi nh h thng Taxonomy hay bng cách thêm vào các
module
¬ Tùy chnh chc nng tìm kim
Drupal qun lý trang bng s node và có th thay th sao cho URLs tr nên thân
thin vi ngi dùng khi tìm kim
¬ Quyn truy cp theo vai trò
H thng phân quyn, c bn da trên b ba: module + thao tác + vai trò. Do đó d
dàng m rng thêm.
I.6. Nhc đim
Do không tng thích ngc nên module phi đc vit riêng cho tng phiên b
n
4.x, 5.x ,6.x và 7.x ti cùng mt thi đim, Drupal ch h tr 2 phiên bn mi nht. iu
này làm cho ngi s dng bt tin khi phi nâng cp liên tc.
II. CÁCH HOT NG CA DRUPAL
II.1. Technology Stack
Mc đích thit k ca Drupal có th chy tt trên các máy ch web và có th đm
bo v hiu nng và đ an toàn bng vic s dng các công ngh ph
bin.
Hình 1-1. Drupal’s Technology Stack
Theo hình 1-1, lp thp nht là h điu hành: Drupal có th chy trên đa nn nh
Linux, BSD, Mac OS X, Windows, Solaris. K đn là lp Web Server: Drupal có th
chy trên nhiu máy ch web khác nhau đc s dng ph bin là Apache và còn h tr
c IIS. Lp Database (c s d liu): Drupal h tr MySQL và PostgreSQL (MySQL,
Khóa lun Xây dng website hc tp trc tuyn ngành công ngh thông tin
15
PostgreSQL là h qun tr c s d liu). Lp trên cùng là Language (lp ngôn ng):
Drupal s dng ngôn ng PHP có h tr lp c s d liu tru tng (Database
Abstraction Layer). Nh lp này, làm cho PHP có th kt ni và truy vn đn c s d
liu d dàng và an toàn hn.
II.2. Core
Mt khung sn nh đc tích hp thành nhân ca Drupal: Cung cp các chc
nng c bn nh
qun lý ngi dùng, qun lý ni dung có h tr phân loi kiu ni dung
(taxonomy) và các template (mu giao din). H thng s thc hin các yêu cu ca
ngi dùng và mt th vin dùng chung s đc s dng cùng vi các thành phn
Drupal, nh hình bên di:
Hình 1-2. Tng quan v Drupal core (không bao gm tt c chc nng)
II.3. Module
Module là phn m rng có th cài đt vào Drupal đ thêm các ng dng hay các
chc nng cho Drupal, có th bt hoc tt các module có sn trong Drupal. Ngoài ra
ngi dùng có th tìm các module m rng đ tích hp vào Drupal ti
hoc t vit các module mi cho trang web.
Khóa lun Xây dng website hc tp trc tuyn ngành công ngh thông tin
16
Hình 1-3. Module có th đc thêm vào đ tng cng các chc nng.
II.4. Hooks
Hook đc xem nh là các s kin (event) bên trong b nhân Drupal hoc đc
gi là callbacks. H thng hook đa dng giúp ngi lp trình can thip vào mi hot đng
mà không phi sa bt kì dòng lnh nào ca nhân hay các phn khác.
II.5. Themes
Khi to ra mt trang web gi ti trình duyt, nó có 2 phn chính là mt nhóm các
d liu tng ng (n
i dung) và đánh du d liu trên web. Trong Drupal, lp ch đ
chu trách nhim to ra HTML đ cung cp cho trình duyt web.
c bit Drupal khuyn khích tách bit gia ni dung và đánh du ni dung.
Drupal cho phép ngi qun tr giao din có th hiu chnh và thay th giao din cho
trang web, mt cách đn gin nht là dùng CSS (Cascading Style Sheet) đ thay đi các
mu giao din có sn.
II.6. Nodes
Các kiu ni dung trong Drupal đu k tha t ki
u c bn là node. Cng có th
nói ht nhân ca Drupal là node vi cu trúc đn gin. phát trin các kiu ni dung
phc tp, mi node s đc liên kt vi mt ni dung có kiu khác nhau. Node đc qun
lý nh h thng phân loi kiu ni dung (taxonomy), đây cng là đc trng ca Drupal.
Node cha tt c các mc đ, ni dung, ngày tháng, …
Cách tng tác vi node là m rng chúng. Có th
thêm vào các node các chc
nng m rng nh: đánh giá bài vit, bình lun, đính kèm file, …
Mi node có mt đa ch URL xác đnh, da vào node_id, cu trúc nh sau:
<đa ch trang web>?q=node/node_id. Nu node_id không đc xác đnh thì h thng s
chuyn v trang ch.
Khóa lun Xây dng website hc tp trc tuyn ngành công ngh thông tin
17
II.7. Blocks
Block là thông tin có th kích hot hoc vô hiu hóa trong mt v trí xác đnh trên
mu s dng ca trang web. Các Block thng đc đt các v trí: leftsidebar, right-
sidebar, header hoc footer.
Thông thng, các Block đc s dng đ mô t thông tin đc điu chnh ti
ngi dùng hin hành. Ví d: Block điu hng (navigation) cha các liên kt ti chc
nng qun tr mà ngi dùng có th truy cp. S sp x
p và vùng hin th các block đc
qun lý thông qua giao din qun tr trang web.
III. MODULE CHUN CA DRUPAL
III.1. Aggregator
RSS là mt đnh dng tp tin thuc h XML dùng trong vic chia s tin tc Web
(Web syndication) đc dùng bi nhiu website tin tc và weblog. nh dng RSS cung
cp ni dung web và tóm lc ni dng web cùng vi các liên kt đn phiên bn đy đ
ca ni dung tin đó, và các siêu-d-liu (meta-data) khác. Thông tin này đc cung cp
di d
ng mt tp tin XML đc gi là mt RSS feed, webfeed, RSS stream, hay RSS
channel. Aggreagator có kh nng đi ly tin RSS t các website khác, lu li trong
CSDL, ri trình bày ra giao din ngi dùng. Các ngun tin RSS có th đc phân mc
theo 'Category'.
III.2. Blog
Drupal là h thng tiên phong trong lnh vc blog đa ngi dùng. Mi user có th
to blog cho riêng mình. Blogger s nhn đc URL ca blog mình. Tính nng này làm
cho drupal tr thành cu ni tuyt vi gia blog cá nhân và cng đng trên mng.
có th bt đ
u vic to blog entry, ngi qun tr cn ch đnh quyn cho mi
user. Ngoài ra có th to các danh mc cha blog (s dng vi Taxonomy Module), có
th cho phép upload file, lu lch s, bình lun trong blog.
Mi blog có th tùy chnh theme khác nhau bng cách cài đt thêm module Blog
Theme ti đa ch
III.3. Blog API
Ngi dùng website có th dùng mt công c nào đó đ to mt blog entry t xa
(qua Google Docs chng hn). BlogAPI s đng ra đm nhn vai trò trung gian nh
n
d liu, lu vào CSDL.
Blog API h tr nhiu XML-RPC da trên blogging APIs nh là new Blogger
Data API, Meta Weblog API và Movable Type API
III.4. Book
Vi module này, ngi dùng có th to các trang ni dung có đánh ch mc rõ
ràng. Module này rt thích hp đ làm brochure, tài liu hng dn, Hin ti module
này cn đc ci tin nhiu đ đáp ng nhu cu thc t.
iu này rt hu ích cho ngi dùng đóng góp vào vic xây dng các trang sách
nhng không ph
i mi đóng góp đu mang mc đích đúng và tt đp. Vì th đ tránh
Khóa lun Xây dng website hc tp trc tuyn ngành công ngh thông tin
18
hành vi chnh sa, xóa b, vit sai ni dung, các trang phi thông qua s chp thun ca
ngi qun tr mi đc biu din trên website.
Module cung cp ba quyn sau: Create Book Pages, Edit Own Book Pages,
Maintain Books.
o Create Book Pages: Cho phép to trang
o Edit Own Book Pages: Cho phép chnh sa các trang do bn thân s hu
o Maintain Books: Cho phép chnh sa toàn b
III.5. Comment
Khi xem mt trang ni dung (node, nh mt blog entry, mt article chng hn),
ngi xem có th gi ý kin phn hi c
a mình. Module này rt cn cho các website cn
tng tác t phía ngi dùng.
III.6. Contact
Ngi dùng có th gi mail cho ngi qun lý website hay cho mt thành viên nào
đó ca website nh chc nng mà module này cung cp.
Module này cung cp 2 hình thc liên h: Personal Contact Form, Sitewide
Contact Form
o Personal Contact Form: User có th cho phép nhng user khác nhìn thy
email ca mình và gi mail thông qua Contact tab
o Sitewide Contact Form: Có th to ra các nhóm ngi liên h qua đó có th
gi mail cho nhiu ngi cùng lúc.
III.7. Filter
Module này cung cp các phng thc trình bày khác nhau trên cùng mt trng
d
liu. iu này rt hu ích trong vic ngn chn các đon code, script nguy him, li cú
pháp, các th HTML,…
Module này đc bt mt cách t đng và có th cu hình bng cách truy cp
Administer / Input format
III.8. Forum
Module cho phép to din đàn tho lun. Ngòi qun tr cn to các Container
trc khi to các ch đ. iu này giúp cho vic t chc và qun lý d dàng hn.
III.9.
Help
Các module có phn tr giúp ngi dùng, tuy nhiên ch khi bt module Help lên
thì ngi dùng mi có th xem đc phn này.
Chú ý module Help không cung cp mt cách chính xác cng nh chi tit v
hng dn ngi dùng, vì vy đ to thêm cng nh chnh sa có th s dng Help Edit
Module ti v ti đa ch 18031.
III.10. Legacy
Module Legacy cung cp cho vic nâng cp t bn cài đt c. Nhng x lý giúp
các tham chiu t
đng chuyn hng đn các trang t bn cài đt c và ngn chn trang
không tìm thy li trang web
Khóa lun Xây dng website hc tp trc tuyn ngành công ngh thông tin
19
Module legacy phân loi x lý kiu cách trang taxonomy, ngun cp d liu phân
loi, và đng dn ngun cp d liu cho blog (blog feed paths). Nó cng x lý nâng cp
URL t Drupal 4.1. Nó ghi đè URL kiu c sang các URL kiu mi (URL rõ ràng).
III.11. Node
Các ni dung mà ngi lu tr đa s đc lu di dng node (blog entry, book
page, forum topic, page content, article, ). Mi mt node có các thuc tính c bn:
− Kiu ni dung (content type): Thuc tính này nhm phân bit node nào là 'forum
topic', node nào là 'book page',
− Quy
n hn: ng vi mi kiu ni dung, webmaster có th gii hn 'quyn to
ra', 'quyn chnh sa' cho mt s nhóm ngi dùng nht đnh.
− Tác gi: Mi mt node s có mt và ch mt tác gi.
− Thi đim to: Thi đim mà node đc to ra
− Thi đim chnh sa cui cùng
− Tiêu đ: Tiêu đ ca node. Thí d, tiêu đ ca mt forum node cng là tiêu đ
ca 'lung tho lun' đó.
− Ni dung chính.
− Workflow: Mi mt node s có mt dòng chy ca nó. Da vào dòng chy ca
mt node, h thng có th bit đc mt node đã đc xut bn hay cha, khi đã
đc xut bn thì có đc trình bày ra trang chính hay không, có đc c đnh
v trí trên cùng đi v
i các node khác hay không,
IV. CÁC MODULE H TR THÊM
IV.1. Views
Views là mt b lc có vai trò lc và trình bày ni dung.
− Lc ni dung: View giúp lc các kiu ni dung cn theo mt s điu kin đt ra.
Ví d: cn ly ra 6 bài vit mi nht hoc ly ra các bài vit thuc ch đ “tin th
gii’. ó là vai trò chính ca Views. Views giúp ly ra các ni dung mà ngi
dùng cn.
− Hin th n
i dung: Sau khi lc các ni dung ra có đc danh sách các ni dung
cn hin th. Tuy nhiên, ngi dùng mun trình bày các kiu ni dung này theo
các cách khác nhau. Ví d ngi dùng mun trình bày dng bng các ni dung,
hoc danh sách các ni dung. Ngoài ra đ to hiu ng đp có th trình bày theo
kiu slide ngha là c my giây li có mt ni dung xut hin thay th ni dung
đã trình bày. Vai trò th hai ca Views là trình bày các ni dung đã lc ra đc.
IV.2. Panels
Panels giúp chia nh phn ni dung thành các vùng nh
hn. Drupal trình bày giao
din thành các vùng đ cha các block - block là các phn ni dung. Thng thì mt
theme ca drupal có mt s vùng c bn: header, footer, content, sidebar left, sidebar
right. Các vùng này bao quanh vùng ni dung. Ngoài ra, có th thêm nhiu vùng vào
theme tùy ý đó chính là s uyn chuyn ca Drupal. Tuy nhiên các trang báo chia vùng
nôi dung (vùng content) thành các phn nh hn đ tin trình bày. Ví d chia vùng
Khóa lun Xây dng website hc tp trc tuyn ngành công ngh thông tin
20
content thành ct trên đu cha tin nóng, hai ct hai bên cha các block có các bài vit
đc phân loi. Vic chia này ging nh s dng layout trong Word. Layout giúp trình
bày ni dung dng ct báo thì Panels cng làm nhim v này cho phn ni dung(vùng
content) ca theme. Panels giúp chia phn ni dung thành các phn nh hn và trên mi
phn đó cha các block ni dung ca trang.
IV.3. Content Construction Kit (CCK)
Drupal h tr hai loi ni dung c bn là Page và Story nhng c hai kiu ni dung
này tng t nhau gm có 2 field: Title và Body không th
đáp ng đc vic phát trin
ni dung website. Do đó CCK ra đi giúp cho vic m rng ni dung mt cách d dàng
hn. Ngi qun tr có th thêm các field mi vào kiu ni dung nh Text field, Image
field, File field, Radio button. có th thêm File field, Image field, Radio cn phi cài
đt thêm module File Field và Image Field dùng chung vi CCK.
Sau khi đã to thêm field mi, CCK t đng lu tr nhng thông tin vào c s d
liu và biu din trong nhng cách khác nhau.
IV.4. Ckeditor
Ckeditor là trình so
n tho mã ngun m theo kiu WYSIWYG (“What You See
Is What You Get”) ngha là ngi dùng không cn có kin thc v HTML vn có th
đnh dng đc đon vn bn mình mun. CCK có giao din thân thin, d s dng chc
nng tng t nh trình son tho word. Tuy nhiên, ngi qun tr cn phi ch đnh
Filter HTML đi vi ngi dùng bình thng đ ngn chn các mã đc hi.
Ngoài ra c
n phi tích hp module IMCE vào Ckeditor đ có th s dng chc
nng tìm và chèn hình nh mt cách d dàng hn.
V. XÂY DNG MODULE CHO DRUPAL
V.1. File .info và .module
Cu trúc ca mt module có th gm nhiu tp tin khác nhau nhng phi có ít nht
mt tp tin <tenmodule>.info và mt tp tin <tenmodule>.module trong đó <tenmodule>
là tên ca th mc cha module đc to, tên này không đc trùng vi các module đã
tn ti trong h thng.
V.1.1. File .info
Trc khi th
c s đi vào vit mã cho mt module phi to ra mt file vn bn
cha các thông tin c bn v module đó. Mt s thành phn ca Drupal s s dng các
thông tin trong file này cho vic qun lý module.
File .info đc vit theo kiu ca file PHP .ini, mt đnh dng file đc xác đnh
cho vic thit lp. Ni dung mt file .info có dng nh sau:
name = “Xem diem”
description = “Xem diem sinh vien”
core = 6.x
php = 5.1
Trng name khai báo tên ca module, tên này s hin th trong danh sách các
module có
khu vc ngi qun tr. Trng description cha thông tin v module, mô
Khóa lun Xây dng website hc tp trc tuyn ngành công ngh thông tin
21
t chc nng nhim v mà module s thc hin. name và description là hai trng bt
buc phi có trong file .info.
Trng th ba là core. Mc này ch rõ module s hot đng tt trên phiên bn nào
ca Drupal. Giá tri 6.x cho bit module này yêu cu phiên bn Drupal 6, bao gm các
phiên bn nâng cp t bn 6. Trong nhiu trng hp, Drupal s t đng đt giá tr này
mt cách hp lý, nhng nhng ngi phát tri
n làm vic vi CVS (Concurrent Version
System – h thng qun lý phiên bn ng dng) đc khuyn cáo nên t mình đt giá tr
cho trng core.
Ch dn cui cùng trong file .info trên là php cho bit phiên bn ti thiu ca PHP
mà module yêu cu.
Ngoài ra các module phc tp hn còn có thêm mt s trng thông tin trong file
.info nh sau:
o Package: Nhóm các chc nng ca module, nu không khai báo package thì
module đc đa vào nhóm “other”.
o Dependencies: Các module ph thuc, cách nhau bng khong trng. N
u
module đc yêu cu cha đc bt trên h thng thì module này không th
bt đc.
V.1.2. File .module
File .module là file quan trng nht trong mt module, cha các đon mã PHP
thc hin chc nng ca module đó. File này thông thng s đc m rng mt s hàm
hook mà Drupal gi ti các thi đim nht đnh đi vi mt yêu cu.
Cng ging nh file .info, file .module đc đt tên theo quy t
c
<modulename>.module, trong đó <modulename> là tên th mc cha module.
Ni dung file .module bt đu bng th <?php sau đó là mã ngun. Theo quy c
ca Drupal, file này s không cha du đóng ?>. Vic này giúp tránh in nhng ký t
trng trong đu ra ca mã kch bn trong mt s trng hp. Ví d, nu các ký t trng
đc xut ra trc khi phn thông tin header ca HTML gi đi, trình duyt máy khách
s xut hin thông báo li trên đu c
a trang web.
V.2. Mt s hook c bn
¬ Hook block
Hook này đc s dng đ to mt block hin th thông tin. Khi hook_block đc
gi, Drupal s truyn 3 tham s vào hàm: $op, $delta, $edit.
Tham s $op cha thông tin v loi thao tác mà module s thc hin. Tham s này
có th nhn mt trong 4 giá tr sau:
o list: Giá tr này đc dùng khi module cung cp thông tin v chính nó.
o view: Giá tr này đc truyn vào khi Drupal mun hook block cung cp
thông tin đ hin th cho ng
i dùng.
o configure: Dùng đ điu chnh các thit lp cho block
o save: Giá tr này đc dùng khi thông tin v thit lp ca block ly t form
d liu sinh ra bi configure cn đc lu li.
Tham s $delta đc đt ph thuc vào các thao tác nht đnh ca module. Khi
$op có tr là view thì $delta s đc đt. Tham s này cha các thông tin thêm v ni