Tải bản đầy đủ (.pdf) (38 trang)

Tài liệu TRƯỜNG ĐẠI HỌC SÀI GÒN KHOA CÔNG NGHỆ THÔNG TINBáo cáo:HỆ QUẢN TRỊ NỘI doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.03 MB, 38 trang )



i

TRƯỜNG ĐẠI HỌC SÀI GÒN
KHOA CÔNG NGHỆ THÔNG TIN




Báo cáo:
HỆ QUẢN TRỊ NỘI DUNG DRUPAL

Giáo viên hướng dẫn : Th.S Phan Thị Kim Loan

Nhóm thực hiện: B16
Đỗ Quốc Hùng MSSV: 3107410298
Phạm Mỹ Ngân MSSV: 3107410308
Nguyễn Minh Đăng MSSV: 3107410286
Hoàng Trường Duy MSSV: 3107410283


TP. Hồ Chí Minh, tháng 5 năm 2011



ii

LỜI CẢM ƠN



Nhóm em xin chân thành cảm ơn Cô Phan Thị Kim Loan đã tận tình
hướng dẫn, chỉ bảo cùng những lời động viên khuyến khích và giúp đỡ chúng em
trong suốt quá trình thực hiện đề tài.
Nhóm cũng xin chân thành cảm ơn tất cả Thầy Cô trong khoa CNTT
trường ĐH Sài Gòn đã tạo điều kiện giúp nhóm em hoàn thành bài báo cáo này.
Cũng như sự tận tình hướng dẫn và chỉ bảo cho nhóm trong suốt quá trình
nghiên cứu để hoàn thành đề tài.
Bên cạnh đó nhóm xin cũng chân thành cảm ơn các anh chị và bạn bè đã
ủng hộ, giúp đỡ , đóng góp ý kiến và động viên nhóm trong thời gian học tập và
nghiên cứu.
Trong quá trình thực hiện đồ án, mặc dù cả nhóm cố gắng hòan thành Đề
tài nhưng do phạm vi đề tài và kiến thức có hạn nên bài báo cáo không tránh
khỏi những thiếu sót. Vì vậy kính mong Cô và các bạn thông cảm và đóng góp ý
kiến của Thầy Cô và các bạn.

Một lần nữa xin chân thành cảm ơn những đóng góp quý báu của Thầy Cô
và các bạn.


Nhóm thực hiện: B16
Đỗ Quốc Hùng
Nguyễn Minh Đăng
Hoàng Trường Duy
Phạm Mỹ Ngân



iii

LỜI MỞ ĐẦU




Drupal là một hệ quản trị nội dung CMS mã nguồn mở được đánh giá cao nhất
thế giới hiện nay. Từ năm 2007 – 2009, Drupal luôn được các nhà thiết kế bình
chọn “CMS nguồn mở PHP danh giá”, “CMS mà nguồn mở PHP tốt nhất” trong
các cuộc thì do Packt Publishing tổ chức.

Drupal là một sườn phát triển phần mềm hướng module, môt hệ quảntrị nội
dung miễn phívà mã nguồn mở. Drupal được xây dựng để giúp đỡ cho nhà phát
triển. 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ácphần khác. Drupal có
thể dễ dàng tạo website cá nhân,websitethảo luận, website cộng đồng, website
doanh nghiệp, website thương mại điện tử.

Với công nghệ Drupal cho phép bạn nâng cao: khả năng tùy biến, phân quyền
người dùng rất tốt, hệ thống đăng nhập sử dụng được với các công cụ thứ ba
(như Jabber, Blogger, LiveJournal hoặc thậm chí với một site Drupal khác, hoặc
dùng LDAP). Về mặt quản lí, Drupal cho phép hệ thống comment đa cấp ("bình
luận của bình luận"), cho phép quản lí phiên bản (biết được ai đã thay đổi bài
viết, thay đổi cái gì, lúc nào, phục hồi bài viết). Ngoài ra, Drupal chạy được trên
tất cả nền tảng thông dụng (Apache/IIS, Unix/Linux/BSD/Solaris/Windows/Mac
OS).
Chính vì vậy, trong đồ án nhóm đã lựa chọn đề tài “Hệ quản trị nội dung
Drupal” nhằm tìm hiểu cách cài đặt và sử dụng hệ thống để bước từng bước tạo
một trang web mong muốn theo yêu cầu, cũng như cấu trúc hoạt động của trang
web đó. Bên cạnh đó là các ưu nhược điểm của hệ quản trị nội dung Drupal và
giải thích tại sao các tính năng hỗ trợ của Drupal luôn làm cho Drupal là lựa
chọn hàng đầu trong các hệ quản trị nội dung.





