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

KHÓA LUẬN tốt NGHIỆP NGHIÊN cứu và xây DỰNG hệ THỐNG tạo WEBSITE HOÀN CHỈNH CHO NGƯỜI KHÔNG BIẾT lập TRÌNH

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.3 MB, 79 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN
KHOA CƠNG NGHỆ PHẦN MỀM

LÊ VĂN HỒNG

KHĨA LUẬN TỐT NGHIỆP

NGHIÊN CỨU VÀ XÂY DỰNG
HỆ THỐNG TẠO WEBSITE HỒN CHỈNH CHO
NGƯỜI KHƠNG BIẾT LẬP TRÌNH
RESEARCH AND BUILD
THE SITE BUILDER ON DRUPAL CMS

KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM

TP. HỒ CHÍ MINH, 2021


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN
KHOA CƠNG NGHỆ PHẦN MỀM

LÊ VĂN HỒNG – 17520509

KHÓA LUẬN TỐT NGHIỆP

NGHIÊN CỨU VÀ XÂY DỰNG
HỆ THỐNG TẠO WEBSITE HỒN CHỈNH CHO


NGƯỜI KHƠNG BIẾT LẬP TRÌNH
RESEARCH AND BUILD THE SITE BUILDER ON DRUPAL
CMS

KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM

GIẢNG VIÊN HƯỚNG DẪN
THS. HUỲNH TUẤN ANH

TP. HỒ CHÍ MINH, 2021


THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ……………………
ngày ………………….. của Hiệu trưởng Trường Đại học Công nghệ Thông tin.

1.

............................................................ – Chủ Tịch.

2.

............................................................ – Thư Ký.

3.

............................................................ – Ủy Viên.

4.


............................................................ – Ủy Viên.


LỜI CẢM ƠN
Em xin chân thành cảm ơn Khoa Công Nghệ Phần Mềm, trường Đại Học Công
Nghệ Thông Tin - Đại học Quốc gia Thành phố Hồ Chí Minh đã tạo điều kiện tốt cho
em thực hiện đề tài này.
Em xin chân thành cảm ơn ThS. Huỳnh Tuấn Anh, là người đã tận tình hướng
dẫn, chỉ bảo em trong suốt thời gian thực hiện đề tài. Em cũng xin gửi lời cảm ơn sâu
sắc đến quý Thầy Cô trong Khoa đã tận tình giảng dạy, trang bị cho em những kiến
thức quý báu trong những năm học vừa qua, từ đó, đã giúp em có một nền tảng kiến
thức từ cơ bản tới chuyên ngành vững chắc để hoàn thành tốt khóa luận tốt nghiệp
này.
Em xin cảm ơn ThS. Nguyễn Ngọc Hải và các anh trong công ty Weebpal đã
tận tình hướng dẫn, giúp đỡ em giải quyết những khó khăn, vấn đề gặp phải trong
thời gian nghiên cứu và thực hiện đề tài, cũng như tạo điều kiện thuận lợi để hồn
thành khóa luận này.
Em xin gửi lịng biết ơn sâu sắc đến Ba, Mẹ, các Anh chị và Bạn bè đã ủng hộ,
giúp đỡ và động viên em trong những lúc khó khăn cũng như trong suốt thời gian học
tập, nghiên cứu và thực hiện đề tài.
Mặc dù em đã cố gắng hồn thành khóa luận trong phạm vi và khả năng cho
phép, nhưng chắc chắn sẽ không tránh khỏi những thiếu sót. Em kính mong nhận
được sự cảm thơng, góp ý và chỉ bảo của Q Thầy Cơ để đề tài được hồn thiện hơn.

Tp. Hồ Chí Minh, 30 tháng 06 năm 2021
Sinh viên

Lê Văn Hoàng



MỤC LỤC

TÓM TẮT KHÓA LUẬN ................................................................................. 1
Chương 1.

TỔNG QUAN ĐỀ TÀI ............................................................... 2

1.1.

Lý do chọn đề tài ............................................................................. 2

1.2.

Giả thiết về thị trường ..................................................................... 4

1.3.

Đặc điểm của sản phẩm.................................................................. 6

1.4.

Lợi ích của khóa luận ...................................................................... 6

Chương 2. KIẾN THỨC NỀN LIÊN QUAN SỬ DỤNG TRONG KHĨA LUẬN
8
2.1.

CMS là gì? ....................................................................................... 8


2.2.

Lợi ích, thế mạnh của CMS và các CMS phổ biến hiện nay ........... 8

2.3.

Giới thiệu về Drupal ........................................................................ 9

2.4.

