Đồ án Thiết kế và chỉnh sửa giao diện cho website sử dụng hệ quản trị nội dung Nukeviet - Đỗ Văn Chiếu

pdf 91 trang huongle 2900
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Thiết kế và chỉnh sửa giao diện cho website sử dụng hệ quản trị nội dung Nukeviet - Đỗ Văn Chiếu", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfdo_an_thiet_ke_va_chinh_sua_giao_dien_cho_website_su_dung_he.pdf

Nội dung text: Đồ án Thiết kế và chỉnh sửa giao diện cho website sử dụng hệ quản trị nội dung Nukeviet - Đỗ Văn Chiếu

  1. BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG o0o ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN HẢI PHÒNG 2013
  2. BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG o0o THIẾT KẾ VÀ CHỈNH SỬA GIAO DIỆN CHO WEBSITE SỬ DỤNG HỆ QUẢN TRỊ NỘI DUNG NUKEVIET ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ Thông tin HẢI PHÒNG - 2013
  3. BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG o0o THIẾT KẾ VÀ CHỈNH SỬA GIAO DIỆN CHO WEBSITE SỬ DỤNG HỆ QUẢN TRỊ NỘI DUNG NUKEVIET ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ Thông tin Giáo viên hướng dẫn: ThS Đỗ Văn Chiểu Sinh viên thực hiện: Nguyễn Văn Thịnh Mã số sinh viên: 1351010029 HẢI PHÒNG - 2013
  4. BỘ GIÁO DỤC VÀ ĐÀO TẠO CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG Độc lập - Tự do - Hạnh phúc o0o NHIỆM VỤ THIẾT KẾ TỐT NGHIỆP Sinh viên: Nguyễn Văn Thịnh Mã SV: 1351010029 Lớp: CT1301 Ngành: Công nghệ Thông tin Tên đề tài: Thiết kế và chỉnh sửa giao diện cho website sử dụng hệ quản trị nội dung NukeViet
  5. NHIỆM VỤ ĐỀ TÀI Nội dung và các yêu cầu cần giải quyết trong nhiệm vụ đề tài tốt nghiệp 1. Nội dung - Biết được mã nguồn mở là gì,tìm hiểu các mã nguồn mở hiện có,đặc biệt là tìm hiểu kĩ về mã nguồn mở NukeViet. - Phân tích cấu trúc giao diện của NukeViet 3.4 - Tổng hợp các tài liệu tham khảo có liên quan đến nội dung khóa luận. - Thực hiện cài đặt,cấu hình và chạy được giao diện trên mã nguồn mở NukeViet. 2. Các yêu cầu cần giải quyết Các phần mềm cần thiết để xây dựng - Web Server: Xampp - Bộ mã nguồn NukeViet.
  6. CÁN BỘ HƢỚNG DẪN ĐỀ TÀI TỐT NGHIỆP Ngƣời hƣớng dẫn thứ nhất: Họ và tên: Đỗ Văn Chiểu Học hàm, học vị: Thạc Sĩ Cơ quan công tác: Trường Đại Học Dân Lập Hải Phòng Nội dung hướng dẫn: Ngƣời hƣớng dẫn thứ hai: Họ và tên: . Học hàm, học vị: . Cơ quan công tác: Nội dung hướng dẫn: Đề tài tốt nghiệp được giao ngày tháng năm 2013 Yêu cầu phải hoàn thành trước ngày tháng năm 2013 Đã nhận nhiệm vụ: Đ.T.T.N Đã nhận nhiệm vụ: Đ.T.T.N Sinh viên Cán bộ hướng dẫn Đ.T.T.N ThS Đỗ Văn Chiểu Hải Phòng, ngày tháng năm 20 HIỆU TRƯỞNG GS.TS.NGƯT Trần Hữu Nghị
  7. PHẦN NHẬN XÉT TÓM TẮT CỦA CÁN BỘ HƢỚNG DẪN 1. Tinh thần thái độ của sinh viên trong quá trình làm đề tài tốt nghiệp: 2. Đánh giá chất lượng của đề tài tốt nghiệp (so với nội dung yêu cầu đã đề ra trong nhiệm vụ đề tài tốt nghiệp) 3. Cho điểm của cán bộ hướng dẫn: ( Điểm ghi bằng số và chữ ) Ngày tháng năm 20 Cán bộ hƣớng dẫn chính ( Ký, ghi rõ họ tên )
  8. PHẦN NHẬN XÉT ĐÁNH GIÁ CỦA CÁN BỘ CHẤM PHẢN BIỆN ĐỀ TÀI TỐT NGHIỆP 1. Đánh giá chất lƣợng đề tài tốt nghiệp (về các mặt nhƣ cơ sở lý luận, thuyết minh chƣơng trình, giá trị thực tế, ) 2. Cho điểm của cán bộ phản biện ( Điểm ghi bằng số và chữ ) Ngày tháng năm 20 Cán bộ chấm phản biện (Ký, ghi rõ họ tên)
  9. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng LỜI CẢM ƠN Trước tiên, em xin gửi lời cảm ơn tới Khoa Công nghệ Thông tin – Trường Đại học Dân lập Hải Phòng đã tạo điều kiện và cho em cơ hội thực hiện đồ án tốt nghiệp này. Qua bài báo cáo này, em xin chân thành cảm ơn: Em xin cảm ơn Trường Đại học Dân lập Hải Phòng, Ban giám hiệu nhà trường, các phòng ban nhà trường đã tạo điều kiện tốt nhất trong suốt thời gian học tập và làm tốt nghiệp. Thầy Đỗ Văn chiểu, người trực tiếp hưỡng dẫn em trong thời gian thực hiện báo cáo đồ án tốt nghiệp. Cảm ơn thầy đã tạo điều kiện thuận lợi để em hoành thành tốt bài báo cáo. Cảm ơn thầy đã tận tình chỉ bảo, hưỡng dẫn và giải đáp các vướng mắc trong quá trình nghiên cứu đề tài Các thầy cô trong ban thư kí khoa Công nghệ Thông tin đã tạo điều kiện cho em được hoàn thành tốt bài đồ án của mình trong thời gian qua Các thành viên diễn đàn sinhvienit, zwebz, nukeviet đã giúp đỡ em rất nhiều trong quá trình nghiên cứu. Cuối cùng em xin gửi tới cha mẹ, cô chú em lời cảm ơn, biết ơn chân thành nhất. Cảm ơn cha mẹ, cô chú đã tạo mọi điều thuận lợi nhất giúp con hoàn thành tốt việc học của minh. Mặc dù đã hết sức cố gắng để hoàn thiện báo cáo tốt nghiệp song do khả năng còn hạn chế nên khóa luận vẫn còn nhiều thiếu sót. Vì vậy em rất mong nhận được những đóng góp chân tình của các thầy cô và bạn bè. Một lần nữa em xin chân thành cảm ơn! Hải Phòng, Ngày tháng năm 2013. Sinh viên Nguyễn Văn Thị Nguyễn Văn Thịnh – CT1301 1
  10. MỤC LỤC LỜI CẢM ƠN 1 MỤC LỤC 2 DANH SÁCH CÁC HÌNH 4 GIỚI THIỆU 7 CHƢƠNG 1: GIỚI THIỆU PHẦN MỀM NGUỒN MỞ 8 1.1 Khái niệm phần mềm nguồn mở 8 1.2 Phân loại phần mềm nguồn mở 9 1.2.1 Application 9 1.2.2 Software framework 9 1.3 Lợi ích của phần mềm nguồn mở đối với người sử dụng 9 1.4 Một số loại phần mềm nguồn mở thường gặp 9 CHƢƠNG 2: GIỚI THIỆU MÃ NGUỒN MỞ NUKEVIET 12 2.1 Giới thiệu chung 12 2.1.1 Giới thiệu NukeViet 3.0 12 2.1.2 NukeViet 3.0 là một hệ thống mạnh 13 2.1.3 NukeViet 3.0 thích hợp cho mọi đối tượng 13 2.1.4 Các phiên bản NukeViet 14 2.2 Lịch sử phát triển NukeViet 19 2.3 Ứng dụng của NukeViet 21 CHƢƠNG 3: CÀI ĐẶT, QUẢN TRỊ NỘI DUNG NUKEVIET 23 3.1 Cài đặt NukeViet 23 3.1.1 Những yêu cầu cài đặt cho NukeViet 23 3.1.2 Tiến trình cài đặt NukeViet 24 3.2 Quản trị nội dung NukeViet 28 3.2.1 Các khái niệm cần biết 28 3.2.2 Cấu trúc tệp tin và thư mục 31 3.3 Mô tả chi tiết tính năng NukeViet 35 2
  11. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng 3.3.1 Các tính năng chính của NukeViet 35 3.3.2 Các module người dùng được tích hợp sẵn trong NukeViet 3 40 3.3.3 Các tính năng quản trị của NukeViet 45 CHƢƠNG 4:XÂY DỰNG GIAO DIỆN CHO NUKEVIET 58 4.1 Giới thiệu theme của NukeViet 58 4.2 Cấu trúc theme của NukeViet 58 4.2.1 Theme là gì? 58 4.2.2 NukeViet sử dụng theme như thế nào để thể hiện trang web? 58 4.2.3 Cấu trúc file của một theme trong NukeViet? 59 4.2.4 Quy ước tên theme 59 4.2.5 Thay đổi cấu trúc theme của hệ thống NukeViet được không? 66 4.3 Xây dựng theme 66 4.3.1 Tổng quan thiết kế theme cho NukeViet 66 4.3.2 Xây dựng giao diện cơ bản 67 4.3.3 Xây dựng giao diện nâng cao 68 4.3.4 Xây dựng theme 69 KẾT LUẬN 75 CÁC TÀI LIỆU THAM KHẢO 76 Nguyễn Văn Thịnh – CT1301 3
  12. DANH SÁCH CÁC HÌNH Hình 1. Mô hình kiến trúc hệ thống NukeViet 3.0 18 Hình 3.1.2.1 Giao diện Xampp 24 Hình 3.1.2.2 Giao diện phpMyAdmin 24 Hình 3.1.2.3 Giao diện Database 24 Hình 3.1.2.4 Chọn ngôn ngữ cài đặt. 25 Hình 3.1.2.5 Kiểm tra điều kiện cài đặt 25 Hình 3.1.2.6 Bản quyền NukeViet 26 Hình 3.1.2.7 Kiểm tra thông tin máy chủ 27 Hình 3.1.2.8 Cấu hình cơ sở dữ liệu 27 Hình 3.1.2.9 Thông tin Website và quản trị Website 27 Hình 3.1.2.10 Thông báo cài đặt thành công 28 Hình 3.3.3.1 Giao diện cấu hình site 45 Hình 3.3.3.2 Giao diện cấu hình php 45 Hình 3.3.3.4. Tiện ích mở rộng 46 Hình 3.3.3.5 Giao diện các biến môi trường 46 Hình 3.3.3.6 Giao diện các biến tiền định 46 Hình 3.3.3.7 Giao diện nhật ký hệ thống 47 Hình 3.3.3.8 Giao diện quản trị 47 Hình 3.3.3.9 Giao diện thêm quản trị 47 Hình 3.3.3.10 Giao diện cấu hình quản trị 48 Hình 3.3.3.11 Giao diện quản lý CSDL 48 Hình 3.3.3.12 giao diện data backup 48 Hình 3.3.3.13 Giao diện quản lý cấu hình CSDL 48 Hình 3.3.3.14 Giao diện cấu hình theo ngôn ngữ 49 Hình 3.3.3.15 Giao diện cấu hình chung 49 Hình 3.3.16 Giao diện tiến trình tự động 49 4
  13. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Hình 3.3.3.17 Giao diện cấu hình SMTP 50 Hình 3.3.3.18 Giao diện cấu hình FTP 50 Hình 3.3.3.19 Giao diện máy chủ tìm kiếm 50 Hình 3.3.3.20 Giao diện quản lý IP cấm 51 Hình 3.3.3.21 Giao diện cấu hình upload 51 Hình 3.3.3.22 Giao diện dọn dẹp hệ thống 51 Hình 3.3.3.23 Giao diện chuẩn đoán site 51 Hình 3.3.3.24 Gao diện hạng site theo từ khóa 52 Hình 3.3.3.25 Giao diện sitemap ping 52 Hình 3.3.3.26 Giao diện kiểm tra phiên bản 52 Hình 3.3.3.27 Giao diện cấu hình kiểm tra phiên bản 53 Hình 3.3.3.28 Giao diện ngôn ngữ data 53 Hình 3.3.3.29 Giao diện ngôn ngữ theme 53 Hình 3.3.3.30 Giao diện tạo ngôn ngữ giao diện. 53 Hình 3.3.3.31 Giao diện kiểm tra ngôn ngữ 54 Hình 3.3.3.32 Giao diện cấu hình ngôn ngữ. 54 Hình 3.3.3.33 Giao diện thiết lập module 54 Hình 3.3.3.34 Giao diện thêm module ảo. 55 Hình 3.3.3.35 Giao diện cài đặt và đóng gói tự động 55 Hình 3.3.3.36 Giao diện quản lý theme 55 Hình 3.3.3.37 Giao diện thiết lập layout 55 Hinh 3.3.3.38 Giao diện quản lý block 56 Hình 3.3.3.39 Giao diện sao chép block 56 Hình 3.3.3.40 Giao diện cài đặt theme. 56 Hình 3.3.3.41 Giao diện upload 57 Hình 3.3.3.42 Giao diện quản lý upload 57 Hình 4.1 Thư mục chứa code theme 58 Nguyễn Văn Thịnh – CT1301 5
  14. Hình 4.2.4.1 Thư mục chứa block 60 Hình 4.2.4.2 Thư mục chứa css 61 Hình 4.2.4.3 Thư mục chứa images 61 Hình 4.2.4.4 Thư mục chứa js 61 Hình 4.2.4.5 Thư mục chứa layout 62 Hình 4.2.4.6 thư mục chứa layout 62 Hình 4.2.4.7 Thư mục system 62 Hình 4.2.4.8 Ảnh demo cho theme 64 Hình 4.2.4.9 Icon của theme 64 Hình 4.2.4.10 Code trong file theme.php 64 Hình 4.3.1 Thư mục và file của theme được thiết kế 68 Hình 4.3.2 code file theme.php 69 Hình 4.3.4.1 Giao diện chế độ Split trong Dreamweaver 71 Hình 4.3.4.2 Code và logo website. 72 Hình 4.3.4.3 Giao diện phần header 72 Hình 4.3.4.4 Giao diện phần footer 72 Hình 4.3.4.5 Giao diện sitelink 73 Hình 4.3.4.6 Demo websie hpu 74 6
  15. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng GIỚI THIỆU Phần mềm nguồn mở là phần mềm với mã nguồn được công bố và sử dụng một giấy phép nguồn mở. Giấy phép này cho phép bất cứ ai cũng có thể nghiên cứu, thay đổi, cải tiến phần mềm, sao chép và phân phối phần mềm ở dạng chưa thay đổi hoặc đã thay đổi mà không phải trả tiền bản quyền cho người lập trình trước. Phần mềm nguồn mở có nghĩa gần tương đương với mã nguồn mở nhưng với độ trừu tượng cao hơn. Ngày nay có rất nhiều dạng mở (không đóng) bao gồm: phần cứng, phần mềm nguồn mở, tài liệu mở Mã nguồn mở ngày nay phát triển với tốc độ khá cao, cho thấy nó có nhiều động lực hơn so với mã đóng. Ở Việt Nam mã nguồn mở giờ cũng không mới lạ, nhưng việc sử dụng và phát triển mã nguồn mở ở mất đất nước đang phát triển rất được quan tâm, nó giúp giảm thiểu nguồn tài chính khi chi trả bản quyền Những mã nguồn mở thông dụng ở Việt Nam như: NukeViet, WordPress, Joomla, Tomato CMS, Magento, phpBB, vBulletin, myBB Phải nói đến NukeViet, NukeViet là sản phẩm mã nguồn mở của người Việt. Hiện nay NukeViet đáp ứng và áp dụng ở hầu hết các lĩnh vực như tin tức đến thương mại điện tử, các website cá nhân cho tới hệ thống website doanh nghiệp. Nguyễn Văn Thịnh – CT1301 7
  16. CHƢƠNG 1: GIỚI THIỆU PHẦN MỀM NGUỒN MỞ 1.1 Khái niệm phần mềm nguồn mở Phần mềm nguồn mở hay còn gọi là phần mềm mã nguồn mở (Open source software) là những phần mềm được viết và cung cấp một cách tự do. Người dùng không những được dùng phần mềm mà còn được tải mã nguồn của phần mềm, để chỉnh sửa, nâng cấp, cải tiến và phát hành các phiên bản của mã nguồn và mở rộng cho nhu cầu công việc của mình. Tiện ích mà phần mềm mã nguồn mở mang lại chính là tự do sử dụng chương trinh cho mục đích, tự do để nghiên cứu chương trình, chỉnh sửa theo nhu cầu công việc, phân phối lại cho cộng đồng, tự do cải tiến chương trinh và nâng cấp vì mục đích cộng đồng. Một điều kiện hay được áp dụng nhất là GPL: GNU General Public Licence của tổ chức Free Software Foundation. GPL có hai đặc điểm phân biệt đó là: Tác giả gốc giữ bản quyền về phần mềm nhưng cho phép người quyền tìm hiểu, phát triển, công bố cũng như khai thác thương mại sản phẩm Tác giả sử dụng luật bản quyền để bảo đảm các quyền đó không bị vi phạm đối với tất cả mọi người, trên mọi phần mềm có sử dụng mã nguồn mở của mình. Đặc điểm thứ hai thường được gọi là hiệu ứng virut (virus effect) vì nó biến tất cả các phần mềm có dùng mã nguồn GPL cũng biến thành phần mềm GPL. Trên thực tế điều này có nghĩa là: bất kì tác giả nào sử dụng dù chỉ một phần rất nhỏ mã nguồn GPL trong chương trình của mình cũng phải công bố dưới điều kiện GPL. Các điều khoản phân phối của phần mềm mã nguồn mở phải tuân thủ các tiêu chuẩn sau: - Tự do tái phân phối. - Mã nguồn. - Các chương trình phát sinh. - Tính toàn vẹn của mã nguồn cung cấp bởi tác giả. - Không có sự phân biệt đối xử giữa cá nhân hay nhóm người. - Không phân biệt đối xử với bất cứ một lĩnh vực công việc nào. - Việc phân phối bản quyền. 8
  17. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng - Giấy phép phải không được giành riêng cho một sản phẩm. - Bản quyền không được cản trở các phần mềm khác. 1.2 Phân loại phần mềm nguồn mở 1.2.1 Application Là các loại phần mềm ứng dụng, ví dụ như hệ điều hành, phần mềm văn phòng, phần mềm kế toán, phần mềm chỉnh sửa hình ảnh, công cụ lập trình (IDE), Web server, Ví dụ: Hệ điều hành: Windows, MacOS, Linux, Free BSD. Phần mềm văn phòng: Open Office,King Office. Công cụ lập trình: Adobe Dreamweaver, phpDesign. 1.2.2 Software framework Là tập hợp những phần mềm (Softwarre Package) giúp cho lập trinh viên dùng để viết phần mềm nhanh hơn, khỏi phải viết lại code cho những vẫn đề đã có người viết rồi. 1.3 Lợi ích của phần mềm nguồn mở đối với ngƣời sử dụng Phần mềm có thể được sử dụng và sao chép hoàn toàn miễn phí, người dùng hoàn toàn an tâm khi chia sẻ một chương trình tuyệt vời với cộng đồng. Có nhiều lựa chọn, không phụ thuộc vào công ty nào: các đinh dạng file không hoan toan bị kiểm soát và giảm tối đa sự phụ thuộc vào nhà phát hành phần mềm Hầu hết các sản phẩm open-source đề có khả năng bảo mật tốt. Có một cộng đồng hỗ trợ giúp việc cập nhật những lỗ hổng một cách nhanh chóng mà không phụ thuộc vào một công ty bất kỳ. Đa dạng phần mềm. 1.4 Một số loại phần mềm nguồn mở thƣờng gặp Hiện nay, trên thế giới có rất nhiều loại nguồn mở (hay còn gọi là mã nguồn mở) khác nhau, mỗi loại nguồn mở có một ứng dụng riêng. Dưới đây là một số loại nguồn mở được sử dụng rộng rãi: Nguyễn Văn Thịnh – CT1301 9
  18. + Ubuntu: là hệ điều hành mã nguồn mở dùng cho máy tính xách tay, máy tính để bàn và cả máy chủ, Ubuntu chứa tất cả các chương trình dứng dụng cần thiết cho công việc tại nhà, ở trường hay tại văn phòng công ty +Vbulletin: là mã nguồn mở xây dựng các diễn đàn trực tuyến được sử dụng phổ biến nhất hiện nay. Hầu hết các diễn đàn lớn tại Việt Nam đều được xây dựng bằng Vbulletin. +Apache Tomcat: là hệ thống mã nguồn mở của hãng Apache Software, ứng dụng Apache Tomcat có thể xử lý được số luộng lớn các yêu cầu bao gồm ứng dụng web trực tuyến, các gói dữ liệu lưu thông giữa Server – Client, tùy biến dễ dàng theo nhu cầu, quy mô của từng tổ chức, doanh nghiệp. +Linux: là một hệ hiều hành mã nguồn mở dạng Unix được xây dựng bởi Linus Torvalds. Linux có mọi đặc tính của một hệ điều hành hiện đại: hệ thống đa nhiệm, đa tuyến đoạn, bộ nhớ ảo, thư viện độ, tải theo nhu cầu, quản lý bộ nhớ, các module driver thiết bị, video frame buffering, và mạng internet bằng giao thức TCP/IP. +Open Office: là chương trình mã nguồn mở thay thế cho Microsoft Office, ưu điểm của nó là dung lượng nhỏ và có thể tương thích được với Microsoft Office nhưng chưa thể thân thiện bằng Microsoft Office. +NukeViet: là một hệ quản trị nội dung mã nguồn mở được ứng dụng để thiết kế các websitte như các cổng thông tin điện tử hoặc các website doanh nghiệp, báo điện tử, tạp chí điện tử, website của các doanh nghiệp vừa và nhỏ, website của các cơ quan, tổ chức phi chính phủ, website các trường học, website của gia đình hay cá nhân. Ngoài ra còn rất nhiều loại mã nguồn mở khác như: Eclipse, Webwork, WebGUI, OpenCMS, Fedora, Centos, Joomla, Xenforo, Trên thị trường phần mềm, có nhiều loại giấy phép. Có thể chia các giấy phép này đại khái như sau: - Phần mềm thương mại (Commercial Software). Là phần mềm thuộc bản quyền của tác giả hoặc nhà sản xuất, chỉ được cung cấp ở dạng mã nhị phân, người dùng phải mua và không có quyền phân phối lại. - Phần mềm thử nghiệm giới hạn (Limited Trial Software). Là những phiên bản giới hạn của các phần mềm thương mại được cung cấp miễn phí nhằm mục đích 10
  19. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng thử nghiệm, giới thiệu sản phẩm và kích thích người dùng quyết định mua. Loại phần mềm này bị giới hạn về tinh năng và thời gian sử dụng (thường là 60 ngày). - Phần mềm “chia sẻ” (Shareware). Loại phần mềm này có đủ các chức năng và được phát hành tự do, nhưng khuyến cáo các cá nhân hoặc tổ chức mua, tùy tình hình cụ thể. Nhiều tiện ích Internet (như “WinZip” dùng các thuận lợi của Shareware như một hệ thống phân phối). - Phần mềm sử dụng phi thương mại (Non-commercial Use). Loại phần mềm này được sử dụng tự do và có thể phát hành lại bởi các tổ chức phi lợi nhuận. Nhưng các tổ chức kinh tế, thí dụ các doanh nghiệp, muốn dùng phải mua. Netscape Navigator là một thí dụ của loại phần mềm này. - Phần mềm không phải trả phần trăm cho nhà sản xuất (Royalties Free Binaries Software). Phần mềm được cung cấp dưới dạng nhị phân và được dùng tự do. Ví dụ: Bản nhị phân của các phần mềm Internet Explorer và NetMeeting. - Thư viện phần mềm không phải trả phần trăm (Royalties Free Software Libraries) là những phần mềm mà mã nhị phân cũng như mã nguồn được dùng và phân phối tự do, nhưng người dùng không được phép sửa đổi. Ví dụ: các thư viện lớp học, các tệp “header”. - Phần mềm mã nguồn mở kiểu BSD - (Open Source BSD-style). Một nhóm nhỏ khép kín (closed team) đã phát triển các PMNM theo giấy phép phân phối Berkely (BSD – Berkely Software Distribution) cho phép sử dụng và phân phối lại các phần mềm này dưới dạng mã nhị phân và mã nguồn. Về nguyên tắc nhóm phát triển không cho phép người dùng tự do lấy mã nguồn từ kho mã ra sửa (gọi là check-out) và đưa mã đã sửa vào lại kho mã mà không được họ kiểm tra trước (gọi là các “check-in”). - Phần mềm mã mở kiểu Apache (Open Source Apache-style). Chấp nhận nguồn mở kiểu BSD nhưng cho phép những người ngoài nhóm phát triển xâm nhập vào lõi của mã nền (core codebase), tức là được phép thực hiện các “check-in”. - Phần mềm mã mở kiểu CopyLeft hay kiểu Linux (Open Source CopyLeft, Linux-style). Phần mềm mã mở kiểu CopyLeft (trò chơi chữ của Free Software Foundation – FSF – và GNU – Gnu‟s Not Unix, để đối nghịch hoàn toàn với CopyRight !) hay còn gọi là giấy phép GPL (General Public Licence) là một bước tiến quan trọng theo hướng tự do hóa của các giấy phép phần mềm. Giấy phép GPL yêu cầu không những mã nguồn gốc phải được phân phối theo các qui định của GPL mà mọi sản phẩm dẫn xuất cũng phải tuân thủ GPL. Nguyễn Văn Thịnh – CT1301 11
  20. CHƢƠNG 2:GIỚI THIỆU MÃ NGUỒN MỞ NUKEVIET 2.1 Giới thiệu chung NukeViet là một hệ quản trị nội dung (Content Management System – CMS) cho phép bạn quản lý các cổng thông tin điện tử trực tuyến, block cá nhân, các gian hàng trực tuyến, trang tin tức danh cho tổ chức trên Internet. NukeViet là phần mềm mã nguồn mở, do đó việc sử dụng miễn phí hoan toan, bạn có thể tải NukeViet về từ website chính của NukeViet là nukeviet.vn. Bạn có thể cài NukeViet lên hosting để sử dụng hoặc cũng có thể thử nghiệm bằng cách cài ngay lên máy tính cá nhân. NukeViet cho phép tạo website động, đầy đủ các chức năng nhanh chóng mà lại đơn giản mà người vận hành không cần có kiến thức về lập trình bởi NukeViet đã được tự động hóa ở mức cao. NukeViet là CMS mã nguồn mở đầu tiên của Việt Nam lịch sử phát triển lâu dài, có lượng người dùng đông đảo và được phát hành miễn phí bởi cơ quan chủ quản là VINADES.,JSC – đơn vị chịu trách nhiệm phát triển NukeViet và trỉn khai NukeViet thanh các ứng dụng cụ thể cho doanh nghiệp. 2.1.1 Giới thiệu NukeViet 3.0 NukeViet 3.0 là thế hệ CMS mới do người Việt phát triển. Lần đầu tiên ở Việt Nam, một bộ nhân của mã nguồn được đầu tư hoàn toàn. Kết quả là 100% NukViet được viết mới hoan toàn, NukeViet 3.0 sử dụng xHTML, CSS và Xtemplate và Jquery cho phép vận dụng Ajax cả trong công nghệ nhân. Tận dụng các thành tựu mã nguồn mở có sẵn nhưng NukeViet 3 vẫn đảm bảo rằng từng dòng code là được code tay. Điều này có nghĩa là NukeViet 3 hoàn toàn không lệ thuộc vào bất cứ framework nào trong quá trình phát triển của mình, bạn hoàn toàn có thể đọc hiểu để lập trình trên NukeViet 3 nếu bạn biết PHP và MySQL (đồng nghĩa với việc NukeViet 3 hoàn toàn mở và dễ nghiên cứu cho bất cứ ai muốn tìm hiểu về code của NukeViet). Bộ nhân NukeViet 3 ngoài việc thừa hưởng sự đơn giản vốn có của NukeViet nhưng không vì thế mà quên nâng cấp mình. Hệ thống NukeViet 3 hỗ trợ công nghệ đa nhân module. Chúng tôi gọi dó là công nghệ ảo hóa module. Công nghệ này cho phép người sử dụng có thể khởi tạo hàng ngàn module một cách tự động mà không cần động đến một dòng code. Các module được sinh ra từ công 12
  21. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng nghệ này gọi là module ảo. Module ảo là module được nhân bản từ một module bất kỳ của hệ thống NukeViet nếu module đó cho phép tạo module ảo. NukeViet 3 cũng hỗ trợ việc cài đặt tự động 100% các module, block, theme từ Admin Control Panel, người sử dụng có thể cài module mà không cần làm bất cứ thao tác phức tạp nào. NukeViet 3 còn cho phép bạn đóng gói module để chia sẻ cho người khác. NukeViet 3 đa ngôn ngữ 100% với 2 loại: đa ngôn ngữ giao diện và đa ngôn ngữ database. NukeViet 3 có tính năng cho phép người quản trị tự xây dựng ngôn ngữ mới cho site. Cho phép đống gói file ngôn ngữ để chia sẻ cho cộng đồng 2.1.2 NukeViet 3.0 là một hệ thống mạnh Đúc kết kinh nghiệm từ chính NukeViet 2.0, NukeViet 3.0 được viết mới hoàn toàn trên nền tảng kỹ thuật tiên tiến nhất hiện này cho phép xây dựng được các nền tảng ứng dụng trực tuyến lớn như các cổng thông tin điện tử, các toàn soạn báo điện tử, các mạng xã hội và các hệ thống thương mại trực tuyến mà vẫn giữ được các ưu điểm: nhanh, nhẹ, và dễ vận hành NukeViet 3.0 đẵ được thử nghiệm vận hành với dữ liệu lớn lên từ hàng triệu bản tin. Trên thực tế, NukeViet 3.0 cũng đã triển khai thành công cho phép các hiệp hội, doanh nghiệp có lượng truy cập rất lớn. 2.1.3 NukeViet 3.0 thích hợp cho mọi đối tƣợng NukeViet lấy người sử dụng làm trọng tâm, những tính năng của NukeViet tạo nên chuẩn mực trong việc sử dụng và quản trị. Vì thế NukeViet 3.0 tốt cho cả người sử dụng lẫn người phát triển. Với người sử dụng cá nhân, NukeViet 3.0 cho phép tùy biến dễ dàng và sử dụng ngay mà không cần can thiệp vào hệ thống. Với người phát triển, sử dụng NukeViet cho phép nhanh chóng xây dựng các nền tảng khác nhau nhờ việc viết thêm các module cho hệ thống thay vì phải tự mình viết cả một hệ thống. Với các doanh nghiệp, ứng dụng NukeViet giúp cho doanh nghiệp tiết kiệm chi phí tối đa trong việc xây dựng các hệ thống tương tác trực tuyến trên nền web. Thay vì phải mất chi phí và thời gian rất lớn để có thể xây dựng các ứng dụng như các cổng thông tin điện tử, các toàn soạn báo điện tử, các mạng xã hội và các hệ thống thương mại trực tuyến trên nền tảng mã nguồn mở NukeViet sẽ giúp doanh nghiệp có thể sở hữu các ứng dụng này với chi phí nhỏ hơn nhờ áp dụng tối đa thành tựu và công nghệ của mã nguồn mở. Nguyễn Văn Thịnh – CT1301 13
  22. 2.1.4 Các phiên bản NukeViet 2.1.4.1 Dòng phiên bản có nền tảng dựa trên PHP-Nuke Phiên bản 1.0: Phiên bản thế hệ 1 Các phiên bản cũ NukeViet beta, NukeViet 1.0, NukeViet 1.0.1 + Phiên bản đầu tiên của NukeViet là phiên bản NukeViet 1.0 (hay NukeViet 1.0.0) có nguồn gốc từ PHP-Nuke 6.5. Các phiên bản tiếp theo có dạng 1.0.x, về cơ bản chúng chỉ là những bản được vá lỗi do đó thường gọi là NukeViet 1.0 + Điểm mạnh của NukeViet 1.0: Có một số lượng rất lớn các thành phần mở rộng (Module, block); giao diện (theme) được chuyển đổi từ bản dùng cho PHP-Nuke cũng như được viết mới bởi người sử dụng. + Dòng phiên bản đã đã ngưng hỗ trợ từ năm 2007 nhưng hiện vẫn còn một số ít các website vẫn sử dụng. Phiên bản 2.0 beta: (ngày 27 tháng 01 năm 2007) Các phiên bản tương tự: NukeViet 2.0 beta, NukeViet 2.0 beta 1, NukeViet 2.0 beta 2, NukeViet 2.0 beta 2a + Phần nhân của NukeViet 2.0 beta được viết lại rất nhiều. Nếu như NukeViet 1.0 chỉ là bản Việt hóa và cải tiến từ PHP-Nuke thì NukeViet 2.0 beta được viết mới rất nhiều. + Điểm mạnh của NukeViet 2.0: NukeViet 2.0 có nhiều lớp bảo mật tốt hơn, tối ưu kết nối vào CSDL, một số tính năng được cải tiến hơn so với NukeViet 1.0 Phiên bản test 2.0 beta Phiên bản được giới thiệu vào tháng 4 năm 2007 nhưng không phát hành: xử lý hình ảnh trực tuyến, đa ngôn ngữ toàn diện, đa giao diện theo ứng dụng, sử dụng Ajax, hướng tới thương mại điện tử, khả năng nhận diện bản nâng cấp hệ thống, tự động bóc tách dữ liệu từ các nguồn khác nhau, tự động sao lưu CSDL Phiên bản chính thức: NukeViet RC 14
  23. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng NukeViet 2.0 RC1 (ngày 24 tháng 05 năm 2009), NukeViet 2.0 RC2 (ngày 07 tháng 07 năm 2009), NukeViet 2.0 RC3 (ngày 01 tháng 03 năm 2010), NukeViet 2.0 RC4 (ngày 08 tháng 04 năm 2010). + Dòng phiên bản chính thức của NukeViet 2.0 được đánh dấu từ phiên bản NukeViet 2.0 RC1 phát hành ngày 24/05/2009. Đây là phiên bản nâng cấp đầu tiên kể từ sau khi bản beta cuối cùng ra mắt. Đây cũng là bản đầu tiên có hackmod (sửa đổi hệ thống PHPBB) để kết nối với mã nguồn PHPBB3 (trước đó NukeViet 2.0 beta chỉ tích hợp sẵn PHPBB2). + Đây là phiên bản mà NukeViet mang nhiều tính năng nhất từ trước đến nay. Với khả năng tùy biến cực cao, khả năng đa giao diện, độ bảo mật và hoàn thiện cũng hơn hẳn các phiên bản trước. Ngoài việc nâng cấp, sửa lỗi, phiên bản này còn bổ sung nhiều tính năng và thêm một loạt module như:  Addnews (Gửi bài viết).  AutoTranslate (Dịch tự động).  Contact (Liên hệ, thay cho module Feedback của bản 1.x và 2.beta).  Rss (Kênh tin chia sẻ; RSS được tạo tự động bằng cách thả file rss.php phù hợp vào thư mục chứa module tương ứng cần xuất RSS).  Sitemap (Sơ đồ site).  Support (Hỗ trợ).  Weblinks (Liên kết website). + Vì những khác biệt về lập trình nên các thành phần mở rộng của NukeViet 1.0 không sử dụng chung với NukeViet 2.0 được. Các thành phần mở rộng của bản 2beta có thể sử dụng chung với bản RC2 nhưng bị hạn chế tính năng. Cấu trúc của NukeViet 1.0 và 2.0 NukeViet 1.0 và NukeViet 2.0 có cùng cấu trúc 3 lớp:  Lớp lõi (nhân hệ thống) là cấu trúc chính để vận hành NukeViet  Lớp thành phần mở rộng bao gồm 2 loại: - Module: Một dạng cấu trúc mở rộng của NukeViet cho phép người sử dụng có thể thêm các tính năng khác nhau cho Website của mình như: Quản lý trò chơi trực tuyến (module Games), Nghe nhạc trực tuyến (module Music, NVMusic ), Thư viện Web (module Web Links), Dịch vụ Blog (module Blog), Album ảnh trực tuyến (module Albums, Photos Nguyễn Văn Thịnh – CT1301 15
  24. ), Lưu bút (module Love, Wishing và Guestbook ), Hệ thống rao vặt, quảng cáo, tạo RSS (module RSS-News), Quản lý Truyện (module Pages) - Block: Một dạng cấu trúc đơn giản giúp thêm các thành phần nhỏ vào website dưới dạng các khối nhỏ trên Web.  Lớp giao diện (Theme) cho phép người lập trình có thể tạo ra các giao diện khác nhau cho NukeViet. Đây là thành phần quyết định giao diện mà Website tương tác với người sử dụng Ƣu nhƣợc điểm của NukeViet 1.0 và 2.0 Ƣu điểm: NukeViet được nhiều người mới sử dụng ưa thích vì các nguyên nhân sau: + Mã nguồn thuần Việt, cộng đồng người dùng Việt Nam đông đảo nên dễ tìm thấy sự hỗ trợ bằng tiếng Việt. + Quản lý đơn giản, đặc biệt module News rất phù hợp với sở thích người Việt. + Linh hoạt trong việc quản lý giao diện, dễ tùy biến. + Có thời gian phát triển lâu dài, có nhiều tài liệu hướng dẫn, tạo dựng nền tảng vững chắc trong cộng đồng. + Mã nguồn đơn giản, dễ dàng lập trình về giao diện. Nhƣợc điểm: Cho tới bản 2.0 RC, NukeViet còn những nhược điểm sau: + Chưa sử dụng Ajax (cho đến bản NukeViet 2.0 beta 2) + Vẫn sử dụng chuẩn HTML 4.1 + Mức độ cài đặt tiện ích (Addons: Block, Modules, Themes) chưa được tự động hóa cao. NukeViet 2.0 trở về trước, người dùng cũng nhiều, kẻ chê cũng không ít. Nhưng nhắc đến nguồn mở có yếu tố của Việt Nam nhất là Web mã nguồn mở, không thể không nhắc đến NukeViet. Mặc dù là mã nguồn mở miễn phí nhưng NukeViet "được" nhiều công ty thiết kế web sửa đổi để bán với giá cao. Nhiều Website sử dụng NukeViet nhưng không ghi xuất xứ mã nguồn. 2.1.4.2 Dòng phiên bản chuyên nghiệp: xây dựng mới 100% NukeViet 3 16
  25. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng + Phiên bản thử nghiệm kín bao gồm Closebeta 1,2,3,4. + Phiên bản thử nghiệm mở rộng bao gồm Openbeta 1,2,3. + Phiên bản RC (tiền chính thức) bao gồm RC 1 và RC 2. + Phiên bản chính thức: 3.0, 3.1, 3.2, 3.3, 3.4 Điểm khác biệt vè mô hình quản lý Kể từ phiên bản 3, NukeViet được quản lý theo mô hình chuyên nghiệp của doanh nghiệp, trong đó đội lập trình chính được trả lương để thực hiện các dự án và phát triển bộ mã nguồn NukeViet. Điểm khác biệt về tính năng So với phiên bản cũ, NukeViet 3 đã khắc phục hoàn toàn nhược điểm của các phiên bản cũ trong khi vẫn giữ được các đặc tính vốn được người sử dụng ưa chuộng. NukeViet 3.0 được cho là một cuộc cách mạng của mã nguồn mở NukeViet Toàn bộ mã nguồn được viết mới hoàn toàn dựa trên các công nghệ mới nhất gồm PHP5 và MySQL5. Website tạo ra đạt chuẩn xHTML 1.0 và CSS 2.1. So với các hệ thống khác, NukeViet 3 xây dựng dựa trên cấu trúc hướng module. Theo đó, block và theme chỉ là những nhân tố phục vụ cho module. Module, block, theme được tổ chức phân lập và tách biệt hoàn toàn khỏi nhau và không ảnh hưởng đến tính toàn vẹn của hệ thống nếu xảy ra lỗi. Đây là điểm khác biệt rất lớn mà nhờ cách tổ chức này người ta cho rằng NukeViet an ninh và bảo mật hơn các hệ thống khác cùng loại. Cấu trúc NukeViet 3 Hệ thống NukeViet được thiết kế rất rõ ràng, mạch lạc, theo đó NukeViet phân cấu trúc thành 2 tầng, 1 lớp.  Tầng nền tảng (Core) hay còn gọi là "nhân hệ thống": Chứa các thư viện và module vận hành hệ thống. Nếu một trong các thành phần này bị lỗi có thể làm ảnh hưởng một phần hoặc toàn bộ hệ thống. Tầng này chiếm 10% dung lượng và dòng code của NukeViet nhưng được sử dụng trong 90% các hoạt động của website.  Tầng module: bao gồm module admin, module site, các block (kèm theo module hoặc chạy độc lập), các cronjob Nguyễn Văn Thịnh – CT1301 17
  26.  Lớp giao diện: bao gồm giao diện admin, giao diện module và giao diện site. Đặc điểm chính:  Module và giao diện (theme) của NukeViet được gọi chung là các Addons (thành phần mở rộng). Các thành phần mở rộng này có thể được cài đặt hoặc gỡ bỏ mà không làm ảnh hưởng đến hệ thống.  Phần quản trị của hệ thống nằm toàn bộ trong thư mục admin của hệ thống. Nó được bảo vệ bằng nhiều lớp bảo mật khác nhau.  Phần quản trị của module nằm trong thư mục admin của module. Nó được gọi và tương tác qua phần quản trị của hệ thống nên được hệ thống kiểm soát và đảm bảo tính an toàn, bảo mật.  Theo nguyên lý thiết kế hướng module, block và theme được bố trí nhằm phục vụ module do đó hình thành khái niệm block của module và theme của module. Theo đó tệp tin block của module nằm trong thư mục chứa module nhưng có thể hiển thị ở các khu vực ngoài site. Nếu block không thuộc module nào thì nó được đặt trong thư mục includes/blocks của hệ thống. Tương tự, ngoài theme cho hệ thống còn có theme cho block và theme cho module (được bố trí trong thư mục theme). Mô hình hoạt động của NukeViet 3 Dữ liệu được người quản trị tương tác từ Admin Control Panel thông qua trình duyệt, được nhân hệ thống và các module (admin module hoặc website module) tham gia xử lý, cuối cùng theme sẽ chịu trách nhiệm việc tổ chức và trình bày thông tin cho người truy cập xem. Hình 1. Mô hình kiến trúc hệ thống NukeViet 3.0 18
  27. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng 2.2 Lịch sử phát triển NukeViet Ban đầu, phần mềm này được Nguyễn Anh Tú phát triển trên nền tảng PHP- Nuke cho Website cộng đồng người việt xa xứ Sau đó, cùng với sự tham gia của một số thành viên (tạo thành Nhóm NukeViet, thường gọi là NukeViet Group), cuối năm 2004 NukeViet 1.0 beta 1 đã ra đời. NukeViet mau chóng được phổ biến trong giới webmaster Việt Nam. Đầu năm 2005, xunguoi.com ngưng hoạt động với lý do: Ban Quản Trị NukeViet không thể tiếp tục duy trì website vì họ gần như không làm được gì ngoài online và vì bị Stress nặng do yêu cầu trợ giúp trên diễn đàn quá nhiều. Cho đến cuối năm 2005 diễn đàn được NukeViet Group mở cửa trở lại nhưng vì nhiều lý do, không được bao lâu lại phải ngưng hoạt động. NukeViet Group thành lập công ty Ấn Tượng Nét (Phong, một thành viên NukeViet Group điều hành) và phát triển 1 phiên bản thương mại với tên gọi ATN Portal (NukeViet vẫn phát hành dưới dạng mã mở miễn phí). Tại thời điểm này, NukeViet phát triển tự phát trong cộng đồng. Những người yêu thích NukeViet đã tự lập cho mình các Box về NukeViet trong các diễn đàn liên quan đến tin học. Ngày 18-05-2006, NukeViet Group tuyên bố chính thức hỗ trợ trở lại NukeViet sau 1 năm rưỡi gián đoạn. Ngày 26-05-2006, diễn đàn chính thức cho người dùng NukeViet hoạt động trở lại ở địa chỉ www.nukevn.com dưới sự hỗ trợ của công ty Ấn Tượng Nét Ngày 12-07-2006, NukeViet chính thức ra mắt phiên bản 2.0 beta 1 với nhiều tính năng hơn hẳn NukeViet 1.0, chủ yếu tập trung vào Module News. Phiên bản beta 2 được phát hành ngay sau đó. Dưới sự hậu thuẫn về tài chính của công ty Ấn Tượng Nét, NukeViet càng được nhiều người biết đến hơn. Ngày 04-12-2006, do bất đồng chính kiến, 3 thành viên NukeViet Group là Tú, Phong, Chiến chia tay. Anh Tú – trưởng nhóm NukeViet – quyết định tách NukeViet ra khỏi công ty Ấn Tượng Net để hoạt động độc lập tại địa chỉ: Ngày 12-12-2006, Anh Tú quyết định đổi tên mã nguồn mở NukeViet thành LaVie Portal. Ngày 26-01-2007, nhóm phát triển đã quyết định: Hỗ trợ và phát triển song song LaVie Portal và NukeViet thành 2 bộ mã nguồn. Nguyễn Văn Thịnh – CT1301 19
  28. Ngay sau tuyên bố về việc phát triển song song NukeViet & LaVie Portal, ngày 27-01-2007, Anh Tú cho ra mắt bản NukeViet beta 2b. Ngày 24-04-2007, bản NukeViet 2.0 final (bản chính thức của NukeViet 2.0) đã được định hình và được giới thiệu rộng rãi cho các thành viên qua hình ảnh demo do một thành viên Ban Quản Trị diễn đàn NukeViet cung cấp hứa hẹn nhiều tính năng độc đáo. Các thành viên điều hành diễn đàn NukeViet được cung cấp phiên bản sử dụng trực tuyến. Đáng tiếc, vì những tranh chấp với công ty Ấn Tượng Nét, tác giả đã không phát hành và không phát triển tiếp phiên bản này. Ngày 31-10-2007, công ty Ấn Tượng Nét phát hành bản NukeVN beta (sửa đổi từ NukeViet) tại trang Web nukevn.com như một mã nguồn của riêng mình. Tác giả NukeViet là Anh Tú lên tiếng phản đối. Sau những tranh luận hết sức gay gắt, NukeVN.Com chính thức đóng cửa sau đó vài tuần. Ngày 05-10-2007, Anh Tú từ bỏ qua dự án LaVie Portal để quay lại phát triển NukeViet và hỗ trợ người dùng tại Ngày 24-05-2009, NukeViet Group phát hành phiên bản NukeViet 2.0 RC1 tại Hải Phòng. Phiên bản này đã đánh dấu bước phát triển mới của NukeViet sau một thời gian dài trì trệ. Tiếp đó, hiên bản 2.0 RC2 phát hành ngày 07/07/2009. Ngày 25-2-2010, NukeViet chính thức đi vào con đường chuyên nghiệp hóa bằng sự kiện ra mắt Công ty cổ phần Phát triển nguồn mở Việt Nam (VINADES.,JSC). Đây là công ty mã nguồn mở đầu tiên tại Việt Nam [5] có nhiệm vụ phát triển mã nguồn mở NukeViet. Ngày 22-03-2010, NukeViet chính thức công bố dự án NukeViet 3 - xây dựng một bộ code mới cho NukeViet. Bản thử nghiệm đầu tiên - NukeViet 3 Closebeta - được phát hành hạn chế lúc 21h ngày 31-05-2010 đã thu hút lượng lớn người truy cập. Bản chính thức NukeViet 3.0 đã được giới thiệu trong buổi phát hành offline ngày 12/10/2010 tại hội quán Hidea - 164 Lê Thanh Nghị. Ngày 20/10/2010 NukeViet 3.0 Official version phát hành online, đạt 1000 lượt tải trong 24h đầu tiên. Ngày 25-02-2011, Phiên bản NukeViet 3.1 ra mắt cùng Module Shop nhân kỷ niệm 1 năm thành lập Công ty cổ phần phát triển nguồn mở Việt Nam. Ngày 09-07-2011, NukeViet tổ chức offline ra mắt Phiên bản NukeViet 3.2 tại thành phố Hồ Chí Minh. 20
  29. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Ngày 13-08-2011, Ban Quản Trị NukeViet thông báo sẽ chính thức cung cấp dịch vụ OpenID trên website nukeviet.vn từ ngày 01/09/2011, như vậy bằng việc trở thành nhà cung cấp OpenID, NukeViet đã thực hiện hỗ trợ đầy đủ cho OpenID. Ngày 20-11-2011, NukeViet giành giải Ba Nhân tài Đất Việt 2011 ở Lĩnh vực Công nghệ thông tin/Sản phẩm đã ứng dụng rộng rãi (không có giải nhất, nhì). Ngày 01-12-2011, NukeViet phát hành phiên bản 3.3 chính thức hỗ trợ giao diện dành cho thiết bị di động. Ngày 08/04/2012, NukeViet 3.4 ra mắt với nhiều chức năng mới và hỗ trợ toàn diện cho thiết bị di động. Ngày 01/09/2012, NukeViet ra mắt kho ứng dụng dành cho web. Ngày 25/09/2012, NukeViet chuyển đổi kho code từ Google code (sử dụng SVN) sang Github (sử dụng git). Ngày 26/01/2013, Công ty chủ quản là VINADES đã tổ chức Hội nghị người dùng và các nhà phát triển NukeViet năm 2013 dành cho cộng đồng NukeViet đánh dấu chặng đường phát triển mới của NukeViet. 2.3 Ứng dụng của NukeViet NukeViet đáp ứng các đặc tính của mộ ứng dụng web 2.0: + Hệ thống NukeViet có thể chạy được nhiều hệ thống khác nhau IIS hoặc Apache. Hệ điều hành Windows hoặc Linux. + Là một hệ thống mã nguồn mở, do đó NukeViet đã tận dụng được nguồn trí tuệ cộng đồng. + Là hệ thống mã nguồn mở, được cập nhật liên tục. + Việc phát triển ứng dụng được thực hiện dễ dàng và nhanh chóng. + NukeViet có khả năng hoạt động tốt trên nhiều trình duyệt. + Khả năng tùy biến giao diện cao. NukeViet được sử dụng để xây dựng nhiều loại ứng dụng web khác nhau: + Sử dụng để xây dựng các website tin tức do đó người dùng thường nghĩ rằng Nukeviet mạnh về hệ thống tin tức. + NukeViet Portal (Cổng thông tin hai chiều dùng cho doanh nghiệp). Nguyễn Văn Thịnh – CT1301 21
  30. + NukeViet Edu Gate (Cổng thông tin tích hợp nhiều website, sử dụng cho phòng giáo dục, sở giáo dục). + NukeViet Tòa Soạn Điện Tử (Sử dụng cho các toàn soạn điện tử, trang tin điện tử). + NukeViet Blog (Dành cho các website và người dùng tạo các trang nhật ký cá nhân). + NukeViet Shop (Dành cho các website thương mại điện tử với hoạt động chính là bán hàng trực tuyến, hiện đã có thể sử dụng bằng cách cài bổ sung module Shop lên NukeViet CMS). 22
  31. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng CHƢƠNG 3:CÀI ĐẶT, QUẢN TRỊ NỘI DUNG NUKEVIET 3.1 Cài đặt NukeViet 3.1.1 Những yêu cầu cài đặt cho NukeViet  Môi trƣờng máy chủ Hệ điều hành: Unix (Linux, Ubuntu, Fedore, ) hoặc Windows. PHP: PHP 5.2 hoặc phiên bản mới nhất. MySQL: MySQL 5.02 hoặc phiên bản mới nhất Tùy chọn bổ sung Tính năng mở rộng của máy chủ: máy chủ Apache cần hỗ trợ mod mod_rewrite hoặc máy chủ IIS 7.0 hoặc IIS 7.5 cần cài thêm module rewrite. Môi trường PHP mở rộng: các thư viện PHP cần có: file_uploads, session, mbstring, curl, gd2, zlib, soap, sockets, tidy, php_zip. Ghi chú:Những yêu cầu cài đặt không cú nghĩa là NukeViet không làm việc trên các hệ thống khác, điều quan trọng là cần thiết lập môi trường làm việc phù hợp. Với những website sử dụng hosting: NukeViet làm việc tốt nhất trên các hosting Linux cài sẵn Apache 2.2, PHP5, MySQL 5, DirectAdmin hoặc Cpanel.  Máy tính ngƣời truy cập NukeViet cho kết quả là chuẩn xHTML 1.0 và CSS 2.1,đây là định dạng chuẩn mà hầu hết các trình duyệt hiện nay đang theo đuổi. Chính vì vậy các website làm trên nền NukeViet có thể truy cập tốt trên các phiên bản mới nhất của trình duyệt FireFox, Internet Explorer, Google Chrome, Opera, Safari Trên thực tế NukeViet đã đươc kiểm nghiệm trên FireFox 3.x, Internet 7 và 8, Google Chrome 4 và 5, Opera 10.x Máy tính người truy cập chỉ cần cài một rong các trình duyệt này là có thể tương tác với NukeViet thông qua Internet hoặc Intranet. Nguyễn Văn Thịnh – CT1301 23
  32. 3.1.2 Tiến trình cài đặt NukeViet Trước khi cài đặt, máy tính đã được cài đặt hệ thống Apache và MySQL Ví dụ trên Xampp: Hình 3.1.2.1 Giao diện Xampp Hình 3.1.2.2 Giao diện phpMyAdmin Hình 3.1.2.3 Giao diện Database 24
  33. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Gải nén bộ cài NukeViet, copy vào thư mục htdocs của xampp ( trên hosting thì nó là thư mục public_html), đổi tên thư mục nukeviet thành hpu.edu.vn. Nhập địa chỉ tạo database cho website như hình 1a, hình 1b, hình 1c. Tiến hành cài đặt bằng việc mở trình duyệt (FirFox, Chrome, Internet Explorer, Opera, Safari, ) và truy cập địa chỉ Bƣớc 1: Lựa chọn ngôn ngữ. Ngôn ngữ mặc định khi cài đặt là tiếng Việt, cũng có thể chọn sử dụng tiếng Anh. Lựa chọn xong ngôn ngữ nhấn vào nút “Bước kế tiếp” để chuyển sang bước tiếp theo (Hình 1). Hình 3.1.2.4 Chọn ngôn ngữ cài đặt. Gợi ý: Bạn có thể chọn cài đặt với ngôn ngữ bất kỳ. Sau khi cài đặt bạn vẫn có thể bổ sung các ngôn ngữ khác tải về từ website nukeviet.vn. Bƣớc 2: Kiểm tra việc CHMOD Hình 3.1.2.5 Kiểm tra điều kiện cài đặt Nếu tất cả các thông số đều đạt yêu cầu như hình 2, bạn có thể chuyển qua bước kế tiếp bằng cách nhấp nút “Bước kế tiếp”. Nguyễn Văn Thịnh – CT1301 25
  34. Nếu xảy ra lỗi, hệ thống sẽ yêu cầu bạn phải CHMOD lại thư mục hoặc tập tin cần thiết. Bạn cũng có thể điền thông tin tài khoản FTP máy chủ của bạn vào ô “Cấu hình FTP” – nếu máy chủ của bạn hỗ trợ việc CHMOD thông qua php thì hệ thống sẽ tự động CHMOD những thư mục và tập tin cần thiết sau khi bạn điền đầy đủ thông tin cấu hình FTP và nhấn vào nút “Thực hiện”. Còn không, bạn sẽ phải tự CHMOD bằng tay. Sau khi hoàn thành quá trình CHMOD nhấm vào nút “Bước kế tiếp” để chuyển qua bước tiếp theo Bƣớc 3: Kiểm tra bản quyền Hình 3.1.2.6 Bản quyền NukeViet Phần mềm sẽ hiển thị thông tin bản quyền về phần mềm nguồn mở theo giấy phép GNU/GPL và giải thích các điều khoản bạn được phép và không được phép. Bạn nhấp nút “Bước kế tiếp” để chuyển sang bước tiếp theo. Bƣớc 4: Kiểm tra máy chủ 26
  35. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Hình 3.1.2.7 Kiểm tra thông tin máy chủ Để hệ thống NukeViet có thể chạy được thì yêu cầu máy chủ bắt buộc phải hỗ trợ Phiên bản PHP từ 5.2.0 và MySQL 5.02 trở lên. Nếu hai điều kiện này không thỏa mãn thì quá trình cài đặt không thể tiếp tục. Ngoài ra hệ thống còn đưa ra những khuyến cáo về những tính năng khác của máy chủ. Nếu những yêu cầu thêm này không thỏa mãn bạn vẫn có thể cài đặt NukeViet nhưng hệ thống sẽ mất đi một số chức năng tiện ích. Bƣớc 5: Cấu hình cơ sở dữ liệu Hình 3.1.2.8 Cấu hình cơ sở dữ liệu Bạn phải điền đầy đủ các thông tin về thông số database của bạn sau đó nhấn vào nút “Thực hiện”. Thông số Username và Mật khẩu do phần mềm Xampp quản lý (mặc định Username là root và mật khẩu để trống). Riêng tên cơ sở dữ liệu cần được nhập đúng tên lúc ban đầu bạn đặt tên cơ sở dữ liệu. Nếu nhập sai bước này, hệ thống sẽ thông báo lỗi và không hiển thị “Bước kế tiếp” để bạn có thể tiếp tục quá trình cài đặt. Khi bạn điền chính xác thông tin và việc kết nối tới cơ sở dữ liệu thành công, hệ thống sẽ chuyển bạn sang bước tiếp theo Bƣớc 6: Thông tin website Hình 3.1.2.9 Thông tin Website và quản trị Website Nguyễn Văn Thịnh – CT1301 27
  36. Ở bước này các bạn phải điền đầy đủ thông tin vào những ô được đánh dấu (*), bên cạnh là cột ghi chú giúp các bạn có thể hiểu rõ hơn quá trình nhập thông tin. Sau khi nhập thông tin xong bạn nhấm vào nút “Thực hiện” để hoàn tất. Bƣớc 7: Kết thúc Hình 3.1.2.10 Thông báo cài đặt thành công Khi hoàn thành 6 bước trên hệ thống sẽ chuyển bạn qua bước cuối cùng. Tại đây bạn sẽ nhìn thấy thông báo chúc mừng bạn đã cài đặt thành công. Đồng thời, hệ thống cũng nhắc bạn hãy CHMOD ngay thư mục uploads trên webroot (thư mục gốc của website) và các thư mục con nằm trong thư mục uploads ở chế độ 777. Bạn chỉ cần làm việc này nếu sử dụng hệ điều hành Linux (kể cả hosting Linux). Riêng với Windows, thư mục này cần loại bỏ thuộc tính (properties) chỉ đọc (Read-only) nếu nó đang có thuộc tính này. Sau khi xong các bước trên hệ thống yêu cầu bạn có 2 lựa chọn: xem trang chủ hoặc đăng nhập trang quản trị. Bạn có thể đăng nhập trang quản trị bằng cách gõ thêm /admin/ sau địa chỉ link cài đặt NukeViet. Chú ý: Nếu bạn muốn cài đặt lại website hãy xóa file config.php ở thư mục gốc của source NukeViet. Sau đó tiếp tục các bước như trên để cài lại hệ thống NukeViet 3.x. Việc cài NukeViet trên máy chủ mạng hoặc hosting cũng hoàn toàn tương tự. Trong trường hợp sử dụng hosting, bạn hãy sử dụng hosting linux có công cụ quản lý bằng Cpanel, hỗ trợ PHP 5.2 và MySQL 5.2 và một tên miền trỏ sẵn về hosting này. 3.2 Quản trị nội dung NukeViet 3.2.1 Các khái niệm cần biết  Ngôn ngữ trên site 28
  37. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng  Khái niệm ngôn ngữ giao diện và ngôn ngữ cơ sở dữ liệu + Đối với website sử dụng nhiều ngôn ngữ, ngôn ngữ trên site được xác định bằng 2 thành phần: ngôn ngữ giao diện và ngôn ngữ cơ sở dữ liệu + Ngôn ngữ giao diện là ngôn ngữ cố định, được xác định khi lập trình và được định nghĩ sẵn trong các tệp tin ngôn ngữ. + Ngôn ngữ cơ sở dữ liệu là các dữ liệu sử dụng cho các ngôn ngữ khác nhau, do người sử dụng nhập vào cho các trang ngôn ngữ khác nhau.  Ngôn ngữ theo địa phương và quốc gia NukeViet có tính năng tự động nhân diện địa phương (location) của người truy cập thông qua IP, từ đó xác định quốc gia và gán ngôn ngữ mặc định cho website. Điều này xảy ra khi đồng thời có đủ các yếu tố sau: + Website sử dụng nhiều ngô ngữ. + Chế độ xác định ngôn ngữ theo địa phương được bật và đã cấu hình trong quản trị. + Người sử dụng chưa chọn ngôn ngữ khác trong lần truy cập trước đó. + Hệ thống xác định được địa phương người truy cập (dải IP nằm trong thư viện IP 4 được nukeviet quản lý).  Theme Theme (hay còn gọ là skin, template ) là khái niệm chung để gọi các giao diện. NukeViet hỗ trợ việc sử dụng nhiều theme và người quản trị có thể dễ dàng thay đổi chúng. Theme của NukeViet là giải pháp lý tưởng giúp cho công việc thay đổi giao diện website trở lên dễ dàng. Nhờ thiết kế mỹ thuật của tác giả tạo ra theme mà website có thể được trình bày dưới các bố cục khác nhau. Điều này giúp cho website không trở lên nhàm chán. NukeViet tích hợp sẵn hai theme: default và modern cho khu vực người dùng và hai theme: admin_default và admin full cho khu vực quản trị. Hai theme default và admin_default là hai theme hệ thống, nếu các giao diện khác không hỗ trợ bất kì thành phần gì thì những thành phần đó được lấy mặc định từ hai theme này, vì vậy tuyệt đối không được đổi tên hay chỉnh sửa hai theme này. Nguyễn Văn Thịnh – CT1301 29
  38. Hệ thống NukeViet cho phép quản lý giao diện ở 3 mức độ khác nhau: + Mức độ toàn bộ website (giao diện mặc định). + Mức độ module (giao diện cho từng module). + Mức dộ chức năng của module (kiểu bài trí giao diện cho từng chức năng). Như vậy là ngoài việc hỗ trợ mỗi module sử dụng một giao diện, mỗi chức năng (function) còn có thể sử dụng một layout riêng, NukeViet còn cho phép tùy biến các block trên từng function. Với NukeViet, việc quản lý giao diện hoàn toàn là “kéo và thả” trực quan bằng chuột.  Module (đọc là Mô-đun, còn có tên gọi khác là Addons hay Plugins – tính năng tăng cường cho hệ thống) là những phần mở rộng của hệ thống NukeViet. Mỗi module sẽ đảm nhận một chức năng riêng cho hệ thống. Tùy chức năng và nhiệm vụ của module mà nó có thể phục vụ hệ thống chạy các tác vụ nền hoặc chỉ tương tác bên ngoài với người sử dụng (tương ứng với việc can thiệp sâu hoặc không sâu vào hệ thống). Có thể hình dung: nếu coi NukeViet là một tổng công ty hoạt động theo mô hình công ty mẹ - công ty con thì các module chính là các công ty con, chúng có thể có chức năng và nhiệm vụ khác nhau, có khả năng hoạt động tương đối độc lập nhưng đều chịu sự chỉ đạo của công ty mẹ. Hệ thống NukeViet mặc định đã có sẵn một số module, ngoài ra người sử dụng có thể cài thêm các module mới về từ website NukeViet để cài lên hệ thống hoặc gỡ bỏ nó khỏi hệ thống Các module được cài bằng cách vật lý (cài thêm code lên hệ thống) được gọi là module thường, nếu các module này cho phép thì hệ thống có thể “nhân bản” nó lên thành nhiều module khác có chức năng giống nó. Các module được nhân bản lên theo hình thức đó gọi là module ảo. Tóm lại: module ảo là module được nhân bản từ một module bất kỳ của hệ thống NukeViet (nếu module đó cho phép tạo module ảo). Lưu ý: Module ảo là khái niệm từ phiên bản NukeViet 3.0 (khi NukeViet hỗ trợ công nghệ đa nhân module). Công nghệ này cho phép người sử dụng có thể khởi 30
  39. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng tạo hàng ngàn module một cách tự động mà không cần động đến một dòng code. Các module được sinh ra từ công nghệ này gọi là module ảo.  Các khối Các khối (block) là các thành phần nhỏ trên website nhằm mục đích đa dạng dữ liệu trên một trang và có thể sử dụng để trang trí cho website. Các khối có thể bật, tắt hoặc di chuyển dễ dàng đến bất cứ vị trí nào (được người thiết kế chỉ định trên website khi thiết kế giao diện web). Nhờ các khối mà nội dung website trở lên đa dạng và phong phú hơn. Khách truy cập cũng nhờ thế mà dễ dàng nắm bắt nội dung website và nhanh chóng tiếp cận đến mục họ quan tâm. NukeViet 3.0 hỗ trợ 4 loại block bao gồm: - File - Khối quảng cáo - Dạng HTML - Lấy từ RSS Riêng block dạng file cũng có 2 kiểu là block sử dụng chung cho toàn bộ website (Global) và block sử dụng riêng cho module. Block sử dụng riêng cho module thì chỉ có thể hiển thị ở module, còn block sử dụng cho toàn bộ site có thể hiển thị ở toàn bộ website. Riêng block global được phân làm 2 loại: block ở module và block ở thư mục includes/blocks/ Block khối quảng cáo giúp hiển thị các quảng cáo tạo ra từ module banner. Block HTML cho phép tạo các dữ liệu từ HTML Block RSS cho phép lấy nội dung từ các nguồn RSS. Mỗi block có thể áp các mẫu trình bày giao diện khác nhau tùy vào theme sử dụng.  Crontjobs Crontjobs là các tiến trình tự động trong NukeViet, nó sẽ thực hiện một công việc nào đó sau một khoảng thời gian nhất định, các khoảng thời gian cũng như số lần thực hiện quy định trong phần cấu hìn tiến tình tự động. 3.2.2 Cấu trúc tệp tin và thƣ mục Thư mục gốc chứa NukeViet bao gồm 15 thư mục và 10 tệp. Nguyễn Văn Thịnh – CT1301 31
  40.  Mô tả các tệp tin trong thƣ mục gốc - File index.php: là file khởi động hệ thống, gọi ra tất cả các tài nguyên NukeViet sử dụng, xác định các module, các theme, thống kê số người online, xác định quền điều hành module. - File mainfile.php: là file gọi ra tất cả các tài nguyên của hệ thống sử dụng, khởi tạo các hằng, các biến dùng chung. File này được gọi ngay index.php được gọi. - File .htaccess: cấu hình charset mặc định cho các file HTML, CSS, JS, PHP, HTM, chặn truy cập bên ngoài đến một số file. Thiết lập cho các modules của Apache. - File Cjzip.php: chứa các thành phần phục vụ việc nén trang. - File favicon.ico: icon của website - Các file robots.php, robots.txt. web.config: thiết lập quyền tìm kiếm của các máy chủ tìm kiếm. - File service_shops_nganluong.php: kết nối thanh toán với nganluong.vn. File này chỉ được sử dụng trong thanh toán của module shops. - File update_revisstion.php: dùng trong việc nâng cấp hệ thống theo revission  Mô tả các thƣ mục Thƣ mục admin: Thư mục này chứa 2 thư mục con (editors, modules) và file index.php. Thư mục index.php là phần chứa các bộ soạn thảo, NukeViet tích hợp sẵn bộ soạn thảo ckeditor. Thư mục modules chứa các module sử dụng trong khu vực quản trị website. Thƣ mục cache: Là bộ nhớ đệm của hệ thống, khi thực hiện chức năng xóa cache thì các file trong thư mục này sẽ bị xóa. Cache sẽ giúp hệ thống hoạt động nhanh hơn, giảm bớt công việc xử lý của CPU. Thƣ mục data: 32
  41. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Chứa các file dữ liệu từ các module, ví dụ các file dữ liệu quảng cáo (module banners), file config_global.php chứa thông tin cấu hình của site, file metatags.xml lưu cấu hình meta-tag Ngoài thư mục này cũng có thể chứa nhiều file khác tùy theo mỗi module có hoặc không có lưu file vào. Thư mục files: Gồm 5 thư mục con: - Css: chứa các file css nén của website nếu bật chức năng tối ưu hệ thống. - Dcache: bộ nhớ đệm của module uploads. Các file trong thư mục này không được xóa khi dùng chức năng xóa cache của module webtools, vì vậy nếu gặp lỗi ở phần upload thì bước đầu tiên làm là xóa thủ công các file trong thư mục này. - Images: chứa các ảnh Thumb của module upload. - Js: chứa file js nén nếu chức năng tối ưu hệ thống được kích hoạt. - News: chứa các hình ảnh của module news. Khi tạo module ảo từ module news, hệ thống sẽ tự động tạo thêm các thư mục có tên là tên module ảo vào thư mục files. Thƣ mục Images: Chứa các hình ảnh cơ bản được sử dụng trên toàn hệ thống, jwplayer Thƣ mục includes: Chứa toàn bộ tài nguyên của bộ nhân NukeViet - Thư mục blocks: chứa các block global của hệ thống - Thư mục class: chứa các class array2xml.class, checkurl.class, crypt.class, diagnostic.class, download.class, error.class, flood.class - Thư mục core: chứa các file xử lỹ cốt lõi của hệ thống - Thư mục cronjobs: chứa các file tiến trình tự động của hệ thống - Thư mục ini: chứa các file dữ liệu đơn vị tiền tệ, ký hiệu ngôn ngữ, trình duyệt, hệ điều hành - Thư mục ip_files: dữ liệu IP của các nước Nguyễn Văn Thịnh – CT1301 33
  42. - Thư mục keywords: chứa các hàm tách từ khóa. - Thư mục phpmailer: chứa phpmailer class, là phần phụ trách việc gửi email. - Thư mục phpsvnclient: class dùng để giao tiếp với máy chủ svn. - Thư mục utf8: các hàm xử lý mã utf-8 Các file: - Bots.php: cấu hình các máy chủ tìm kiếm - Constants.php: các thiết lập hệ thống. Phần thiết lập này sẽ được hướng dẫn tại mục thiết lập hệ thống - Footer.php, header.php: file thiết lập định dạng xuất ra của website. - Functions.php: chứa các hàm NukeViet xây dựng sẵn. - Getloadavg.php: chống quá tải máy chủ - Ini.php: đọc dữ liệu từ file ini, đối chiếu để xuất ra biến $sys_info - Language.php: xác định ngôn ngữ data, ngôn ngữ giao diện. - Openid.php: thông tin các nhà cung cấp openID được sử dụng. - Request_uri.php: xử lý biến $_GET - Rewrite.php, rewrite_index.php, rewrite_language.php: chức năng rewrite của NukeViet. - Sqldata.php: chứa dữ liệu tạo table trong CSDL của các module hệ thống - Timezone.php: thông tin về múi giờ Thƣ mục install: phần cài đặt NukeViet Thƣ mục js: chứa các file javascript NukeViet sử dụng Thƣ mục language: Chứa các file ngôn ngữ. Trong thư mục này các file ngôn ngữ được phần làm 4 loại - Ngôn ngữ global: global.php, admin_global.php lần lượt là ngôn ngữ dùng chung cho toàn bộ khu vực quản trị và khu vực người dùng, nội dung ngôn ngữ được lưu trong bienes $lang_global. 34
  43. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng - Ngôn ngữ module (các module khu vực quản trị): admin_ten- module.php. - Ngôn ngữ block: (các block trong thư mục includes/blocks/) block.ten- block.php - Ngôn ngữ cài đặt: install.php Thƣ mục logs: chứa toàn bộ nhật ký hệ thống Thƣ mục modules: chứa các module khu vực người dùng. Thƣ mục sess: vị trí lưu các session. Thƣ mục themes: chứa các giao diện. Thƣ mục tmp: các file tạm. Các file trong thư mục này sẽ đợc tự động xóa nhờ tiến trình tự động. Thƣ mục uploads: chứa các file upload của các module, mỗi thư mục trong thư mục này tương ứng với một module. 3.3 Mô tả chi tiết tính năng NukeViet 3.3.1 Các tính năng chính của NukeViet  Nền tảng công nghệ NukeViet 3 lập trình trên PHP 5 và MySQL 5 cho phép vận dụng tối đa sức mạnh của công nghệ mới. Ứng dụng Xtemplate và jQuery cho phép vận dụng Ajax uyển chuyển từ trong nhân hệ thống. Với xHTML 1.0 và CSS 2.1, NukeViet 3.0 cho kết quả là những trang web đạt tiêu chuẩn, tương thích trên tất cả các trình duyệt phổ biến hiện nay. Thiết kế giao diện đồ họa sử dụng nguyên lý thiết kế giao diện lưới (Grid) cực kỳ khoa học cho phép tùy biến giao diện dễ dàng. Tận dụng các thành tựu mã nguồn mở có sẵn nhưng NukeViet 3 vẫn đảm bảo rằng từng dòng code là được code tay. Điều này có nghĩa là NukeViet 3 hoàn toàn không lệ thuộc vào bất cứ framework nào trong quá trình phát triển của mình. Bạn hoàn toàn có thể đọc hiểu để tụ lập trình trên NukeViet 3 nếu bạn biết PHP và MySQL ( đồng nghĩa với việc NukeViet 3 hoàn toàn mở và dễ nghiên cứu cho bất cứ ai muốn tìm hiểu về code của NukeViet). Nguyễn Văn Thịnh – CT1301 35
  44.  Kiến trúc module NukeViet 3.x tái cấu trúc lại module, theo đó, toàn bộ tệp tin của mỗi module được gói gọn trong một thư mục riêng nhằm đơn giản trong việc quản lý và đóng gói ứng dụng. Kiến trúc module này tạo ra khái niệm block của module và theme của module giúp đa dạng hóa việc trình bày module. Hệ thống NukeViet 3.x hỗ trợ công nghệ đa nhân module. Công nghệ đó được gọi là công nghệ ảo hóa module. Công nghệ này cho phép người sử dụng có thể khởi tạo hàng ngàn module một cách tự đồng mà không cần động đến một dòng code. Các module được sinh ra từ công nghệ này gọi là module ảo. Module ảo là module được nhân bản từ một module bất kỳ của hệ thống NukeViet nếu module đó cho phép tạo module ảo. NukeViet 3.x cũng hỗ trợ việc cài đặt tự động 100% các module kèm theo block, theme từ Admin Control Panel, người sử dụng có thể cài module mà không cần làm bất cứ thao tác phức tạp nào. NukeViet 3.x còn cho phép bạn đóng gói module để chia sẻ cho người khác. Hệ thống cho phép quản lý module từ trong Admin Control Panel, quản trị cấp cao có thể phân quyền truy cập cũng như tạm ngưng hoạt động hay thậm chí cài lại hoặc xóa module tùy theo nhu cầu sử dụng.  Đa ngôn ngữ NukeViet 3 đa ngôn ngữ 100% với giải pháp đa ngôn ngữ kép. Giải pháp này giúp xử lý triệt để vấn đề đa ngôn ngữ cho các website bằng cách tách thành 2 phần: đa ngôn ngữ giao diện (file ngôn ngữ tĩnh) và đa ngôn ngữ xử lý dữ liệu (database). NukeViet 3 có tính năng cho phép người quản trị tự xây dựng ngôn ngữ mới cho site. Cho phép đóng gói file ngôn ngữ để chia sẻ cho cộng đồng NukeViet 3.x tách bạch ngôn ngữ quản trị và ngôn ngữ người dùng, ngôn ngữ giao diện và ngôn ngữ database giúp dễ dàng xây dựng và quản lý các hệ thống đa ngôn ngữ  Phân quyền NukeViet 3.x tách biệt 2 khu vực: khư vực quản trị và khu vực người dùng. Toàn bộ các tính năng quản lý nằm trong khu vực quản trị nhằm đảm bảo việc phân quyền được thực hiện chính xác và an toàn nhất. 36
  45. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Phân quyền quản trị: NukeViet 3.x phân quyền theo module và theo ngôn ngữ, do đó dễ dàng xác lập quyền quản trị cho các hệ thống lớn, nhiều người quản trị cùng làm việc. Phân quyền thành viên: NukeViet 3.x cho phép quản lý và phân nhóm người sử dụng thành các nhóm khác nhau để dễ dàng phân quyền người sử dụng theo từng module cụ thể.  Đa giao diện Cài đặt: NukeViet 3.x hỗ trợ cài đặt và gỡ bỏ giao diện hoàn toàn tự động. Hơn thế nữa, bạn có thể đóng gói giao diện để chia sẻ cho website khác một cách dễ dàng. Nukeviet hỗ trợ hệ thống đa giao diện cực kỳ uyển chuyển cho cả người sử dụng lẫn người lập trình. Với NukeViet 3.x, người sử dụng có thể tùy biết một cách dẽ dàng: gán giao diện theo module, thiết lập bố cục giao diện cho từng tính năng của module. Với người thiết kế giao diện: có thể tùy ý thiết kế không giới hạn bố cục giao diện. Giao diện đã được tách bạch phần HTML và CSS khỏi PHP vì vậy người thiết kế tùy trình độ mà có thể can thiệp vào các lớp giao diện để chỉnh sửa hoặc thiết kế giao diện mới một cách dễ dàng.  Tùy biến website bằng block NukeViet cho phép đa dạng bố cục và chức năng cho website nhờ các khối (block) khác nhau trên website. Các khối này có thể là các ứng dụng, các khối quảng cáo hoặc dữ liệu bất kỳ nào được người sử dụng định nghĩa. Block của NukeViet 3 cũng phân theo 2 cấp: block của hệ thống và block cho từng module. Người sử dụng có thể tùy ý bố trí vị trí block ở các vị trí khác nhau: toàn bộ website, theo từng module và thậm chí là từng tính năng của module. Block có thể có các giao diện khác nhau theo theme. Có thể hẹn giờ bật/ tắt cũng như phân quyền cho từng đối tượng người truy cập. Việc bố trí block có thể thực hiện trong Admin Control Panel hoặc kéo thả trực quan ngay tại giao diện người dùng  An ninh, bảo mật Nukeviet 3 được thiết kế để nhận biết và chống các truy cập bất hợp pháp vào hệ thống cũng như gửi các dữ liệu có hại lên hệ thống. Nguyễn Văn Thịnh – CT1301 37
  46. Dữ liệu gửi qua các hệ thống được kiểm duyệt bằng bộ lọc an ninh nhằm ngăn chặn các dữ liệu có khả năng tấn công vào hệ thống. NukeViet có khả năng ngăn chặn, theo dõi và kiểm soát truy cập vào hệ thống của tất cả các máy chủ tìm kiếm như yahoo và google hay bất cứ máy chủ tìm kiếm nào khác. Hệ thống có khả năng chống Spam bằng Captcha, chống lụt dữ liệu bằng cách giới hạn thời gian gửi dữ liệu Hệ thống cho phép theo dõi, ghi nhận các thông số của máy tính truy cập đến site như: hệ điều hành, trình duyệt, quốc gia, các liên kết đến site (referer) để từ đó có thể kịp thời ngăn ngừa các nguy cơ tấn công bằng các hình thức như: kiểm tra và chặn các máy tính dùng proxy, chặn IP truy cập Hệ thống sẽ ghi nhận truy cập giúp người quản trị cũng như các thành viên dễ dàng phát hiện ra những đăng nhập bất hợp pháp từ lần đăng nhập trước đó. Hệ thống có tích hợp tường lửa mạnh, giúp chống các truy cập bất hợp phát vào khu vực admin và vào site. Hệ thống có thể phát hiện các bản nâng cấp mới của phần mềm để nhắc nhở người sử dụng nâng cấp và sử chữ các lỗi (nếu có).  Quản lý CSDL NukeViet 3 cho phép quản lý CSDL, người sử dụng có thể tối ưu, sao lưu trên máy chủ và tải dữ liệu về để phục vụ cho công tác phục hồi nếu xảy ra sự cố. NukeViet 3 cũng tự động sao lưu dữ liệu hằng ngày, chức năng này có thể được cấu hình để đảm bảo thiệt hại là tối thiểu khi xảy ra tấn công.  Kiểm soát lỗi tự động và báo lỗi thông minh NukeViet 3.x có hệ thống kiểm soát lỗi tự động và báo lỗi cho người dùng. Các lỗi (nếu có) sẽ được hệ thống kiểm soát có chủ đích, nó chỉ hiển thị lên mình hình người sử dụng ở lần đầu nó xuất hiện, sau đó hệ thống ghi nhận và báo về cho người quản trị email.  Tối ƣu hóa cho công cụ tìm kiếm (SEO) Hỗ trợ SEO link. 38
  47. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Quản lý và tùy biến tiêu đề site. Hỗ trợ quản lý các thẻ meta như: keywords, description Hỗ trợ sử dụng keywords để phát sinh trang thống kê một cách tự động nhờ công cụ tìm kiếm. Có đầy đủ các công cụ hỗ trợ ping dữ liệu đến các máy chủ tìm kiếm. Hỗ trợ tạo sitemap cho các máy chủ tìm kiếm  Sẵn sàng cho việc tích hợp các ứng dụng của bên thứ 3 NukeViet 3.x sử dụng cơ sở dữ liệu thành viên độc lập và xây dựng sẵn các phương thứckết nối với các ứng dụng forum. Cơ sở dữ liệu thành viên độc lập giúp việc quản lý thành viên được chủ động, khi có nhu cầu kết nối hoặc trao quyền quản lýcho các ứng dụng từ bên thứ 3, NukeViet 3.0 vẫn hoàn toàn chủ động với dữ liệuthành viên của mình. Với NukeViet 3.0, các kết nối trực tiếp dành cho forum như phpBB hay vBB đề sẵn sàng.  Hỗ trợ đăng nhập phân tán NukeViet hỗ trợ OpenID, cho phép người truy cập có thể đăng nhập nhân tán từ các hệ thống như Yahoo và Google hay các hệ thống OpenID khác giúp các website mới xây dựng có cơ hội thu hút lượng người sử dụng khổng lồ từ các hệ thống lớn. Trong mọi trường hợp, hệ thống cho phép admin kiểm duyệt việc login openid. Tùy nhu cầu sử dụng mà có thể thiết đặt mức độ login cao nhất (tự động) tới mức độ vẫn phải đăng ký thành viên (bớt bước kích hoạt qua email). Người sử dụng cũng có thể quản lý nhiều tài khoản openid để từ đó có thể đăng nhập bằng tài khoản bất kỳ (nếu hệ thống cho phép).  Trình soạn thảo tích hợp sẵn Tại những vị trí phù hợp, NukeViet tích hợp sẵn bộ gõ tiếng Việt AVIM cũng như tích hợp sẵn cho phép tùy chọn các trình soạn thảo giúp người sử dụng dễ dàng biên tập nội dung trên giao diện trực quan và thân thiện như làm việc với phần mềm Microsoft Word hay OpenOffice. Hiện tạy NukeViet đã sẵn sàng thích hợp các trình soạn thảo: Spaw2 FCKeditor Nguyễn Văn Thịnh – CT1301 39
  48. Ckeditor TniMCE  Các tiện ích khác Hệ thống cho phép gửi mail bằng thương phức: SMTP, Linux Mail, PHPmail. Cho phép sử dụng phương thức FTP để ghi file nếu máy chủ không cho phép làm điều đó bằng PHP Cho phép xây dựng và quản lý các tác vụ xử lý tự động như tự động sao lưu CSDL, tự động xóa các dữ liệu cũ hoặc gửi báo lỗi tới người quản trị Cung cấp đầy đủ các thông tin về hệ thống giúp nhà phát triển dễ dàng sử dụng các thông tin này phụ vụ cho việc lập trình, kiểm tra và báo lỗi hệ thống. Nâng cấp và cài đặt tự động được tự động hóa ở mức cao. Cùng nhiều tính năng khác liên tục được bổ sung trong quá trình phát triển mà người sử dụng có thể tham khảo. 3.3.2 Các module ngƣời dùng đƣợc tích hợp sẵn trong NukeViet 3  Giới thiệu (module About) Module about là mô hình cho phép người quản trị tạo ra các bài viết đơn lẻ thường được sử dụng để đăng các bài viết giới thiệu, không mang tính thời sự, các tính năng của module này gồm có: + Tạo nhiều bài viết. + Sắp xếp thứ tự bài viết. + Cho hiển thị hoặc ẩn 1 bài viết. + Module cho phép tạo module ảo.  Quản trị và xuất bản tin tức (module News) Hệ thống tin túc của NukeViet là hệ thống quản trị tin tức chuyên nghiệp đặc biệt phù hợp để bạn tạo các trang thông tin của các sở ban ngành cũng như các trang thông tin kinh tế, văn hóa xã hội Module cho phép xử lý nhiều tác vụ nền thông minh mà không cần người sử dụng can thiệp nhằm tối ưu cho hệ thống tin tức, ví dụ: tạo hình thu nhỏ, tự động chia thư mục và sắp xếp hình vào các thư mục theo thời gian Các tính năng chính của module News gồm có: 40
  49. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng + Quản lý chủ đề đa cấp trong đó bản tin có thể nằm ở 1 hoặc nhiều chủ đề không phụ thuộc quan hệ cha con giữa các chủ đề. + Quản lý nhóm tin liên quan (phân luồng tin theo dòng đơn) + Quản lý block tin (nhóm tin đa luồng) + Quản lý nguồn tin + Quản lý bình luận + Tùy chỉnh bố cụ trang tin + Gửi bài viết, hẹn giờ đăng và nhiều tùy chỉnh khác: cho phép gửi bản tin, in, lưu bản tin. + Cấp tin RSS.  Quản lý thành viên (module User) Module này cho phép bạn quản lý tất cả người dùng trên hệ thống một cách tập trung. Các chứ năng gồm có: + Quản lý việc đăng nhập, đăng ký. + Quản lý phương thức đăg nhâp: qua openid hoặc đăng nhập trực tiếp. + Quản lý câu hỏi bảo mật. + Quản lý nội quy. + Quản lý thông tin thành viên. + Quản lý thông tin thành viên và các nhóm thành viên + Hỗ trợ việc tích hợp các diễn đàn như phpBB, vBulletin để các thành viên của site có thể dùng chung tài khoản và đăng nhập 1 lần giữa gortal và diễn đàn.  Quản lý liên hệ gửi đến website (module Contact) Bạn đăng tải các thông tin để người truy cập có thể liên hệ với đơn vị bạn qua cách thức: email, điện thoại, trực tiếp. Ngoài người truy cập có thể liện hệ qua form liên hệ trực tiếp, các thông tin khách hàng liên hệ bạn có thể xem trong phần quản trị website, hệ thống cũng gửi một email để thông báo cho bạn về nội dung khách hàng đã liên hệ. Người quản trị: quản lý các bộ phận tiếp nhận liên hệ, quẩn lý và trả lời các thư gửi tới đã được phân quyền. Nguyễn Văn Thịnh – CT1301 41
  50. Module cho phép tạo module ảo.  Quản lý thăm dò ý kiến (module Voting) Bạn sử dụng module này để tạo ra các bình chọn trên website, người truy cập có thể xem kết quả bình chọn hoặc tham gia bình chọn. Các bình chọn có thể thêm vào bất kỳ vị trí nào trên website.  Quản lý quảng cáo chuyên nghiệp (module Banners) Công cụ này giúp bạn thiết lập các banner quảng cáo dưới dạng hình ảnh, flash để quảng cáo cho các sản phẩm của bạn hoặc đặt liên kết đến đối tác, website liên kết. Ngoài ra module cho phép xây dựng hệ thống quảng cáo chuyên nghiệp nhờ chúc năng quản lý các khu vực quảng cáo, quản lý khách hàng, giúp bạn và đối tác quảng cáo thống kê hiệu quả của quảng cáo thông qua các chỉ số về lượt click, thiết lập vị trí hiển thị, cách hiển thị  Quản lý tệp tin ngƣời dùng tải về (module Download) Module này giúp xây dựng một thư viện tệp tin, đồng thời giúp bản quản lý việc các tệp tin được người sử dụng tải về như thế nào. Các chức năng chính gồm có: + Quản lý thư mục đa cấp, phân quyền tải tệp tin. + Quản lý tệp tin + Đếm lượt tải file + Quản lý bình luận + Kiểm duyệt file gửi tới + Quản lý bình luận cho file + Quản lý báo lỗi file + Cấp RSS  Quản lý liên kết (module Weblinks) Module này giúp xây dựng một thư viện các websitte mà khách hàng của bạn có thể quan tâm hoặc đơn giản là bạn có thể sử dụng và quản lý như một thư viện cho riêng mình. Các chức năng chính của module gồm có: + Quản lý chủ đề đa cấp + Quản lý liên kết, đếm lượt truy cập 42
  51. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng + Quản lý báo cáo về liên kết: lỗi: liên kết xấu  Thống kê truy cập (module Statistics) Module thống kê lượt truy cập vào website, số lượng người dùng đang online trên website. Các nội dung thống kê gồm có: + Thống kê theo năm, tháng, ngày tuần, giờ. + Theo liên kết đến site + Theo quốc gia + Theo trình duyệt + Theo hệ điều hành + Máy chủ tìm kiếm  Các câu hỏi thƣờng gặp (module FAQ) Module này cho phép đăng tải các thông tin hỗ trợ người truy cập website, cho phép tổ chức nội dung theo danh mục, mỗi danh mục có thể đăng nhiều chủ đề trợ giúp khác nhau. Các chức năng chính: + Tạo chủ đề đa cấp + Tạo các câu hỏi và câu trả lời  RSS (module RSS) Module RSS giúp tổ chức và liệt kê các nguồn cấp RSS của site một cách tự động. Các nguồn RSS này có thể giúp website phát tán tin tức lên các hệ thống khác một cách nhanh chóng và thuận tiện.  Tìm kếm (module Search) Module này giúp người truy cập có thể tìm kiếm dữ liệu trên website một cách nhanh chóng. Các chế độ tìm kiếm gồm có: + Tìm kiếm chung toàn hệ thống + Tìm kiếm nâng cao từng khu vực  Menu website (module Menu) Module menu có thể giúp thiết lập các loại menu cho website theo cách thức bất kỳ, đáp ứng được mọi yêu cầu về menu.  Gian hàng Online (module Shop) Nguyễn Văn Thịnh – CT1301 43
  52. Dự án phát triển module Shop (trên nền NukeViet 3.0) tích hợp cổng thanh toán điện tử nganluong.vn giữa công ty cổ phần phát triển nguồn mở Việt Nam (VINADES.,JSC) và công ty cổ phần giải pháp phần mềm Hòa Bình (Peacesoft) là dự án nhằm mục tiêu thúc đẩy thương mại điện tử ở Việt Nam bằng chính sức mạnh của mã nguồn mở. Dự án bắt đầu khởi động vào tháng 10/2010 và đã được cong bố hoàn thành ngày 08/01/2011. Sau thời gian thử nghiệm và tập huán cho các bên liên quan, bản opensource của dự án được phát hành cùng ngày với NukeViet 3.1 và được tích hợp hẳn vào bản phát hành NukeViet 3.2. Hệ thống được xây dựng với đầy đủ các tính năng cần thiết của một website thương mại điện tử, bao gồm: + Tổ chức trình bày gian hàng theo các tiêu chí: Loại sản phẩm, nhóm sản phẩm, sản phẩm mới cập nhât + Các tính năng phục vụ xem và chọn hàng: danh mục loại sản phẩm, giỏ hàng, sản phẩm cùng loại, sản phẩm mẫu, sản phẩm xem nhiều nhất + Đặt hàng: đưa vào giỏ hàng với những sản phẩm cho phép đặt hàng. + Thanh toán trực tuyến bằng thẻ ATM qua hệ thống thanh toán của nganluong.vn + Gửi đơn đặt hàng: thành viên website gửi đơn đặt hàng + Lịch sử giao dịch: hiển thị lịch sử giao dịch của thành viên. Các chức năng quản trị module bao gồm: + Quản lý đơn vị tiền tệ: cho phép thêm, sửa, xóa các đơn vị tiền tệ. + Quản lý cổng thanh toán trực tuyến: cấu hình các cổng thanh toán nếu có sử dụng 1 hoặc nhiều cổng thanh toán trực tuyến: nganluong.vn, baokim.vn, paypal.com + Cấu hình module: thiết lập các thông số cho hệ thống bán hàng + Quản lý đơn vị sản phẩm: thêm sửa xóa đơn vị sản phẩm (cái, chiếc, con, ) + Quản lý danh mục loại sản phẩm: thêm, sửa, xóa danh mục loại sản phẩm + Quản lý nhóm sản phẩm (theo tiêu chí): thêm, sửa, xóa các nhóm sản phẩm. 44
  53. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng + Quản lý các block (nhóm sản phẩm). + Quản lý danh sách hãng sản xuát. + Quản lý danh sách các sản phẩm: thêm, sửa, xóa, tìm kiếm sản phẩm + Quản lý đơn đặt hàng và in hóa đơn. 3.3.3 Các tính năng quản trị của NukeViet  Thông tin hệ thống + Cấu hình site Hình 3.3.3.1 Giao diện cấu hình site + Cấu hình PHP Hình 3.3.3.2 Giao diện cấu hình php + Tiện ích mở rộng Nguyễn Văn Thịnh – CT1301 45
  54. Hình 3.3.3.4. Tiện ích mở rộng + Các biến môi trường Hình 3.3.3.5 Giao diện các biến môi trường + Các biến tiền định Hình 3.3.3.6 Giao diện các biến tiền định + Nhật ký hệ thống 46
  55. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Hình 3.3.3.7 Giao diện nhật ký hệ thống  Quản lý ngƣời quản trị Hình 3.3.3.8 Giao diện quản trị + Thêm quản trị Hình 3.3.3.9 Giao diện thêm quản trị + Cấu hình Nguyễn Văn Thịnh – CT1301 47
  56. Hình 3.3.3.10 Giao diện cấu hình quản trị  Quản lý CSDL Hình 3.3.3.11 Giao diện quản lý CSDL + Backup CSDL Hình 3.3.3.12 giao diện data backup + Cấu hình CSDL Hình 3.3.3.13 Giao diện quản lý cấu hình CSDL  Cấu hình + Cấu hình theo ngôn ngữ 48
  57. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Hình 3.3.3.14 Giao diện cấu hình theo ngôn ngữ + Cấu hình chung Hình 3.3.3.15 Giao diện cấu hình chung + Tiến trình tự động Hình 3.3.16 Giao diện tiến trình tự động + Cấu hình SMTP Nguyễn Văn Thịnh – CT1301 49
  58. Hình 3.3.3.17 Giao diện cấu hình SMTP + Cấu hình FTP Hình 3.3.3.18 Giao diện cấu hình FTP + Máy chủ tìm kiếm Hình 3.3.3.19 Giao diện máy chủ tìm kiếm + Quản lý IP cấm 50
  59. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Hình 3.3.3.20 Giao diện quản lý IP cấm + Cấu hình upload Hình 3.3.3.21 Giao diện cấu hình upload  Công cụ web + Dọn dẹp hệ thống Hình 3.3.3.22 Giao diện dọn dẹp hệ thống + Chuẩn đoán site Hình 3.3.3.23 Giao diện chuẩn đoán site + Hạng site theo từ khóa Nguyễn Văn Thịnh – CT1301 51
  60. Hình 3.3.3.24 Gao diện hạng site theo từ khóa + Sitemap Ping Hình 3.3.3.25 Giao diện sitemap ping + Kiểm tra phiên bản Hình 3.3.3.26 Giao diện kiểm tra phiên bản + Cấu hình kiểm tra phiên bản 52
  61. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Hình 3.3.3.27 Giao diện cấu hình kiểm tra phiên bản  Ngôn ngữ + Ngôn ngữ data Hình 3.3.3.28 Giao diện ngôn ngữ data + Ngôn ngữ giao diện Hình 3.3.3.29 Giao diện ngôn ngữ theme + Tạo ngôn ngữ giao diện Hình 3.3.3.30 Giao diện tạo ngôn ngữ giao diện. + Kiểm tra ngôn ngữ Nguyễn Văn Thịnh – CT1301 53
  62. Hình 3.3.3.31 Giao diện kiểm tra ngôn ngữ + Cấu hình ngôn ngữ Hình 3.3.3.32 Giao diện cấu hình ngôn ngữ.  Quản lý modules + Thiết lập module Hình 3.3.3.33 Giao diện thiết lập module + Thêm module ảo 54
  63. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Hình 3.3.3.34 Giao diện thêm module ảo. + Cài đặt và đóng gói tự động Hình 3.3.3.35 Giao diện cài đặt và đóng gói tự động  Quản lý giao diện Hình 3.3.3.36 Giao diện quản lý theme + Thiết lập layout Hình 3.3.3.37 Giao diện thiết lập layout Nguyễn Văn Thịnh – CT1301 55
  64. + Quản lý block Hinh 3.3.3.38 Giao diện quản lý block + Sao chép block Hình 3.3.3.39 Giao diện sao chép block + Thêm block Thêm block có 2 cách khác nhau: thêm block tại trang chủ và thêm block tại trang quản trị + Cài đặt theme Hình 3.3.3.40 Giao diện cài đặt theme.  Quản lý file tải lên + Upload hình (ảnh, flash và các loại tệp tin được cấp phép) từ máy tính hoặc một địa chỉ bất kỳ trên mạng. 56
  65. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Hình 3.3.3.41 Giao diện upload + Quản lý: di chuyển, đổi tên, sửa, xóa, tạo hình thu nhỏ Hình 3.3.3.42 Giao diện quản lý upload Nguyễn Văn Thịnh – CT1301 57
  66. CHƢƠNG 4:XÂY DỰNG GIAO DIỆN CHO NUKEVIET 4.1 Giới thiệu theme của NukeViet Trong NukeViet, template (hay theme) dùng để chỉ các giao diện của website. Nukeviet tích hợp sẵn hai theme: default và modern cho khu vực người dùng và hai theme: admin_default và admin_full cho khu vực quản trị. Hai theme admin_default và default là hai theme hệ thống, nếu các giao diện khác không hỗ trợ bất kỳ thành phần gì thì những thành phần đó được lấy mặc định từ hai theme này, vì vậy tuyệt đối không được đổi tên hay chỉnh sửa hai theme này. Hình 4.1 Thư mục chứa code theme 4.2 Cấu trúc theme của NukeViet 4.2.1 Theme là gì? Trong hệ thống NukeViet, theme là các giao diện khác nhau giúp bạn có thể thay đổi hình thức website một cách nhanh chóng. Mỗi theme trong hệ thống NukeViet được tạo bởi một hệ thống các tệp tin trong đó quan trọng nhất (bắt buộc phải có ở tất cả các tệp) là tệp tin theme.php và style.css, ngoài ra còn có thể có các tệp tin hình ảnh đồ họa với mục đích trang trí cho website. 4.2.2 NukeViet sử dụng theme nhƣ thế nào để thể hiện trang web? Theme là một giải pháp đơn giản nhất mà các hệ quản trị nội dung như NukeViet sử dụng trong việt thể hiện giao diện website. Với giải pháp này, các ứng dụng & tính năng hệ thống được tách riêng, giao diện website được tách riêng. Việc tách riêng như vậy giúp cho công việc thiết kế giao diện thoát khỏi việc đi kềm với việc thiết kế các ứng dụng vào ngược lại, đây là một kiểu chuyên nghiệp hóa và cũng là đơn giản hóa công việc thiết kế giao diện. Như vậy khi nạp hệ thống chỉ cần trộn tính năng với giao diện là bạn sẽ có một website hoàn chỉnh, rất uyển chuyển. 58
  67. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Cấu trúc và bản thân theme default chính là cơ sở để xây dựng theme cho NukeViet. 4.2.3 Cấu trúc file của một theme trong NukeViet? Giao diện (themes) Tệp tin (files) Thư mục (folder) Một theme chuẩn trong hệ thống NukeViet được bố trí theo cấu trúc như sau:  theme.php  style\style.css  images\các file ảnh sử dụng trong theme (nếu có)  js\các file sử dụng trong theme (nếu có) Tất cả các file và thu mục trên được đặt trong một thư mục, tên thư mục chính là tên theme. Ta gọi chúng là theme. Các theme được đặt trong thư mục themes củ hệ thống NukeViet. Như vậy nếu nhìn từ thư mục gốc của hệ thống NukeViet thì 1 theme có cấu trúc cây thư mục như sau:  themes\ten_theme\theme.php  themes\ten_theme\style\style.css  themes\ten_theme\images\các file ảnh sử dụng trong theme (nếu có)  themes\ten_theme\js\các file jquery sử dụng trong theme (nếu có) 4.2.4 Quy ƣớc tên theme Tên theme chuẩn được quy ước như sau: Nguyễn Văn Thịnh – CT1301 59
  68. - Tên theme chính là tên thư mục, vì vậy nó được quy ước theo cách đặt tên thư mục trong hệ thống Unix. ngoài ra nó cũng cần đảm bảo quy cách tên theo quy định của hệ thống NukeViet. Để đơn giản, ta quy ước: + Tên theme bắt đầu bằng một chữ cái (hoa hoặc thường)trong bảng chữ cái Latinh hoặc 1 số trong bảng chữ số thập phân. + Từ ký tự thứ 2 trở đi có thể bao gồm các ký tự: a-z, A-Z, 0-9 và ký tự "_" - Các ký tự chữ hoa và thường được các máy chủ Unix phân biệt khác nhau trong khi Windows coi nó như nhau. Để tránh những rắc rối, nên đặt tên theme bằng những chữ cái viết thường. Tuyệt đối không sử dụng dấu cách tróng và các ký tự đặc biệt. Thư mục chứa block: chứa các file template (.tpl) của các block global nằm trong thư mục includes/blocks/. Các file trong thư mục này có thể để trống Hình 4.2.4.1Thư mục chứa block Thư mục chứa các file css và thư mục css con. Mỗi file css của module có tên là tên của module, khi người dùng truy cập một module thì file css sẽ được load tự động, khi đó gói module các file này cũng sẽ được đóng gói tự động. 60
  69. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Hình 4.2.4.2Thư mục chứa css Thư mục images: chứa các file ảnh, một theme nên chứ các thư mục con: admin, arrows, icons. Trong thư mục này còn chứa các thư mục có tên của modules, khi đóng gói modules, các thư mục này sẽ được đóng gói tự động. Hình 4.2.4.3 Thư mục chứa images Thư mục js: chứa các file javascript nếu theme có sử dụng. Hình 4.2.4.4 Thư mục chứa js Thư mục layout: chứa các file tpl – các file định dạng cho theme Nguyễn Văn Thịnh – CT1301 61
  70. Hình 4.2.4.5 Thư mục chứa layout Thư mục modules: trong thư mục này chứa các thư mục có tên là tên của module, khi đóng gói một module các thư mục tương ứng cũng được đóng gói. Hình 4.2.4.6 thư mục chứa layout Thư mục system: chứa các file tpl hệ thống thông thường mỗi theme đều giống nhau về các file này, không cần phải sửa chúng. Hình 4.2.4.7 Thư mục system File config.ini: thiết lập theme. 62
  71. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng NukeViet VINADES.,JSC Giao diện đi kèm trong phiên bản chính thức của NukeViet.description> default.jpg body-right MENU SITE [MENU_SITE] body about:main rss:main statistics:main,allreferers,allcountries,allbrowse rs,allos,allbots,referer File default.jpg: ảnh mô tả theme Nguyễn Văn Thịnh – CT1301 63
  72. Hình 4.2.4.8 Ảnh demo cho theme File favicon.ico: icon của theme. Hình 4.2.4.9 Icon của theme File theme.php: file chức năng của theme Hình 4.2.4.10 Code trong file theme.php Trong file theme.php chúng ta cần chú ý những điều cơ bản sau: if( defined( 'NV_IS_ADMIN' ) ) { $css .= " \n"; } Gọi ra file admin.css phục vụ cho menu của người quản trị khi ra bên ngoài website. 64
  73. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng $xtpl->assign( 'TEMPLATE', $global_config['module_theme'] ); Giá trị {TEMPLATE} ở đây để lấy ra tên của giao diện mặc định được kích hoạt trong menu quản trị giao diện của admin. $xtpl->assign( 'NV_BASE_SITEURL', NV_BASE_SITEURL ); Giá trị {NV_BASE_SITEURL} để lấy giá trị tương đối của website, thường sử dụng trước khi khai báo đường dẫn tới file css, image, javascript. $xtpl->assign( 'THEME_META_TAGS', nv_html_meta_tags() ); Giá trị {THEME_SITE_JS} được dùng để xuất ra thông tin các thẻ javascript hệ thống sử dụng được chèn vào thẻ header. $xtpl->assign( 'THEME_SITE_JS', $js ); Giá trị {THEME_SITE_JS} được dùng để xuất ra thông tin các thẻ javascript hệ thống sử dụng được chèn vào thẻ header. $xtpl->assign( 'THEME_CSS', $css ); Giá trị {THEME_CSS} được dùng để xuất ra thông tin các thẻ stylesheet được chèn vào thẻ header. $xtpl->assign( 'THEME_PAGE_TITLE', nv_html_page_title() ); Giá trị {THEME_PAGE_TITLE} thay thế cho thẻ để miêu tả tiêu đề của website $xtpl->assign( 'MODULE_CONTENT', $contents . " " ); Giá trị {MODULE_CONTENT} được dùng để xuất nội dung của module. $xtpl->assign( 'THEME_SITE_HREF', NV_BASE_SITEURL . "index.php?" . NV_LANG_VARIABLE . "=" . NV_LANG_DATA ); Giá trị {THEME_SITE_HREF} là liên kết đến trang chủ của website. $xtpl->assign('THEME_IMG_CRONJOBS', NV_BASE_SITEURL."index.php?second=cronjobs&p=" . nv_genpass() ); Nguyễn Văn Thịnh – CT1301 65
  74. Giá trị {THEME_IMG_CRONJOBS} nhằm phụ vụ 1 số tác vụ tự động của hệ thống $xtpl->assign( 'THEME_ADMIN_MENU', nv_admin_menu() ); Giá trị {THEME_ADMIN_MENU} để xuất ra nội dung thanh công cụ cho admin 4.2.5 Thay đổi cấu trúc theme của hệ thống NukeViet đƣợc không? Trong quy trình nạp theme, NukeViet sẽ gọi 2 file là theme.php và style.css đầu tiên, do đó trên nguyên tắc chỉ cần 2 file này đảm bảo tuân thủ cấu trúc theme của NukeViet là hệ thống sẽ chạy được. Ngoài các file và cấu trúc theme như trình bày ở trên, theme có thể chứa các files và thư mục khác được gọi ra thông qua theme.php tùy cách trình bày của người viết (sẽ giới thiệu với các bạn trong quá trình viết theme). Tuy nhiên, dù thế nào bạn cũng nên gom tất cả các file vào trong thư mục chứa theme để dễ quản lý. 4.3 Xây dựng theme 4.3.1 Tổng quan thiết kế theme cho NukeViet Kỹ năng tối thiểu cần có của ngƣời viết theme - Hiểu biết căn bản về web và ngôn ngữ HTML, biết một chút về CSS. - Biết một chút về PHP: cấu trúc thẻ, cách chuyển từ HTML sang PHP. - Biết sử dụng các kỹ năng tin học văn phòng căn bản: Word, Các phần mềm sử dụng để viết theme - Phần mềm chỉnh sửa html theo chế độ tương tác trực quan WYSIWYG như: Microsoft, FrontPage, Dreamweaver, HTMLPad, phpDesigner, - Phần mềm chỉnh sửa PHP: Notepad++, phpDesigner, Dreamweaver, - Ngoài ra bạn nên có phần mềm đồ họa chuyên nghiệp để có thể chỉnh sửa ảnh: Photoshop, Gimp Các tài liệu tham khảo - Học HTML căn bản: www.izwebz.com/video-tutorials/css-html/ - Học các kiến thức căn bản về Dhtml, Css, Xml, JavaScript, PHP, Flash: forum.cuasotinhoc.vn 66
  75. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Các diễn đàn bổ trợ - CSS, HTML & JavaScript: - Đồ họa: - PHP & MySQL: 4.3.2 Xây dựng giao diện cơ bản Để xây dựng một giao diện cơ bản từ giao diện đã có ta tiến hành copy một theme đã có, đặt lại tên theme, xóa các phần sau:  Tất cả các file trong thư mục hoặc cả thư mục blocks.  Các file trong thư mục css, giữ lại admin.css, icon,css, ie6.css, index html, sitemap.xsl, sitemapindex.xsl, tab_info.css  Tất cả các thư mục trong thư mục modules.  Các file va thư mục trong thư mục images, để lại thư mục admin, arrows, icons và file index.html  Thư mục js Bước tiếp theo cấu hình lại cho theme bằng cách mở file config.ini:  : Layout mặc định của mọi module.  Các : Vị trí của các khối block.  : Thiết lập mặc định đối với một số module. Chỉnh lại CSS và các ảnh để được giao diện theo ý muốn. Muốn xây dựng giao diện riêng cho mỗi module, tiến hành copy thư mục có tên module trong thư mục images, modules và file ten-modules.css tương ứng vào theme mới sau đó chỉnh sửa CSS và các file ảnh để được giao diện theo ý muốn. Lưu ý:  Các file định dạng tpl là các file sử dụng Xtemplate.  Một biến được xuất bằng lệnh assign thì trong file tpl sẽ được đánh dấu bằng {} Ví dụ: $xtpl->assign(„TITLE‟,‟Tiêu đề trang‟); để hiển thị từ “tiêu đề trang” thì trong file tpl ta cần viết {TITLE}. Nguyễn Văn Thịnh – CT1301 67
  76. Nếu dữ liệu xuất dạng mảng thì các phần tử ở các cấp được phân cách bằng dấu chấm. Ví dụ: $xtpl->assign(„TITIE‟,array(“title”=>”Tiêu đề”, id”=>1)); Để xuất chữ Tiêu đề thì trong file tpl cần đặt {TITLE.title}.  Lệnh đánh dấu khối prase sẽ đánh dấu những phần nằm trong cặp và  Trong các file tpl trong thư mục layout, có thể bỏ bớt các thành phần, tuy nhiên cần đảm bảo được các biến {THEME_PAGE_TITLE}, {THEME_META_TAGS},{THEME_CSS},{THEME_SITE_RSS},{TH EME_SITE_JS},{THEME_MY_HEAD},{THEME_ERROR_INFO},{C LICK_SHOW_QUERIES},{SHOW_QUERIES_FOR_ADMIN}, THEME_ADMIN_MENU},{THEME_MY_FOOTER},{THEME_FOO TER_JS}. Hình 4.3.1 Thư mục và file của theme được thiết kế 4.3.3 Xây dựng giao diện nâng cao Ngoài các phần cơ bản, NukeViet cũng cung cấp môi trường giúp người dùng tối ưu hóa đến tối đa các giao diện: - Chỉnh sửa file theme.php: việc chỉnh sủa file này, thêm bớt một số biến xuất ra hoặc viết thêm một số phần sẽ gây ra những thay đổi đáng kể cho giao diện so với các giao diện mặc định 68
  77. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Hình 4.3.2 code file theme.php - Tối ưu hóa giao diện riêng cho mỗi module; Tiến hành copy file theme.php ở modules sang thư mục tương ứng trong thư mục themes/ten- theme/modules sau đó chỉnh sửa các function cho các funcs. - Thêm các layout, các template cho bloack: để thêm các layout tiến hành tạo thêm file mới có tên layout.ten-layout.tpl rồi đặt vào thư mục layout. Để thêm mới một template tiến hành tạo file mới có tên block.ten-template.tpl rồi đặt vào thư mục layout. 4.3.4 Xây dựng theme  Tìm template ƣng ý Hƣớng dẫn chung - Mẫu template ở đây là các mẫu HTML đã được dựng sẵn, các bạn có thể tìm các mẫu này đầy rẫy trên mạng. - Các template có thể được tạo bằng cách save trực tiếp các trang Web đẹp từ trình duyệt của bạn. Lưu ý: NukeViet 3.x sử dụng chuẩn xHTML 1.0, trong đó sử dụng cấu trúc table để căn chỉnh hình ảnh, định vị text ưu điểm của nó là ít liên quan đến CSS, dễ hiểu, dễ làm. Do đó khi mới làm theme cho NukeViet bạn nên sử dụng các template sử dụng cấu trúc table hơn là các thẻ DIV (sử dụng CSS). Ví dụ thực hành: Lấy template từ trang 1. Bật trình duyệt FireFox hoặc Chrome, truy cập 2. Từ menu File của trình duyệt, chọn Save page as (CTRL+S), đặt tên trang là tinhte.htm, chọn chế độ Save as type là Webpage, complete. Nhấp nút save. Nguyễn Văn Thịnh – CT1301 69
  78. 3. Mở file tinhte.htm từ trình duyệt và đối chiếu xem nó có giống trang gốc hay không. Nếu chưa giống thì có nghĩa là trình duyệt đã save thiếu một số file hình hoặc sai cấu trúc CSS khiến việc định dạng bị hỏng, chúng ta sẽ phải phục hồi nó cho giống nguyên trạng. Lưu ý: - Thông thường, trình duyệt thường bỏ qua việc ghi lại các hình ảnh được khai báo trong CSS nên sau khi save thì Web mẫu sẽ không được như nguyên trạng nữa. Ngoài ra, trong quá trình Save, trình duyệt sẽ bố trí lại cấu trúc file và gom lại thành trong thư mục tinhte_files (nếu save trang web với tên tinhte.htm). Trong khi đó đường dẫn đến hình ảnh trong các file CSS vẫn như cũ, chính vì vậy các trang Web save lại từ trình duyệt thường bị sai lệch với trang gốc, đặc biệt các Website sử dụng CSS nhiều thậm chí còn trắng bóc và còn toàn text thôi. - Bạn cần phục hồi nguyên trạng Web mẫu trước khi thực hiện bước tiếp theo, đơn giản là mở các file .css trong thư mục tinhte_files về, tải bổ sung các hình ảnh thiếu và chỉnh lại đường dẫn cho đúng.  Bóc các thành phần cần thiết để xây dựng theme Hƣớng dẫn chung Sau khi có được template ưng ý, việc tiếp theo là xóa các thành phần dư thừa để việc chuyển sang code theme cho NukeViet được đơn giản nhất. Các thành phần cơ bản của một theme NukeViet cần mà bạn phải giữ lại từ template mẫu gồm: - Phần đầu trang (header): bao gồm banner và menu ngang (nếu có). Phần đầu trang thường bắt đầu đầu tiên trang web và giới hạn đến hết menu ngang hoặc hết phần được lặp lại giống ở đầu tất cả các trang web. - Phần cuối trang (footer): Bao gồm menu ngang, phần trình bày các thông tin về bản quyền Phần cuối trang thường bắt đầu từ menu ngang dưới cho đến hết trang web. Footer cũng được lặp lại ở tất cả các trang con của website. - Phần block trái - Phàn block phải - Phần block giữa hoặc thể hiện một mục nào đó ở giữa trang (cái này có thể gopjp chung hoặc tách riêng). 70
  79. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Ví dụ thực hành - Dùng Dreamweaver mở file tinhte.htm - Chuyển cửa sổ thiết kế sang chế độ Split (chế độ kết hợp giữa thiết kế đồ họa trực quan với cửa sổ code). Xem hình 4.3.4.2a Hình 4.3.4.1 Giao diện chế độ Split trong Dreamweaver - Làm sạch code thừ: + Công đoạn này nhằm loại bỏ các thành phần code trùng lặp, loại bỏ các nội dung chữ và hình bài viết, mục đích là giữ lại phần khung chính sẽ kiến tạo nên theme. Ở công đoạn này, bạn phải vận dụng các kiến thức ôgnr quát về cấu trúc phần trang của web, code HTML và kỹ năng sử dụng phần mềm Dreamweaver. + Để xác định các thành phần của Template, đâu là phần cần giữ lại, cái gì cần cắt bớt, cái gì cần loại bỏ bạn sẽ phải sử dụng đến hiểu biết về cấu tạo các thành phần trong của NukeViet. + Trong chế độ Split của Dreamweaver, khi bạn đặt dấu nhắc chuột vào một vị trí tại phần đồ họa trên Web, thẻ code bao bọc nó gần nhất sẽ được chiếu sáng, các thẻ HTML lớp ngoài cũng được liệt kê giúp bạn phân biệt đoạn code trên nằm ở vị trí nào trên trang Web. (Đây cũng là một cách hay để tự tìm hiểu cấu trúc HTML). Nhờ tính năng này của Dreamweaver kết hợp với phán đoán các thành phần tương ứng với theme của NukeViet bạn có thể bóc tách chúng dễ dàng. - Sau đây là các thao tác căn bản tôi sử dụng đẻ bóc theme này và tôi chỉ lấy phần header, footer và css lại phần main theo cách thức riêng Nguyễn Văn Thịnh – CT1301 71
  80. + Xác định phần header của website Trên cửa sổ Dreamweaver mở file tinhte.htm. Nhấp chuột vào logo website tại cửa sổ đồ họa, ta sẽ thấy thẻ img của logo. Hình 4.3.4.2 Code và logo website. Từ logo sẽ thấy được toàn bộ code phần header, tôi lấy phần header và đư nó sang theme gốc copy từ theme modern chèn vào file header.tp trong thư mục layout. Tôi thêm thẻ để tách phần menu ngang mặc định và chèn thêm các mã class mới theo ý tưởng riêng. Cuối cùng thì tôi được phần header như mong muốn. Hình 4.3.4.3 Giao diện phần header + Xác định phần footer của website Phần footer tôi làm tương tự như header nhưng tôi sẽ tìm đoạn code trong template về footer chứ không phải header, và chèn thêm vị trí block vào footer. Sau khi chèn tôi được footer với sự kết hợp của css. Hình 4.3.4.4 Giao diện phần footer + Xác định phần main của website Phần main tôi tiến hành viết css thêm vào theme mới để đổ bóng, bo tròn xung quanh. + Xác định sitelink 72
  81. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Phần này tôi chỉnh sửa và đặt lại vị trí phù hợp bằng cách tôi di chuyển từ header.tpl sang detail.tpl trong module news và tiến hành code thêm css và html. Hình 4.3.4.5 Giao diện sitelink + Tiếp tục tin chỉnh các vị trí trên site sao cho ưng ý  Xử lý phần hình ảnh + Gom những hình mà bạn sử dụng cho theme vào trong thư mục images, thư mục này đặt nằm ngang hàng với file tinhte.htm + Đừng quên sửa lại đường dẫn hình cho đúng.  Xử lý CSS của template + Nếu muốn viết CSS chuẩn, gọn thì bạn phải có kiến thức nhất định về CSS. Thông thường CSS của các Website dựng lại sẽ chứa nhiều code thừa, bạn cần loại bỏ nó. Nếu CSS được chứa ở nhiều file, hãy gom nó lại trong một file duy nhất và đặt tên là style.css. đặt file này vào trong thư mục style, thư mục này đặt nằm ngang hàng với file tinhte.htm. + Đừng quên sửa lại đường dẫn từ file tinhte.htm tới file style.css và từ style.css tới các file ảnh cho đúng. Sau một loạt các thao tác cách thức thì tôi được 1 website hoàn chỉnh sau khi đã nhúng thêm vị trí và thêm bớt sửa xóa kéo thả block Nguyễn Văn Thịnh – CT1301 73
  82. Demo trang tin tức Đại học dân lập Hải Phòng: Hình 4.3.4.6 Demo websie hpu 74
  83. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng KẾT LUẬN Đề tài “Thiết kế và chỉnh sửa giao diện cho website sử dụng hệ quản trị nội dung NukeViet” là một đề tài đang được quan tâm nhiều trong thời gian này do mã nguồn mở NukeViet phát triển rất mạnh mẽ. Trong quá trình khảo sát và tìm hiểu để phân tích đề tài này dưới sự chỉ dẫn của giảng viên Th.S Đỗ Văn Chiểu, em đã hiểu được phần nào và thấy được các công việc cần phải làm để thiết kế giao diện cho website sử dụng hệ quản trị nội dung NukeViet. Tuy gặp phải nhiều khó khăn nhưng em đã cố gắng để hoàn thành giao diện website sau: - Thiết kế giao diện cho NukeViet - Chỉnh sửa giao diện website - Giao diện chạy thử nghiệm trên website trên localhost Giao diện được xây dựng trên giao diện gốc modern đảm bảo được những tính năng từ giao diện gốc. Mặc dù đã cố gắng rất nhiều trong quá trình khảo sát tìm hiểu thiết kế giao diện, nhưng sẽ không tránh khỏi những thiếu sót. Vì vậy em mong quý thầy cô cũng như những ai quan tama đến đề tài này chỉ dẫn và góp ý kiến cho em, để em hoàn thiện giao diện một cách đầy đủ. Nguyễn Văn Thịnh – CT1301 75
  84. CÁC TÀI LIỆU THAM KHẢO [1] wiki.nukeviet.vn. [2] nukeviet.vn [3] zwebz.com. [4] forum.nukeviet.vn. [5] cione.com.vn. [6] sinhvienit.net [7] s3schools.com [8] jquery.com [9] github.com [10] Kỹ Thuật Và Thủ Thuật Lập Trình PHP, Th.S Nguyễn – Lương Phúc và nhóm tin học thực dụng, NXB Hồng Đức (11/2011). [11] Tạo Website Hướng Database Bằng PHP&MySQL, VN-GUIDE (Tổng hợp và biên dịch), NXB Thống Kê (12/2009). [12] Sổ Tay PHP & MySQL, Nguyễn Trường Sinh chủ biên, NXB Lao Động – Xã Hội (2/2006). [13] Tự Học Nhanh Ngôn Ngữ Lập Trình Web PHP 5 (Cho Người Mới Bắt Đầu Từ Căn Bản Đến Nâng Cao), KS.Nguyễn Nam Thuận, NXB Giao Thông Vận Tải (5/2005). [14] Thiết Kế Web Động Với PHP5 (Tái Bản Lần 3), Steven Holzner (Tác giả) – Gia Việt (Biên dịch), NXB Thống Kê (1/2006). [15] Giáo Trình - Lập Trình Ứng Dụng Web Với PHP (Tập 1, Tập 2), Khuất Thùy Dương, NXB Đại Học Quốc Gia TP.HCM (9/2008). 76