iv

MỤC LỤC

LỜI CẢM ƠN ii
LỜI MỞ ĐẦU iii
CHƯƠNG 1: TỔNG QUAN VỀ DRUPAL 1
1.1. Drupal là gì? 1
1.2. Thông tin 2
1.3. Nguyên tắc 3
CHƯƠNG 2 : CÁCH CÀI ĐẶT DRUPAL 6
2.1. Cài đặt Drupal: 6
2.2. Cách thức Drupal hoạt động 10
2.2.2. User, Permission, Role 13
2.2.4. Comment 17
2.2.5. Taxonomy 18
2.2.6. Database 18
2.2.7. Path 19
2.2.8. Theme 19
2.2.9. Region, Block, Menu 20
CHƯƠNG 3 : HỆ THỐNG HỖ TRỢ TÀI LIỆU HỌC TRỰC TUYẾN 22
3.1. Mô hình dữ liệu Logic: 22
3.2. Mô tả Chức năng của hệ thống: 23
3.2.1. Mô tả tổng quát hệ thống: 23
3.2.2. Mô tả từng chức năng Hệ thống: 23
3.3. Giao diện người dùng: 26
3.3.1. Giao diện chính 26

3.3.2. Hiển thị tất cả bài giảng thuộc ngành Tiếng Anh 27
3.3.3. Hiển thị tất cả thông báo 27
3.3.4. Giảng viên tạo bài giảng mới 28
3.3.5. Giáo vụ tạo thông báo mới 28
3.3.6. Tạo câu hỏi 29
3.3.7. Views cho hiển thị tất cả bài English 29
3.3.8. Views cho hiển thị tất cả bài giảng CNTT 30
3.3.9. Views cho hiển thị tất cả thông báo 30


v

3.3.10. Pathauto: Title thay thế cho Module 31
Tài liệu tham khảo: 32
- Beginning Drupal - Jacob Redding - Published by Wrox – 2010 32
- Drupal For Dummies - Lynn Beighley - Published by For Dummies – 2009 32


1

CHƯƠNG 1: TỔNG QUAN VỀ DRUPAL

1.1. Drupal là gì?

Drupal là một khung sườn phát triển phần mềm hướng module, môt hệ quản
trị nội dung (Content Management System - CMS) miễn phí và mã nguồn
mở. Drupal được xây dựng để giúp đỡ cho nhà phát triển. 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. Drupal có thể dễ dàng tạo
website cá nhân, website thảo luận, website cộng đồng, website doanh nghiệp,

website thương mại điện tử… Đôi khi, Drupal cũng được gọi là " khung sườn
phát triển ứng dụng web" (Content Management Framework – CMF ), vì
kiến trúc thông minh và uyển chuyển của nó.

Với công nghệ Drupal cho phép bạn nâng cao: khả năng tùy biến, phân quyền
người dùng rất tốt, hệ thống đăng nhập sử dụng được với các công cụ thứ ba
(như Jabber, Blogger, LiveJournal hoặc thậm chí với một site Drupal khác,
hoặc dùng LDAP). Về mặt quản lí, Drupal cho phép hệ thống comment đa cấp
("bình luận của bình luận"), cho phép quản lí phiên bản (biết được ai đã thay
đổi bài viết, thay đổi cái gì, lúc nào, phục hồi bài viết). Ngoài ra, 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.

Tên Drupal được phát âm là "Droo - puhl", bắt nguồn từ cách phát âm của từ
druppel theo tiếng Anh đọc theo kiểu Hà Lan gần giống như từ "Drop" trong
tiếng Anh vì thế logo của Drupal có hình dạng của giọt nước.




2

1.2. Thông tin
1.2.1. Ứng dụng
 Website thảo luận, website cộng đồng
 Website nội bộ (Intranet), website doanh nghiệp
 Website cá nhân

 Website thương mại điện tử
 Thư mục tài nguyên
 Hệ thống quản lý công trình phát triển phần mềm
 Hệ thống quản lý quan hệ khách hàng