Điểm mạnh của Drupal.................................................................. 10

2.4.1. Điểm mạnh ................................................................................ 10
2.4.2. Điểm yếu .................................................................................... 11
2.5.

So sánh Drupal với Wordpress ..................................................... 11

2.5.1. Điểm chung ................................................................................ 11
2.5.2. Điểm khác biệt ........................................................................... 11
2.5.3. Tại sao lại sử dụng Drupal......................................................... 12
2.6.

Các khái niệm trong Drupal [6] ...................................................... 12

2.6.1. Region, Section. ........................................................................ 13
2.6.2. Node .......................................................................................... 14
2.6.3. Block .......................................................................................... 14
2.6.4. View ........................................................................................... 14
2.6.5. Menu .......................................................................................... 15



2.6.6. Content type .............................................................................. 15
2.6.7. User, permission, role ................................................................ 15
2.6.8. Modules ..................................................................................... 15
2.6.9. Theme ........................................................................................ 16
2.7.

Yêu cầu về server ......................................................................... 16

2.7.1. Hệ thống sử dụng nền tảng máy chủ Linux để vận hành hệ
thống [7] ................................................................................................ 16
2.7.2. Máy chủ đám mây DigitalOcean (Cloud server) [8] ................... 16
2.7.3. Các yêu cầu khác của hệ thống ................................................ 17
Chương 3. GIỚI THIỆU VÀ MƠ TẢ HỆ THỐNG, PHÂN TÍCH THIẾT KẾ HỆ
THỐNG
3.1.

18
Các sơ đồ thiết kế hệ thống .......................................................... 18

3.1.1. Sơ đồ thiết kế tổng thể của hệ thống......................................... 18
3.1.1.1. Luồng tiến trình thứ nhất: Tạo một đối tượng trên website 20
3.1.1.2. Luồng tiến trình thứ hai: chỉnh sửa một đối tượng trên
Website 21
3.1.1.3. Luồng tiến trình thứ ba: delete/remove/unassign một đối
tượng

22


3.1.2. Sơ đồ luồng xử lý khởi tạo Website. ......................................... 23
3.1.3. Sơ đồ use case .......................................................................... 25
3.2.

Giới thiệu chi tiết các thành phần của hệ thống ............................ 26

3.2.1. Về tổng thể hệ thống ................................................................. 26
3.2.2. Quy trình luồng tạo website của hệ thống Site Builder.............. 28
3.2.3. Mô tả từng chức năng của toàn bộ hệ thống. ........................... 32
3.2.3.1. Chức năng của hệ thống Site Builder: ............................... 32
3.2.3.2. Chức năng của Website ..................................................... 32
Chương 4. NHỮNG BÀI TỐN, KHĨ KHĂN VÀ GIẢI PHÁP...................... 35


4.1.

Chi tiết các bước thực hiện chức năng: Khởi tạo Website của hệ

thống Site Builder. .................................................................................... 35
4.2.

Chi tiết về các tập lệnh scripts được dùng trong chức năng tạo

Website của hệ thống Site Builder. .......................................................... 38
4.3.

Chi tiết việc cài đặt hệ thống API .................................................. 39

4.4.


Hệ thống lưu trữ dữ liệu ................................................................ 45

4.4.1. Mô tả .......................................................................................... 45
4.4.2. Đặc tả ........................................................................................ 46
4.5.

Sơ đồ lớp Builder modules. ........................................................... 48

4.6.

Hệ thống chức năng hỗ trợ tùy chỉnh website (Chức năng của hệ

thống Website). ........................................................................................ 49
4.6.1. Giải thích các khái niệm............................................................. 50
4.6.2. Chi tiết các chức năng hỗ trợ tương tác với từng đối tượng
(item), các bài toán của từng chức năng và giải pháp kỹ thuật............ 51
4.6.2.1. Chức năng tạo ra một bộ ba định danh .............................. 52
4.6.2.2. Chức năng tạo Toolbar (module wb_toolbar) ..................... 53
4.6.2.3. Chức năng tạo contextual-menu cho đối tượng ................. 54
4.6.2.4. Section ................................................................................ 55
4.6.2.5. Chức năng với Content Type ............................................. 58
4.6.2.6. Chức năng với Content ...................................................... 58
4.6.2.7. Chức năng với Listing Content Type (Listing) .................... 59
4.6.2.8. Chức năng với View. .......................................................... 62
4.6.2.9. Chức năng với Menu .......................................................... 62
4.6.2.10. Chức năng với Menu Link .................................................. 63
4.6.2.11. Chức năng với Block .......................................................... 63
4.6.2.12. Basic page .......................................................................... 64
4.6.2.13. Form ................................................................................... 64
Chương 5. KẾT QUẢ ĐAT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN ................... 65



