1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng website học tập trực tuyến ngành công nghệ thông tin

176 672 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 176
Dung lượng 4,92 MB

Nội dung

XÂY D NG MODULE CHO DRUPAL ..... Tùy ch n cách upload file Advance uploading of file .... XÂY D NG MODULE CHO MOODLE ..... Enable module plugin Drupal ..... Giao di n trang ch Drupal ...

Trang 1

Khoa công ngh thông tin

v(w

Khoá lu n t t nghi p

tài Xây d ng Website h c t p tr c tuy n

ngành công ngh thông tin

GVHD: NINH XUÂN H NG SVTH: TR NG V NH NGHI P - 10701086

PH M NG C HUY - 10761217

Niên khoá 2007 - 2011

Trang 2

L I C M N

u tiên, chúng em xin g i l i c m n chân thành đ n quý Th y, Cô khoa Công

Ngh Thông Tin, tr ng i h c M đã t n tình gi ng d y, truy n đ t nh ng ki n th c,

kinh nghi m quý báu và đã khích l , h tr m i m t cho chúng em trong su t b n n m

đ i h c chu n b hành trang vào đ i

c bi t, chúng em xin c m n Th y Ninh Xuân H ng, ng i luôn s n sàng và

t n tình h ng d n, giúp đ , đ ng viên chúng em trong su t quá trình th c hi n đ án

này

Chúng em xin c m n t t c b n bè đã và đang luôn đ ng viên, chia s , giúp đ

chúng tôi t n tình trong su t th i gian h c t p c ng nh th c hi n đ án

Cu i cùng, chúng con kính g i l i c m n sâu s c nh t đ n toàn th gia đình C m

n Cha, M đã khó nh c sinh thành và giáo d ng chúng con C m n t t c m i ng i

đã tin t ng, khích l , đ ng viên và t o m i đi u ki n t t nh t cho chúng con trong su t

th i gian qua đ chúng con có đ c thành qu nh ngày hôm nay

TPHCM, tháng 2 n m 2011

Ph m Ng c Huy

Trang 3

L I NH N XÉT GIÁO VIÊN H NG D N

Trang 4

Trang 5

M C L C

L I M U 11

PH N I DRUPAL 13

I T NG QUAN V DRUPAL 13

I.1 Khái ni m 13

I.2 L ch s 13

I.3 N n t ng 13

I.4 ng d ng 13

I.5 u đi m 13

I.6 Nh c đi m 14

II CÁCH HO T NG C A 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 CHU N C A 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 D NG 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 M t s hook c b n 21

V.3 nh ngh a m t hook m i 24

V.3.1 Cách t o m t hook 24

Trang 6

V.3.2 S d ng hook vào các module khác 24

V.4 jQuery trong Drupal 24

V.5 Form API 25

V.5.1 T o form 25

V.5.2 Giao di n hóa form 26

V.5.3 Ki m tra d li u 26

V.5.4 G i form lên trang web 26

VI T CH C L U TR C A DRUPAL 27

VII TÍNH AN TOÀN C A DRUPAL 29

VII.1 An toàn đ i v i ng i dùng 29

VII.2 An toàn đ i v i mã ngu n 29

VII.3 Tính an toàn đ i v i d li u 30

PH N II MOODLE 31

I T NG QUAN V MOODLE 31

I.1 Khái Ni m 31

I.2 L ch s 31

I.3 u đi m 31

II TÀI NGUYÊN MOODLE H TR 31

II.1 Nhãn (Label) 31

II.2 Trang v n b n (Text Page) 31

II.3 Trang web (Web Page) 32

II.4 Liên k t m t file hay website (URL) 32

II.5 Th m c (Folder) 32

II.6 Gói n i dung (IMS Content Package) 32

III CÁC HO T NG MOODLE H TR 32

III.1 Nhi m v (Assignments) 32

III.1.1 Tùy ch n cách upload file (Advance uploading of file) 33

III.1.2 Ki m tra tr c tuy n (Online Text) 33

III.1.3 Upload m t file (Upload a single file) 34

III.1.4 Ho t đ ng offline (Offline Activity) 34

III.2 Tán g u (Chat) 34

III.3 Di n đàn (Forum) 34

III.4 Bài h c (Lesson) 35

III.5 Câu h i (Quiz) 36

III.5.1 T o danh m c 37

III.5.2 T o câu h i 38

III.6 B ng thu t ng (Glossary) 38

III.7 Wiki 39

III.8 L a ch n (Choice) 40

III.9 Kh o sát (Survey) 41

III.10 Gói SCORM (SCORM Package) 42

IV XÂY D NG MODULE CHO MOODLE 42

IV.1 C u trúc module 42

Trang 7

IV.2 Vi t module m i d a trên NEWMODULE Template 42

V QU N TR 43

V.1 Thông báo (Notification) 43

V.2 Ng i dùng (Users) 43

V.2.1 Ch ng th c (Authentication) 43

V.2.2 Tài kho n (Accounts) 45

V.2.3 Quy n (Permissions) 45

V.3 Khóa h c (Course) 46

V.4 nh v (Location) 49

V.5 Ngôn ng (Languages) 49

V.6 Modules 50

V.7 B o m t (Security) 51

V.8 Giao di n (Apperance) 52

V.9 Trang chính (Front Page) 54

V.10 Server 55

PH N III CHU N SCORM 56

I KHÁI QUÁT V SCORM 56

I.1 Quá trình phát tri n c a SCORM 56

I.2 L i ích kinh doanh c a SCORM 56

II CÁC KHÁI NI M C B N LIÊN QUAN N SCORM 57

II.1 Asset 57

II.2 SCO (Sharable Content Object) 57

II.3 S khác nhau gi a Asset và SCO 57

III C U 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 D NG WEBSITE H C T P TR C TUY N NGÀNH CÔNG NGH THÔNG TIN NG D NG DRUPAL VÀ MOODLE 67

I PHÂN TÍCH 67

I.1 Mô t bài toán 67

I.2 Yêu c u ch c n ng 67

I.2.1 Yêu c u l u tr 67

I.2.2 Yêu c u nghi p v 67

I.3 Yêu c u phi ch c n ng 68

I.3.1 Tính ti n hoá 68

I.3.2 Tính b o m t 68

I.3.3 Tính t ng thích 68

Trang 8

I.4 Ph ng pháp 68

II THI T K 68

II.1 Thi t k t ng th 69

II.1.1 Thi t k vi c trình bày tin t c 69

II.1.2 Thi t k khóa h c 69

II.1.3 Bài thi 69

II.1.4 N p bài t p 69

II.1.5 Di n đàn th o lu n 69

II.1.6 Ch m đi m 70

II.1.7 Thông báo 70

II.1.8 Qu n lý ng i dùng 70

II.1.9 ng nh p 70

II.2 S đ website 70

III Tri n khai 76

III.1 Chu n 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 d ng h th ng website 86

III.3.1 Drupal 86

III.3.1.1 Xây d ng trang “Gi i thi u” 86

III.3.1.2 Xây d ng trang “Tin t c – Thông báo” 91

III.3.1.3 Hi n th tin t website Moodle 95

III.3.1.4 Xây d ng trang “ nh ho t đ ng” 97

III.3.1.5 T o trang “Liên h ” 100

III.3.1.6 Xây d ng trang ch 101

III.3.1.7 Xây d ng menu cho user qu n tr 108

III.3.2 Moodle 112

III.3.2.1 Xây d ng khóa h c 112

III.3.2.1.1 Tài nguyên khóa h c 121

III.3.2.1.2 Ho t đ ng khóa h c 123

III.3.2.1.3 Các block c a khóa h c 128

III.3.2.2 Xây d ng đ thi 129

III.3.2.2.1 T o câu h i 129

III.3.2.2.2 Làm bài thi 132

III.3.2.3 i m s 133

III.3.2.3.1 Ch m đi m 133

III.3.2.3.2 Xem đi m 136

IV ÁNH GIÁ VÀ H NG PHÁT TRI N 139

IV.1 ánh giá 139

IV.2 H ng phát tri n 139

Trang 9

TÀI LI U THAM KH O 140

PH L C 141

I Xây d ng bài gi ng 141

I.1 eXe 141

I.1.1 Cài đ t 141

I.1.2 Th c hành 141

I.1.2.1 Kh i đ ng m t d án bài gi ng 141

I.1.2.2 nh ngh a thu c tính ( Defining Properties) 141

I.1.2.3 Xác đ nh c u trúc bài gi ng (Defining an outline) 143

I.1.2.4 Ý ngh a các thành ph n iDevices 144

I.1.3 Minh ho s d ng m t s công c iDevice 146

I.2 PPT2Flash Professional 151

I.2.1 Cài đ t 151

I.2.2 Th c hành 151

II T o câu h i tr c nghi m 157

II.1 HotPotato 157

II.1.1 T ng quan 157

II.1.2 Jquiz: 158

II.1.3 M t s c u hình c n thi t chung c a HotPot6: 160

II.2 QuizCreator 161

II.2.1 Cài đ t 161

II.2.2 T o câu h i 161

II.2.3 Thi t l p 165

Trang 10

M C L C HÌNH

Hình 1-1 Drupal’s Technology Stack 14

Hình 1-2 T ng quan v Drupal core (không bao g m t t c ch c n ng) 15

Hình 1-3 Module có th đ c thêm vào đ t ng c ng các ch c n ng 16

Hình 1-4 Ki u node đ c b t ngu n t m t node c b n và có th thêm các tr ng 27

Hình 1-5 M i quan h gi a các b ng trong c s d li u c a Drupal 28

Hình 3-1 C u trúc gói n i dung 61

Hình 3-2 Mô hình RTE 62

Hình 3-3 C ch giao ti p gi a LMS và SCO 64

Hình 3-4 SCO g i hàm LMSInittialize() t LMS 65

Hình 3-5 SCO ki m tra và truy n cho LMS qu n lý 65

Hình 3-6 SCO g i hàm LMSFinish() t LMS đ k t thúc phiên làm vi c 66

Hình 4-1 S đ website Drupal 71

Hình 4-2 Thi t k Tin t c – Thông báo 72

Hình 4-3 S đ website Moodle 73

Hình 4-4 Các khóa h c 74

Hình 4-5 Thi t k khóa h c 75

Hình 4-6 Start Apache và MySql 76

Hình 4-7 Cài đ t ch y service 77

Hình 4-8 Màn hình web server 78

Hình 4-9 T o c s d li u cho website Drupal 79

Hình 4-10 Ch n ngôn ng cài đ t Drupal 79

Hình 4-11 i n thông tin Database 80

Hình 4-12 i n thông tin site name, site email 81

Hình 4-13 i n thông tin ng i qu n tr 81

Hình 4-14 Drupal đã cài đ t thành công 82

Hình 4-15 L a ch n gói ngôn ng cài đ t 82

Hình 4-16 ng d n website 83

Hình 4-17 C u hình c s d li u 83

Hình 4-18 Ki m tra c u 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 T o m t Content Type 87

Hình 4-23 i n thông tin Content Type 87

Hình 4-24 Content Type ‘Gioi thieu’ đã t o 88

Hình 4-25 T o trang Gi i thi u 88

Hình 4-26 i n tiêu đ và n i dung trang 89

Trang 11

Hình 4-27 Tùy ch nh trang Gi i thi u 90

Hình 4-28 Menu Gi i thi u 90

Hình 4-29 N i dung trang Gi i thi u 91

Hình 4-30 T o Vocabulary Taxonomy 92

Hình 4-31 Ch n lo i content c n phân lo i 92

Hình 4-32 Add terms Taxonomy 93

Hình 4-33 Ch n lo i Tin t c – 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 Truy n đ 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 T o ImageCache 98

Hình 4-42 Action ImageCache 98

Hình 4-43 Field c n Rewrite 99

Hình 4-44 Code Rewrite 100

Hình 4-45 Form liên h 101

Hình 4-46 Giao di n trang ch Drupal 102

Hình 4-47 T o Custom Page Trang ch 103

Hình 4-48 Ch n Layout Builder 104

Hình 4-49 Show layout designer 104

Hình 4-50 Giao di n tùy ch nh Layout Page 105

Hình 4-51 Add Content 106

Hình 4-52 Truy n đ i s cho View Tin t c – Thông báo 107

Hình 4-53 Xem Taxonomy Term ID 108

Hình 4-54 Menu cho user qu n tr 108

Hình 4-55 View qu n 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 qu n tr 112

Hình 4-59 Thêm/s a các khóa h c 113

Hình 4-60 Thêm m c m i 113

Hình 4-61 Khai báo và mô t m c m i 114

Hình 4-62 Thêm khóa h c m i 115

Hình 4-63 M t khóa h c theo ch đ 116

Hình 4-64 Activity completion condition 117

Hình 4-65 M t khóa h c theo tu n 118

Hình 4-66 Allow access form 119

Hình 4-67 M t khóa h c theo chu n SCORM 119

Hình 4-68 B t ch đ ch nh s a 120

Hình 4-69 Sau khi b t ch đ ch nh s a 121

Trang 12

Hình 4-70 Tài nguyên d ng Page 122

Hình 4-71 Tài nguyên d ng Folder 122

Hình 4-72 Bài t p cho sinh viên 122

Hình 4-73 Gói SCORM 122

Hình 4-74 Di n đàn th o lu n 123

Hình 4-75 T o ch đ th o lu n m i 124

Hình 4-76 H i đáp tr c tuy n 125

Hình 4-77 Chat 125

Hình 4-78 Th m dò ý ki n 126

Hình 4-79 K t qu th m dò 126

Hình 4-80 Thi t l p thông tin n p bài t p 127

Hình 4-81 Upload file bài t p 128

Hình 4-82 Block Tin m i nh t 128

Hình 4-83 S ki n s p di n ra 128

Hình 4-84 Ho t đ ng g n đây 129

Hình 4-85 Thành viên tr c tuy n 129

Hình 4-86 Message 129

Hình 4-87 T o thi 130

Hình 4-88 T o câu h i 130

Hình 4-89 a câu h i vào thi 131

Hình 4-90 Question Bank 132

Hình 4-91 Thi gi a k 132

Hình 4-92 Thi cu i k 133

Hình 4-93 Xem bài t p đã n p 133

Hình 4-94 Ch m đi m bài t p 134

Hình 4-95 C p nh t 134

Hình 4-96 Chuy n thành b n nháp 135

Hình 4-97 Cho đi m bài t p 135

Hình 4-98 i m 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 đi m 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 C u trúc bài gi ng 144

Hình 5-5 Activity (Ho t đ ng) 146

Hình 5-6 Các thao tác khi so n th o 147

Hình 5-7 Ch nh s a n i dung 147

Hình 5-8 Attachment (T p g n) 148

Trang 13

Hình 5-9 Case Study (Nghiên c u tr ng h p) 148

Hình 5-10 Free Text Area (V n b n 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 T o các slide bài gi ng 152

Hình 5-16 Thay đ i giao di n 152

Hình 5-17 Tùy ch nh chung cho gói h c (Basic) 153

Hình 5-18 Tùy ch nh xu t file (Output) 153

Hình 5-19 Tùy ch nh cách ch i file (Playback) 154

Hình 5-20 Tùy ch nh âm thanh (Audio) 154

Hình 5-21 Xu t ra gói chu n scorm 155

Hình 5-22 Xu t ra d ng flash 156

Hình 5-23 Xu t ra d ng Email 156

Hình 5-24 Hot Potato 158

Hình 5-25 So n câu h i 159

Hình 5-26 Thi t l p Auto-Response 159

Hình 5-27 Export file 160

Hình 5-28 C u hình chung HotPotato 161

Hình 5-29 QuizCreator 162

Hình 5-30 Giao di n chính c a ch ng trình 163

Hình 5-31 Các lo i câu h i 163

Hình 5-32 S l ng câu h i đã có 163

Hình 5-33 T o 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 Xu t d ng chu n SCORM 170

Hình 5-42 C u hình file xu t ra 171

Trang 14

M C L C B NG

B ng 2-1 Mô t thông s Wiki 40

B ng 5-1 Ý ngh a các thành ph n iDevice 144

Trang 15

L I M U

Tr i qua nhi u n m nay, ph ng th c qu n lý đào t o theo ki u truy n th ng cho

th y s đóng góp không th ch i cãi trong vi c c i thi n ch t l ng gi ng d y và h c t p Tuy nhiên, cùng v i xu h ng phát tri n c a công ngh thông tin và các ph ng ti n truy n thông, chính ph ng th c đó c ng b c l m t s y u kém nh h ng đ n vi c truy n đ t và ti p thu ki n th c, trong đó có th k đ n vi c qu n lý h s không đ t hi u

qu cao, n i dung các giáo trình, sách giáo khoa th ng khó có th c p nh t k p th i, hình

th c bài gi ng không t o nên s h ng thú h c t p cho h c viên, vi c tra c u các tài li u tham kh o r t h n ch và m t nhi u th i gian… i u đó mang l i hi u qu h c t p không cao mà chi phí cho h c t p và đào t o l i l n d n đ n s lãng phí không nh c v th i gian và ti n b c

Do đó, khái ni m h c t p tr c tuy n ra đ i nh m kh c ph c nh ng nh c đi m c a

ph ng pháp h c t p truy n th ng c ng nh đáp ng nhu c u ngày càng cao c a nhà

tr ng và h c viên Cùng v i s phát tri n m nh m c a Công ngh mã ngu n m c ng

đã ph n nào giúp nhà tr ng gi m chi phí trong vi c đào t o Trong s đó, Drupal và Moodle là hai công ngh mã ngu n m mi n phí đ c đánh giá cao nh t hi n nay tr giúp đ c l c trong vi c xây d ng website h c t p tr c tuy n

ó c ng chính là lý do chúng em ch n mã ngu n m Drupal và Moodle cho đ tài

“Xây d ng website h c t p tr c tuy n ngành Công ngh thông tin” Khóa lu n bao g m các n i dung sau:

Ph n 1: Drupal

Trình bày t ng quan v Drupal: khái ni m, l ch s , u đi m…, cách t ch c ho t

đ ng Drupal, khái ni m và ý ngh a các Module chu n c a Drupal c ng nh các Module cài đ t thêm, tìm hi u v cách xây d ng module cho Drupal, cách t ch c

l u tr và tính an toàn c a Drupal

Ph n 2: Moodle

Trình bày t ng quan v Moodle, ý ngh a, cách s d ng các tài nguyên và ho t

đ ng Moodle h tr , c ng nh cách qu n tr trong h th ng Moodle

Trang 16

ng d ng xây d ng giao di n website d a trên Drupal và xây d ng h th ng h c

t p tr c tuy n d a trên Moodle

• Ph l c

H ng d n cách s d ng các công c so n th o bài gi ng và t o câu h i tr c nghi m cho khóa h c

Trang 17

PH N I DRUPAL

I T NG QUAN V DRUPAL

I.1 Khái ni m

Drupal là m t khung s n phát tri n ph n m m h ng module, m t h th ng qu n

tr n i dung mi n phí và mã ngu n m C ng gi ng nh các h th ng qu n tr n i dung

hi n đ i khác, Drupal cho phép ng i qu n tr h th ng t o và t ch c d li u, tùy ch nh cách trình bày, t đ ng hóa các tác v đi u hành và qu n lý h th ng nh ng Drupal có

c u trúc l p trình r t tinh vi, d a trên đó, h u h t các tác v ph c t p có th đ c gi i quy t v i r t ít đo n mã đ c vi t, th m chí không c n ôi khi, Drupal c ng đ c g i là

"khung s n phát tri n ng d ng web", vì ki n trúc thông minh và uy n chuy n c a Drupal

Drupal đ c ch y trên r t nhi u môi tr ng khác nhau, bao g m Windows, Mac

OS X, Linux, FreeBSD, OpenBSD và các môi tr ng h tr máy ph c v web Apache (phiên b n 1.3+) ho c IIS (phiên b n 5+) có h tr ngôn ng PHP (phiên b n 4.3.3+) Drupal k t n i v i c s d li u MySQL ho c PostgreSQL đ l u n i dung và các thi t

l p

I.2 L ch s

u tiên, Drupal đ c Dries Buytaert và Hans Snijder (đ n t đ i h c Antwerp),

t o ra theo d ng m t h th ng b ng tin (Bulletin board system) n n m 2001, Drupal

tr thành m t công trình ngu n m Drupal, trong ti ng Anh, đ c chuy n ng t ch

"druppel" c a ti ng Hà Lan, ngh a là "gi t n c" Hi n nay, có m t c ng đ ng r ng l n đang giúp đ phát tri n Drupal

− H ng cá nhân/ t ch c: Blog, Calendar, Dicussing forum,…

− H ng c ng đ ng: Multi blog site, Organic Groups, Voting,…

− H ng doanh nghi p: Webservice, Brochure, Newsletter, News site,…

I.5 u đi m

Trang 18

Ngoài các ki u n i dung c b n nh Page, Story, Forum, Blog, Drupal cho phép

t o thêm cá ki u n i dung m i nh h th ng Taxonomy hay b ng cách thêm vào các module

¬ Tùy ch nh ch c n ng tìm ki m

Drupal qu n lý trang b ng s node và có th thay th sao cho URLs tr nên thân thi n v i ng i dùng khi tìm ki m

¬ Quy n truy c p theo vai trò

H th ng phân quy n, c b n d a trên b ba: module + thao tác + vai trò Do đó d dàng m r ng thêm

I.6 Nh c đi m

Do không t ng thích ng c nên module ph i đ c vi t riêng cho t ng phiên b n 4.x, 5.x ,6.x và 7.x t i cùng m t th i đi m, Drupal ch h tr 2 phiên b n m i nh t i u này làm cho ng i s d ng b t ti n khi ph i nâng c p liên t c

II.1 Technology Stack

M c đích thi t k c a Drupal có th ch y t t trên các máy ch web và có th đ m

b o v hi u n ng và đ an toàn b ng vi c s d ng các công ngh ph bi n

Hình 1-1 Drupal’s Technology Stack

Theo hình 1-1, l p th p nh t là h đi u hành: Drupal có th ch y trên đa n n nh Linux, BSD, Mac OS X, Windows, Solaris K đ n là l p Web Server: Drupal có th

ch y trên nhi u máy ch web khác nhau đ c s d ng ph bi n là Apache và còn h tr

c IIS L p Database (c s d li u): Drupal h tr MySQL và PostgreSQL (MySQL,

Trang 19

PostgreSQL là h qu n tr c s d li u) L p trên cùng là Language (l p ngôn ng ): Drupal s d ng ngôn ng PHP có h tr l p c s d li u tr u t ng (Database

Abstraction Layer) Nh l p này, làm cho PHP có th k t n i và truy v n đ n c s d

li u d dàng và an toàn h n

II.2 Core

M t khung s n nh đ c tích h p thành nhân c a Drupal: Cung c p các ch c

n ng c b n nh qu n lý ng i dùng, qu n lý n i dung có h tr phân lo i ki u n i dung (taxonomy) và các template (m u giao di n) H th ng s th c hi n các yêu c u c a

ng i dùng và m t th vi n dùng chung s đ c s d ng cùng v i các thành ph n

Drupal, nh hình bên d i:

Hình 1-2 T ng quan v Drupal core (không bao g m t t c ch c n ng)

II.3 Module

Module là ph n m r ng có th cài đ t vào Drupal đ thêm các ng d ng hay các

ch c n ng cho Drupal, có th b t ho c t t các module có s n trong Drupal Ngoài ra

ng i dùng có th tìm các module m r ng đ tích h p vào Drupal t i

http://api.drupal.org/ ho c t vi t các module m i cho trang web

Trang 20

Hình 1-3 Module có th đ c thêm vào đ t ng c ng các ch c n ng

II.4 Hooks

Hook đ c xem nh là các s ki n (event) bên trong b nhân Drupal ho c đ c

g i là callbacks H th ng hook đa d ng giúp ng i l p trình can thi p vào m i ho t đ ng

mà không ph i s a b t kì dòng l nh nào c a nhân hay các ph n khác

II.5 Themes

Khi t o ra m t trang web g i t i trình duy t, nó có 2 ph n chính là m t nhóm các

d li u t ng ng (n i dung) và đánh d u d li u trên web Trong Drupal, l p ch đ

ch u trách nhi m t o ra HTML đ cung c p cho trình duy t web

c bi t Drupal khuy n khích tách bi t gi a n i dung và đánh d u n i dung

Drupal cho phép ng i qu n tr giao di n có th hi u ch nh và thay th giao di n cho trang web, m t cách đ n gi n nh t là dùng CSS (Cascading Style Sheet) đ thay đ i các

m u giao di n có s n

II.6 Nodes

Các ki u n i dung trong Drupal đ u k th a t ki u c b n là node C ng có th nói h t nhân c a Drupal là node v i c u trúc đ n gi n phát tri n các ki u n i dung

ph c t p, m i node s đ c liên k t v i m t n i dung có ki u khác nhau Node đ c qu n

lý nh h th ng phân lo i ki u n i dung (taxonomy), đây c ng là đ c tr ng c a Drupal Node ch a t t c các m c đ , n i dung, ngày tháng, …

Cách t ng tác v i node là m r ng chúng Có th thêm vào các node các ch c

n ng m r ng nh : đánh giá bài vi t, bình lu n, đính kèm file, …

M i node có m t đ a ch URL xác đ nh, d a vào node_id, c u trúc nh sau:

<đ a ch trang web>?q=node/node_id N u node_id không đ c xác đ nh thì h th ng s chuy n v trang ch

Trang 21

II.7 Blocks

Block là thông tin có th kích ho t ho c vô hi u hóa trong m t v trí xác đ nh trên

m u s d ng c a trang web Các Block th ng đ c đ t các v trí: leftsidebar, sidebar, header ho c footer

right-Thông th ng, các Block đ c s d ng đ mô t thông tin đ c đi u ch nh t i

ng i dùng hi n hành Ví d : Block đi u h ng (navigation) ch a các liên k t t i ch c

n ng qu n tr mà ng i dùng có th truy c p S s p x p và vùng hi n th các block đ c

qu n lý thông qua giao di n qu n tr trang web

III MODULE CHU N C A DRUPAL

III.1 Aggregator

RSS là m t đ nh d ng t p tin thu c h XML dùng trong vi c chia s tin t c Web (Web syndication) đ c dùng b i nhi u website tin t c và weblog nh d ng RSS cung

c p n i dung web và tóm l c n i d ng web cùng v i các liên k t đ n phiên b n đ y đ

c a n i dung tin đó, và các siêu-d -li u (meta-data) khác Thông tin này đ c cung c p

d i d ng m t t p tin XML đ c g i là m t RSS feed, webfeed, RSS stream, hay RSS channel Aggreagator có kh n ng đi l y tin RSS t các website khác, l u l i trong

CSDL, r i trình bày ra giao di n ng i dùng Các ngu n tin RSS có th đ c phân m c theo 'Category'

III.2 Blog

Drupal là h th ng tiên phong trong l nh v c blog đa ng i dùng M i user có th

t o blog cho riêng mình Blogger s nh n đ c URL c a blog mình Tính n ng này làm cho drupal tr thành c u n i tuy t v i gi a blog cá nhân và c ng đ ng trên m ng

có th b t đ u vi c t o blog entry, ng i qu n tr c n ch đ nh quy n cho m i user Ngoài ra có th t o các danh m c ch a blog (s d ng v i Taxonomy Module), có

th cho phép upload file, l u l ch s , bình lu n trong blog

M i blog có th tùy ch nh theme khác nhau b ng cách cài đ t thêm module Blog Theme t i đ a ch http://drupal.org/node/19248

III.3 Blog API

Ng i dùng website có th dùng m t công c nào đó đ t o m t blog entry t xa (qua Google Docs ch ng h n) BlogAPI s đ ng ra đ m nh n vai trò trung gian nh n

i u này r t h u ích cho ng i dùng đóng góp vào vi c xây d ng các trang sách

nh ng không ph i m i đóng góp đ u mang m c đích đúng và t t đ p Vì th đ tránh

Trang 22

hành vi ch nh s a, xóa b , vi t sai n i dung, các trang ph i thông qua s ch p thu n c a

ng i qu n tr m i đ c bi u di n trên website

Module cung c p ba quy n sau: Create Book Pages, Edit Own Book Pages,

Maintain Books

o Create Book Pages: Cho phép t o trang

o Edit Own Book Pages: Cho phép ch nh s a các trang do b n thân s h u

o Maintain Books: Cho phép ch nh s a toàn b

III.5 Comment

Khi xem m t trang n i dung (node, nh m t blog entry, m t article ch ng h n),

ng i xem có th g i ý ki n ph n h i c a mình Module này r t c n cho các website c n

t ng tác t phía ng i dùng

III.6 Contact

Ng i dùng có th g i mail cho ng i qu n lý website hay cho m t thành viên nào

đó c a website nh ch c n ng mà module này cung c p

Module này cung c p 2 hình th c liên h : Personal Contact Form, Sitewide

Contact Form

o Personal Contact Form: User có th cho phép nh ng user khác nhìn th y email c a mình và g i mail thông qua Contact tab

o Sitewide Contact Form: Có th t o ra các nhóm ng i liên h qua đó có th

g i mail cho nhi u ng i cùng lúc

III.7 Filter

Module này cung c p các ph ng th c trình bày khác nhau trên cùng m t tr ng

d li u i u này r t h u ích trong vi c ng n ch n các đo n code, script nguy hi m, l i cú pháp, các th HTML,…

Module này đ c b t m t cách t đ ng và có th c u hình b ng cách truy c p Administer / Input format

III.8 Forum

Module cho phép t o di n đàn th o lu n Ng òi qu n tr c n t o các Container

tr c khi t o các ch đ i u này giúp cho vi c t ch c và qu n lý d dàng h n

III.9 Help

Các module có ph n tr giúp ng i dùng, tuy nhiên ch khi b t module Help lên thì ng i dùng m i có th xem đ c ph n này

Chú ý module Help không cung c p m t cách chính xác c ng nh chi ti t v

h ng d n ng i dùng, vì v y đ t o thêm c ng nh ch nh s a có th s d ng Help Edit Module t i v t i đ a ch http://drupal.org/node/ 18031

III.10 Legacy

Module Legacy cung c p cho vi c nâng c p t b n cài đ t c Nh ng x lý giúp các tham chi u t đ ng chuy n h ng đ n các trang t b n cài đ t c và ng n ch n trang không tìm th y l i trang web

Trang 23

Module legacy phân lo i x lý ki u cách trang taxonomy, ngu n c p d li u phân

lo i, và đ ng d n ngu n c p d li u cho blog (blog feed paths) Nó c ng x lý nâng c p URL t Drupal 4.1 Nó ghi đè URL ki u c sang các URL ki u m i (URL rõ ràng)

− Workflow: M i m t node s có m t dòng ch y c a nó D a vào dòng ch y c a

m t node, h th ng có th bi t đ c m t node đã đ c xu t b n hay ch a, khi đã

đ c xu t b n 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à m t b l c có vai trò l c và trình bày n i dung

− L c n i dung: View giúp l c các ki u n i dung c n theo m t s đi u ki n đ t ra

Ví d : c n l y ra 6 bài vi t m i nh t ho c l y ra các bài vi t thu c ch đ “tin th

gi i’ ó là vai trò chính c a Views Views giúp l y ra các n i dung mà ng i dùng c n

− Hi n th n i dung: Sau khi l c các n i dung ra có đ c danh sách các n i dung

c n hi n th Tuy nhiên, ng i dùng mu n trình bày các ki u n i dung này theo các cách khác nhau Ví d ng i dùng mu n trình bày d ng b ng các n i dung,

ho c danh sách các n i dung Ngoài ra đ t o hi u ng đ p có th trình bày theo

ki u slide ngh a là c m y giây l i có m t n i dung xu t hi n thay th n i dung

đã trình bày Vai trò th hai c a Views là trình bày các n i dung đã l c ra đ c

IV.2 Panels

Panels giúp chia nh ph n n i dung thành các vùng nh h n Drupal trình bày giao

di n thành các vùng đ ch a các block - block là các ph n n i dung Th ng thì m t theme c a drupal có m t s vùng c b n: header, footer, content, sidebar left, sidebar right Các vùng này bao quanh vùng n i dung Ngoài ra, có th thêm nhi u vùng vào theme tùy ý đó chính là s uy n chuy n c a Drupal Tuy nhiên các trang báo chia vùng nôi dung (vùng content) thành các ph n nh h n đ ti n trình bày Ví d chia vùng

Trang 24

content thành c t trên đ u ch a tin nóng, hai c t hai bên ch a các block có các bài vi t

đ c phân lo i Vi c chia này gi ng nh s d ng layout trong Word Layout giúp trình bày n i dung d ng c t báo thì Panels c ng làm nhi m v này cho ph n n i dung(vùng content) c a theme Panels giúp chia ph n n i dung thành các ph n nh h n và trên m i

ph n đó ch a các block n i dung c a trang

IV.3 Content Construction Kit (CCK)

Drupal h tr hai lo i n i dung c b n là Page và Story nh ng c hai ki u n i dung này t ng t nhau g m có 2 field: Title và Body không th đáp ng đ c vi c phát tri n

n i dung website Do đó CCK ra đ i giúp cho vi c m r ng n i dung m t cách d dàng

h n Ng i qu n tr có th thêm các field m i vào ki u n i dung nh Text field, Image field, File field, Radio button có th thêm File field, Image field, Radio c n ph i cài

đ t thêm module File Field và Image Field dùng chung v i CCK

Sau khi đã t o thêm field m i, CCK t đ ng l u tr nh ng thông tin vào c s d

li u và bi u di n trong nh ng cách khác nhau

IV.4 Ckeditor

Ckeditor là trình so n th o mã ngu n m theo ki u WYSIWYG (“What You See

Is What You Get”) ngh a là ng i dùng không c n có ki n th c v HTML v n có th

đ nh d ng đ c đo n v n b n mình mu n CCK có giao di n thân thi n, d s d ng ch c

n ng t ng t nh trình so n th o word Tuy nhiên, ng i qu n tr c n ph i ch đ nh Filter HTML đ i v i ng i dùng bình th ng đ ng n ch n các mã đ c h i

Ngoài ra c n ph i tích h p module IMCE vào Ckeditor đ có th s d ng ch c

n ng tìm và chèn hình nh m t cách d dàng h n

V XÂY D NG MODULE CHO DRUPAL

V.1 File info và module

C u trúc c a m t module có th g m nhi u t p tin khác nhau nh ng ph i có ít nh t

m t t p tin <tenmodule>.info và m t t p tin <tenmodule>.module trong đó <tenmodule>

là tên c a th m c ch a module đ c t o, tên này không đ c trùng v i các module đã

t n t i trong h th ng

V.1.1 File info

Tr c khi th c s đi vào vi t mã cho m t module ph i t o ra m t file v n b n

ch a các thông tin c b n v module đó M t s thành ph n c a Drupal s s d ng các thông tin trong file này cho vi c qu n lý module

File info đ c vi t theo ki u c a file PHP ini, m t đ nh d ng file đ c xác đ nh cho vi c thi t l p N i dung m t file info có d ng nh sau:

name = “Xem diem”

description = “Xem diem sinh vien”

core = 6.x php = 5.1

Tr ng name khai báo tên c a module, tên này s hi n th trong danh sách các

module có khu v c ng i qu n tr Tr ng description ch a thông tin v module, mô

Trang 25

t ch c n ng nhi m v mà module s th c hi n name và description là hai tr ng b t

bu c ph i có trong file info

Tr ng th ba là core M c này ch rõ module s ho t đ ng t t trên phiên b n nào

c a Drupal Giá tri 6.x cho bi t module này yêu c u phiên b n Drupal 6, bao g m các

phiên b n nâng c p t b n 6 Trong nhi u tr ng h p, Drupal s t đ ng đ t giá tr này

m t cách h p lý, nh ng nh ng ng i phát tri n làm vi c v i CVS (Concurrent Version System – h th ng qu n lý phiên b n ng d ng) đ c khuy n cáo nên t mình đ t giá tr cho tr ng core

Ch d n cu i cùng trong file info trên là php cho bi t phiên b n t i thi u c a PHP

File module là file quan tr ng nh t trong m t module, ch a các đo n mã PHP

th c hi n ch c n ng c a module đó File này thông th ng s đ c m r ng m t s hàm hook mà Drupal g i t i các th i đi m nh t đ nh đ i v i m t yêu c u

C ng gi ng nh file info, file module đ c đ t tên theo quy t c

<modulename>.module, trong đó <modulename> là tên th m c ch a module

N i dung file module b t đ u b ng th <?php sau đó là mã ngu n Theo quy c

c a Drupal, file này s không ch a d u đóng ?> Vi c này giúp tránh in nh ng ký t

tr ng trong đ u ra c a mã k ch b n trong m t s tr ng h p Ví d , n u các ký t tr ng

đ c xu t ra tr c khi ph n thông tin header c a HTML g i đi, trình duy t máy khách

s xu t hi n thông báo l i trên đ u c a trang web

V.2 M t s hook c b n

¬ Hook block

Hook này đ c s d ng đ t o m t block hi n th thông tin Khi hook_block đ c

g i, Drupal s truy n 3 tham s vào hàm: $op, $delta, $edit

Tham s $op ch a thông tin v lo i thao tác mà module s th c hi n Tham s này

có th nh n m t trong 4 giá tr sau:

o list: Giá tr này đ c dùng khi module cung c p thông tin v chính nó

o view: Giá tr này đ c truy n vào khi Drupal mu n hook block cung c p thông tin đ hi n th cho ng i dùng

o configure: Dùng đ đi u ch nh các thi t l p cho block

o save: Giá tr này đ c dùng khi thông tin v thi t l p c a block l y t form

d li u sinh ra b i configure c n đ c l u l i

Tham s $delta đ c đ t ph thu c vào các thao tác nh t đ nh c a module Khi

$op có tr là view thì $delta s đ c đ t Tham s này ch a các thông tin thêm v n i

Trang 26

dung s hi n th trong block B ng cách s $delta, m t hàm hook_block() có th hi n th nhi u block khác nhau N i dung nào trong block s đ c s d ng tùy thu c vào giá tr

c a $delta truy n vào

Cu i cùng là tham s $edit đ c s d ng trong quá trình đi u ch nh các thi t l p

c a block (khi thao tác save đ c g i) $edit th c ch t là m t m ng các thay đ i mà

ng i qu n tr th c hi n lên các thi t l p c a block

Giá tr tr v c a hàm này ph thu c vào thao tác mà nó th c hi n Thông th ng, hàm s tr v m t m ng thông tin c a block (info), tiêu đ (subject) và n i dung

(content)

¬ Hook help

Hook này đ c dùng đ cung c p các thông tin tr giúp cho ng i s d ng Hàm hook_help() nh n hai tham s : $path ch a m t đo n URL cho bi t trang tr giúp nào

đ c g i và tham s $arg ch a m t s thông tin thêm

V i các tr ng ph c t p, l p trình viên có th s d ng phát bi u switch đ i v i giá

tr c a $path đ tr v các v n b n tr giúp khác nhau đ i v i m i đ ng d n Giá tr này tuân theo đ nh d ng admin/help#<module name> trong đó <module name> đ c thay

b ng tên c a module t ng ng K t qu c a hàm này đ c hi n th t i m c Administer

Trang thông tin ng i dùng c ng có th truy c p b i m t ng i qu n tr có quy n

t ng ng Ph n l n n i dung c a trang này đ c t o ra b i hook_user() B ng cách tri n khai hook này trong module, ng i phát tri n có th liên k t v i giao di n qu n lý ng i dùng

Th c ra, hook ng i dùng làm đ c nhi u vi c h n là hi n th trang tài kho n

ng i dùng Trong Drupal 6 có 13 thao tác mà hook này th c thi bao g m vi c thêm, s a

ch a ho c xóa b ghi nh đ ng nh p

M t b n tri n khai c a hook_user() s nh n 4 tham s sau:

o $op: Tên c a thao tác mà ng i dùng th c hi n Tham s này nh n 1 trong

13 giá tr t ng ng v i 13 thao tác (view, login, delete,…)

o $edit: M t m ng ch a các giá tr đ c g i lên t m t form Giá tr này đ c truy n vào qua tham chi u &$edit và đ c s d ng b i các thao tác x lý

d li u nh insert

o $account: c dùng đ ch a đ i t ng tài kho n cho m t ng i dùng nh t

đ nh Tham s này c ng đ c truy n qua tham chi u &$account

o $category: M t vài thao tác s d ng tham s này đ xác đ nh ph n nào c a thông tin ng i dùng s đ c trích xu t cho yêu c u

Chi ti t v hook này xem t i đ a ch http://api.drupal.org/api/function/hook_user/6

¬ Hook mail

Ph n l n các yêu c u v vi c g i mail trong Drupal đ u đ c h tr b i các hàm

có trong Mail API nên ng i phát tri n không c n ph i vi t mã cho nh ng thao tác này

Trang 27

Tuy nhiên, tùy theo yêu c u, ng i phát tri n có th tùy ch nh đ nh d ng c a thông đi p

và vi c này th c hi n thông qua hook_mail() Vi c tri n khai hook này cho phép thi t l p các ph n đ u và thân c a thông đi p tr c khi g i đi

Khi hàm tri n khai hook mail đ c th c thi, nó s truy n 3 tham s sau:

o $key: M t khóa d ng chu i dùng đ xác đ nh thông tin v vi c thông đi p

s đ c đ nh d ng nh th nào

o $message: Là c u trúc d li u th hi n thông đi p mà Drupal đã kh i t o

tr c đó Tham s này ph i đ c truy n d i d ng tham chi u &$message

n u mu n thay đ i giá tr

o $params: M t t p các tham s đ c truy n vào t l i g i hàm drupal_mail()

c a module

¬ Hook view

Tr c khi m t node đ c hi n th đ n ng i dùng, thông tin c a nó có th đ c

c p nh t b ng cách s d ng hook_view() Hook này đ c g i khi h th ng n p m t đ i

t ng $node nh ng vào th i đi m tr c khi node đ c hi n th Hàm này s c n thi t trong m t s tr ng h p mà n i dung c a node có thêm m t s tr ng thông tin Drupal

o $teaser: Là c đánh d u cho bi t bài vi t s đ c hi n th đ y đ hay ch có

b n tóm t t Tham s này nh n giá tr logic True ho c False

o $page: Cho bi t node này s hi n th trang riêng hay không N u $page có giá tr True thì tiêu đ c a node s không đ c hi n th

Giá tr tr v c a hàm khai tri n hook_view() chính là $node Tham s này s đ c thay đ i n u c n thi t đ có th đ c bi u di n m t cách chính xác Các node đ c chu n

b cho vi c hi n th b ng cách t p h p m t m ng có c u trúc trong $node→content, thay cho vi c thao tác v i t ng thành ph n riêng $node→body và $node→teaser

Chi ti t c a hook này xem thêm t i đ a ch

http://api.drupal.org/api/function/hook_view/6

¬ Hook menu

Ch c n ng c b n c a hook_menu() là cho phép ng i phát tri n module đ ng ký

m t URI nh t đ nh (ho c chi ti t h n là m t đ ng d n URL t ng đ i) và ánh xa URI

đó v i m t hàm x lý Hook này th ng đ c dùng đ t o các th c đ n cho trang qu n lý

c a module

Gi ng nh các hook khác, m t b n tri n khai c a hook_menu) tr v m t m ng, trong tr ng h p này là m ng các m c th c đ n s đ c đ ng ký v i nhân Dupal M ng liên k t này s ch a m t đ a ch th c (giá tr ) cho m i đ ng d n đ c đ ng ký tr c (khóa)

D a vào nh ng tham s c u hình này, Drupal s xác đ nh cách chuy n m t yêu

c u t máy khách t i đ ng d n t ng ng đ x lý Vi c này đ c th c hi n b ng cách ánh x các hàm callback

Trang 28

V.3 nh ngh a m t hook m i

M c đích c a vi c đ nh ngh a hook riêng là giúp ng i phát tri n module có th

ch đ nh n i dung s đ c đ a vào b n tin và cách hi n th chúng

V.3.2 S d ng hook vào các module khác

Vi c s d ng hàm hook t đ nh ngh a vào trong module c ng gi ng nh đ i v i các hook có s n c a Drupal B n tri n khai c a m t hook ph i đ c đ t theo quy t c

<modulename>_<hookname>( ) và có các tham s trùng v i ph n khai báo c a hook

Các hook đ c đ nh ngh a trong m t module có th đ c tri n khai trong module khác và module ch a khai báo hook ph i đ c b t

V.4 jQuery trong Drupal

jQuery là m t trong s các th vi n JavaScript m nh m hi n nay S d ng m t

mô hình thi t k h ng đ i t ng là Fluent Interface jQuery cho phép liên k t m t chu i các l i g i hàm v i nhau đ t o nên các truy v n ph c t p

Thông th ng, jQuery truy v n t i cây DOM (Document Object Model) là m t

c u trúc d li u đ nh ngh a nên c u trúc c a m t v n b n, th ng là HTML ho c XML

V n b n này s đ c bi u di n d i d ng cây v i thành ph n đ u tiên là g c DOM đ c

bi t đ n là m t mô hình đ i t ng ph c t p jQuery cung c p m t API nh h n và d s

d ng h n cho ng i l p trình

Tuy nhiên, jQuery đ c s d ng trong nhi u tr ng h p không ch riêng truy v n

Nó có m t b công c AJAX, công c x lý s ki n, hi u ng o và m t s hàm ti n ích khác

Thông tin thêm v jQuery có t i đ a ch http://jquery.com

M c đ nh jQuery s cài đ t cùng v i Drupal vì th vi c s d ng là khá d dàng

Mã ngu n c a jQuery đ c ch a trong file jQuery.js n m trong th m c misc File này s

đ c n p khi có l i g i hàm drupal_add_js() Hàm này có nhi m v nh n mã JavaScript

và thêm vào mã ngu n trang web Ví d :

Trang 29

?>

Tham s đ u tiên c a hàm drupal_add_js( ) là đo n mã JavaScript s đ c th c thi Tham s th hai (inline) cho bi t Drupal s ghi đo n mã vào gi a hai th

</script></script> trong th <head> c a trang HTML

Tuy nhiên đ đ m b o r ng module ho t đ ng đúng nh mong đ i c n ph i b o

đ m các truy v n jQuery ch ch y khi trình duy t h tr JavaScript và AJAX N u trình duy t không h tr , các thay đ i đ i v i HTML phía máy khách s không đ c th c hi n

Th vi n JavaScript c a Drupal có hàm Drupal.jsEnabled( ) s ki m tra đi u ki n này Giá tr tr v c a hàm này là TRUE ho c FALSE t ng ng v i k t qu ki m tra

V.5 Form API

T phiên b n 4.7 tr v sau, Drupal cung c p API h tr vi c t o, xác th c và x

lý form trong HTML API này bi u di n các form b ng m t m ng ch a các thu c tính và giá tr M t s u đi m nh sau:

− M t thành ph n trong m t form có th đ c liên k t v i m t hàm giao di n riêng

− Có th thêm các b c xác th c và x lý riêng cho t ng form

− Các thao tác liên quan đ c b o v tránh vi c t n công b ng cách th c hi n nh ng thay đ i nh h ng x u đ n h th ng

V.5.1 T o form

Các thành ph n c a form đ c khai báo trong m t m ng có c u trúc phân c p và

có th ghép l ng nhau M i thành ph n g m có các c p thu c tính/giá tr Ví d sau đ nh ngh a m t thành ph n textfield:

<?php

$form['foo'] = array(

'#type' => 'textfield', '#title' => t('bar'), '#default_value' => $object['foo'], '#size' => 60,

'#maxlength' => 64, '#description' => t('baz'), );

Trang 30

− Ki u c a thành ph n form đ c khai báo qua thu c tính #type

− Các khóa thu c tính đ c khai báo trong d u [], giá tr c a khóa có ki u xâu

− Th t khai báo các thu c tính không quan tr ng M t s thu c tính có giá tr m c

đ nh

− Không nên s d ng thu c tính #value cho các thành ph n có th thay đ i b i

ng i dùng thay vào đó nên s d ng thu c tính #default_value

V.5.2 Giao di n hóa form

Form Api cho phép tùy ch nh giao di n đ i v i t ng form, th m chí đ i v i riêng

t ng thành ph n trong m t form Vi c tùy ch nh đ c th c hi n b ng cách n p ch ng các thành ph n giao di n t i th i đi m t o form

Thêm thu c tính #theme vào form nh m t thành ph n c a form đó Các th đánh

d u có th là #prefix, #suffix ho c #markup Th này dùng đ ch đ nh v trí các đo n mã thi t l p giao di n trong form Ví d :

$form['access'] = array(

'#type' => 'fieldset', '#title' => t('Access log settings'), '#prefix' => '<div class="foo">', '#suffix' => '</div>',

$form_state[‘value’] ch a giá tr c n ki m tra Ví d :

function test_form_validate($form, &$form_state) {

if ($form_state['values']['name'] == '') { form_set_error('', t('You must select a name.'));

} }

V.5.4 G i form lên trang web

Trang 31

Cách th c thông th ng đ c s d ng đ g i form lên là thông qua hàm M t form đ c g i lên b ng nút b m submit có thu c tính type = &gt; ‘submit’ s đ c truy n

t i hàm t ng ng Ví d :

function test_form_submit($form, &$form_state) {

db_query("INSERT INTO {table} (name, log, hidden) VALUES ('%s',

VI T CH C L U TR C A DRUPAL

Nh Drupal, ki u node đ c xem là m t đ i t ng và m t node riêng l thì đ c coi là m t th hi n c a đ i t ng Và node c ng đ c xem là đ n v d li u Do đó, m i thông tin đ u đ c l u tr trong node (ngo i tr users, blocks, comments) Có nhi u ki u node khác nhau M t s ki u node chung nh blog, poll, page, story, book Và ki u n i dung đ c s d ng nh là ki u node, m c dù m t ki u node thì th t s là m t ki u tr u

t ng

T t c ki u n i dung đ u là node, chúng d a trên cùng ki n trúc d li u Do v y, giúp d dàng thao tác nh tìm ki m, t o m i, đi u ch nh, xóa và qu n lý n i dung trên node

Hình 1-4 Ki u node đ c b t ngu n t m t node c b n và có th thêm các tr ng

Trang 32

Các ki u node đ c m r ng trên m t node c b n, thông th ng đ c thêm vào các thu c tính d li u riêng c a nó Ch ng h n, m t node ki u poll ch a các s l a ch n (voting) và ngày h t h n (expiration date) c a poll M t node ki u book ch a thu c tính parent, nh vào node ID cho m i node đ xác đ nh đâu là n i dung c a node phù h p

M t ki u node khác nh blog, thì không thêm thu c tính nào khác Thay vào đó, chúng

l i t o ra nh ng khung nhìn (view) khác nhau cho d li u b ng cách t o ra nh ng blog cho m i ng i dùng và RSS feeds (ngu n c p d li u RSS) cho m i blog

Hình 1-5 M i quan h gi a các b ng trong c s d li u c a Drupal

T t c các node có các thu c tính bên d i đ c ch a trong b ng c s d li u node và node_revisions:

− “nid”: Là unique ID (duy nh t) cho m t node

− “vid”: Là thu c tính khóa duy nh t cho m t node, giúp xác đ nh n i dung c a

node_revisions vid là unique cho c node và node_revisions

− “type”: M i node có m t ki u node Ví d : blog, story, article, image, …

− “title”: Tiêu đ c a m t node cho phép chu i dài 128 ký t

− “uid”: Thu c tính khóa cho tác gi (author) M c đ nh, m t tác gi có nhi u

node

− “status”: Giá tr b ng 0 là ch a đ c công b , có ngh a là n i dung đ c n đi vì

ch a đ c s cho phép c a ng i qu n tr Giá tr b ng 1 là node đã đ c công

b và n i dung đ c hi n th cho ng i dùng v i s cho phép truy c p n i dung

− “created”: Cho bi t th i gian khi m t node đ c t o

− “changed”: Ghi nh n th i gian khi có s đi u ch nh cu i cùng

− “comment”: Có ki u integer, mô t tr ng thái các comment c a node, có 3 giá

tr :

Trang 33

+ 0: Các comment b vô hi u hóa cho node hi n hành ây là giá tr m c đ nh khi module comment đ c kích ho t

+ 1: Không cho phép thêm comment vào node hi n hành

+ 2: Các comment đ c hi n th và có th t o ra comment m i

− “promote”: M t tr ng ki u integer, xác đ nh cho phép mô t node trên trang

đ u hay không, v i 2 giá tr :

+ 1: Cho phép node hi n th trên trang đ u c a trang web Trang s ch a t t c các node mà có tr ng promote b ng 1, http:// example.com/?q=node là trang đ u m c đ nh

+ 0: Node s không đ c hi n th trang http://example.com/?q=node

− “moderate”: Có ki u integer, n u giá tr b ng 0 là moderate b vô hi u hóa và

giá tr b ng 1 là cho phép moderate

− “sticky”: Khi Drupal mô t danh sách các node trên m t trang hành vi m c đ nh

đ c li t kê đ u tiên v i nh ng node đ c đánh d u là sticky và danh sách còn

l i là các node “unsticky” s n m trong danh sách theo ngày t o ra Giá tr b ng

1 là sticky và b ng 0 là unsticky Có th có nhi u node sticky v i m t danh sách

VII.2 An toàn đ i v i mã ngu n

M c dù mã ngu n c a Drupal hoàn toàn có th xem và ch nh s a m t cách d dàng

nh ng c ng có nh ng cách riêng đ ng n ch n nh ng m i nguy h i chính:

− Vi t đo n mã t n công b ng cách ki m tra d li u xu t h p l

− a câu truy v n SQL đ t n công b ng cách s d ng l p tr u t ng (database abstraction layer)

− Gi i h n truy c p node b lo i b b ng cách s d ng db_rewrite_sql

C n s d ng l p Database Abstraction Layer h p lý Không bao gi , vi t d li u

ng i dùng vào trong đo n mã SQL D i đây là m t đo n SQL không an toàn:

db_query('SELECT foo FROM {table} t WHERE t.name = ' $_GET['user']);

thay vào đó ta ph i s d ng:

Trang 34

db_query("SELECT foo FROM {table} t WHERE t.name = '%s' ", $_GET['user']);

VII.3 Tính an toàn đ i v i d li u

Khi x lý và xu t v n b n trong HTML, c n ph i quan tâm đ n vi c sàn l c d

li u M t khác, có th gây l i khi ng i dùng s d ng các d u đ c bi t nh <, &, ho c t

h n ng i dùng có th m và khai thác XSS (Cross-site scripting: M t d ng mà có th làm nh h ng t i s an toàn)

Khi x lý d li u, nguyên t c quan tr ng là ch a chính xác nh ng gì mà ng i dùng thao tác n i dung Trong tr ng h p ng i dùng đi u ch nh m t n i dung đã đ c

t i lên, thì form đ c thao tác tr c đó nên gi ng v i form c n đi u ch nh l i

Khi thao tác trên chu i nh n i chu i ph i đ m b o các chu i cùng đ nh d ng

− An toàn đ i v i module đ c thêm vào

− Các module s đ c nhóm Drupal Security Team ki m tra và thông báo v tình

o Security risk: Moderately critical

o Exploitable from: Remote

Trang 35

PH N II MOODLE

I T NG QUAN V MOODLE

I.1 Khái Ni m

Moodle là m t h th ng qu n lý khóa h c (CMS) - m t gói ph n m m đ c thi t

k đ giúp các nhà đào t o t o ra các khóa đào t o tr c tuy n có ch t l ng m t cách d dàng Các h th ng e-learning nh th đôi khi c ng đ c g i là H th ng qu n lý đào t o (LMS) ho c Môi tr ng h c t p o (VLE)

I.2 L ch s

Moodle (vi t t t c a Modular Object-Oriented Dynamic Learning Environment)

đ c sáng l p n m 1999 b i Martin Dougiamas, ng i ti p t c đi u hành và phát tri n chính c a d án Do không hài lòng v i h th ng LMS/LCMS th ng m i WebCT trong

tr ng h c Curtin c a Úc, Martin đã quy t tâm xây d ng m t h th ng LMS mã ngu n

m h ng t i giáo d c và ng i dùng h n T đó đ n nay Moodle có s phát tri n v t

b c và thu hút đ c s quan tâm c a h u h t các qu c gia trên th gi i và ngay c nh ng công ty bán LMS/LCMS th ng m i l n nh t nh BlackCT (BlackBoard + WebCT)

c ng có các chi n l c riêng đ c nh tranh v i Moodle

I.3 u đi m

− Moodle đ c thi t k theo ph ng pháp module cho phép các tính n ng linh ho t thêm vào (ho c g b ) ch c n ng nhi u m c đ

− Moodle r t d nâng c p t phiên b n này sang phiên b n ti p theo - Phiên b n

ti p theo có m t h th ng n i b đ nâng c p databases và t s a ch a khi b m t

II.2 Trang v n b n (Text Page)

Cho phép t o ra m t trang v n b n đ n gi n (simple plain-text) Sau khi t o s nhìn th y link đ n trang v a t o Text Page v i các thông s sau:

− “Name”: Tên c a trang mu n t o

Trang 36

− “Summary”: Mô t ý chính c a trang Giúp h c viên có th nhanh chóng quy t

đ nh đây có ph i là tài nguyên h u ích mà h dang tìm ki m không

− “Full Text”: N i dung c a trang v i các đ nh d ng h tr sau:

o Same window: N u mu n trang m trên cùng m t trình duy t ban đ u

o New window: N u mu n trang m trên m t trình duy t m i

− “Visible”:

o Show: N u mu n hi n tài ngyên này

o Hide: n tài nguyên này

II.3 Trang web (Web Page)

T o m t trang v n b n thông th ng (Text Page) không ph i là cách duy nh t t o

n i dung trong Moodle Moodle còn cho phép t o ra trang Web ph c t p v i đ nh d ng HTML,…Các thông s t ng t nh Text Page ch khác bi t là Compose Web Page v i Full Format Full Text

II.4 Liên k t m t file hay website (URL)

Không nh t thi t ph i t o t t c các n i dung tr c ti p trong Moodle Moodle cho phép upload b t k m t lo i file nào ho c link đ n b t k m t website nào i u c n quan tâm là ph i ch c ch n h c viên có th truy c p tài nguyên m t cách d dàng.Thi t l p v i các thông s đáng chú ý sau:

− “Location”: Cung c p đ ng d n đ n file ho c website

− “Force download”: N u đ c ch n, file s đ c t i v thay vì hi n th tr c ti p

trên web, n u không đ c ch n có th m file trên c a s m i (New Window)

ho c m trên cùng m t c a s (Same Window)

Có th upload m t file b ng cách ch n nút nh n “Chose or upload a file”

II.5 Th m c (Folder)

Hi n th m t th m c trên server (t t c các file và th m c con trong th m c này

s đ c hi n th ), d ng này thích h p v i nh ng tài li u tham kh o, bài gi ng,…(đ m t

th i gian đ a t ng file lên, ch upload t t c vào m t th m c nào đó)

II.6 Gói n i dung (IMS Content Package)

IMS Content Package là m t d ng tài nguyên đ c bi t, thích h p cho d li u đ c

s d ng l i các h th ng khác nhau mà không c n chuy n đ i v đ nh d ng

III.1 Nhi m v (Assignments)

Trang 37

Cho phép giáo viên giao các nhi m v cho h c viên tr c tuy n ho c ngo i tuy n

Ví d : n p bài t p, bài lu n, thuy t trình…H c viên có th n p công vi c làm đ c theo

b t k đ nh d ng nào (file word, PDF, trang web, hình nh, audio hay video….)

III.1.1 Tùy ch n cách upload file (Advance uploading of file)

Cho phép m i h c viên có th upload nhi u file Các file đ c upload lên đ c xem nh là b n nháp cho đ n khi h c viên nh n “Send for marking” thì m i đ c công

nh n là đã g i

Thi t l p các thông s sau:

− “Assignment Name”: Tên assigment

− “Description”: Mô t thông tin assignment

− “Grade”: Thi t l p đi m s

− “Available from”: Th i h n nôp bài t p

− “Due to”: Th i h n k t thúc n p bài t p

− “Prevent late submissions”:

o Yes: Cho phép h c viên n p bài t p khi đã h t h n

o No: Không cho phép h c viên n p bài t p khi đã h t h n

− “Allow deleteting”:

o Yes: Cho phép xoá file upload

o No: Không cho phép xoá

− “Maximum size”: Dung l ng t i đa h c viên đ c phép upload

− “Maximum number of uploaded files”: S l ng file t i đa h c viên đ c

phép upload

− “Allow note”:

o Yes: Cho phép h c viên ghi chú

o No: Không cho phép h c viên ghi chú

− “Visible”: Cho phép n ho c hi n assigment

− “ID Number” : Dùng đ nh n d ng ho t đ ng này

III.1.2 Ki m tra tr c tuy n (Online Text)

Trang 38

Cho phép h c viên có th n p tr c tuy n bài t p c a mình b ng cách s d ng vùng

so n th o m c đ nh Giáo viên đánh giá đi m và cho nh n xét tr c tuy n N u “Allow

resubmitting” đ c thi t l p, h c viên có th g i l i bài t p c a mình Ngoài ra h c viên

có th “Email alerts to teachers”, “Comment Inline” n u tùy ch n này đ c thi t l p

III.1.3 Upload m t file (Upload a single file)

Ch cho phép h c viên upload m t file duy nh t Có th gi i h n dung l ng

upload qua tùy ch n “Maximum size” và cho phép h c viên g i l i bài t p “Allow

resubmitting”

III.1.4 Ho t đ ng offline (Offline Activity)

Các ho t đ ng đánh giá x y ra ngo i tuy n Giáo viên v n ch m đi m t i đây và

h c viên có th nhìn th y đi m s c a h

III.2 Tán g u (Chat)

Tán g u là m t hình th c trao đ i thông tin trong th i gian th c (Soft - RealTime)

đ ng b gi a các ng i dùng qua trang Web ây là m t module r t quen thu c tr giúp

r t thu n ti n đ giao l u, tìm hi u l n nhau gi a các thành viên và hi u bi t h n v ch

đ đang đ c th o lu n Gi ng Yahoo Mesenger hay Google Talk, module này ch cho phép trao đ i d i d ng thu n v n b n không nhúng hình nh, âm thanh hay các đ nh

d ng file khác

Thi t l p các thông s :

− “Name of this chat room”: Tên phòng chat

− “Introduction Text”: Mô t thông tin phòng chat ho c h ng d n s d ng

− “Next chat time”: Thi t l p th i gian cho phiên chat ti p theo

− “Repeat session”: L p l i phiên chat

− “Save past sessions”: Thi t l p th i gian l u l i các cu c trò chuy n

− “Everyone can view past sessions”: N u thi t l p Yes h c viên có th xem các

cu c trò chuy n tr c đó N u thi t l p No ch có giáo viên m i đ c xem

III.3 Di n đàn (Forum)

Di n đàn là m t công c giao ti p m nh m trong Moodle Di n đàn cho phép giao

ti p v i nhau b t c lúc nào, b t c n i đâu thông qua Internet H c viên không c n ph i

đ ng nh p cùng m t th i đi m nh Chat H c viên v n có th th o lu n ch đ mình quan tâm b ng cách đ c l i các bài đã post tr c đó

B i vì di n đàn ho t đ ng theo c ch asynchronous (ngh a là không cùng m t

th i đi m) nên h c viên có nhi u th i gian ch nh s a câu tr l i c a mình H c viên s

vi t nháp và vi t l i cho đ n khi c m th y hài lòng v i k t qu tr l i không ph i ch u áp

l c so v i vi c ph i tr l i ngay l p t c H n n a nhi u nghiên c u cho th y sinh viên s n sàng tham gia th o lu n trên di n đàn h n là bày t ý ki n c a mình tr c l p h c Nhi u

h c viên e ng i , nhút nhát khi ph i nói tr c l p thì di n đàn là gi i pháp t t nh t Di n đàn giúp t o m t môi tr ng h c t p n ng đ ng và hi u qu

Thi t l p các thông s sau:

− “Forum Type”: có 4 lo i cho ta l ch n

Trang 39

o A single simple discussion:

Ch cho phép t o m t ch đ th o lu n trong di n đàn này i u này s làm cho

cu c th o lu n t p trung h n vào m t ch đ đ c bi t nào đó

o Each person post one discussion:

M i ng i ch có th b t đ u b ng m t ch đ th o lu n i u này r t h u ích khi c n g i lên m t bài t p hay m t câu h i M i ch đ s có nhi u câu tr l i

o Q and A forum:

Di n đàn này đòi h i m i ng i ph i g i bài tr c khi xem tr l i c a ng i khác Sau khi g i có th xem và tr l i bài vi t

o Standard forum for general use:

Có th có m t ho c nhi u th o lu n trong di n đàn này V i b t c ai có quy n

đ c ch đ nh đ u có th g i nhi u ch đ

− “Force everyone to be subscribed?”: N u đ c thi t l p là Yes thì m i ng i

s nh n đ c mail là b n copy c a các bài vi t trong forum

− “Read tracking for this forum?”: ánh d u nh ng bài vi t nào ch a đ c

− “Maximum attachment size”: Gi i h n dung l ng file đính kèm trong bài vi t

− “Aggregate type”: Ch n ki u đánh giá bài vi t

− “Grade”: i m đánh giá

− “Restric ratings to post with dates in this range”: Thi t l p kho ng th i gian

đánh giá

III.4 Bài h c (Lesson)

Bài h c là s k t h p tuy t v i gi a gi ng d y và bài t p Bài h c cung c p s linh

ho t c a trang web, s t ng tác câu h i và kh n ng r nhánh

Bài h c cho phép giáo viên t o và qu n lý m t t p các trang đ c k t n i K t thúc

m i trang s có m t câu h i và h c viên s ph i tr l i N u tr l i đúng h c viên s chuy n đ n trang ti p theo N u tr l i sai h c viên s đ c chuy n đ n trang h ng d n (ho c trang gi i thích) ho c s nguyên trang đang hi n hành

Thi t l p các thông s sau:

− “Name”: Tên bài h c

− “Time limit”: Thi t l p th i gian cho bài h c đ c tình b ng phút

− “Maximum number of answers/branches”: S câu h i t i đa mà giáo viên ch

đ nh

− “Practice lesson”: N u thi t l p là Yes thì đi m s không đ c ghi l i

− “Custom scoring”: Thi t l p đi m cho m i câu tr l i

− “Maximum grade”: i m s t i đa cho bài h c

− “Student can re-take”: N u thi t l p Yes h c viên có th l y bài h c

− “Handling of re-take”: N u h c viên đ c l y bài h c thì đi m s đ c bi u

Trang 40

− “Display review button”: N u đ c thi t l p nút Review s xu t hi n cho h c

viên tr l i l i câu tr l i sai

− “Maximum number of attempt”: S l n t i đa h c viên đ c phép tr l i câu

h i

− “Action after correct answer”: Hành đ ng h th ng đáp ng l i khi h c viên tr

l i đúng

− “Display default feedback”: N u đ c thi t l p h th ng s ph n h i l i “That

‘s correct answer” ho c “That ‘s wrong answer”

− “Minimum number of question”: S câu h i dùng đ tính đi m cho h c viên

− “Number of pages to show”: S trang h c viên nhìn th y

− “Slide show”: N u đ c thi t l p thì bài h c s đ c bi u di n nh m t trình

chi u v i vi c tùy ch nh chi u cao, chi u r ng, màu n n

− “Display left menu”: N u đ c thi t l p thì danh sách các trang đ c hi n th

− “Passwordd protect lesson”: Thi t l p password truy c p cho bài h c

− “Link to an activity menu”: Liên k t đ n m t ho t đ ng khác cu i trang bài

h c

Sau khi thi t l p nh n “Save Change” s đ c h th ng d n đ n m t trang h ng

d n xây d ng bài h c và đ c yêu c u làm công vi c gì đ u tiên nh sau:

• Import questions

N u ta ch n Import questions có th Import nh ng câu h i đ c t o b i Moodle và

nh ng h th ng qu n lý khóa h c khác Có các đ nh d ng sau: GIFT and Moodle XML, Aiken, Missing Word, BlackBoard, WebCT, Course Test Manager, Embedded Test Manager

• Import PowerPoint

Cho phép import file trình chi u PowerPoint vào bài h c

• Add a Branch Table

Branch Table là trang đ n gi n thi t l p nh ng d ng link đ n các trang khác trong bài h c

• Add a Question Page

Nh ng d ng câu h i này s đ c trình bày k h n ph n Quiz

III.5 Câu h i (Quiz)

Moodle cho phép t o câu h i cho đ thi hay bài ki m tra m t cách linh ho t M i câu h i là m t trang web v i đ y đ ch c n ng đ nh d ng HTML Vì th có th t o câu

h i v i b t c th gì nh text, image, audio, video…

Ngày đăng: 12/05/2015, 20:48

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w