1.2.2. Đặc điểm chính
 Hệ thống quản trị nội dung
 PHP Framework
 Blog
 Môi trường cộng tác
 Diễn đàn
 Thư mục ảnh
1.2.3. Điểm mạnh của drupal

Drupal được xây dựng với mục đích giúp người quản lý Web dễ quản
trị hệ thống Web trên Internet một cách hữu hiệu. Phần này thì cũng
giống như các phần mô hình quản trị khác như Joomla, Greeklog,
Mambo, PHP-Nuke, Post-Nuke, Siteframe, phpWCMS, Điểm khác
biệt giữa mô hình Drupal so với các mô hình khác là Drupal phát triển
dựa trên nền tảng modules (mô đun), mà trong đó mỗi module được
một người hay một nhóm người phát triển riêng biệt, sau đó các
modules này được kết nối lại thông qua các qui ước thông số được định
sẵn để hình thành một mô hình rộng lớn có nhiều chức năng hơn. Các
modules này được tháo gỡ ra khỏi phần lõi Drupal hoặc chúng nâng
cấp cũng khá dễ dàng. Chính vì Drupal phát triển dựa trên khái niệm
module, mà mô hình Drupal càng ngày càng phát triển và có nhiều
chức năng hơn so với các mô hình khác. Mỗi module có một hoặc
nhiều chức năng riêng với cấu hình cục bộ (cục bộ bên trong module
đó) riêng. Hiện nay có trên cả hàng trăm modules. Ví dụ như module
có tên Search - dùng để tìm kiếm, tên Whois - dùng để tìm thông tin về
một tên miền (domain name), tên Image - dùng để xem hình, tên

fckeditor - dùng để viết bài (giống Microsoft Word), tên webform -
dùng để tạo các trang web có truy vấn, và vân vân. Người quản lý hay
một lập trình viên có thể kết nối những modules này lại để chúng làm
việc tương tác qua lại các modules liên hệ khác để hình thành một ứng
dụng lớn. Đây chính là điểm mạnh của Drupal so với các mô hình khác
hiện nay! Drupal còn đi xa hơn nữa, là giúp các nhà phát triển và tạo
trang web site chuyên nghiệp một cách nhanh chóng và rất hiệu quả.



3


1.3. Nguyên tắc
 Modular và extensible. Mục tiêu của Drupal và cung cấp một nhân
gọn, mạnh để sẵn sàng mở rộng thông qua các module tự tạo.
 Mã nguồn chất lượng. Chất lượng cao, trình bày đẹp, ghi chú đầy dủ.
 Tuân thủ chuẩn. Drupal hỗ trợ các chuẩn cũ và mới, trong đó có
HTML và CSS.
 Đòi hỏi ít tài nguyên. Để đạt hiệu quả cao nhất, Drupal khuyến khích
các mã lệnh tiết kiệm (thí dụ như dùng ít truy vấn CSDL). Drupal cũng
chỉ cần rất ít đòi hỏi về server, chỉ yêu cầu những cấu hình phổ biến.
Cụ thể là Drupal cần hoạt động trơn tru với Apache, PHP và MySQL
hoặc Postgresql.
 Mã nguồn mở. Drupal dựa trên triết lí mã nguồn mở về sự phát triển
cộng tác của phần mềm tự do. Drupal xây dựng bằng mã mở, bản thân
là mã mở và hỗ trợ các dự án mã mở. Cụ thể là Drupal được xây dựng
trên ngôn ngữ mở PHP, hỗ trợ các CSDL mã mở là MySQL và
Postgresql.
 Dễ dùng. Dễ dùng đối với nhà phát triển, nhà quản lí và người dùng.

 Cộng tác. Hỗ trợ các hệ thống chia sẻ thông tin.