5.1.

Kết quả đạt được .......................................................................... 65

5.2.

Kế hoạch tổng thể và hướng phát triển ........................................ 65


DANH MỤC HÌNH
Hình 2.1 Drupal................................................................................................. 10
Hình 2.2 Cấu trúc và mối tương quan các thành phần website trong Drupal 8 13
Hình 3.1 Sơ đồ tổng thể hệ thống. .................................................................... 19
Hình 3.2 Process flow luồng tiến trình thứ nhất ............................................... 21
Hình 3.3 Process flow luồng tiến trình thứ hai ................................................. 22
Hình 3.4 Process flow luồng tiến trình thứ ba .................................................. 23
Hình 3.5 Sơ đồ luồng xử lý khởi tạo Website ................................................... 24
Hình 3.6 Sơ đồ use case của hệ thống............................................................... 25
Hình 3.7 Giao diện quản lý các website ........................................................... 26
Hình 3.8 Giao diện form tạo một website ......................................................... 27
Hình 3.9 Sơ đồ khối cho luồng tiến trình khởi tạo website .............................. 29
Hình 4.1 Bảng dữ liệu wb_items_table............................................................. 47
Hình 4.2 Sơ đồ lớp hệ thống Builder modules.................................................. 49
Hình 4.3 Bộ ba định danh cho mỗi loại đối tượng ............................................ 52
Hình 4.4 Contextual menu cho mỗi loại đối tượng........................................... 54
Hình 4.5 Bố trí các section trong layout website .............................................. 56
Hình 4.6 Hình minh họa content dạng List ....................................................... 60
Hình 4.7 Hình minh họa content dạng Grid ...................................................... 61



DANH MỤC BẢNG
Bảng 1 Danh sách các thuộc tính dữ liệu của items ......................................... 47
Bảng 2 Bảng danh sách các hành động của hook ............................................. 55


DANH MỤC TỪ VIẾT TẮT

STT

Từ viết tắt

Tên đầy đủ

1

CMS

Content management system

2

UI

User Interface

3

UX


User Experience

3

API

Application Programming Interface

4

Covid

Covid-19


TÓM TẮT KHÓA LUẬN
Ở thời điểm hiện tại việc xây dựng website càng lúc sẽ càng được thực hiện
phần nhiều bởi các công cụ tự động, được xây dựng trên nền sự thừa kế về mặt
giao diện cũng như những trải nghiệm người dùng đã phát triển trong hơn 30 năm
lịch sử hình thành và phát triển của các loại hình website.
Từ đó cơng ty WeebPal muốn đưa được ra một sản phẩm cũng như là một công
cụ giúp chúng ta tiết kiệm rất nhiều thời gian cho việc xây dựng những website cơ
bản và từ đó tiếp tục thực hiện những chức năng phức tạp hơn theo yêu cầu của
khách hàng. Và với đặc điểm như vậy, hệ thống cũng cung cấp được giải pháp xây
dựng website tự động nhanh chóng cho tất cả mọi người kể cả những ai chưa biết
lập trình dựa trên một nền tảng CMS rất phổ biến đó là Drupal. Tóm lại, khố luận
đã thực hiện các nội dung sau:



Tìm hiểu về Drupal CMS và hệ thống Site Builder Alpha Release.



Vẽ diagram, phân tích kĩ thuật và hồn thiện hệ thống.



Xây dựng bộ template và content đầy đủ cho hệ thống.

1


Chương 1. TỔNG QUAN ĐỀ TÀI
1.1. Lý do chọn đề tài
Chúng ta có thể thấy được ở thời điểm hiện tại việc tạo ra một website trở nên
dễ dàng hơn nhờ vào sợ trợ giúp của các công cụ. Đây cũng là xu hướng của website
trong tương lai. Hầu hết các công việc của những người thiết kế web sẽ được giảm
dần lại và thay thế bằng các công cụ hỗ trợ tự động. Đây cũng là lý do khách quan
đưa đến việc quyết định thực hiện khóa luận này. Và lý do chủ quan sẽ được trình
bày tiếp theo dưới đây.
WeebPal Corp bắt đầu đi vào hoạt động từ tháng 4/2014, chuyên xây dựng
themes và thực hiện các dự án websites, web application cho khách hàng và các đối
tác trên thị trường thế giới. Sau 7 năm hình thành và đi vào hoạt động, cùng với hơn
12 năm làm việc trong mảng Outsourcing và Product web cho nhiều công ty khác
nhau, chúng tơi hồn thành hơn 100 dự án từ nhỏ đến lớn, và cũng có cho mình một
bộ sưu tập hơn 60 themes với hàng ngàn người dùng và hàng triệu người duyệt qua
những trang web của chúng tôi. Chúng tôi rút ra được rằng web development phát
triển theo những bước như sau:
Website development thế hệ thứ nhất: xây dựng web dựa trên các ngơn ngữ

