mở đầu tiên tại Việt Nam 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 với bản thử nghiệm đầu tiên - NukeViet 3 Closebeta. Bản chính thức NukeViet 3.0 Official version phát hành online. Năm 2011, NukeViet đã cho ra mắt hàng loạt các phiên bản và ứng dụng nhƣ: 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, Phiên bản NukeViet 3.2, cung cấp dịch vụ OpenID trên website nukeviet.vn, 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 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.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 dụng dành cho web, chuyển đổi kho code từ Google code (sử dụng SVN) sang Github (sử dụng git). Đầu năm 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. Nguyễn Quang Thao – CT1301 11 Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng 1. Các phiên bản của Nukeviet NukeViet 1.
Phiên bản thế hệ 1: Phiên bản đầu tiên của NukeViet là phiên bản NukeViet 1.0) có nguồn gốc từ PHP-Nuke 6. Các phiên bản tiếp theo có dạng 1.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. 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.0 beta: (ngày 27 tháng 01 năm 2007) - Phần nhân của NukeViet 2.0 beta đƣợc viết lại rất nhiều. - Có nhiều lớp bảo mật tốt hơn, tối ƣu kết nối vào cơ sở dữ liệu , một số tính năng đƣợc cải tiến hơn so với NukeViet 1.
- Phiên bản chính thức: NukeViet RC: - NukeViet 2. - Dòng phiên bản chuyên nghiệp:NukeViet 3 xây dựng mới 100%: - 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. 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 Quang Thao – CT1301 12 Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng 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.1: Mô hình cấu trúc hệ thống NukeViet 3.0 Nguyễn Quang Thao – CT1301 13 Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng 1. Các khái niệm cơ bản trong hệ thống Nukeviet 1. Khái niệm module Module 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 nhiệm 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). 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 http://nukeviet.vn để cài lên hệ thống hoặc gỡ bỏ nó khỏi hệ thống. 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).
Khái niệm Block Block (khối) là các khối 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 block 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 Block 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 hiện hỗ trợ 4 loại block bao gồm: § Block dạng file: Block dạng tệp tin cũng có 2 kiểu là Block sử dụng chung cho toàn bộ website (Global block) và block sử dụng riêng cho module (module block). 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. § 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 Template (mẫu trình bày giao diện) khác nhau tùy vào theme sử dụng. Khái niệm theme Theme (hay còn gọi là skin, template…) là khái niệm của NukeViet dùng để gọi các giao diện. Nguyễn Quang Thao – CT1301 14 Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng 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 sẽ 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à 2 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. 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 độ 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. Mỗi giao diện có thể có nhiều kiểu bố trí (layout) khác nhau. Bố trí này có thể khác nhau cho từng module và từng chức năng của module. Việc thiết lập layout nên đƣợc làm ngay sau khi cài giao diện và cần đƣợc làm trƣớc khi kích hoạt giao diện.
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ĩa sẵn trong các tệp tin ngôn ngữ. Nguyễn Quang Thao – CT1301 15 Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng Hình 1.2: Ngôn ngữ giao diện trong nukeviet 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.3: Ngôn ngữ data NukeViet phải phân biệt 2 khái niệm này do phƣơng pháp xử lý đa ngôn ngữ của NukeViet là giải pháp toàn vẹn cho phép mỗi ngôn ngữ có thể độc lập hoàn toàn hoặc phụ thuộc 1 phần vào ngôn ngữ kia tùy theo ý đồ của ngƣời thiết kế module. Đây chính là một thế mạnh về ngôn ngữ của NukeViet.
Nguyễn Quang Thao – CT1301 16 Đồ án tốt nghiệp Trƣờng ĐHDL Hải Phòng 1. Ƣu nhƣợc điểm của Nukeviet 1. Ƣu điểm của Nukeviet. - Là một hệ thống mã nguồn mở.
- Nukeviet tạo điều kiện thuận lợi cho ngƣời dùng, đặc biệt là đối với ngƣời dùng không có kiến thức chuyên sâu về lập trình. - Nhiều Theme đƣợc xây dựng cung cấp miễn phí cho ngƣời dùng, việc sử dụng Theme đơn giản tạo điều kiện xây dựng website bắt mắt. - Giao diện quản trị hiện đại, với cấu trúc rõ ràng, việc cài đặt các modul khá đơn giản. - Hỗ trợ việc xây dựng Site đa ngôn ngữ.
- Tùy biến site bằng Block. - Hệ thống quản lý ngƣời dùng. - Hệ thống ổn định và an toàn (Stable and Security). - Quản lý cơ sở dữ liệu 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ố.
- Kiểm soát lỗi tự động và báo lỗi thông minh. - Hệ thống dễ dàng mở rộng và nâng cấp đồng thời đáp ứng đƣợc một lƣợng truy cập lớn. - Tối ƣu hóa cho công cụ tìm kiếm (SEO).