1.4. Lý do sử dụng Drupal
1. Dễ dàng điều khiển URL — Drupal cung cấp 1 công cụ để có thể tạo url
tùy ý cho 1 trang website cụ thể. Nghĩa là bạn có thể đặt các từ trên URL
để cho người đọc dễ nhìn, dễ nhớ và đặc biệt là cho Search Engine.
2. Dễ dàng tạo kiểu nội dung và cách hiển thị — Tạo nhiều kiểu nội dung
khác nhau ví dụ như "blog posts", "news stories", "forum posts",
"tutorials", "classified ads", "podcasts". Hầu hết các CMS đều cố định kiểu
nội dung nhưng với Drupal thì bạn có thể tạo các loại nội dung có nhiều
tùy ý như bạn muốn và hiển thị chúng theo nhiều cách khác nhau.
3. Dễ dàng tạo các phiên bản nội dung — Bạn có thể cấu hình Drupal để
lưu một phiên bản mới của các trang web mỗi khi chúng được chỉnh sửa.
Điều đó có nghĩa là bạn có thể quay về xem hoặc hoàn nguyên phiên bản
cũ nếu bạn muốn.
4. Phân loại nội dung — Drupal có một hệ thống phân loại (Categories)
mạnh mẽ cho phép bạn tổ chức nội dung nhiều cách. Bạn cũng có thể phân
loại theo thứ bậc, với mục của cha mẹ một hoặc nhiều. Drupal là tính năng
phân loại cao cấp, kết hợp với CCK và Views, cho phép bạn dễ dàng tất cả
những mục tiêu dài từ khoá bạn nghiên cứu trong Wordtracker.
5. Quản lý User hữu hiệu — Drupal đã được thiết kế dành cho các trang
web có người sử dụng mạnh mẽ, cần vai trò và chức năng kiểm soát truy
cập. Bạn có thể tạo vai trò người dùng nhiều tuỳ chỉnh với các cấp độ truy
cập tùy chỉnh như bạn cần. Ví dụ bạn có thể tạo ra các vai trò sau đây, mỗi
cấp độ khác nhau của quyền truy cập vào các tính năng của mình: "truy
cập vô danh", "xác thực người dùng", "bài", "biên tập", "webmaster",


4


"admin". Bạn có thể đặt các tính năng, chức năng cho từng nhóm người
dùng có thể sử dụng.
6. Dễ dàng quản lý Titles và Meta Tags— Drupal's Page Title Module cho
phép bạn kiểm soát tuỳ chỉnh <title> tiêu đề trong 1 trang web bất kỳ,
trong khi Meta Tags Module cho phép bạn kiểm soát thẻ mô tả meta, giúp
cho Search Engine dễ dàng tìm kiếm. Điều này là khó khăn trong một số
hệ thống quản lý nội dung, nhưng nó dễ dàng với Drupal
7. Tài liệu hướng dẫn sử dụng rất tốt — Tài liệu bao gồm các cuốn sổ tay
chính thức, API lớn tham khảo, hướng dẫn rất nhiều, blog, video, và
podcast, và cuốn sách mới : Pro Drupal. Có ngay cả một cộng đồng Drupal
Dojo, nơi bạn có thể tìm hiểu làm thế nào để trở thành một ninja Drupal.
8. Cộng đồng sử dụng rất rộng lớn — Với rất nhiều các trang web lớn sử
dụng Drupal, bạn hoàn toàn có thể tin tưởng vào Drupal. Đối với một ý
tưởng về kích thước của các cộng đồng nhà phát triển, hãy nhìn vào danh
sách dài của cộng đồng đã góp phần Module. Diễn đàn Drupal rất năng
động và là một nơi tuyệt vời để có được câu trả lời Drupal của bạn. Bạn
cũng có thể tìm thấy hỗ trợ Drupal trên IRC chat. Để hỗ trợ những người
dùng khác Drupal trong khu vực của bạn, hãy truy cập Groups Drupal.
1.5. Chức năng Drupal:
Hệ thống quản lý nội dung phải bao gồm các chức năng sau đây:
a. Capture and edit: Các yếu tố của mô hình dữ liệu sẽ được sử dụng
phải được xác định và các cơ sở dữ liệu thành phần tiếp theo phải
được xác định. Sự bắt dự liệu dữ liệu vào mỗi thành phần này phải
được xác định.
b. Authentication: Mỗi user phải được xác nhận thông qua username
và password của tài khoản cá nhân riêng của user đó, Sẽ có nhiều
quyền liên quan với những người dùng khác nhau, các cấp, các chi
tiết của các tất cả đều phải được xác định trong hệ thống của bạn.
c. Workflow: Là những quy định cho công việc khác nhau của mỗi
user, với mỗi phần nội dung. Những điều này sẽ là chi phối thông qua