lập trình thuần túy. Với bất kỳ ngơn ngữ lập trình cơ bản như PHP, C#, Java, Python,
NodeJS,... lập trình viên đều có thể trực tiếp lập trình để tạo ra website, tự xây dựng
cơ sở dữ liệu, tương tác với cơ sở dữ liệu và tự lập trình để giải quyết tất cả các bài
toán mà website cần thực hiện.
Website development thế hệ thứ hai: xây dựng web trên nền các framework.
Về bản chất, sau khi thực hiện rất nhiều dự án, lập trình viên cảm thấy rất nhiều hàm
được sử dụng rất nhiều lần, như các hàm tổng quát, các hàm connect db,... từ đó nhiều
tổ chức sẽ đứng ra xây dựng nên những thư viện hàm, cung cấp đầy đủ cơng cụ giúp
lập trình viên xây dựng website một cách hồn chỉnh nhanh chóng hơn và khơng phải
làm lại những việc cơ bản nhiều lần. Đó gọi là framework. Những framework nổi
tiếng trên PHP như Zend, Yii, Cake, CodeIgnitor, Symfony, Laravel,... Framework

2


kéo theo một thị trường mở về giao diện trên nền HTML, nhưng chưa q gần gũi, vì
chỉ có lập trình viên mới có thể dùng những template này.
Website development thế hệ thứ ba: xây dựng web trên các dòng CMS. Sau
khi làm rất nhiều website, web application, lập trình viên thấy rằng có rất nhiều chức
năng tương tự nhau trên hầu như mọi hệ thống: xử lý tài khoản, phân quyền, quản lý
dữ liệu, quản lý menu, quản lý các trang,... từ đó các tổ chức sẽ đứng ra xây dựng nên
những hệ thống tích hợp sẵn các chức năng đó, gọi là Content Management System
(CMS). Những CMS nổi tiếng trên PHP như: Wordpress, Joomla, Drupal,... CMS
còn kéo theo một thị trường về template, nhưng ở một hình thái cao cấp hơn so với
thế hệ thứ hai, đó là themes, themes là những bộ giao diện cung cấp trên nền một
CMS nhất định đảm bảo cho một website hoàn chỉnh trên nền CMS đó có được giao
diện đẹp. Thị trường themes xuất hiện trong giai đoạn này và phát triển rất rực rỡ, là
nơi để rất nhiều các công ty nhỏ, các lập trình viên tự do có được những sản phẩm
cho riêng mình. Themefores.net là đại diện cho nổi bậc dòng thị trường themes như
vậy.

Website development thế hệ thứ tư: xây dựng web tự động dựa trên các thư
viện giao diện người dùng và các nền tảng CMS hoặc tương đương. Sau quãng thời
gian rất dài phát triển, lập trình viên thấy rằng rất nhiều chức năng hồn tồn có thể
tự động xây dựng chứ khơng cần phải lặp đi lặp lại nhiều lần bằng thủ công. Cộng
với một quá trình phát triển của Framework, CMS và Themes, công việc lúc này trở
nên đơn giản. Sự ra đời của những nền tảng mạnh như như wix, square space, shopify
và những dịng builder trên nền wordpress đã định hình nên thế hệ web tiếp theo này.
Tuy nhiên hạn chế của những dòng sản phẩm thế hệ này là tập trung vào giải quyết
bài tốn ngay lập tức có website và đem nó đến với càng nhiều người dùng càng tốt,
và chỉ tập trung đưa ra kết quả cuối cùng. Họ chưa thật sự tập trung cũng như chưa
giải quyết được bài toán thật sự nhu cầu của một người làm business, của một cơng
ty ở website của mình khơng thuần túy chỉ là hiển thị nội dung.
Website development thế hệ thứ năm: hai tham số cho thế hệ này là AI và
extendable. Có nghĩa là AI sẽ cho phép tạo ra những website với mức độ yêu cầu vừa

3


