GIỚI THIỆU VỀ PHẦN MỀM NGUỒN MỞ, PHẦN MỀM NGUỒN MỞ
Khái niệm phần mềm nguồn mở
Phần mềm nguồn mở (Open source software) là phần mềm được phát triển và cung cấp miễn phí, cho phép người dùng không chỉ sử dụng mà còn tải về mã nguồn để tùy chỉnh, cải tiến Người dùng có quyền truy cập, chỉnh sửa, sao chép và phân phối các phiên bản khác nhau của mã nguồn, từ đó mở rộng và đáp ứng nhu cầu công việc của mình.
Phần mềm nguồn mở mang lại nhiều tiện ích, bao gồm quyền tự do sử dụng cho mọi mục đích, quyền nghiên cứu cấu trúc chương trình, và khả năng chỉnh sửa để phù hợp với nhu cầu người dùng Ngoài ra, người dùng còn có quyền truy cập vào mã nguồn, phân phối lại các phiên bản cho cộng đồng, cải tiến chương trình và phát hành những bản cải tiến vì lợi ích công cộ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 vẫn giữ bản quyền phần mềm, nhưng cho phép người dùng nhiều quyền hạn, bao gồm quyền tìm hiểu, phát triển, công bố và khai thác thương mại sản phẩm.
Tác giả áp dụng luật bản quyền để bảo vệ quyền lợi của mình và ngăn chặn vi phạm đối với tất cả người dùng, đặc biệt là trong các phần mềm sử dụng mã nguồn mở Một đặc điểm quan trọng của giấy phép GPL là hiệu ứng lan truyền, khiến mọi phần mềm sử dụng mã nguồn GPL cũng phải tuân theo điều kiện GPL Điều này có nghĩa là bất kỳ tác giả nào sử dụng ngay cả một phần nhỏ mã nguồn GPL trong sản phẩm của mình đều phải công bố dưới giấy phép 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:
- Đƣợc tự do tái phân phối
- 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
- 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.
Phân loại phần mềm nguồn mở
Application: Là các loại phần mềm ứng dụng
Hệ điều hành: Linux, Free BSD
Phần mềm văn phòng: Open Office
Công cụ lập trình: KDeveloper, Eclipse
Framework phần mềm là một tập hợp các gói phần mềm cung cấp những chức năng phổ biến trong lập trình, giúp lập trình viên viết phần mềm hiệu quả hơn mà không cần phải viết lại mã cho những vấn đề đã được giải quyết trước đó.
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 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 với bạn bè
Có nhiều chọn lựa, không bị phụ thuộc vào một công ty nào: Các định dạng tệp tin không hoàn toàn bị kiểm soát
Hầu hết các sản phẩm phần mềm nguồn mở đều có tính năng bảo mật tốt
Có một cộng đồng hỗ trợ lớn, giúp việc cập nhật những lỗ hổng một cách nhanh chóng
Có nhiều phần mềm đa dạng
Giới thiệu về 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ó nhiều loại mã nguồn mở đa dạng, mỗi loại phục vụ cho những ứng dụng riêng biệt Dưới đây là một số loại mã nguồn mở phổ biến được sử dụng rộng rãi.
Ubuntu là hệ điều hành mã nguồn mở, phù hợp cho máy tính xách tay, máy tính để bàn và máy chủ Hệ điều hành này cung cấp đầy đủ các ứng dụng cần thiết cho công việc tại nhà, trường học và văn phòng.
Vbulletin là một mã nguồn mở phổ biến cho việc xây dựng các diễn đàn trực tuyến, được sử dụng rộng rãi hiện nay Nhiều diễn đàn lớn tại Việt Nam đều được phát triển dựa trên nền tảng Vbulletin.
Apache Tomcat là một hệ thống mã nguồn mở do Apache Software phát triển, có khả năng xử lý lượng lớn yêu cầu từ ứng dụng web trực tuyến và các gói dữ liệu giữa server-client Hệ thống này cho phép tùy biến linh hoạt theo nhu cầu và quy mô của từng tổ chức, doanh nghiệp.
- Linux là một hệ điều hành mã nguồn mở dạng Unix đƣợc xây dựng bởi
Linus Torvalds đã phát triển Linux, một hệ điều hành hiện đại với đầy đủ các tính năng như 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 mô-đun driver thiết bị, video frame buffering và mạng TCP/IP.
Open Office là một phần mềm mã nguồn mở thay thế cho Microsoft Office, nổi bật với dung lượng nhỏ gọn và khả năng tương thích với các định dạng của Microsoft Office, mặc dù chưa thân thiện bằng.
NukeViet là một hệ quản trị nội dung mã nguồn mở, được sử dụng để thiết kế nhiều loại trang web, bao gồm cổng thông tin điện tử, website doanh nghiệp, báo điện tử, tạp chí điện tử, cũng như các website cho doanh nghiệp vừa và nhỏ, cơ quan, tổ chức phi chính phủ, trường học, và cả website cá nhân hoặc gia đình.
Greenstone là phần mềm hỗ trợ xây dựng và phân phối bộ sưu tập thư viện số, giúp người dùng, đặc biệt là các trường đại học, thư viện và trụ sở công cộng, tạo ra thư viện số riêng của mình.
Ngoài ra còn rất nhiều loại mã nguồn mở khác nhƣ: Eclipse, Webwork, WebGUI, OpenCMS, Fedora…
Phần Mềm Nguồn Mở Nukeviet
NukeViet là phần mềm quản lý website, cổng thông tin điện tử, báo điện tử và hệ thống thương mại điện tử, giúp vận hành mạng xã hội và đáp ứng hầu hết các nhu cầu làm việc trực tuyến khác trên máy chủ Web.
Phiên bản NukeViet CMS, được phát hành theo giấy phép phần mềm tự do nguồn mở, bao gồm hai phần chính: phần nhân (core) của hệ thống NukeViet và nhóm chức năng quản trị nội dung của CMS.
Năm 2004, Nguyễn Anh Tú, một lưu học sinh Việt Nam tại Nga, đã cải tiến sản phẩm PHP - Nuke thành NukeViet cùng với cộng đồng Việt hóa, tạo ra một ứng dụng thuần Việt cho người Việt xa xứ NukeViet đã được phát triển liên tục và trở thành một giải pháp website hiệu quả.
Đến phiên bản 3.0, NukeViet đã tách khỏi ảnh hưởng của PHP-Nuke, phát triển thành một ứng dụng độc lập Phiên bản này đạt tiêu chuẩn xHTML 1.0 và CSS 2.1, đồng thời hỗ trợ Ajax từ trong bộ nhân Được viết bằng PHP và sử dụng MySQL làm cơ sở dữ liệu chính, NukeViet cho phép người dùng dễ dàng xuất bản và quản lý nội dung trên Internet.
NukeViet tiếp tục áp dụng các khái niệm Module, Block và Theme trong hệ thống của mình, mặc dù đội ngũ phát triển đã hoàn toàn cải tiến cấu trúc và công nghệ.
1.5.2 Lịch sử phát triển của Nukeviet
Phần mềm NukeViet được phát triển bởi Nguyễn Anh Tú trên nền tảng PHP-Nuke cho website cộng đồng người Việt xa xứ xunguoi.com Đến cuối năm 2004, cùng với sự tham gia của một số thành viên, phiên bản NukeViet 1.0 beta 1 đã chính thức ra mắt Tuy nhiên, vào đầu năm 2005, website xunguoi.com đã ngừng hoạt động.
Năm 2005, diễn đàn của NukeViet Group được mở cửa trở lại nhưng không lâu sau lại phải ngừng hoạt động vì nhiều lý do Để phát triển bền vững, NukeViet Group đã thành lập công ty Ấn Tượng Nét Tại thời điểm này, NukeViet đã phát triển một cách tự phát trong cộng đồng.
Ngày 18-05-2006, NukeViet Group tuyên bố chính thức hỗ trợ trở lại NukeViet
NukeViet Group đã tan rã vào ngày 04-12-2006 do bất đồng chính kiến Trưởng nhóm 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ỉ http://lavieportal.com Vào ngày 12-12-2006, mã nguồn mở NukeViet được đổi tên thành LaVie Portal.
Năm 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 hai bộ mã nguồn khác nhau Ngay sau đó, NukeViet beta 2b được ra mắt, và bản NukeViet 2.0 final đã được định hình và giới thiệu rộng rãi Mặc dù 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, nhưng phiên bản này không được phát triển tiếp Đến tháng 10 năm 2007, tác giả NukeViet đã trở lại để tiếp tục phát triển và hỗ trợ người dùng tại http://nukeviet.vn.
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
Năm 2010, NukeViet chính thức chuyển mình sang giai đoạn chuyên nghiệp hóa với sự ra mắt của Công ty cổ phần Phát triển nguồn mở Việt Nam (VINADES.,JSC), công ty mã nguồn mở đầu tiên tại Việt Nam Vào ngày 22 tháng 3 năm 2010, NukeViet công bố dự án NukeViet 3, khởi đầu với bản thử nghiệm NukeViet 3 Closebeta Đến ngày 20 tháng 10 năm 2010, phiên bản chính thức NukeViet 3.0 đã được phát hành trực tuyến.
Năm 2011, NukeViet đã ra mắt nhiều phiên bản và ứng dụng quan trọng, bao gồm NukeViet 3.1 với Module Shop 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 3.2 cung cấp dịch vụ OpenID trên website nukeviet.vn, và phiên bản 3.3 chính thức hỗ trợ giao diện di động Đặc biệt, vào ngày 20-11-2011, NukeViet đã giành giải Ba Nhân tài Đất Việt 2011 trong lĩnh vực Công nghệ thông tin.
Vào năm 2012, NukeViet 3.4 được ra mắt với nhiều tính năng mới, hỗ trợ toàn diện cho thiết bị di động và ứng dụng web, đồng thời chuyển đổi kho code từ Google Code (SVN) sang Github (git) Đầu năm 2013, VINADES, công ty chủ quản, đã tổ chức Hội nghị người dùng và nhà phát triển NukeViet 2013, đánh dấu một bước phát triển mới cho cộng đồng NukeViet.
1.5.3 Các phiên bản của Nukeviet
NukeViet 1.0 Phiên bản thế hệ 1:
Phiên bản đầu tiên của NukeViet, NukeViet 1.0 (hay NukeViet 1.0.0), được phát triển dựa trên nền tảng PHP-Nuke 6.5 Các phiên bản tiếp theo mang định dạng 1.0.x chủ yếu là các bản vá lỗi, do đó thường được gọi chung là NukeViet 1.0.
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)
- 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.0
- Phiên bản chính thức: NukeViet RC:
- 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 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
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", là phần chứa các thư viện và module vận hành hệ thống Sự cố ở bất kỳ thành phần nào trong tầng này có thể ảnh hưởng đến một phần hoặc toàn bộ hệ thống Mặc dù chỉ chiếm 10% dung lượng và dòng code của NukeViet, nhưng tầng nền tảng lại đượ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
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:
Các khái niệm cơ bản trong hệ thống Nukeviet
Module, còn được gọi là Addons hay Plugins, là các phần mở rộng cho hệ thống NukeViet, mỗi module đảm nhận một chức năng riêng biệt Tùy thuộc vào nhiệm vụ của từng module, chúng có thể thực hiện các tác vụ nền cho hệ thống hoặc chỉ tương tác bề ngoài với người sử dụng, phản ánh mức độ can thiệp vào hệ thống.
Hệ thống NukeViet đi kèm với một số module mặc định, và người dùng có khả năng cài đặt thêm các module mới từ trang web http://nukeviet.vn Ngoài ra, người dùng cũng có thể gỡ bỏ các module không cần thiết 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)
Block là những phần tử nhỏ trên website, giúp tăng tính đa dạng cho nội dung trang và trang trí giao diện Người dùng có thể dễ dàng bật, tắt hoặc di chuyển các block đến vị trí mong muốn, theo thiết kế đã được chỉ định trong quá trình tạo giao diện web.
Các Block giúp làm cho nội dung website trở nên đa dạng và phong phú hơn, giúp khách truy cập dễ dàng nắm bắt thông tin và nhanh chóng tìm đến các 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
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
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 NukeViet là giải pháp hoàn hảo để dễ dàng thay đổi giao diện website Với thiết kế mỹ thuật độc đáo, theme này cho phép website được trình bày theo nhiều bố cục khác nhau, giúp tránh sự nhàm chán và mang lại trải nghiệm mới mẻ cho người dùng.
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 hệ thống, hai theme default và admin_default, cung cấp các thành phần mặc định cho các giao diện khác không hỗ trợ Do đó, việc đổi tên hoặc chỉnh sửa hai theme này là điều tuyệt đối không nên thực hiện.
Hệ thống NukeViet cung cấp khả năng quản lý giao diện ở ba cấp độ khác nhau: toàn bộ website với giao diện mặc định, giao diện cho từng module, và kiểu bài trí giao diện cho từng chức năng của module.
NukeViet không chỉ hỗ trợ mỗi module với giao diện riêng mà còn cho phép từng chức năng sử dụng layout độc lập Hệ thống này cho phép tùy biến các block cho từng chức năng, mang đến sự linh hoạt tối ưu Quản lý giao diện trên NukeViet trở nên dễ dàng và trực quan nhờ tính năng "kéo và thả" bằng chuột.
Mỗi giao diện có thể có nhiều kiểu bố trí khác nhau cho từng module và chức năng của nó Việc thiết lập layout nên được thực hiện ngay sau khi cài đặt giao diện và trước khi kích hoạt nó.
1.6.4 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ữ
Hình 1.2: Ngôn ngữ giao diện trong nukeviet
Ngôn ngữ cơ sở dữ liệu bao gồm các dữ liệu được người dùng nhập vào cho nhiều ngôn ngữ khác nhau, phục vụ cho việc xây dựng các trang ngôn ngữ đa dạng.
NukeViet cần phân biệt hai khái niệm về phương pháp xử lý đa ngôn ngữ, cho phép mỗi ngôn ngữ hoạt động độc lập hoặc phụ thuộc một phần vào ngôn ngữ khác, tùy theo ý đồ của người thiết kế module Đây là một trong những thế mạnh nổi bật của NukeViet trong việc hỗ trợ đa ngôn ngữ.
1.7 Ƣu nhƣợc đ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 cho phép tối ưu hóa, sao lưu trên máy chủ và tải dữ liệu về, nhằm phục vụ cho việc phục hồi hiệu quả khi 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)
- NukeViet hỗ trợ cho phép người dùng đang nhập bằng mail ngoài như : yahoo, facebook, gmail…
- Trình soạn thảo tích hợp sẵn: Spaw2, FCKeditor, Ckeditor, TiniMCE
- Được hỗ trợ bởi một cộng đồng người dùng đông đảo
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
- Ít block, module, theme vì cộng đồng phát triển chƣa thực sự nhiều
Nukeviet đáp ứng các đặc tính của một ứng dụng Web 2.0:
- Hệ thống Nukeviet có thể chạy đƣợc nhiều nền khác nhau IIS hoặc Apache
Hệ điều hành Window 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)
- 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 tòa soạn báo đ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 là giải pháp hoàn hảo cho các website thương mại điện tử, cho phép hoạt động bán hàng trực tuyến hiệu quả Người dùng có thể dễ dàng cài đặt module Shop trên nền tảng NukeViet CMS để tận dụng các tính năng ưu việt của nó.
1.9 Các website ứng dụng Nukeviet
Ứng dụng của Nukeviet
Nukeviet đáp ứng các đặc tính của một ứng dụng Web 2.0:
- Hệ thống Nukeviet có thể chạy đƣợc nhiều nền khác nhau IIS hoặc Apache
Hệ điều hành Window 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)
- 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 tòa soạn báo đ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 là giải pháp hoàn hảo cho các website thương mại điện tử, cho phép người dùng thực hiện hoạt động bán hàng trực tuyến dễ dàng Hiện nay, người dùng có thể sử dụng NukeViet Shop bằng cách cài đặt bổ sung module Shop lên hệ thống quản trị nội dung NukeViet CMS.
Các website ứng dụng Nukeviet
Trước phiên bản 3.0, NukeViet chủ yếu phục vụ người dùng Việt Nam do mã nguồn PHP-Nuke và chính sách phát triển tập trung vào "hệ thống Portal dành cho người Việt" Tuy nhiên, từ phiên bản 3.0 trở đi, đội ngũ phát triển đã hướng tới việc mở rộng NukeViet ra thị trường quốc tế.
- Các tập đoàn kinh tế, Ví dụ: http://mekongnet.ru Trang tin của tập đoàn MeKong - NukeViet 2.0
- Giải trí trực tuyến, văn hóa, nghệ thuật Ví dụ: http://cailuongvietnam.com- Cải Lương Việt Nam - NukeViet 2.0, http://vannghesongcuulong.org.vn - Văn nghệ Sông Cửu Long - NukeViet 2.0
- Báo điện tử, tạp chí điện tử Ví dụ: http://nguoihanoi.com.vn- Báo Người Hà Nội - NukeViet 2.0
- Website của các doanh nghiệp vừa và nhỏ Ví dụ: http://saomaibt.com- Công ty TNHH Thương mại - Dịch vụ du lịch Sao Mai - NukeViet 2.0
- Website của các cơ quan, tổ chức phi chính phủ Ví dụ: http://aoxanh.net-Vietnam Volunteer Network - NukeViet 2.0
- Website các trường học Ví dụ:
- http://tuaf.edu.vn- Website Trường Đại Học Nông Lâm Thái Nguyên -
NukeViet 2.0 http://thptquangtrung.com- Trường THPT Quang Trung - NukeViet 3.2
Website cho gia đình, cá nhân và nhóm sở thích là những nền tảng quan trọng để chia sẻ thông tin và kết nối cộng đồng Ví dụ như trang web http://congnghedaukhi.com, nơi tập trung vào cộng đồng Dầu khí, hay http://dulichcualo.com.vn, giới thiệu về khu du lịch Cửa Lò - Nghệ An Một ví dụ khác là http://autovina.vn, nơi khám phá thế giới xe Việt Những trang web này đều được xây dựng trên nền tảng NukeViet 2.0, mang đến trải nghiệm người dùng tốt và dễ dàng quản lý nội dung.
Ngoài việc phát triển các ứng dụng website, NukeViet còn được ứng dụng rộng rãi trong nhiều phần mềm khác nhau như phần mềm quản lý kho hàng, phần mềm bán hàng, phần mềm quản lý quán BI-A giúp điều khiển điện đèn, phần mềm tòa soạn điện tử, phần mềm quản lý hồ sơ, quản lý nhân sự trực tuyến, và phần mềm tra cứu điểm thi hỗ trợ SMS.
CÁCH THỨC CÀI ĐẶT NUKEVIET, QUẢN TRỊ MODULE
Cài đặt WebServer Xampp để chạy Nukeviet
2.1.1 Các phần mềm yêu cầu
(http://www.filehorse.com/download-xampp/)
- Bộ mã nguồn mở NukeViet
(http://nukeviet.vn/vi/download/ma-nguon/NukeViet-3-4-02-r1929/)
2.1.2 Các bước tiến hành cài đặt
To download the latest version of XAMPP for Windows, visit the official Apache homepage The current version available is 1.8.3, and you should select the Installer option For direct access, you can also go to http://www.filehorse.com/download-xampp/.
After downloading, double-click on the file xampp-win32-1.8.3-1-VC11-installer.exe to install XAMPP Select English as the language and click OK to proceed.
Click Next để tiếp tục
Tiếp đến ta chọn các dịch vụ kèm theo với XAMPP, click Next để tiếp tục
Hình 2.3 : Các gói cài đặt của xampp
Mặc định XAMPP sẽ được cài đặt vào ổ C theo đường dẫn C:\xampp Click Install để XAMPP tiến hành cài đặt:
Hình 2.4 : Đường dẫn đặt thư mục xampp
Màn hình hiển thị tiến độ cài đặt hiện ra:
Hình 2.5 : Quá trình cài đặt xampp
Quá trình cài đặt XAMPP kết thúc, ta click vào nút Finish để hoàn tất:
Hình 2.6 : Quá trình cài đặt xampp hoàn thành
Bước 3: Sử dụng và quản trị XAMPP
Sau khi hoàn tất cài đặt, biểu tượng XAMPP sẽ xuất hiện trên khay hệ thống (system tray) Nhấn vào biểu tượng này để mở cửa sổ XAMPP Control Panel Tiếp theo, hãy nhấn nút "Start" tương ứng với dịch vụ Apache và MySQL để khởi động hai dịch vụ này.
Hình 2.7 : Bảng điều khiển của xampp
Cài đặt NukeViet
Chuẩn bị cho việc cài đặt NukeViet :
Ta tạo sẵn database cho NukeViet để thuận tiện cho quá trình cài đặt
Vào http://localhost/phpmyadmin/ từ trình duyệt web
Hình 2.8: Cở sở dữ liệu của xampp
3: Nhấn Creat để hoàn thành
Hình 2.9 : Tạo cơ sở dữ liệu
- Giải nén bộ mã nguồn mở NukeViet và copy vào thƣ mục htdocs của xampp : C:\xampp\htdocs\nukeviet
- Tiến hành cài đặt NukeViet:
Trên trình duyệt web ta vào địa chỉhttp://localhost/nukeviet/
Quá trình cài đặt mới 1 website sử dụng NukeViet sẽ qua 07 bước như sau:
- Bước 1: Lựa chọn ngôn ngữ
Khi cài đặt, ngôn ngữ mặc định là tiếng Việt, nhưng người dùng có thể chọn tiếng Anh Sau khi chọn ngôn ngữ, nhấn nút “Bước kế tiếp” để tiếp tục.
Hình 2.10 : Chọn ngôn ngữ cài đặt
- Bước 2: Kiểm tra việc CHMOD
Nếu tất cả các thông số đều đạt yêu cầu như trên,ta có thể chuyển qua bước kế tiếp bằng cách nhấp nút “Bước kế tiếp”
Khi gặp lỗi, hệ thống sẽ yêu cầu bạn thực hiện CHMOD cho thư mục hoặc tập tin cần thiết Bạn có thể nhập thông tin tài khoản FTP của máy chủ trong phần "Cấu hình FTP" Nếu máy chủ hỗ trợ CHMOD qua PHP, hệ thống sẽ tự động thực hiện CHMOD cho các thư mục và tập tin sau khi bạn điền đầy đủ thông tin và nhấn nút "Thực hiện" Nếu không, bạn sẽ cần phải thực hiện CHMOD bằng tay.
Sau khi hoàn thành quá trình CHMOD ta có thể nhấn vào nút “Bước kế tiếp” để chuyển qua bước tiếp theo
Hình 2.12 : Thông tin bản quyền của Nukeviet
Phần mềm sẽ cung cấp thông tin bản quyền liên quan đến phần mềm nguồn mở theo giấy phép GNU/GPL, đồng thời giải thích rõ ràng các điều khoản cho phép và không cho phép Để tiếp tục, hãy nhấn nút “Bước kế tiếp”.
- Bước 4: Kiểm tra máy chủ
Để cài đặt hệ thống NukeViet, máy chủ cần hỗ trợ PHP phiên bản 5.2.0 và MySQL 5.02 trở lên; nếu không, quá trình cài đặt sẽ không thể tiếp tục Hệ thống cũng đưa ra các khuyến cáo về những tính năng khác của máy chủ Mặc dù bạn có thể cài đặt NukeViet nếu không đáp ứng các yêu cầu bổ sung này, nhưng một số chức năng tiện ích sẽ bị mất.
- Bước 5: Cấu hình cơ sở dữ liệu
Tên cơ sở dữ liệu : nuke
Hình 2.14 : Cấu hình cơ sở dữ liệu của trang web
Tiếp đó ta chọn Thực hiện để sang bước tiếp theo
Để hoàn thành bước này, bạn cần điền đầy đủ thông tin vào các ô được đánh dấu bằng dấu sao (*) Bên cạnh đó, có cột ghi chú giúp bạn hiểu rõ hơn về quá trình nhập thông tin.
Tên site: Đề tài mã nguồn mở NukeViet và ứng dụng
Email: mrthao001@gmail.com Điền mật khẩu và các thông tin cần thiết ta ấn thực hiện
Sau đó là trang báo đã cài đặt thành công bộ mã nguồn mở NukeViet
Hình 2.16 : Quá trình cài đặt thành công website thử nghiệm
Sau khi hoàn tất các bước cài đặt, hệ thống sẽ cung cấp hai lựa chọn: xem trang chủ hoặc đăng nhập vào trang quản trị Để truy cập trang quản trị, người dùng chỉ cần thêm "/admin/" vào địa chỉ cài đặt NukeViet.
Hình 2.17 : Giao diện trang chủ của website
Và giao diện trang quản lí site:
Hình 2.18 : Giao diện trang quản lý website
Khái niệm module
Mô-đun, còn được gọi là Addons hay Plugins, là những phần mở rộng quan trọng của hệ thống NukeViet, cùng với theme, block và cronjob Mỗi mô-đun đảm nhận một chức năng riêng, phục vụ cho việc thực hiện các tác vụ nền hoặc tương tác trực tiếp với người sử dụng, tùy thuộc vào mức độ can thiệp vào hệ thống.
Hình 2.19: Các Module mặc định trong hệ thống NukeViet
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)
Module ảo, được giới thiệu từ phiên bản NukeViet 3.0, cho phép quản lý nhiều cơ sở dữ liệu khác nhau thông qua công nghệ đa nhân module Công nghệ này giúp người dùng tự động khởi tạo hàng ngàn module mà không cần viết mã, mang lại sự tiện lợi và linh hoạt trong việc quản lý nội dung.
Quản trị các Module trong Nukeviet
2.4.1 Quản trị module Tài khoản
Module này cho phép quản lý tập trung toàn bộ hệ thống thành viên của site
Chức năng này cho phép người quản trị tạo thành viên mới
2.4.1.2 Danh sách thành viên đợi kích hoạt
Chức năng này cho phép bạn quản lý các thành viên chƣa đƣợc kích hoạt
Chức năng nhóm thành viên cho phép tổ chức và phân quyền theo nhóm, giúp các hệ thống lớn dễ dàng phân loại thành viên và áp dụng các quy tắc khác nhau cho từng nhóm.
Câu hỏi bảo mật được sử dụng trong trường hợp thành viên quên mật khẩu, muốn hệ thống gửi lại mật khẩu qua email
Có thể sử dụng câu hỏi mặc định của hệ thống hoặc có thể tạo câu hỏi riêng
Là những quy định do quản lý site tự đặt ra buộc những người làm việc hoặc tham gia cơ quan, tổ chức đó phải tuân theo
Trong module Tài khoản, bạn có thể thiết lập các chức năng quan trọng như xem danh sách thành viên, cho phép thành viên đăng nhập, thay đổi email (tên thành viên), và thêm câu hỏi bí mật để tăng cường bảo mật.
2.4.2 Quản trị module Quảng cáo
Chức năng này cho phép quản lý khách hàng đăng quảng cáo trên trang web mà không cần phải là thành viên Khách hàng sẽ được cấp tài khoản riêng để theo dõi các quảng cáo của mình một cách dễ dàng.
Khu vực quản lý danh sách khách hàng của site
Chức năng này cho phép người quản trị tạo thành khách hàng mới
Chức năng này dùng để định dạng các khối quảng cáo, cho phép ta xem chi tiết, sửa lại khối quảng cáo
Tại đây sẽ thêm những khối quảng cáo mới
Chức năng này cho phép quản lý quảng cáo hiệu quả, bao gồm việc xem chi tiết và chỉnh sửa các quảng cáo đã đăng Ngoài ra, người dùng có thể ngừng hoạt động quảng cáo và theo dõi thống kê chi tiết về số lượng người nhấp vào quảng cáo trong một ngày.
Chức năng này cho phép bạn thêm quảng cáo vào website bằng cách định nghĩa các khu vực quảng cáo thông qua các block Khi bạn thêm block quảng cáo vào vị trí thích hợp, quảng cáo sẽ tự động hiển thị tại những khu vực đã được quy định.
Sau khi cài đặt, module download không được thiết lập sẵn, vì vậy bạn cần thiết lập nó trước khi sử dụng Để thực hiện điều này, hãy truy cập vào Bảng điều khiển Quản trị (Admin Control Panel) và chọn Modules, sau đó tiến hành thiết lập module.
Nhấp nút Thiết lập để hệ thống chuyển qua trang thiết lập
Chức năng này dùng để thêm 1 tệp mới Module sẽ yêu cầu bạn thêm chủ đề trước khi làm bất cứ thao tác nào khác
2.4.3.2 Tệp tin chờ kiểm duyệt
Tại đây những tệp tin mới do thành viên gỡi sẽ được chờ kiểm duyệt trước khi đƣợc sử dụng trên site
Cho phép theo dõi các báo lỗi gửi tới
Chức năng này dùng để thêm, chỉnh sửa hay xóa các chủ đề
Cho phép quản lý các bình luận thành viên gửi tới
Chức năng này dùng để thiết lập các chức năng trong module download nhƣ :
- Cho phép thêm tệp tin
- Ai đƣợc thêm tệp tin
- Cho phép upload tệp tin lên server
- Ai đƣợc upload tệp tin
- Loại tệp tin đƣợc cho phép tải lên
- Dung lƣợng tối đa của tệp tin
- Thƣ mục chứa những tệp tin đã đƣợc kiểm duyệt
- Thƣ mục chứa những tệp tin chờ kiểm duyệt
- Ai đƣợc tự động đăng thảo luận
- Hỗ trợ chế độ resume khi download
- Hạn chế tốc độ tải tệp tin
- ZIP tệp tin khi download
- Nội dung tệp tin README.txt kèm theo tệp tin ZIP
2.4.4 Quản trị module Liên hệ Đây là chức năng giúp ta có thể nhận thư phản hồi của người dùng
Chức năng này cho phép thêm, sửa, và xóa các bộ phận tiếp nhận phản hồi từ người dùng, giúp quản lý thông tin hiệu quả hơn và phân quyền thuận tiện hơn.
Nội dung thông báo sẽ hiện ra khi người dùng liên hệ với chúng ta
Sau khi cài đặt, module weblinks không được thiết lập sẵn, vì vậy bạn cần thực hiện việc thiết lập trước khi sử dụng Để làm điều này, hãy truy cập vào Bảng điều khiển quản trị (Admin Control Panel) và vào phần Modules để tiến hành thiết lập module.
Nhấp nút Thiết lập để hệ thống chuyển qua trang thiết lập
Chức năng này dùng để thêm một liên kếtmới Module sẽ yêu cầu bạn thêm chủ đề liên kết trước khi làm bất cứ thao tác nào khác
Chức năng này dùng để quản lý các chủ đề nhƣ: thêm, sửa, xóa các chủ đề liên kết
Chức năng này để quản lý các báo links của các thành viên gửi
Thiết lập các chức năng trong module weblinks nhƣ :
- Chiều rộng của hình liên kết
- Chiều cao của hình liên kết
- Số liên kết trên một trang
- Sắp xếp liên kết theo
- Hiển thị hình ảnh của liên kết
FAQviết đầy đủ là Frequently Asked Questions – Các câu hỏi thường gặp
Chức năng này dùng để thêm, chỉnh sửa hay xóa các chủ đề
Thiết lập hiện trên trang chủ trong module FAQ nhƣ :
- Hiển thị các chủ đề
- Danh sách mới lên trên
- Danh sách cũ lên trên
2.4.7 Quản trị module Thăm dò ý kiến
Module này quản lý các ý biểu quyết, thăm dò
2.4.8 Quản trị module Tin tức
Chức năng này dùng để thêm, chỉnh sửa hay xóa các chuyên mục
Chức năng này để tạo bài viết mới trong phần tin tức của site
Chức năng này quản lý các bình luận của thành viên trong những bài viết thuộc phần tin tức
Chức năng này sẽ tự động thay đổi bài viết ngẫu nhiên
Nhóm tin liên quan cho phép trình bày nhiều bản tin trong một không gian hạn chế, giúp người đọc dễ dàng tiếp cận và hiểu rõ hơn về các sự kiện chuyên biệt khi xem chi tiết một bài viết.
2.4.8.6 Nguồn tin Đây là phần khai báo để đƣa vào bài viết đƣợc trích dẫn từ nguồn nào bao gồm: Tên nguồn và địa chỉ liên kết tới nguồn tin đó Ta có thể thêm nhiều nguồn tin bằng cách nhập đầy đủ thông tin vào phần thêm nguồn tin
Chức năng này dùng để thiết lập các chức năng nhƣ :
- Phương án thể hiện trang chủ
- Kích thước của hình tại trang chủ
- Kích thước của hình tại các block
- Kích thước của hình dưới phần mở đầu bài viết
- Số bài viết đƣợc hiển thị cùng với phần giới thiệu ngắn gọn trên một trang
- Số bài viết chỉ hiển thị link
- Hiển thị phần giới thiệu ngắn gọn khi xem bài viết
- Kích hoạt chức năng bình luận của module
- Tự động đăng thảo luận không cần qua kiểm duyệt
- Thảo luận mặc định khi tạo bài viết mới
- Hiển thị email của người đăng bình luận
- Ảnh upload của module được lưu trữ mặc định theo cấu trúc thư mục
- Logo tại module khi giao diện hỗ trợ thay thế logo
- Cấu hình hiển thị nguồn bài viết tại chi tiết tin
- Nội dung hiển thị nếu bài viết có lựa chọn giữ bản quyền bài viết
XÂY DỰNG THỬ NGHIỆM MODULE QUẢN LÝ HỌC SINH
Yêu cầu hệ thống để xây dựng module
3.1.1 Phần cứng Để chạy đƣợc Nukeviet ta cần phải có một WebServer với Apache, MySQL, PHPl, việc cài đặt và cấu hình WebServer gặp nhiều khó khăn và tốn kém thời gian Hiện nay có nhiều phần mềm cấu hình sẵn và ứng dụng nhƣ một WebServer nhƣ Xampp, Wamp… Nổi trội trong số đó là Xampp với những ƣu điểm vƣợt trội : Nhỏ gọn, tiện lợi, dễ cài đặt và sử dụng, ít lỗi
Xampp là phần mềm được sử dụng để giả lập máy tính thành một máy chủ Web, cho phép người dùng truy cập vào localhost, phân biệt với các máy chủ đang hoạt động trên Internet, được gọi là host Server.
- Hệ điều hành Linux, Ubuntu, MacOS, Windows Server 2003 hoặc Windows XP, Windows 7, Windows 8 có thể chạy được chương trình Web Server
Do điều khuôn khổ của luận án vậy nên khóa luận này sẽ dùng Xampp giả lập máy tình thành một máy chủ web
(http://www.filehorse.com/download-xampp/) Tải bộ mã nguồn mở NukeViet:
(http://nukeviet.vn/vi/download/ma-nguon/NukeViet-3-4-02-r1929/)
Xây dựng thử nghiệm module quản lý học sinh
Module này được phát triển để quản lý thông tin học sinh cho các website của trường học sử dụng hệ thống mã nguồn mở Nukeviet Nó đáp ứng các yêu cầu cơ bản như thêm, sửa, xóa và tìm kiếm thông tin học sinh một cách hiệu quả.
Nguyễn Quang Thao – CT1301 40 đã phát triển module này dựa trên cấu trúc của các module mặc định trong Nukeviet, kết hợp với quy trình hệ thống của Nukeviet để thực hiện thử nghiệm cho module.
Trong khóa luận này sẽ bỏ qua bước phân tích thiết kế hệ thống, trực tiếp thực hiện xây dựng module thử nghiệm
Cấu trúc hệ thống module:
Hình 3.1: Cấu trúc của một module
Tệp tin version.php có vai trò quan trọng trong việc khai báo tiêu đề của module, các hàm chức năng, tác giả của module, thông tin phiên bản, cũng như cấu trúc thư mục trong thư mục uploads.
Tệp tinadmin.functions.php: tệp tin này thường chứa các function, hằng dùng trong admin
The file function.php typically contains functions and constants used for the site The admin/main.php file displays the content of the admin module, while files in the admin directory handle data within the admin area The funcs/main.php file presents the main content of the external module Language files are located in the language directory for both the admin and external modules The themes/admin_default/images/quanly directory contains image files used within the management module, and the themes/admin_default/css/quanly.css file includes CSS declarations for the module Lastly, the themes/admin_default/modules/quanly directory holds template files utilized for the module's functions.
Khi module được kích hoạt, tệp tin admin.functions.php hoặc function.php sẽ được thực thi đầu tiên, tùy thuộc vào nguồn gốc (admin hoặc ngoài site) Sau đó, các tệp tin trong thư mục admin hoặc funcs sẽ tiếp tục được chạy, với tệp tin mặc định là main.php.
Tệp tinversion.php có nội dung:
* @Author Mr Thao (mrthao001@gmail.com)
*/ if (! defined('NV_ADMIN') or ! defined('NV_MAINFILE')) die('Stop!!!');
"author" => "Mr Thao (mrthao001@gmail.com)",
Tên các hàm trong thư mục funcs có khối được sử dụng khi hoạt động bên ngoài trang web Các hàm không có khối, như xử lý AJAX hoặc gửi email (popup), không cần phải khai báo.
"is_sysmod" => 0, : Có phảo module hệ thông hay không 0: không 1: có
Module cho phép ảo hóa với tùy chọn bật hoặc tắt, cùng với thông tin về ngày, tác giả và phiên bản Thư mục uploads_dir được khai báo để xác định cấu trúc thư mục trong thư mục uploads Khi kích hoạt module, hệ thống sẽ tự động tạo một thư mục mang tên module trong thư mục uploads, trong đó tên module được hiểu qua biến $module_name.
Tệp tin admin.functions.php có nội dung nhƣ sau:
* @Author Mr Thao (mrthao001@gmail.com)
*/ if (!defined('NV_ADMIN') or! defined('NV_MAINFILE') or! defined('NV_IS_MODADMIN')) die('Stop!!!');
$allow_func = array('main'); define('NV_IS_FILE_ADMIN', true);
Biến $allow_func là một mảng một chiều chứa các hàm trong thư mục admin được phép chạy Trong ví dụ này, chỉ có hàm main.php được cho phép Các hàm không được khai báo trong biến này sẽ gây ra lỗi khi thực thi.
Bạn không có quyền truy cập vào chức năng này Dòng lệnh define('NV_IS_QUANLY_ADMIN', true); sẽ khởi tạo một hằng số cho module Các hàm trong file main.php sẽ kiểm tra giá trị của hằng số này; nếu đúng, chương trình sẽ tiếp tục thực hiện, ngược lại sẽ hiển thị thông báo lỗi "Stop!!!".
Tệp tin functions.php các bạn thêm nhƣ sau:
* @Author Mr Thao (mrthao001@gmail.com)
*/ if (!defined('NV_SYSTEM')) die('Stop!!!'); define('NV_IS_MOD_QUANLY', true);
Tệp tin main.php trong thƣ mục admin với nội dung nhƣ sau:
* @Author Mr Thao (mrthao001@gmail.com)
*/ if (! defined('NV_IS_FILE_ADMIN')) die('Stop!!!');
$contents = "Xin chào các bạn"; include (NV_ROOTDIR "/includes/header.php"); echo nv_admin_theme($contents); include (NV_ROOTDIR "/includes/footer.php");
Với module đơn giản nhƣ ví dụ này thì tệp tin này chỉ có chức năng tạo một hằng để dùng bên ngoài site thôi
The variable $page_title represents the title of the current functions All content will be stored in the $contents variable and will be displayed after including the header.php file with the command include (NV_ROOTDIR "/includes/header.php"); followed by echo nv_admin_theme($contents); and concluding with the inclusion of the footer.php file.
Tệp tin main.php lưu vào thư mục funcs với nội dung như sau:
* @Author Mr Thao (mrthao001@gmail.com)
*/ if (! defined('NV_IS_MOD_QUANLY')) die('Stop!!!');
$page_title = $module_info['custom_title'];
$key_words = $module_info['keywords'];
$contents = "Xin chào các bạn"; include (NV_ROOTDIR "/includes/header.php"); echo nv_site_theme($contents); include (NV_ROOTDIR "/includes/footer.php");
Chúng ta đã hoàn thành việc tạo một module đơn giản để hiển thị dòng chữ "Xin chào các bạn" cả trong khu vực quản trị và bên ngoài trang web Bây giờ, bạn chỉ cần vào phần thiết lập để kích hoạt module vừa tạo, sau đó truy cập vào phần quản lý của module và kiểm tra kết quả trên trang web.
Hình 3.2 : Giao diện module quản lý học sinh trong quản lý
Hình 3.3 : Giao diện module quản lý học sinh ngoài quản lý
Chúng ta sẽ tạo tệp tin action.php để thực hiện các thao tác với cơ sở dữ liệu, bao gồm việc cài đặt và xóa module Tệp tin này sẽ chứa thông tin cơ bản như số thứ tự, họ tên, ngày sinh và địa chỉ.
Tệp tin action.php đặt cùng thƣ mục với tệp tin functions.php với nội dung nhƣ sau:
* @Author Mr Thao (mrthao001@gmail.com)
*/ if(!defined('NV_IS_FILE_MODULES')) die('Stop!!!');
$sql_drop_module[] = "DROP TABLE IF EXISTS ‘"
$db_config['prefix'] "_" $lang "_" $module_data
$sql_create_module = $sql_drop_module;
$sql_create_module[] = "CREATE TABLE ‘"
$db_config['prefix'] "_" $lang "_" $module_data "‘ (‘id’ mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
‘stt’ INT(255) unsigned NOT NULL,
‘ngaysinh’ INT(11) NOT NULL DEFAULT '0',
Biến $sql_drop_module[] và $sql_create_module[] được sử dụng để xóa và tạo mới module Biến $db_config['prefix'] đại diện cho tiền tố của bảng, trong khi $lang là ngôn ngữ của trang web và $module_data thường được hiểu là tên của module Nội dung trong dấu ngoặc kép chứa các lệnh thao tác với cơ sở dữ liệu, không chỉ giới hạn ở việc xóa hoặc thêm, mà còn bao gồm chỉnh sửa, xóa trường và chèn dữ liệu.
$sql_create_module[] dạng ARRAY nên có thể thêm nhiều lệnh thao thác cơ sở dữ liệu (tạo nhiều bảng)
Bây giờ phần quản lí module ta cần có thêm một submenu để thêm học sinh
Mở tệp tin admin.functions.php lên sửa lại nhƣ sau:
* @Author Mr Thao (mrthao001@gmail.com)
*/ if (! defined('NV_ADMIN') or ! defined('NV_MAINFILE') or ! defined('NV_IS_MODADMIN')) die('Stop!!!');
$submenu['add'] = "Thêm học sinh";
$allow_func = array('main', 'add'); define('NV_IS_FILE_ADMIN', true);
Biến $submenu['add'] chỉ ra rằng chúng ta đã định nghĩa một submenu trong phần quản trị Việc thêm biến $allow_func với giá trị 'add' có nghĩa là chúng ta đã chấp nhận việc bổ sung một chức năng mới có tên là add (add.php).
Thêm tệp tin add.php vào thƣ mục admin với nội dung nhƣ sau:
* @Author Mr Thao (mrthao001@gmail.com)
*/ if (! defined('NV_IS_FILE_ADMIN')) die('Stop!!!');
$page_title = "Thêm học sinh";
$my_head = "\n";
$my_head = "\n";
$my_head = "\n";
$my_head = "\n";
$data['hoten'] = filter_text_input('hoten', 'post', '');
$data['ngaysinh'] = filter_text_input('ngaysinh', 'post', '', 1, 10);
Nguyễn Quang Thao – CT1301 48 unset($m); if (preg_match("/^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{4})$/",
$data['diachi'] = $nv_Request->get_string('diachi', 'post', ''); if (($nv_Request->get_int('add', 'post', 0) == 1))
$error = "Bạn chưa nhập tên học sinh";
$error = "Bạn chưa nhập ngày sinh";
$error = "Bạn chưa nhập địa chỉ";
$sql = "SELECT ‘stt’ FROM ‘" NV_PREFIXLANG "_"
$module_data "‘ ORDER BY stt DESC LIMIT 0,1";
$resuilt = $db->sql_query($sql); list ($currentstt) = $db->sql_fetchrow($resuilt);
$query = "INSERT INTO ‘" NV_PREFIXLANG "_"
‘id’, ‘stt’, ‘hoten’, ‘ngaysinh’, ‘diachi’
)"; if ($db->sql_query_insert_id($query))
Header("Location: " NV_BASE_ADMINURL "index.php?"
NV_NAME_VARIABLE "=" $module_name); die();
$error = "Không thể lưu dữ liệu được";
$contents = "