các chính sách khác biệt và được tách biệt với hệ thống. Các module
công việc cho phép tạo ra và phân công của công việc tùy ý tới các
loại nút Drupal. Quy trình công việc được tạo thành từ các trạng thái
công việc. Sự chuyển tiếp giữa các trạng thái công việc có thể có
hành động được phân công trong workflow.
d. Tools thì luôn có sẵn ứng với các mức độ cụ thể của các user trong
hệ thống. Ví dụ như:
- Chỉnh sửa, xóa và hết hạn nội dung.
- Help(truy cập vào nội dung policy, chỉ dẫn các kiểu viết văn bản,
hệ thống trợ giúp)
- Text formatting tool là công cụ định dạng văn bản (in đậm, in mờ,
in nghiêng hay các hyperlink liên kết…vv).


5

- Search for content: tìm kiếm nội dung (có thể là cần thiết cho các
siêu liên kết).
- Create new content category: tạo ra thể loại nội dung mới hay
thuộc tính…vv.
- Assign a piece of content a value: gán một phần nội dung vào một
giá trị nào đó (ví dụ như dịch vụ highlighted ngày nay).
- Gắn kèm nội dung comment để xem xét.
- Messaging and Notification: Nhắn tin và Thông báo là khi công
việc xảy ra thì cần thiết lúc này là một thông đệp gởi đến các user để
xác định nhiệm vụ của họ. Cần tham gia vào công việc hiện thời
trong hệ thống (ví dụ như viết lại nội dung, chỉnh sửa nội dung, nội
dung có mức độ cân đối, vv.)
- Reporting: Một điều cần thiết khi gặp trường gặp tắc nghẽn trong
workflows và nhiều khía cạnh khác nữa thì cần được xác định và báo

cao.
Nhiều khía cạnh khác của báo cáo phải được xác định.
e. General: Việc thực hiện các chức năng trên phải được cân đối với
khả năng sử dụng. Dễ sử dụng phải được thực hiện trong thiết kế, để
khuyến khích sự hấp thu của sản phẩm. Ví dụ những luồng dữ liệu
(hoặc định tuyến thông qua Desktop) để nhập vào một loại nội dung
cụ thể phải được giữ ở mức tối thiểu. Các nhiệm vụ cụ thể mà người
dùng thông thường sẽ thực hiện trên hệ thống phải được nhanh chóng
và đạt được cách dễ dàng. Trong thiết kế này cần phải cân bằng sự
linh hoạt và đơn giản.
f. Locale Functions: tập tin làm việc cùng với các Module Locale để
cho phép người trị quản lí ngôn ngữ giao tiếp của website.
g. Pagination Functions: xử lý việc hiện thị nội dung phân trang và
điều hướng các vấn đề liên quan.
h. Poll Module Functions: Chức năng thăm dò ý kiến, điều khiển định
dạng và hiện trình bày các năng thăm dò ý kiến bao gồm các hình
thức bỏ phiếu và những kết quả.
i. Search Module Functions: Cho phép dùng tử khóa tìm kiếm web
site, và điều khiển hiển thị trong các hình thức khác nhau và kết quả.
j. Upload Module Functions: Module này dành cho việc upload và
gắn kèm file với các nút.
k. Watchdog Module Functions:Cung cấp hệ thống theo dõi và đăng
nhập cho các người qủan trị.



6

CHƯƠNG 2 : CÁCH CÀI ĐẶT DRUPAL


2.1. Cài đặt Drupal:
Đầu tiên chúng ta cần 1 bộ source code của Drupal, có thể Download
Drupal 6.x ở . Sau khi tải source code về chúng ta upload
source code lên host rồi giải nén, và tạo 1 database trên host. Sau khi đã
upload toàn bộ source code lên host, chúng ta mở trình duyệt và chạy web, ở
đây chúng ta dùng localhost.

Hình 2- 1 Chọn Install in English


7


Hình 2- 2 Sửa lỗi theo hướng dẫn
Thấy xuất hiện như hình, chúng ta làm như sau. Vào
folder sites/default/default.settings.php , sau đó copy
file default.settings.php thành 2 file và đổi tên 1 file thành settings.php, lúc
này có 2 file default.settings.php và setttings.php. Tiếp theo chúng ta
CHMOD file settings.php thành 777. Refesh lại trang site


8


Hình 2- 3 Khai báo thông tin Database

Hình 2- 4 Thiết lập thông tin về trang web


9