phải phù hợp với mong muốn của người dùng, nhưng đó khơng phải là kết quả cuối
cùng. Những website được tạo ra sau đó có thể tiếp tục được phát triển, nâng cấp để
giải quyết những vấn đề phức tạp hơn bởi chính những lập trình viên, những cơng ty
lập trình chun nghiệp.
Xun suốt mọi giai đoạn, vai trị của các lập trình viên và các cơng ty lập trình
vẫn không hề thay đổi, chỉ đơn giản là họ sẽ dần dần khơng cịn làm những việc giản
đơn lặp đi lặp lại nhiều lần nữa, những công việc giản đơn sẽ ngày càng được các
công cụ tự động hỗ trợ tốt hơn, lập trình viên chỉ là người giải quyết những bài tốn
phức tạp, chun biệt mà các cơng cụ hỗ trợ về cơ bản không thể hoặc chưa thể thực
hiện được.
Sau rất nhiều năm thực hiện nhiều sản phẩm và dự án cho thị trường themes của
CMS và các dự án web cho nhiều đối tác khắp nơi trên thế giới. Chúng tơi quyết định

xây dựng cho riêng mình một cơng cụ có thể giúp cơng ty chúng tơi có thể phát triển
thành một dịng sản phẩm hiện đại hơn. Sản phẩm là một công cụ giúp chúng tôi tiết
kiệm được nhiều thời gian và đồng thời hỗ trợ khách hàng tự xây dựng website của
mình một cách đơn giản. Và với đặc điểm như vậy, hệ thống cũng cung cấp được giải
pháp xây dựng website tự động nhanh chóng cho tất cả mọi người dựa trên một nền
tảng CMS rất phổ biến đó là Drupal. Ngồi ra trong 2 năm vừa qua với những khó
khăn và cản trở đặc biệt là dịch bệnh Covid nên công ty chúng tôi đã sử dụng nguồn
nhân lực là các thực tập sinh để hỗ trợ các bạn nghiên cứu giải quyết qua từng bài
toán. Với nhưng lý do trên cũng em đã lựa chọn đây là đề tài cho khóa luận và vai trị
của em trong khóa luận này là nghiên cứu version hiện tại của hệ thống và đưa ra
dược version tiếp theo đó là Alpha 2.
1.2. Giả thiết về thị trường
Sản phẩm được xây dựng dựa trên giả thiết sau về thị trường và các phân khúc của
websites/web application:
• Nhóm 1: Số các websites ở mức ít:

4


o Điển hình: google.com, facebook.com, twitter.com, amazon.com,
alibaba.com, airbnb.com, uber.com, các hệ thống của chính phủ,....
o Đặc điểm: website chỉ là mặt hiển thị bên ngồi, bên trong nó là cả một
hệ sinh thái rất lớn. Các cơng ty này có riêng cho mình đội ngũ lập
trình viên hùng hậu để tự giải quyết các bài toán của riêng họ.
o Ngân sách: khơng giới hạn
• Nhóm 2: Số các websites cũng ở mức ít những khá hơn nhóm 1:
o Điển hình: boeing.com, airbus.com, toyota.com, các hệ thống web của
các công ty hàng đầu nhưng không phải là những công ty chuyên về
công nghệ.
o Đặc điểm: là những website lớn trên thế giới với ngân sách rất lớn để

xây dựng nó, được xây dựng lâu dài với sự tích hợp rất nhiều từ ERP,
CRM, process,… đây là những hệ sinh thái nội bộ của những tập đoàn
lớn
o Ngân sách: rất lớn, hàng chục triệu USD.
• Nhóm 3: Số các websites cũng ở mức ở mức ít nhưng chiếm thị phần lớn
hơn nhiều so với Nhóm 1 và Nhóm 2:
o Đặc điểm: là những website lớn, cần những cơng ty lập trình chun
nghiệp thực hiện
o Ngân sách: Hàng trăm ngàn đến hàng triệu USD
• Nhóm 4: Số các websites ở nhóm này ở mức trung bình:
o Đặc điểm: là những website phổ biến, và hồn tồn có thể được thực
hiện bởi những lập trình viên độc lập cho đến những cơng ty lập trình
chuyên nghiệp.
o Ngân sách: khá đa dạng từ vài trăm USD cho đến hàng trăm ngàn USD.
• Nhóm 5: Số các websites ở mức rất nhiều và phổ biến nhất hiện nay:
o Đặc điểm: là những nhu cầu cơ bản của tất cả những cá nhân hoặc các
công ty nhỏ muốn đăng thơng tin về cơng ty mình lên internet. Hồn
tồn có thể được xây dựng bằng các cơng cụ tự động và đã có rất nhiều

5


