Drupal / Session 1 / Slide 1 of 19
Tìm hiệu Drupal CMS
Drupal / Session 1 / Slide 2 of 19
Mục tiêu bài học
Tổng quan về Drupal
Một số khái niệm
Hướng dẫn cài đặt
Các module hệ thống
Các trang tham khảo
Drupal / Session 1 / Slide 3 of 19
Tổng quan về Drupal
Drupal là gì: Drupal là một khung sườn phát triển
phần mềm hướng mô-đun (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.
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. 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 nó.
Drupal / Session 1 / Slide 4 of 19
Tổng quan về Drupal
Lịch sử Drupal:
Đầu tiên, nó được Dries Buytaert, một lập trình viên mã
nguồn mở, tạo ra theo dạng một hệ thống bảng tin. Đế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ừ từ liệu
"druppel" của tiếng Hà Lan, nghĩa là "giọt nước".
Từ tháng bảy 2007 đến tháng sáu năm 2008, mã nguồn
Drupal đã được tải về từ website drupal.org hơn 1,4
triệu lần. Hiện nay, có một cộng đồng rộng lớn đang
giúp đỡ phát triển Drupal.
Tháng giêng năm 2009, Drupal 6.9, phiên bản mới nhất,
đã được công bố.
Drupal / Session 1 / Slide 5 of 19
Tổng quan về Drupal
Nền tảng:
PHP
MySQL
PostgreSQL
Apache
XMLRPC
JQuery
Drupal / Session 1 / Slide 6 of 19
Tổng quan về Drupal
Mô hình MVC:
Drupal / Session 1 / Slide 7 of 19
Tổng quan về Drupal
Đặc điểm:
Xây dựng nội dung theo “Kiểu nội dung”
Phân luông nội dung theo “Kho từ” và “Tư liệu”
Chức năng phản hổi cho mọi nội dung
Các kiểu nội dung cơ bản: Page(trang tĩnh), story (tin tức), forum (diễn đàn)…
Quản lý người dùng dựa trên vai trò
Hệ thống phân quyền dựa trên bộ ba: module + thao tac + vai trò. Hệ thống này
có thể mở rộng rất uyển chuyển
Nhiều module cộng thêm đáp ứng nhiều nhu cầu: sự kiện, lịch biểu, thương mại
điện…
Drupal / Session 1 / Slide 8 of 19
Tổng quan về Drupal
Đặc điểm 2:
Xử lý tốt tính bảo mật phổ biến: SQL injectioon, truy cập file…
Thao tác với CSDL dễ dàng
Sử dụng phptemplate, tách bạch xử lý logic và html, tích hợp Form API, hỗ trợ
tạo và xử lý form nhanh chóng
Nền tảng hướng module, xây dựng ứng dụng nhiều chức năng nhanh chóng, bảo
mật, kế thừa cao, giao diện uyển chuyển…
Tích hợp thư viện Jquery vào hệ thống
Xử lý sẵn các yêu cầu phổ biến: quản lý nội dung, quản lý người dùng, phân
quyền, xử lý giao diện(theme)…
Drupal / Session 1 / Slide 9 of 19
Tổng quan về Drupal
Ứng dụng:
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
Website thương mại điện tử
Website cá nhân
Website thảo luận, website
cộng đồng
Website nội bộ (Intranet),
website doanh nghiệp
Drupal / Session 1 / Slide 10 of 19
Một số khái niệm Drupal
User: khái niệm chỉ về người sử dụng ứng dụng. Có một số thuộc tính cơ bản
như sau:
User ID: mã số người dùng
Username: tên đăng nhập vào hệ thống
Password: mật khẩu, thiết lập tính bảo mật
Email: địa chỉ email của người dùng, để khôi phục lại mật khẩu
…
Role:
Vai trò (quyền hạn) của người dùng
Mỗi một người dùng có thể có một hoặc nhiều vai trò khác nhau
Người điều hành site phân quyền sử dụng các chức năng hệ thống dựa theo vai trò
Drupal / Session 1 / Slide 11 of 19
Một số khái niệm Drupal
Role - tiếp:
Drupal xây dựng sẵn 3 vai trò cốt lõi, không thể xóa được:
Admin: một vai trò trừu tượng, không hiển thị ra giao diện; Hệ
thống chỉ có một người có vai trò admin; Người điều hành site
sẽ có toàn quyền sử dụng mọi chức năng trên hệ thống
Anonymous: người sử dụng chưa đăng nhập vào hệ thống
Authenticated: người sử dụng ghi danh và đăng nhập vào hệ
thống
Người điều hành có thể xây dựng thêm/sửa/xóa một/nhiều vai trò
mới cho phù hợp nhu cầu
Drupal / Session 1 / Slide 12 of 19
Một số khái niệm Drupal
Mô hình phân quyền
Drupal / Session 1 / Slide 13 of 19
Một số khái niệm Drupal
Theme:
Theme là giao diện người dùng, site drupal có thể có một
hoặc nhiều theme
Người điều hành site có thể bật/tắt (những) theme sử dụng
Người dùng có thể chọn sử dụng một theme trong những
theme hợp lệ (theme được kích hoạt)
Theme định nghĩa cách trình bày tổng quan của site:
sitename, slogan, layout, css, block style, node style
Drupal / Session 1 / Slide 14 of 19
Một số khái niệm Drupal
Kiến trúc theme
Drupal / Session 1 / Slide 15 of 19
Một số khái niệm Drupal
Block: những khối nội dung bao gồm các thuộc tính
Region: (Vị trí trình bày) được trình bày ở
trên/dưới/trái/phải/ở giữa/….
Weight: (Thứ tụ trình bày) xác định thứ tự trình bày block.
Weight càng nhỏ thì độ ưu tiên càng cao
Title: tiêu đề của block
Body: nội dung trình bày chính của block
Access: xác định những vai trò nào thì được phép xem block
…
Drupal / Session 1 / Slide 16 of 19
Một số khái niệm Drupal
Region block
Drupal / Session 1 / Slide 17 of 19
Một số khái niệm Drupal
Menu:
Hệ thống có một hoặc nhiều menu
Menu title: tên phân biệt các menu, có thể chứa môt/nhiều menu item
Mỗi menu tự tạo ra một block tương ứng với nội dung là một cây phân
nhánh gồm những menu item
Menu item:
Là một siêu lên kết được định nghĩa trong menu
Thuộc tính: Status - được kích hoạt hay không; Title - tiêu đề của menu;
Description - mô tả cho menu item; Path - đưỡng dẫn liên kết; weight:
xác định vị trí menu item; Expanded - có được duỗi ra hay không .
Drupal / Session 1 / Slide 18 of 19
Một số khái niệm Drupal
Module: là một nhóm chức năng nhất định, gồm các thuộc tính sau:
Name: tên chính thức của module, ảnh hưởng trực tiếp tới hàm liên kết với hệ
thống
Display name: tên gợi nhớ, được trình bày ở trang điều hành
Description: giới thiệu ngắn gọn về chức năng module, trình bày ở trang điều
hành
Version: mã số phiên bản module
Dependencies: phụ thuộc các module khác. Module sẽ không kích hoạt được
nếu module phụ thuộc không kích hoạt
Package: phân nhóm chức năng chứa đựng module
Drupal / Session 1 / Slide 19 of 19
Một số khái niệm Drupal
Hook: Hook được xem như là các event bên trong bộ nhân Drupal.
Chúng được gọi là các hàm callbacks.
Ví dụ : khi một user login vào drupal, Drupal sẽ phát ra hook user, nghĩa là
lúc này tất cả các hàm hook user có trong tất cả các moudle sẽ được gọi.
Đây là cách phổ biến nhất để tương tác với nhân Drupal.
Mỗi hàm hook có những tham số quy ước và gia trị trả về nhất định, có thể
tham khảo />
Node: Các kiểu nội dung trong Drupal đều kế thừa từ kiểu cơ bản là node.
Ví dụ : blog entry, post, page, recipe… tất cả đều có cùng cấu trúc bên dưới giống
nhau là node.
Drupal / Session 1 / Slide 20 of 19
Một số khái niệm Drupal
Node:
Cách tương tác với node là
mở rộng chúng.
Ví dụ : các developer có thể
thêm vào các node như :
comment, file attachment,
rate…
Bất kỳ node nào cũng có
thể được đưa ra frontpage
(trang chủ).
Drupal / Session 1 / Slide 21 of 19
Mô hình site Drupal
Drupal / Session 1 / Slide 22 of 19
Hướng dẫn cài đặt
Khởi động vertrigo
Download phiên bản Drupal 6 tại: />
Giải nén vào thư mục www của vertrigo, ví dụ: đặt tên project mydrupal
Vào thư mục mydrupal/sites/default -> copy file default.settings.php đổi
tên thành settings.php
Truy cập vào phpmyadmin -> tạo csdl (ví dụ: mydrupal)
Sau đó mở trình duyệt chạy trang: http://localhost/mydrupal/
(Tham khảo video đính kèm)
Drupal / Session 1 / Slide 23 of 19
Các module hệ thống
Drupal là một framework hướng module, những nhóm chức năng từ hệ
thống cũng được xây dựng theo hướng này, thích hợp để sử dụng hầu hết
các site và để tham khảo
Aggregator: lấy tin các website khác thông qua RSS
Block: điều khiển các ô hiển thị xung quanh nội dung chính
Blog: tạo các blog entry
Book: hỗ trợ người dùng công tác tạo những trang sách
Color: hỗ trợ người dùng thay đổi tông màu của theme
Locale:cho phép người dùng dịch giao diện sang ngôn ngữ khác
Menu: cho phép quản trị hệ thống tùy biến menu
Drupal / Session 1 / Slide 24 of 19
Các module hệ thống
Node: cho phép người dùng gửi đến và hiển thị trên các trang
Path: cho phép người dùng đổi đường dẫn url
Ping: nhắn tin đến những site khác khi hệ thống cập nhật
Poll: chức năng bình chọn trên site
Profile: tùy biến profile(thông tin) người sử dụng
Search: hỗ trợ tìm kiếm từ khóa trên toàn hệ thống
Statistic: ghi lại thống kê truy cập hệ thống
System: điều khiển cấu hình chung dành cho quản trị hệ thống
Taxonomy: hỗ trợ phân luồng nội dung
Drupal / Session 1 / Slide 25 of 19
Các module hệ thống
Throttle: hỗ trợ xử lý một số tháo tác ở các site khi có lượng truy cập lớn
Tracker: theo dõi vết nội dung hiện thời của người dùng
Upload: cho phép người dùng tải và đính kèm tệp tin vào nội dung
User: quản lý thông tin đăng nhập và đăng ký người dùng
Wacthdog: ghi lại sự việc diễn ra trên hệ thống