Hình 2- 5 Thiết lập thông tin quản trị và khai báo múi giờ


Hình 2- 6 Cài đặt thành công



10

2.2. Cách thức Drupal hoạt động



Hình 2- 7 Drupal và các lớp ở mức khái niệm của nó với các lớp của website
Ở mức khái niệm, Drupal trong giống như hình 2-1. Drupal là một lớp
nằm giữa 2 lớp backend (những thứ giữ liên lạc với Internet) và frontend
(những thứ mà người dùng thấy được trên trình duyệt web của họ)

Ở lớp dưới cùng, mọi thứ giống như hệ điều hành của bạn vậy, Web
Server, Database và PHP được chạy trên nó như trong hình. Hệ điều hành
đó điều khiển luồng công việc để website của bạn có thể chạy được: ở mức
thấp nhiệm vụ của nó là xử lý các kết nối mạng, tập tin và phần quyền cho
tập tin. Khi mà Webserver của bạn được mở thì các máy tính có thể truy cập
qua Internet và phục vụ chính xác những yêu cầu khi ghé thăm một trang
như . Database chứa tất cả nội dụng của website,
người dùng và các thiết lập cấu hình, đây là thứ quan trọng nhất nếu bạn
muốn phục hồi lại mọi thứ sau này. PHP là một ngôn ngữ lập trình tạo ra các
trang web động và đổ cở sở dữ liệu từ Database lên Webserver




11

Drupal bao gồm nhiều lớp ở giữa. Ở lớp thấp nhất của nó (core
subsystem), nó cung cấp chức năng bổ sung cho PHP bằng cách thêm vào
một số hệ thống con (subsystem), ví dụ như xử lý phiên người dùng, chứng
thực, tính năng lọc bảo mật (security filering) và “thể hiện template”
(template rendering). Phần tiếp theo được xây dựng dựa vào một lớp tùy
biến các chức năng thêm vào gọi là modules, sẽ được mô tả ở phần tiếp.
Modules thêm các chức năng để Drupal tạo ra các nội dung của bất kỳ trang
nào. Nhưng trước khi nội dung được hiển thị cho người dùng xem thì nó
phải chạy qua theme system , cho phép sửa đổi và điều chỉnh chính xác
những thiết lập mà trước đó đã được thiết kế.

Theme system tạo ra các trang nội dung thường là XHTML hay các kiểu
khác được hổ trợ. CSS được dùng để kiểm soát việc bố trí website (layout),
màu sắc của website và các phông chử thể hiện trên website. JavaScript
được dùng để xử lý các yếu tố động ví dụ như các hình đóng mở trên form
hay kéo thả các table rows trong phần giao diện của quản lý Drupal.
2.2.1. Modules
Tất cả mọi thứ trong Drupal đều xoay quanh khái niệm của modules, nó
chứa các code PHP và tập hợp các chức năng mà Druapal có thể hiểu được
và dùng chúng. Tất cả các quản lý và những thứ mà người dùng thấy trên
giao diện, từ những chức năng cơ bản như kiểm tra đăng nhập hay tạo một
nội dung hình ảnh động đến hệ thống bình chọn phức tạp, tất cả đều được
tạo từ modules . Một ví dụ cho modules như User modules, nó xử lý xác
thực người dùng và kiểm tra quyền hạn. Trong các ứng dụng CMS khác,
modules còn được gọi là plug-ins hay extensions

Có hai kiểu modules là core modules và các modules đóng góp. Các core
modules được tích hợp trong bộ tải về của Drupal, và bạn có thể bật chức
năng của nó mà không cần cài đặt phần mềm bổ sung. Các modules đóng
góp được tải về trong mục download các modules của drupal.org, và cài đặt
trong thư mục cài đặt Drupal của bạn. Bạn cũng có thể tạo ra các modules
riêng của bạn, điều đó đòi hỏi một sự hiểu biết thấu đáo về Drupal, lập trình
PHP và các modules của Drupal API
Một modules gồm các thuộc tính cơ bản sau:
 Name: tên chính thức của module, ảnh hưởng trực tiếp đến những
hàm kết nối với hệ thống.
 Display name: tên gợi nhớ, được trình bày ở trang điều hành module.
 Description: giới thiệu ngắn gọn về các chức năng của module, được
trình bày ở trang điều hành module.
 Version: mã số phiên bản của module.