công cụ làm được điều này. Nhưng hạn chế là những nền tảng hiện nay
đều rất hạn chế trong việc tiếp tục sử dụng kết quả tạo ra đó để phát
triển lên những mức độ phức tạp hơn tùy theo nhu cầu của người dùng.
Đây là điểm cơ bản khiến chúng tơi quyết định xây dựng sản phẩm cho
riêng mình.
1.3. Đặc điểm của sản phẩm
Mục tiêu của khóa luận là xây dựng một hệ thống web builder có những đặc điểm
sau:

• Đặc điểm 1: Tự động tạo ra những website hồn chỉnh cho những website
thuộc nhóm 5 (nhóm các website simple chiếm thị phần rất nhiều) theo những
yêu cầu khách hàng lựa chọn.
• Đặc điểm 2: Cho phép người dùng những cơng cụ chỉnh sửa website theo ý
mình dựa trên bộ thư viện những thành phần cơ bản của website đã được hệ
thống tự động tạo ra sẵn.


Đặc điểm 3: Website tạo ra được xây dựng trên nền tảng Drupal CMS chuẩn
hóa. Khách hàng hồn tồn có thể tiếp tục u cầu bất kỳ lập trình viên hay
cơng ty lập trình tiếp tục thêm và mở rộng các chức năng theo u cầu

1.4. Lợi ích của khóa luận
Với nội bộ công ty WeebPal: mỗi năm công ty chúng tôi thực hiện trên từ 10
đến 20 themes và số lượng tương tự cũng khoảng từ 10 đến 20 dự án xây dựng
website. Hệ thống sẽ giúp chúng tôi tiết kiệm mỗi dự án từ 100h đến 150h làm việc
như vậy sẽ giúp chúng tơi tiết kiệm trung bình khoảng 3.000 giờ chi phí cho các dự
án mỗi năm.
Với khách hàng đầu cuối: sau khi hồn thiện, chúng tơi sẽ cung cấp một dịch
vụ mở để cho phép khách hàng được sử dụng hệ thống để tạo ra được những website
cơ bản cho mình tương tự như wix, square space. Nhưng ưu điểm của chúng tôi so
với các nền tảng này là có khả năng hỗ trợ lập trình viên và các cơng ty lập trình tiết

6


kiệm thời gian thực hiện dự án của họ. Ngoài ra người dùng cịn nhận được những
điều như sau:
• Tạo website một cách đơn giản và nhanh chóng chỉ trong vài phút.
• Có một website hồn chỉnh với đầy đủ tính năng cần thiết và chạy được

trên trình duyệt.
• Quản lý được các website của mình thơng qua Dashboard.
• Các thao tác tùy chỉnh website được thực hiện dễ dàng.
Với những khách hang là những lập trình viên hoặc những cơng ty chun
về lập trình web: chúng tơi có thể cung cấp dịch vụ cho cả những lập trình viên và
các cơng ty lập trình, những người tương tự như chúng tôi, nhờ hệ thống để tiết kiệm
rất nhiều thời gian trong việc khởi tạo, xây dựng website cho khách hàng với những
mức độ đơn giản, và sau đó tùy nhu cầu của khách hàng sẽ tiếp tục xây dựng thành
những hệ thống lớn hơn.

7


Chương 2.

KIẾN THỨC NỀN LIÊN QUAN SỬ DỤNG TRONG KHÓA

LUẬN
2.1. CMS là gì?
● CMS là từ viết tắt của Content Management System (hệ thống quản trị nội
dung). Là hệ thống giúp ta dễ dàng quản lý và tùy chỉnh các nội dung trên
website. Nội dung ở đây ta có thể hiểu là bất cứ thứ gì như hình ảnh, âm
thanh, video, văn bản...
● Chức năng chính của CMS:
o Tạo, lưu trữ nội dung.
o Chỉnh sửa và xóa bỏ nội dung.
o Truyền tải và chia sẻ nội dung.
o Tìm kiếm và phân quyền cho người dùng.
2.2. Lợi ích, thế mạnh của CMS và các CMS phổ biến hiện nay
● CMS giúp cho người dùng có thể tiết kiệm thời gian, chi phí vận hành và

