Đề tài xây dựng Website lưu trữ và chia sẻ hình ảnh trực tuyến dựa trên nền tảng Framework Drupal. Đây chỉ là bài thi kết thúc học phần chứ không phải đề tài đồ án tốt nghiệp + Làm vì đam mê, thỏa mãn bản thân ==> Độ chuyên sâu chắc chắn không cao.
Trang 1TRƯỜNG ĐẠI HỌC KỸ THUẬT – HẬU CẦN CAND
KHOA CÔNG NGHỆ THÔNG TIN
GIÁO VIÊN GIẢNG DẠY: Thượng úy Vũ Tuấn Minh
Nhóm học viên: Lê Huy Tiến
Phan Hữu Tài Hoàng Đức Cường
Bắc Ninh, năm 2017
Trang 2TRƯỜNG ĐẠI HỌC KỸ THUẬT – HẬU CẦN CAND
KHOA CÔNG NGHỆ THÔNG TIN
GIÁO VIÊN GIẢNG DẠY: Thượng úy Vũ Tuấn Minh
Nhóm học viên: Lê Huy Tiến
Phan Hữu Tài Hoàng Đức Cường
Trang 3LỜI CẢM ƠN
Trước hết, nhóm nghiên cứu xin gửi lời cảm ơn chân thành, sâu sắc nhất đến thầy giáo Thượng úy Vũ Tuấn Minh – giáo viên hướng dẫn đề tài Trong thời gian qua thầy đã luôn nhiệt tình hướng dẫn, chỉ bảo, trau dồi cho nhóm những kiến thức quý giá về đề tài Sự gợi ý về ý tưởng, cung cấp tài liệu, số liệu, hướng dẫn của thầy là một trong những nhân tố chính giúp nhóm nghiên cứu hoàn thành tốt đề tài của mình
Nhóm nghiên cứu xin chân thành cảm ơn các thầy, cô giáo khoa Công nghê thông tin – Trường Đại học Kỹ thuật – Hậu cần CAND đã truyền đạt những kiến thức cần thiết, đồng thời tạo điều kiện thuận lợi cho học tập và nghiên cứu Điều
đó có ý nghĩa hết sức to lớn đối với học viên chuyên ngành Công nghệ thông tin Trong quá trình thực hiện đề tài, do thời gian có hạn và kiến thức còn chưa sâu sắc nên đề tài không tránh khỏi những sai sót Mong quý thầy cô thông cảm
và góp ý cho đề tài được hoàn thiện hơn
Nhóm nghiên cứu xin chân thành cảm ơn!
Bắc Ninh, tháng 12 năm 2017
Trang 4MỤC LỤC
Trang
LỜI CẢM ƠN
DANH MỤC HÌNH ẢNH
DANH MỤC BẢNG BIỂU
MỞ ĐẦU 1
Chương 1 GIỚI THIỆU CHUNG 3
1.1 Tình hình lưu trữ và chia sẻ ảnh hiện nay 3
1.1.1 Thực trạng lưu trữ và chia sẻ ảnh hiện nay 3
1.1.2 Đánh giá các phương thức lưu trữ và chia sẻ ảnh hiện nay 3
1.2 Khảo sát các trang web lưu trữ và chia sẻ ảnh trực tuyến 4
1.2.1 Trên thế giới 4
1.2.2 Tại Việt Nam 9
Chương 2 TÌM HIỂU NỀN TẢNG DRUPAL 11
2.1 Giới thiệu về Drupal 11
2.1.1 Lịch sử phát triển 11
2.1.2 Khái niệm 11
2.2 Đặc điểm của Drupal 11
2.3 Cơ chế làm việc của Drupal 12
2.3.1 Nền tảng công nghệ 12
2.3.2 Phần nhân (core) 13
2.3.3 Giao diện quản trị 13
2.3.4 Module 13
2.3.5 Giao diện (Theme) 14
2.3.6 Module chính của drupal 14
Chương 3 ỨNG DỤNG NỀN TẢNG DRUPAL VÀO XÂY DỰNG WEBSITE LƯU TRỮ & CHIA SẺ HÌNH ẢNH TRỰC TUYẾN 16
3.1 Khảo sát đối tượng của website 16
3.2 Thiết kế ý tưởng website 16
3.2.1 Biểu đồ phân rã chức năng BFD 16
3.2.2 Biểu đồ luồng dữ liệu 20
3.3 Phân tích thiết kế hệ thống 25
3.3.1 Xác định các thực thể, thuộc tính 25
Trang 53.4 Thiết kế giao diện 29
3.4.1 Giao diện trang người dùng 29
3.4.2 Giao diện trang quản trị 32
3.5 Cài đặt chương trình 33
3.5.1 Triển khai website 33
3.5.2 Đánh giá website 33
KẾT LUẬN 34
TÀI LIỆU THAM KHẢO 35
PHỤ LỤC 36
Trang 6DANH MỤC HÌNH ẢNH
Hình 1.1 www.flickr.com 4
Hình 1.2 Facebook.com 5
Hình 1.3 500px.com 6
Hình 1.4 photos.google.com 6
Hình 1.5 photobucket.com 7
Hình 1.6 imageshack.us 7
Hình 1.7 www.irista.com 8
Hình 1.8 www.fotki.com 9
Hình 1.9 xomnhiepanh.com 9
Hình 1.10 photo.tamtay.vn 10
Hình 3.1 Biểu đồ phân rã chức năng BFD 17
Hình 3.2 Biểu đồ phân rã chức năng BFD người dùng admin (Ảnh 1) 17
Hình 3.3 Biểu đồ phân rã chức năng BFD người dùng admin (Ảnh 2) 18
Hình 3.4 Biểu đồ phân rã chức năng BFD người dùng manager (Ảnh 1) 18
Hình 3.5 Biểu đồ phân rã chức năng BFD người dùng manager (Ảnh 2) 19
Hình 3.6 Biểu đồ phân rã chức năng BFD người dùng là thành viên 20
Hình 3.7 Biểu đồ luồng dữ liệu mức ngữ cảnh 21
Hình 3.8 Biểu đồ luồng dữ liệu quản lý hình ảnh 22
Hình 3.9 Biểu đồ luồng dữ liệu quản lý người dùng 22
Hình 3.10 Biểu đồ luồng dữ liệu quản lý nhóm người dùng 23
Hình 3.11 Biểu đồ luồng dữ liệu quản lý chủ đề ảnh 23
Hình 3.12 Biểu đồ luồng dữ liệu quản lý album ảnh 24
Hình 3.13 Biểu đồ luồng dữ liệu quản lý tags ảnh 24
Hình 3.14 Biểu đồ luồng dữ liệu quản lý bình luận ảnh 25
Hình 3.15 Biểu đồ luồng dữ liệu quản lý bình luận album 25
Hình 3.16 Sơ đồ quan hệ thực thể ERD 29
Hình 3.17 Giao diện trang chủ chưa đăng nhập 29
Hình 3.18 Giao diện trang chủ đã đăng nhập 30
Hình 3.19 Giao diện form đăng ký 30
Hình 3.20 Giao diện form đăng nhập 31
Hình 3.21 Giao diện trang xem chi tiết hình ảnh 31
Hình 3.22 Giao diện trang chủ trang quản trị 32
Trang 7DANH MỤC BẢNG BIỂU
B ng 3.1 Bảng tbl_images: 26
B ng 3.2 Bảng tbl_users: 26
B ng 3.3 Bảng tbl_images_users: 27
B ng 3.4 Bảng tbl_group: 27
B ng 3.5 Bảng tbl_comment_images: 27
B ng 3.6 Bảng tbl_likes_images: 27
B ng 3.7 Bảng tbl_topic: 27
B ng 3.8 Bảng tbl_images_topic: 27
B ng 3.9 Bảng tbl_album: 28
B ng 3.1 Bảng tbl_images_album: 28
B ng 3.11 Bảng tbl_comment_album: 28
B ng 3.12 Bảng tbl_tags: 28
B ng 3.13 Bảng tbl_tags_images: 28
Trang 8MỞ ĐẦU
1 Tính cấp thiết của đề tài
Với sự phát triển mạnh mẽ của hàng loạt các website lưu trữ, chia sẻ hình ảnh lớn nhỏ trong và ngoài nước như vậy thì người được hưởng lợi nhiều nhất không ai khác chính là người dùng Internet, những người đam mê nhiếp ảnh, đam mê những bức ảnh đẹp Và để tạo ra được một sản phẩm mới, một website chia sẻ hình ảnh mới với đầy đủ những chức năng, tiện ích, công nghệ mang tầm
cỡ như Flickr, Photobucket hay Imageshack, thỏa mãn được nhu cầu người dùng thì đây là một thách thức rất lớn
Phải hiểu rằng, hình ảnh nặng hơn text rất nhiều Một website chia sẻ hình ảnh trực tuyến lưu trữ đến hàng triệu, hàng tỷ hình ảnh thì sẽ rất tốn băng thông Nếu không có những hệ thống máy chủ mạnh mẽ cùng những công nghệ mới tích hợp vào thì việc duy trì, lưu trữ hình ảnh hay tải ảnh lên thực sự sẽ gặp rất nhiều khó khăn Ngoài ra, một thách thức lớn đối với bất kỳ một website chia sẻ hình ảnh nào là việc kiểm soát những hình ảnh mà người dùng tải lên Để hạn chế những hình ảnh với nội dung không lành mạnh từ người dùng tải lên, nhiều website đã tập trung nghiên cứu, áp dụng những công nghệ mới, công nghệ nhận dạng hình ảnh Nhưng chúng ta phải hiểu rằng máy móc vẫn không thể bằng mắt người được, tỷ lệ nhận dạng bị lỗi vẫn còn nên nhiều website chia sẻ hình ảnh đã
có cơ chế kiểm duyệt thủ công hình ảnh mà người dùng tải lên, nếu đủ điều kiện thì mới được hiển thị trên website Tuy nhiên công việc này vẫn tốn khá nhiều thời gian, công sức, tiền của mà vẫn chưa thực sự hiệu quả khi số lượng ảnh được upload mỗi ngày là quá lớn
Để phát triển một website giải quyết được mọi vấn đề ở trên là một trở ngại rất lớn đối với bản thân nhóm nghiên cứu Tuy nhiên, trong giới hạn là báo cáo chuyên đề cùng với khả năng của nhóm, sự quyết tâm cao, niềm đam mê nhiếp ảnh, còn điều gì tuyệt vời hơn khi được tự tay làm ra một website chia sẻ hình ảnh cho chính bản thân mình và cho tất cả mọi người dùng mặc dù chưa thể đáp ứng được hết những vấn đề khó khăn ở trên Tất cả những điều đó là một động lực lớn, niềm tin thôi thúc nhóm phát triển một website mang nhiều ý nghĩa như vậy
2 Mục tiêu của đề tài
- Mục tiêu: Xây dựng website chia sẻ hình ảnh trực tuyến dựa trên nền tảng Drupal giúp người dùng Internet, đặc biệt là những người đam mê nhiếp ảnh, yêu thích những bức ảnh đẹp có thể lưu trữ, chia sẻ những hình ảnh, những khoảnh khắc đẹp trong cuộc sống với tất cả mọi người
- Yêu cầu: website được xây dựng trên nền tảng Drupal, hoạt động tốt trên mọi trình duyệt, thực hiện tốt các chức năng như trong phân tích thiết kế
3 Đối tượng nghiên cứu
Đối tượng nghiên cứu:
Trang 9- Kiến thức t ng quan về nền tảng framework Drupal
- Xây dựng website lưu trữ và chia sẻ hình ảnh trực tuyến dựa trên nền tảng Drupal
4 Phạm vi nghiên cứu
- Phạm vi nghiên cứu báo cáo chuyên đề môn học Lập trình Web
- Phạm vi nghiên cứu:
+ T ng hợp một số kiến thức cơ bản về website
+ Tài liệu về nền tảng framework Drupal
+ Nghiên cứu và học hỏi kinh nghiệm từ các chuyên gia, qua các kênh trực tuyến
5 Phương pháp nghiên cứu
- Phương pháp nghiên cứu, t ng hợp tài liệu: Tìm kiếm nguồn tài liệu liên quan đến nền tảng framework Drupal Trích lọc những thông tin phục vụ cho việc thực hiện đề tài
- Phương pháp phân tích và t ng hợp: Phân tích các website được xây dựng dựa trên nền tảng Drupal có sẵn của các chuyên gia, phân tích các tài liệu liên quan đến việc xây dựng website Thu thập, phân tích thông tin, ý kiến nhận xét
từ các diễn đàn, website dạy và hướng dẫn sử dụng nền tảng Drupal
- Phương pháp thực nghiệm: Tham khảo các ý kiến của thầy cô hướng dẫn
đề tài, giảng viên có kinh nghiệm
6 Cấu trúc của báo cáo
Cấu trúc bài báo cáo gồm:
- Chương 1: Giới thiệu chung
- Chương 2: Tìm hiểu nền tảng Drupal
- Chương 3: Ứng dụng nền tảng Drupal vào xây dựng website lưu trữ & chia sẻ hình ảnh trực tuyến
- Phần Kết luận: Đưa ra một số đánh giá t ng quan về kết quả nghiên cứu, xác định hướng phát triển,…
Trang 10Chương 1 GIỚI THIỆU CHUNG
1.1 Tình hình lưu trữ và chia sẻ ảnh hiện nay
1.1.1 Thực trạng lưu trữ và chia sẻ ảnh hiện nay
Công nghệ ngày càng phát triển, nhu cầu của con người đối với tất cả mọi lĩnh vực đều tăng lên mạnh mẽ, đặc biệt là nhu cầu giải trí, nghệ thuật Do đó, nhu cầu lưu giữ lại những khoảnh khắc, bức ảnh đẹp hoặc các bức ảnh phục vụ công việc của con người ngày càng lớn Hiện tại, người dùng có thể lựa chọn một số cách lưu trữ ảnh như sau:
- Lưu trữ bằng các thiết bị cứng cố định hoặc các Flash di động Đây là phương thức lưu trữ truyền thống và đang dần được thay thế bằng phương thức lưu trữ online Đối với phương thức này, việc chia sẻ ảnh chỉ phù hợp giữa những ở khoảng cách gần hoặc phù hợp với những người sử dụng không có mong muốn chia sẻ ảnh của mình
- Lưu trữ online Với cách thức lưu trữ online, người sử dụng có thể lưu trữ ảnh trên các trang website chuyên lưu trữ và chia sẻ dữ liệu hoặc lưu trữ trên các trang mạng xã hội Đây là xu thế lưu trữ ảnh hiện nay Một số phương thức lưu trữ online có thể kể tới như: Facebook, Flickr, Google Photos, v.v…
1.1.2 Đánh giá các phương thức lưu trữ và chia sẻ ảnh hiện nay
Ảnh cũng là một loại dữ liệu, do đó, ảnh cũng tiềm ẩn các nguy cơ bị mất mát giống như các loại dữ liệu khác
Nếu người dùng sử dụng các thiết bị cứng hoặc cứng Flash di động để lưu trữ ảnh, dữ liệu ảnh được lưu trữ sẽ rất dễ gặp phải các nguy cơ sau:
- Thứ nhất, nếu máy tính người dùng bị nhiễm virus hoặc bị tấn công Dữ
liệu ảnh có thể bị phá hủy hoặc bị thay đ i so với hiện trạng gốc và rất khó có thể khôi phục lại như ban đầu
- Thứ hai, nếu thiết bị lưu trữ của người dùng bị hỏng hoặc người dùng bị
mất thiết bị lưu trữ, dữ liệu ảnh sẽ mất vĩnh viễn
- Thứ ba, đối với những người dùng có nhu cầu lưu ảnh với số lượng rất
lớn, việc lưu trữ bằng các thiết bị cứng làm tăng chi phí của người dùng lên rất nhiều
- Thứ tư, khi lưu trữ bằng cứng việc chia sẻ ảnh gặp phải rất nhiều hạn
chế Phương thức lưu trữ này chỉ phù hợp với những người có nhu cầu chia sẻ ở phạm vi nhỏ hẹp và với số lượng ảnh nhỏ
Ngược lại, việc sử dụng phương thức lưu trữ online, người sử dụng sẽ rất thuận lợi, vì những lí do sau:
- Thứ nhất, hầu hết các website đều hỗ trợ người dùng người dùng lưu trữ
không hạn chế t ng dung lượng Do đó, người dùng có thể lưu trữ được một số lượng ảnh kh ng lồ mà không mất phí mua các thiết bị lưu trữ
Trang 11- Thứ hai, chỉ cần có mạng Internet, người dùng ở bất cứ đâu cũng có thể
tải ảnh để sử dụng mà trên website ảnh vẫn được lưu trữ bình thường, không hề
bị mất đi Người dùng không cần mang theo thiết bị lưu trữ
- Thứ ba, khi các thiết bị lưu trữ gặp phải vấn đề, ảnh đã được lưu trữ
online không hề bị mất đi hoặc hỏng
- Thứ tư, đối với phương thức lưu trữ này, việc chia sẻ ảnh với những
người dùng khác rất đơn giản, tiện lợi và nhanh chóng
Tuy nhiên, đối với phương thức lưu trữ online, tính bảo mật của các ảnh không cao, các ảnh rất dễ bị đánh cắp
1.2 Khảo sát các trang web lưu trữ và chia sẻ ảnh trực tuyến
Như chúng ra đã biết, từ lâu, chia sẻ ảnh đã trở thành nhu cầu thiết yếu của người dùng Internet trên toàn thế giới Nắm bắt được vấn đề đó, hàng loạt các website chia sẻ hình ảnh trực tuyến đã ra đời giúp người dùng tiết kiệm băng thông, lưu trữ, chia sẻ hình ảnh trực tuyến miễn phí và hơn thế nữa là kết nối cộng đồng người dùng Internet, giúp người dùng chia sẻ những hình ảnh đẹp, khoảnh khắc đẹp trong cuộc sống Mỗi website lại có những điểm mạnh, điểm khác biệt so với những website khác, nhưng nhìn chung, tất cả đều hướng tới lợi ích của người sử dụng, đáp ứng nhu cầu của người dùng là lưu trữ, chia sẻ hình ảnh với bạn bè, người thân, gia đình hay với tất cả mọi người Chúng ta sẽ tìm hiểu về một số website chia sẻ hình ảnh trực tuyến ph biến nhất trên thế giới và tại Việt Nam
1.2.1 Trên thế giới
1.2.1.1 Flickr
Hình 1.1 www.flickr.com
Trang 12Flickr là dịch vụ của Yahoo phát triển vào tháng 2 năm 2004 Đến nay, Flickr được xem là một trong những trang web hàng đầu để chia sẻ ảnh, hoàn toàn miễn phí đối với người dùng, một lựa chọn hàng đầu của giới nhiếp ảnh gia nhờ cung cấp dung lượng lưu trữ kh ng lồ cùng với giao diện đơn giản và dễ dùng Với một hệ thống giao diện kéo thả rất dễ sử dụng, Flickr cho phép người dùng tag, chú thích trên hình ảnh và dễ dàng sắp xếp chúng vào các bộ sưu tập Flickr cũng hỗ trợ nhiều công cụ tuyệt vời như tính năng gán thẻ mở rộng, cho phép xem cũng như tải ảnh ở nhiều độ phân giải khác nhau
1.2.1.2 Facebook
Hình 1.2 Facebook.com
Mạng xã hội Facebook cũng chính là công cụ giúp lưu trữ và chia sẻ hình ảnh một cách nhanh chóng nhất đến tất cả mọi người Người dùng có thể upload ảnh qua website, smartphone, tablet,… hay tạo album, thêm captions, thêm tag, địa điểm,… để chia sẻ với những người bạn của mình Tuy nhiên, chất lượng hình ảnh khi upload lên Facebook sẽ được nén lại, ngoài ra không có cách nào
để có thể chia sẻ hình ảnh ở độ phân giải tối đa
Trang 131.2.1.3 500 Pixels
Hình 1.3 500px.com
500px được hướng đến nhằm phục vụ nhu cầu lưu trữ kho hình ảnh cho những nhiếp ảnh gia chuyên nghiệp, dịch vụ này cung cấp một thiết kế tập trung vào hình ảnh, giao diện rõ ràng và thanh lịch để hiển thị những tác phẩm tuyệt vời Người dùng có thể t chức hình ảnh của mình theo Set(ảnh theo chủ đề cụ thể) hay theo Story(ảnh theo sự kiện) Với tài khoản hoàn toàn miễn phí, người dùng có thể up tối đa 20 hình ảnh trong 1 tuần
1.2.1.4 Picasa
Hình 1.4 photos.google.com
Picasa là một sản phẩm của Google và nó cung cấp cho người dùng 1GB dung lượng lưu trữ và không giới hạn băng thông Với Picasa, người dùng có thể upload mọi định dạng của ảnh, có thể chỉnh sửa ảnh một cách dễ dàng, kết nối với bạn bè và chia sẻ ảnh đến các mạng xã hội Khi ảnh upload lên Picasa không được vượt quá 20MB và giới hạn 50 megapixels
Trang 141.2.1.5 Photobucket
Hình 1.5 photobucket.com
Photobucket chỉ cho phép sử dụng tối đa 2GB lưu trữ đối với tài khoản free,nhưng đủ để có thể lưu trữ hàng ngàn tấm ảnh Photobucket cho phép sử dụng nhiều công cụ để có thể chỉnh sửa ảnh và giao diện sử dụng một cách dễ dàng Ngoài ra, người dùng cũng có thể bán những bức ảnh nếu có người yêu thích và muốn mua lại
1.2.1.6 Imageshack
Trang 15Imageshack là một website chia sẻ ảnh và người dùng không cần phải đăng
ký Imageshack hoàn toàn miễn phí, trực quan và dễ sử dụng Người dùng có thể tải lên các loại định dạng ảnh, video, thậm chí là flash Đối với file ảnh và flash phải có dung lượng nhỏ hơn 1.5MB và video phải nhỏ hơn 50MB Ngoài ra, người dùng có thể tạo slideshow cho hàng loạt ảnh trong kho ảnh Thậm chí, ImageShack còn có thêm chức năng tải torrent
Trang 161.2.1.8 Fotki
Hình 1.8 www.fotki.com
Trong số các trang website lưu trữ hình ảnh nhỏ hơn, Fotki là một ứng cử viên n i bật Fotki thú vị vì có tính năng t chức các cuộc thi ảnh và cho phép người sử dụng bán những bản in thay vì chỉ được quyền mua như các website khác
1.2.2 Tại Việt Nam
Hiện tại ở Việt Nam cũng có khá nhiều trang web lưu trữ và chia sẻ hình ảnh trực tuyến với chất lượng tốt, đáp ứng kịp thời nhu cầu của người dùng trong nước Dưới đây là một số website chia sẻ hình ảnh trực tuyến ph biến ở Việt Nam hiện nay:
1.2.2.1 Xomnhiepanh.com
Trang 17Xomnhiepanh.com được ra mắt vào ngày 31 tháng 1 năm 2005, cho tới hiện tại, t ng số thành viên của website này đã lên tới hơn 150 nghìn Website này lọt top 100 social website, với nội dung trực quan, dễ sử dụng, xomnhiepanh.com đang tạo dựng cho mình trở thành một cộng đồng ảnh online lớn nhất Việt Nam
1.2.2.2 Photo.zing.vn
Zing Photo là một tiện ích của c ng thông tin điện tử Zing Điểm mạnh của website này là tốc độ nhanh, giao diện trực quan, dễ hiểu, cách quản lý hình ảnh khoa học, không giới hạn băng thông và số lượng Tuy nhiên, các hình ảnh tại Zing Photo đều được đóng dấu chìm, gây ra chút phiền toái cho người sử dụng
1.2.2.3 Photo.tamtay.vn
Hình 1.10 photo.tamtay.vn
Đây là dịch vụ lưu trữ ảnh của mạng xã hội, Tamtay thu hút khá nhiều người sử dụng, đặc biệt thành viên lâu năm của thương hiệu này
Photo.tamtay.vn có mục riêng cho từng trường đại học tại Việt Nam, đây là một
điểm thú vị khác biệt so với những trang web lưu trữ, chia sẻ hình ảnh khác Bên
cạnh đó, Photo.tamtay.vn còn sở hữu bảng thống kê hình ảnh được yêu thích nhất trong từng tuần
1.2.2.4 Anhdep.anhso.net
Anhdep.anhso.net là cái tên gắn bó với nhiều người dùng Internet Việt Nam, Anhdep.anhso.net bỏ đi giới hạn lưu trữ ảnh của người dùng hay quy định dung lượng tối đa của các file Trang web cũng giúp người dùng thoải mái tùy biến kho ảnh của mình như đặt tên, sửa thông tin, tạo album dễ dàng hay cung cấp công cụ thống kê lượt truy cập Diễn đàn trực tuyến của trang web cũng là nơi hội tụ nhiều tinh hoa làng nhiếp ảnh Việt Nam, chia sẻ kinh nghiệm quý giá của các cây c thụ trong lĩnh vực nghệ thuật này
Trang 18Chương 2 TÌM HIỂU NỀN TẢNG DRUPAL
2.1 Giới thiệu về Drupal
2.1.1 Lịch sử phát triển
Drupal là tên gọi của hệ quản trị nội dung (CMS) được phát triển từ năm
2000 bởi Dries Buytaert, nhà phát triển web người Bỉ, khi đó vẫn đang là sinh viên của trường đại học University of Antwerp Tên gọi ban đầu của Drupal là Dorp, tiếng Hà Lan có nghĩa là ngôi làng, nhưng do gõ nhầm đã bị đ i thành Drop (giọt nước) Sang năm 2001, Dries tốt nghiệp và cùng với nhóm bạn của mình đã quyết định chuyển toàn bộ hệ thống ban đầu này lên mạng Internet với tên gọi chính thức là Drupal Drupal là chữ tiếng Hà Lan phát âm theo tiếng Anh cũng có nghĩa là Drop, giọt nước Drupal đã phát triển qua nhiều phiên bản với nhiều công nghệ web khác nhau nhưng chỉ cho tới phiên bản 5.0, Drupal mới bắt đầu trưởng thành và được ứng dụng trong nhiều hệ thống web trên toàn thế giới Phiên bản Drupal 6 đánh dấu sự khởi sắc vượt trội với nhiều module và công nghệ web mới ra đời trong khi phiên bản 7 (phát hành khoảng năm 2010) ứng dụng thêm JQuery, Ajax, Web services, đã đưa hệ CMS này lên tầm cao mới, vượt qua toàn bộ những đối thủ còn lại Drupal 8, phiên bản thậm chí còn có nhiều thay đ i nền tảng lớn hơn, mang tính cách mạng trong công nghệ lập trình web
2.1.2 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ệ quản trị nội dung miễn phí và mã nguồn mở Cũng giống như các hệ 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 Đô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ó
2.2 Đặc điểm của Drupal
Không phải lúc nào Drupal cũng là giải pháp tối ưu cho vấn đề của bạn Nếu bạn đang khởi động những dự án nhỏ, web công ty, thì Wordpress là lựa chọn đúng đắn bởi tính đơn giản, dễ dùng và gọn nhẹ Chỉ nên dùng Drupal khi
dự án yêu cầu một vài hoặc tất cả những đặc tính sau:
- Khả năng tuỳ biến cao, cần tạo những cấu trúc dữ liệu (data structure, content type) và trường dữ liệu (data field) uyển chuyến, logic
- Cần hệ thống thành viên và cơ chế phân quyền hợp lý, dễ sử dụng
- Cần hệ thống web với độ bảo mật cao
- Cần hệ thống web có thể dễ dàng cấu hình, nâng cấp thay đ i hoặc thêm tính năng mới
- Cần hệ thống web làm nền tảng cho các giải pháp bán hàng và thanh toán
Trang 19- Cần hệ thống web tin cậy, đã được test bởi hàng triệu nhà phát triển web trên toàn thế giới
- Cần hệ thống web hiện đại, đang được ứng dụng những công nghệ web mới nhất (HTML 5, CSS 3, JQuery, Web services, Responsive web.v.v.)
- Cần hệ thống web chạy n định trên mọi hệ điều hành, đặc biệt là trên Linux (môi trường LAMP: Linux, Apache, MySQL, PHP)
- Cần hệ thống web có thể dễ dàng nhận được hỗ trợ, trợ giúp khi cần
Ưu điểm của Drupal:
- Thiết kế cực kỳ thông minh, nhỏ gọn, mềm dẻo, kiến trúc chắc chắn
- Hỗ trợ kho module đồ sộ từ quản trị nội dung, quản lý người dùng, theo dõi hoạt động, cộng đồng, thương mại điện tử, quản lý file, tiện ích dành cho người lập trình, đa ngữ, mail, blog, chat, wiki
- Website thảo luận, Website cộng đồng, C ng thông tin điện tử
- Website nội bộ (Intranet), Website doanh nghiệp, môi trường cộng tác
Hệ điều hành nằm ở mức thấp nhất và Drupal không cần quan tâm đến điều
đó Drupal có thể chạy thành công trên bất kỳ hệ điều hành nào hỗ trợ PHP Web server được sử dụng ph biến nhất với Drupal là Apache, tất nhiên những web server khác (như là Microsoft IIS) cũng có thể chạy được Bởi vì sự liên kết chặt chẽ với Apache, Drupal được đóng gói kèm theo tệp tin htaccess giúp bảo mật bản cài đặt cho Drupal Đồng thời tính năng đường dẫn trong suốt (Clean Urls) – nhằm loại bỏ các dấu chấm hỏi (?), dấu nháy đơn (‘) và các ký tự nguy
Trang 20hiểm dẫn đến SQL Injection Drupal làm việc với cơ sở dữ liệu thông qua một lớp cơ sở dữ liệu trừu tượng được thiết kế theo hướng tối giản (Lightweight Database Abstraction Layer) Lớp này xử lý các truy vấn SQL và làm cho chúng trở nên khả dụng với các hệ quản trị cơ sở dữ liệu khác mà không cần phải code lại Hệ quản trị cơ sở dữ liệu được sử dụng rộng rãi nhất với Drupal là MySQL
và PostgreSQL Sự hỗ trợ cho hệ quản trị cơ sở dữ liệu Microsoft SQL Server và Oracle đang ngày càng tăng
Drupal được viết bằng ngôn ngữ PHP Vì PHP là một ngôn ngữ rất dễ dàng
để học, vì vậy có rất nhiều chương trình được viết bởi những lập trình viên còn thiếu kinh nghiệm Do đó, chất lượng mã nguồn của các chương trình này thường tạo ra một ấn tượng xấu cho ngôn ngữ PHP Tuy nhiên, toàn bộ phần mã của Drupal được viết theo những tiêu chuẩn viết mã chặt chẽ và các quy trình kiểm thử theo quy chuẩn mã nguồn mở Tiếp cận với Drupal giúp cho chúng ta tìm hiểu thêm nhiều kinh nghiệm, kỹ năng trong việc viết mã nguồn, phân tích, thiết kế các hệ thống lớn
2.3.2 Phần nhân (core)
Phần nhân của Drupal là một khung sườn theo hướng tối giản (Lightweight Framework) Đây chính là phần mã mà chúng ta tải về từ drupal.org Phần lõi cung cấp những chức năng cơ bản nhất và được sử dụng để hỗ trợ các thành phần khác của hệ thống
Phần lõi bao gồm mã nguồn giúp cho hệ thống Drupal khởi động (bootstrap) khi nhận 1 yêu cầu (request), một thư viện những hàm chung nhất thường được sử dụng với Drupal và các module cung cấp những chức năng cơ bản nhất như là quản trị người dùng, bộ từ tố (taxonomy), và hệ thống template
2.3.3 Giao diện quản trị
Không giống như những CMS khác, Drupal không có giao diện quản trị riêng biệt Giao diện trang web và giao diện trang quản trị theo mặc định là một Người dùng đầu tiên (cài đặt Drupal) được xem như là người dùng có quyền cao nhất và có toàn quyền với trang web
2.3.4 Module
Drupal là một khung phát triển hướng module hoàn toàn Các chức năng được đóng gói trong các module Khi cần, bạn có thể bật hoặc tắt các module tùy ý Khi cần một tính năng mới thì có thể bật các module có sẵn, cài đặt các module được viết và chia sẻ trên trang chủ Drupal hoặc viết một module mới theo yêu cầu Bất kỳ tính năng hay sự thay đ i nào cũng có thể được thêm vào thông qua module Drupal làm được điều này nhờ sử dụng mẫu thiết kế điều khiển ngược (inversion of control design pattern) Các hàm chức năng trong module sẽ được gọi bởi khung phát triển trong thời gian thực thi Điều này trong
hệ thống Drupal được gọi là các hooks
Trang 212.3.5 Giao diện (Theme)
Trong Drupal, lớp giao diện chịu trách nhiệm tạo ra mã HTML (hoặc JSON, XML, v.v.) và gửi đến cho trình duyệt Drupal có thể sử dụng nhiều hệ thống giao diện ph biến như là Smarty, PHPTal, hoặc PHPTemplate
Drupal chấp nhận nhiều cách để tùy biến và viết lại giao diện cho website
Từ cách đơn giản nhất là viết thêm mã CSS để nạp đè các thuộc tính đã được định nghĩa sẵn theo class và ID Tuy nhiên, nếu muốn hoàn toàn làm chủ và tối
ưu việc sinh mã HTML chỉ cần viết lại các tệp tin giao diện theo quy chuẩn đặt tên của Drupal
2.3.6 Module chính của drupal
Drupal nhóm các chức năng vào các module để phụ trách từng phần việc riêng Ví dụ module Menu để phụ trách các đường dẫn, module Node phụ trách các kiểu nội dung (content type) và tạo các node theo từng kiểu đã tạo.v.v Sau đây, nhóm sẽ giới thiệu thêm một số module chính của Drupal và giải thích khái niệm để có thể nắm vững cấu trúc và cơ chế hoạt động chung
2.3.6.1 Menu (path)
Menu là hệ thống tạo và quản lý những đường dẫn (path) trong toàn bộ hệ thống Drupal Như bạn đã biết, hệ thống Drupal là một mạng lưới các nút (node) thông tin, để truy cập được vào các nút này bạn cần thiết phải có đường dẫn, đường dẫn được tạo ra bởi chính Menu Đường dẫn (path) có thể được tạo từ trong CMS
2.3.6.2 Node (content)
Node là module quan trọng nhất của Drupal và là nơi cung cấp thông tin tới người dùng Thiếu node, website sẽ không có thông tin và trở nên vô giá trị với người dùng Node được phân loại ra thành nhiều kiểu node khác nhau Ví dụ, ta
có node kiểu Article (bài viết tin tức), hoặc kiểu Product (thông tin sản phẩm).v.v Kiểu node (content type) về cơ bản chính là một dạng cấu trúc dữ liệu để định nghĩa những kiểu dữ liệu nào sẽ có thể được đưa vào trong node Ví
dụ nếu content type tên Product có trường ảnh (image field) thì node thuộc kiểu Product sẽ có thể chứa và hiện file ảnh Tất cả các loại nội dung trong Drupal đều được kế thừa từ một loại đơn giản nhất được gọi là node Các node có thể là một bài blog, một bản tin, một nhiệm vụ của dự án hay bất kỳ loại nội dung nào
và đều có chung cấu trúc dữ liệu Chính điều này đã làm nên sự mềm dẻo, linh hoạt cho hệ thống Drupal Dựa vào node, hệ thống Drupal hoàn toàn có thể mở rộng thành các giải pháp như cms, bán hàng trực tuyến, quản lý dự án…
2.3.6.3 Block
Block, như tên gọi, là một kiểu dữ liệu đặc biệt chỉ dùng để lưu trữ những đoạn thông tin ngắn, video hoặc hình ảnh để đặt vào một số vị trí thích hợp trên website Block khác với node ở chỗ, block chỉ có một trường body duy nhất để đưa dữ liệu vào trong khi node có thể bao gồm rất nhiều trường dữ liệu riêng