12

 Dependencies: tên của module mà module đang thiết kế yêu cầu tới
(trong trường hợp sử dụng hàm từ module khác), nếu có nhiều
module thì các module này cách nhau bởi dấu phẩy. Module không
thể được kích hoạt nếu các module được yêu cầu không tồn tại hoặc
chưa được kích hoạt.
 Package: phân nhóm chức năng chứa đựng module.

Hình 2- 8 Danh sách một vài modules core

Một điểm hay của Drupal là cho phép người phát triển module có thể sử
dụng lại những hàm đã được viết ở các module khác để xây dựng module
cho mình. Module có thể tự động ngưng hoạt động tạm thời để giảm tải cho

máy chủ khi có quá nhiều truy cập bằng cách bật module throttle (quản lý cơ
chế tự động điều chế sự tắt nghẽn hệ thống) và chọn sử dụng chức năng điều
tiết lưu lượng. Chức năng tự động điều tiết có thể được bật thông qua trang
cấu hình throttle sau khi đã bật module throttle.

Mỗi module phải xử lý được các sự kiện hoặc định nghĩa các sự kiện riêng
của nó. Mỗi thao tác cần được phân quyền rõ ràng. Việc phân quyền này
thuộc về người điều hành. Mỗi thao tác cần có một internal path (hay drupal
path) nhất định.



13

Thông tin được khai báo rõ ràng qua tập tin .info, điều đó sẽ làm cho
người điều hành dễ quản lý. Không cần quan tâm nhiều đến quyền hạn truy
cập. Module được tách ra một thư mục cụ thể để quản lý một cách dễ dàng.

Phát triển module không cần thay đổi phần nhân của mã nguồn, khi nhân
có lỗi bảo mật, việc cập nhật trở nên dễ dàng. Việc gán các quyền truy cập
với các vai trò thuộc về người điều hành, người điều hành không bị ràng
buộc bởi quyền truy cập nào. Mỗi module có thể định nghĩa cho riêng nó
những quyền hạn truy cập khác nhau


2.2.2. User, Permission, Role

Mỗi người truy cập vào trang web của bạn, cho dù họ có tài khoản và đăng
nhập hoặc ghé thăm trang web nặc danh, được xem là một người sử dụng
Drupal. Mỗi người sử dụng có số ID, và người người sử dụng không phải vô

danh có tên người dùng và địa chỉ email. Các thông tin khác cũng có thể
được liên kết với người sử dụng bởi các module, ví dụ, nếu bạn sử dụng các
module Profile core, bạn có thể định nghĩa thêm các trường trong profile
người dùng.
Người dùng vô danh có ID=0. Người sử dụng có ID=1 là tài khoản người
dùng bạn tạo ra khi bạn cài đặt Drupal và là người dùng đặc biệt có quyền
làm mọi thứ trên trang web.

Hình 2- 9 Danh sách user cùng các thông tin khác


14



Những người dùng khác được gán quyền thông qua Role. Một Role định
nghĩa một nhóm người dùng có quyền nhất định theo Permission

Hình 2- 10 Ví dụ danh sách role

Theo mặc định, Drupal có 2 định nghĩa vai trò người dùng (user role):
 Anonymous user: Vai trò này chỉ những người dùng không phải là
một thành viên hoặc chưa chứng thực đăng nhập
 Authenticated user: Vai trò chỉ chung cho tất cả những người dùng
đã đăng nhập hệ thống.
Permissions cho phép bạn điều khiển những gì người dùng có thể làm trên
site


15



Hình 2- 11 Cho phép Giảng viên sử dụng modules ckeditor

2.2.3. Node
Một Node trong Drupal là một thuật ngữ chung cho một phần của nội
dung trên trang web của bạn. (Lưu ý rằng sự từ "Node" không phải là từ
có ý nghĩa trong toán học như một phần của mạng.) Một số ví dụ về các
Node:

 Các trang của các quyển sách(Pages in books)
 Các chủ đề thảo luận trong diễn đàn (Discussion topics in forums)
 Các trang trong blog(Entries in blogs)
 Các bài viết tin tức (News article stories)

Mỗi Node trên trang web của bạn có một kiểu nội dung (Content type).
Nó cũng có ID, Tiêu đề, Ngày viết, Tác giả (một người dùng trên trang
web), Nội dung…. Bằng cách sử dụng Module (CCK).