bảo trì sản phẩm website. Đối tượng người dùng không chỉ là các công ty
mà kể cả các cá nhân vì nó rất thân thiện và dễ dàng tiếp cận kể cả với những
người chưa có kinh nghiệm về lập trình website.
● Ngồi ra tính cộng đồng của CMS cũng là nguyên nhân khiến rất nhiều cá
nhân, tổ chức, doanh nghiệp quan tâm và sử dụng, chúng ta có thể n tâm
xây dựng website vì chúng đa phần là mã nguồn mở, có nhiều tài liệu chi
tiết về phát triển nội dung (content), kỹ thuật (technical), có một cộng rộng
thành viên đóng góp phát triển, nâng cấp, bảo trì và cập nhật các bản vá lỗi
thường xuyên.
● Thêm vào đó, rất nhiều nhà phát triển website, lập trình viên, người dùng
ln sẵn sàng giúp đỡ chúng ta trên các diễn đàn (forum), trang hỏi đáp,
mạng xã hội,… trong quá trình phát triển và duy trì website.
● Là một nền tảng được chính phủ lựa chọn để chia sẻ thông tin quan trọng
mang tầm quốc gia như: The White House, Australia. Các trang truyền tải

8


nội dung cho các tập đồn giải trí hàng đầu như: The GRAMMYs, Turner
Broadcasting. Các hang thông tấn lớn như: The Economist, Fox News và
các tổ chức toàn cầu như: Human Rights Watch, Oxfam International.
● Một số CMS nổi bật hiện nay với cộng đồng lớn như:
o Drupal (PHP): có cộng đồng hỗ trợ đông đảo với số lượng thành viên
đóng góp cho hiệp hội lên đến hơn 100.000 thành viên. [1]
o Wordpress (PHP): cộng đồng lớn trên nhiều quốc gia. Đội ngũ hỗ trợ,
forums, WordCamp và trang tài liệu wordpress.org. [2]
o Magento: Hệ thống CMS hỗ trợ viết các trang web thương mại điện
tử tốt nhất hiện nay. [3]
● Cùng hàng loạt các CMS khác như: DotNetNuke(ASP), Kentiko(ASP),
Umbraco (ASP), Rainbow(ASP), Umbraco (ASP), Sitefinity (ASP).

● Với các ưu thế tính năng, sự tiện dụng cũng như sự lớn mạnh của các hệ
thống CMS ngày nay, CMS đã được chọn để nghiên cứu, xây dựng đề tài
này.
2.3. Giới thiệu về Drupal
Drupal là một khung sườn hỗ trợ phát triển phần mềm hướng mơ-đun, là một
CMS miễn phí mã nguồn mở. [4]
Cũng giống như các hệ quản trị nội dung hiện đại khác, Drupal CMS cho phép
các quản trị viên của hệ thống tạo ra và tổ chức dữ liệu trên website của họ, cho phép
tùy chỉnh cách trình bày các nội dung, 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 đó, ta có thể giải quyết hầu
hết các tác vụ phức tạp mà không cần phải viết nhiều đoạn mã, 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 nó.
Drupal hỗ trợ chạy trên rất nhiều môi trường khác nhau bao gồm Windows, Mac
OS, 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

9


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.

Hình 2.1 Drupal
2.4. Điểm mạnh của Drupal
CMS nói chung và Drupal CMS nói riêng là những cơng cụ mạnh mẽ và hiểu
quả để xây dựng các hệ thống website khác nhau. Mỗi CMS đều có những điểm mạnh
và điểm yếu khi phát triển, cải thiện và duy trì website, phần này sẽ đề cập tới những
ưu nhược điểm của CMS Drupal.
2.4.1.


Điểm mạnh

● Nền tảng mạnh mẽ, ổn định cho web hoạt động với hiệu suất cao, tiết kiệm
tài nguyên hệ thống.
● Dễ dàng xây dựng trang web.
● Cấu trúc linh hoạt có thể mở rộng dễ dàng mà khơng gặp các hạn chế.
● Thân thiện với các cơng cụ tìm kiếm.
● Mã nguồn mở PHP.
● Drupal có độ bảo mật cao, được các cơ quan nhà nước tin tưởng sử dụng.
● Dễ dàng chạy được trên server linux và window.
● Hoàn tồn miễn phí.
● Có cộng đồng to lớn hỗ trợ phia sau

10


2.4.2.

Điểm yếu

● Khó sử dụng đối với người dùng chưa có kinh nghiệm.
● Drupal có kiến trúc phức tạp.
2.5. So sánh Drupal với Wordpress
2.5.1.

Điểm chung

● Miễn phí
● Sự dụng PHP nên có thể chạy trên nhiều hệ thống (linux, windown,…)

● Mã nguồn mở
● Cộng đồng đông đảo và mạnh mẽ
● Khả năng SEO tốt
● Có thể tùy chỉnh bất cứ phần nào của website
2.5.2.

Điểm khác biệt