16


Hình 2- 12 Mô tả node
Có nhiều kiểu node khác nhau, những kiểu node phổ biến như là : “blog
entry”, “poll”, “book page”…và tất cả các kiểu nội dung được xây dựng trên
node đều có cùng một cấu trúc dữ liệu bên dưới giống nhau. Điều này nghĩa
là đối với các thao tác trên node, bạn có thể xem như tất cả các nội dung là
giống nhau. Việc thực hiện các thao tác trên node rất dễ dàng : tìm kiếm,
tạo, chỉnh sửa, quản lý… tất cả đều được cung cấp sẵn trong Drupal vì tất cả

các kiểu nội dung đều là node. Các kiểu node đều kế thừa từ node cơ bản và
thường thêm vào các thuộc tính dữ liệu riếng của chúng.




17

2.2.4. Comment

Comment cũng là một loại nội dung bạn có thể có trên trang web của bạn
(nếu bạn đã kích hoạt module comment ). Mỗi comment gắn với một Node
cụ thể.

Hình 2- 13 Bình luận một bài viết




18

2.2.5. Taxonomy

Drupal có một hệ thống phân loại nội dung, mà được gọi là Taxonomy.
Bạn có thể định nghĩa từ vựng của riêng bạn (vocabularies – groups of
taxonomy terms), và thêm terms cho mỗi từ vựng. Từ vựng có thể là ngang
hàng hoặc phân cấp, có thể cho phép lựa chọn một hoặc nhiều, và cũng có
thể được "free tagging" (có nghĩa là khi tạo hoặc chỉnh sửa nội dung, bạn có
thể thêm terms mới). Mỗi từ vựng có thể được gắn với một hoặc nhiều loại
nội dung, và theo cách này, các Node trên trang web của bạn có thể được

nhóm lại thành các loại, được dán nhãn, hoặc được phân loại trong bất kỳ
cách nào bạn chọn.

Hình 2- 14 Các term của vocabulary Tuần
Có thể hiểu Vocabulary như là các chuyên mục tổng quát nhất, trong khi
Term là các chuyên mục con có ý nghĩa cụ thể hơn

2.2.6. Database

Drupal lưu trữ thông tin trong cơ sở dữ liệu, mỗi loại thông tin có bảng cơ
sở dữ liệu riêng của mình. Ví dụ, các thông tin cơ bản về các Node trên
trang web của bạn được lưu trữ trong bảng Node, và nếu bạn sử dụng
module CCK để thêm các trường vào các Node của bạn, nó được lưu trữ
trong các bảng riêng biệt. Comment và User cũng có các bảng cơ sở dữ liệu
riêng của nó, và Role, Permission, và các thiết lập khác cũng được lưu trữ
trong các bảng cơ sở dữ liệu.



19


Hình 2- 15 Cơ sở dữ liệu Drupal và các thuộc tính trong bảng Node

2.2.7. Path
Khi bạn truy cập một địa chỉ URL trong trang web của Drupal của bạn,
một phần của địa chỉ URL sau địa chỉ cơ bản của trang web được gọi là
Path.

2.2.8. Theme

Theme điều khiển cách trang web của bạn được hiển thị, bao gồm giao
diện đồ họa, bố trí, và màu sắc. Theme bao gồm một hay nhiều tập tin PHP
để xác định đầu ra HTML của các trang web của bạn, cùng với một hoặc
nhiều file CSS để xác định bố trí, phông chữ, màu sắc, và phong cách khác.

Hình 2- 16 Một số themes của Drupal


20
2.2.9. Region, Block, Menu
Các trang trên trang web của Drupal của bạn được đặt ra trong Region, mà
có thể bao gồm các header, footer, sidebars, và phần nội dung chính, theme
của bạn có thể xác định các Region khác. Ngăn chặn được các đoạn rời rạc
của thông tin được hiển thị ở Region của các trang web. Block có thể mang
hình thức của menu (trong đó có liên quan với điều hướng trang web), nội
dung từ các module (ví dụ, các chủ đề diễn đàn nóng), hoặc các khối thông
tin tĩnh hoặc động mà bạn đã tạo ra cho mình (ví dụ, một danh sách các sự
kiện sắp tới) .
Có 3 loại menu trong Drupal: Primary Links, Secondary Links, and
Navigation.


Hình 2- 17 Block của Drupal

×