(Các số liệu bên dưới được tham khảo tại nguồn [5] )
● Wordpress CMS:
o Hơn 35% (351,733) trang web hiện nay viết bằng wordpress (năm
2021, theo builtwith).
o Do có quá nhiều plugin và theme nên có rất nhiều lỗ hổng bảo mật,
với việc số người sử dụng wordpress quá nhiều nên wordpress trở
CMS bị hack nhiều nhất lịch sử. Vậy nên khi sử dụng phải chú ý tới
cả những ai làm plugin cho mình.
o Dễ sử dụng và cài đặt, có thể sử dụng chỉ sau 5’ mà khơng cần biết
gì về lập trình, đây cũng là một yếu tố giúp wordpress trở thành cms
thành công nhất.
o Cộng đồng hỗ trợ của wordpress rất rộng lớn, nhưng có một điểm
yếu là trong cộng đồng này khơng chỉ có lập trình viên mà cịn có
cả những người dùng khơng phải là lập trình viên.
o Hệ thống quản lý quyền của người dùng còn đơn điệu.

11


● Drupal CMS:
o Với hơn 35,464 website (tương ứng với 3.55%) hiện nay được viết
Drupal.

o Khả năng bảo mật cao.
o Việc cài đặt và sử dụng cần có kiến thức về lập trình.
o Hỗ trợ đa ngơn ngữ.
o Cộng đồng thân thiện với chất lượng cao vì thường đều là lập trình
viên thay vì những người mới bắt đầu.
o Drupal có hệ thống quản lý quyền của người dùng mạnh mẽ.
2.5.3.

Tại sao lại sử dụng Drupal
● Mỗi CMS đều có ưu nhược điểm riêng, để chọn được CMS phù hợp
với cần tìm hiểu sức mạnh và khả năng đáp ứng của từng CMS với nhu
cầu, mong muốn website thực tế.
● Với cấu trúc linh hoạt và nền tảng mạnh mẽ, có thể phát triển website
bằng nhân Drupal hỗ trợ để tạo ra các loại website và tính năng theo
yêu cầu (website content, website ecommerce, web application, …),
khả năng tùy biến cao từng thành phần giao diện, Drupal là một công
cụ cực kì tuyệt vời, hữu ích đối với lập trình viên và các nhà quản trị
website.
● Nhờ vào khả năng tùy biến cao, khả năng mở rộng dễ dàng, khả năng
tích hợp thư viện đơn giản, Drupal là lựa chọn phù hợp nhất để thực
hiện đề tài này.

2.6. Các khái niệm trong Drupal [6]
Để tìm hiểu việc phát triển website bằng Drupal nói chung và Drupal 8 nói
riêng, cần trang bị một số kiến thức cơ bản về các khái niệm trong Drupal, từ đó
chúng ta có một cái nhìn tổng quát nhất về hệ thống, kiến trúc, thành phần website
mà Drupal xây dựng. Các thành phần xây dựng nên giao diện website Drupal được
mô tả như sau:

12



Hình 2.2 Cấu trúc và mối tương quan các thành phần website trong Drupal 8

2.6.1.

Region, Section.
● Region trong Drupal là các khu vực trong website.
● Đây là giải pháp khi bạn muốn thêm vào các block.
● Region được định nghĩa trong theme layer.
● Hiện tại việc thêm region chỉ được tạo ở tầng backend.

13


● Section là một region nhưng được chia thành các cột để giúp người
dùng dễ dàng quản lý block hơn.
2.6.2.

Node
● Tất cả các nội dung trong trang của drupal đều được gọi là node.
● Trong Drupal node được quản lý bằng module node
● Module node có thể giúp bạn: tạo node, xóa node, liệt kê, sắp xếp, đặt
mặc định cho node vị trí hiển thị.

2.6.3.

Block
● Block là những khối nhỏ có chứa văn bản, hình ảnh, … Tách biệt với
nội dung chính của trang

● Block có thể được thêm vào một region của web hoặc chỉ một số region
nhất định một vùng nào đó của trang.
● Block được quản lý bởi module Block
● Một block không nhất thiết chỉ đặt ở 1 region

2.6.4.

View
● View là phần cực kỳ quan trọng của Drupal. Bản chất view trong
Drupal là hệ thống truy vấn cơ sở dữ liệu.
● Một view có thể tạo ra được nhiều custom page hoặc nhiều block.
● Được quản lý bằng module Views
● Một view có thể trích xuất bất cứ content nào ở dưới bất kỳ dạng nào
như:
o Dạng bảng có sắp xếp
o Dạng lưới
o Dạng thu gọn hoặc hình ảnh kèm đường dẫn
o Block
o JSON
o Nguồn cấp dữ liệu RSS

14


×