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à loại 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 xuống mã nguồn Người dùng có quyền sửa đổi, cải tiế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 phần mềm để đá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, nghiên cứu cấu trúc chương trình, chỉnh sửa theo nhu cầu người dùng, truy cập mã nguồn, phân phối lại phiên bản cho người khác, cải tiến chương trình và phát hành các bản cải tiến phục vụ 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 vẫn giữ bản quyền phần mềm, nhưng cho phép người dùng nhiều quyền lợi, bao gồm quyền nghiên cứ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 mã nguồn GPL là hiệu ứng lan truyền, nghĩa là bất kỳ phần mềm nào sử dụng mã nguồn GPL sẽ phải tuân theo giấy phép GPL Đ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 nhỏ mã nguồn GPL trong sản phẩm của họ 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:
- Đƣợ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
Khung phần mềm (software framework) là một bộ sưu tập các 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 một cách 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.
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, có nhiều loại mã nguồn mở với các ứng dụng đa dạng trên toàn thế giới Dưới đây là một số loại mã nguồn mở phổ biến và được sử dụng rộng rãi.
Ubuntu là hệ điều hành mã nguồn mở lý tưởng cho máy tính xách tay, máy tính để bàn và máy chủ, 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, được sử dụng rộng rãi để xây dựng các diễn đàn trực tuyến Hầu hết các diễn đàn lớn tại Việt Nam hiện nay đề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ở của Apache Software, cho phép xử lý số lượng lớn yêu cầu từ các ứng dụng web trực tuyến và gói dữ liệu giữa server-client Hệ thống này có khả năng 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 với đầy đủ các tính năng của một hệ điều hành hiện đại, bao gồm 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.
OpenOffice là một phần mềm mã nguồn mở, được thiết kế để thay thế Microsoft Office Ưu điểm nổi bật của OpenOffice là dung lượng nhẹ và khả năng tương thích với các định dạng của Microsoft Office, tuy nhiên, nó vẫn chưa thân thiện và dễ sử dụng bằng Microsoft Office.
NukeViet là hệ quản trị nội dung mã nguồn mở, lý tưởng cho việc thiết kế các trang web đa dạng như 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 trang web cho doanh nghiệp vừa và nhỏ, cơ quan phi chính phủ, trường học, và cả website cá nhân hoặc gia đình.
Greenstone là một phần mềm mạnh mẽ giúp xây dựng và phân phối các bộ sưu tập thư viện số Phần mềm này đặc biệt hữu ích cho các trường đại học, thư viện và các tổ chức công cộng trong việc tạo ra thư viện số riêng của họ.
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ý mạnh mẽ dành cho máy chủ Web, hỗ trợ xây dựng và quản lý các website, cổng thông tin điện tử, báo điện tử, hệ thống thương mại điện tử, cũng như vận hành các 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.
Phiên bản NukeViet CMS hiện đang được phát hành dưới 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.
Vào năm 2004, Nguyễn Anh Tú, một lưu học sinh Việt Nam tại Nga, đã khởi đầu việc phát triển website cho người Việt xa xứ bằng sản phẩm PHP-Nuke Nhờ vào sự hợp tác của cộng đồng, sản phẩm này đã được Việt hóa và cải tiến thành NukeViet, và từ đó, NukeViet đã liên tục được phát triển, trở thành một ứng dụng hoàn toàn thuần Việt.
Đến phiên bản 3.0, NukeViet đã tách biệt hoàn toàn khỏi 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 tích hợp hỗ trợ Ajax trong bộ nhân Được xây dựng bằng ngôn ngữ PHP và sử dụng cơ sở dữ liệu MySQL, NukeViet cho phép người dùng dễ dàng xuất bản và quản lý nội dung trực tuyến.
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 đã cải tiến hoàn toà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 Vào cuối năm 2004, cùng với sự đóng góp của một số thành viên, phiên bản NukeViet 1.0 beta 1 đã đượ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 hơn nữa, NukeViet Group đã thành lập công ty Ấn Tượng Nét Trong giai đoạn 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 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ỉ 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 riêng biệt Ngay sau đó, NukeViet beta 2b ra mắt, và bản NukeViet 2.0 final được giới thiệu rộng rãi Các thành viên diễn đàn NukeViet nhận được 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 để 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 đánh dấu bước ngoặt quan trọng khi NukeViet chính thức 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, nhằm phát triển một bộ mã nguồn mới với phiên bản thử nghiệm NukeViet 3 Closebeta Cuối cùng, vào 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, bắt đầu với phiên bản 3.1 và 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 Tiếp theo, 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 cho thiết bị di động Đặc biệt, vào ngày 20-11-2011, NukeViet đã vinh dự giành giải Ba Nhân tài Đất Việt 2011 trong lĩnh vực Công nghệ thông tin.
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à các nhà phát triển NukeViet 2013, đánh dấu một chặng đường 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 từ 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, vì vậy chúng 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 "nhân hệ thống" là thành phần quan trọng 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ày 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à những phần mở rộng cho hệ thống NukeViet, mỗi module đảm nhận một chức năng riêng Tùy thuộc vào nhiệm vụ của từng module, chúng có thể hỗ trợ hệ thống 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, phản ánh mức độ can thiệp vào hệ thống.
Hệ thống NukeViet đi kèm với nhiều module mặc định, và người dùng có thể dễ dàng cài đặt thêm các module mới từ website http://nukeviet.vn hoặc gỡ bỏ chúng khi không cần thiết.
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à các thành phần nhỏ trên website, giúp đa dạng hóa dữ liệu 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.
Các Block giúp làm cho nội dung website trở nên đa dạng và phong phú hơn, đồng thời tạo điều kiện cho khách truy cập dễ dàng nắm bắt thông tin và nhanh chóng tiếp cậ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 cho việc thay đổi giao diện website một cách dễ dàng Với thiết kế nghệ thuật độc đáo từ tác giả, theme cho phép website được trình bày trong 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 Nếu các giao diện không hỗ trợ thành phần nào, chúng sẽ tự động lấy từ hai theme này Do đó, việc đổi tên hoặc chỉnh sửa hai theme này là điều không nên.
Hệ thống NukeViet cung cấp khả năng quản lý giao diện ở ba cấp độ khác nhau: cấp độ toàn bộ website với giao diện mặc định, cấp độ module để tùy chỉnh giao diện cho từng module cụ thể, và cấp độ chức năng của module cho phép điều chỉnh kiểu bài trí giao diện cho từng chức năng riêng biệt.
NukeViet không chỉ hỗ trợ mỗi module với một giao diện riêng, mà còn cho phép mỗi chức năng sử dụng một layout độc lập Người dùng có thể tùy chỉnh các block cho từng chức năng một cách dễ dàng Quá trình quản lý giao diện trở nên trực quan và thuận tiện nhờ tính năng “kéo và thả” bằng chuột.
Mỗi giao diện có nhiều kiểu bố trí khác nhau, tùy thuộc vào từng module và chức năng của chúng Việc thiết lập bố trí 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, phục vụ cho nhiều ngôn ngữ khác nhau trên các trang web.
NukeViet cần phân biệt hai khái niệm quan trọng trong 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 vào ngôn ngữ khác theo ý muốn của người thiết kế module Đây là một điểm 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 giúp tối ưu hóa hiệu suất, thực hiện sao lưu trên máy chủ và tải dữ liệu về để phục vụ cho việc phục hồi 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ử, chuyên về bán hàng trực tuyến Hiện nay, người dùng có thể dễ dàng sử dụng NukeViet Shop bằng cách cài đặt module Shop trên hệ thống quản trị nội dung NukeViet CMS.
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 dễ dàng bán hàng trực tuyến Hiện nay, bạn 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 lý nội dung NukeViet CMS.
Các website ứng dụng Nukeviet
Trước phiên bản 2.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 dành cho người Việt Tuy nhiên, từ phiên bản 3.0 trở đi, NukeViet đã chuyển hướng phát triển để tiếp cận cộng đồ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 dành cho gia đình, cá nhân và nhóm sở thích đang trở nên phổ biến Ví dụ như cộng đồng Dầu khí tại http://congnghedaukhi.com, trang web giới thiệu khu du lịch Cửa Lò - Nghệ An tại http://dulichcualo.com.vn, và Thế giới Xe Việt tại http://autovina.vn Tất cả đều được xây dựng trên nền tảng NukeViet 2.0, mang đến trải nghiệm trực tuyến phong phú và dễ dàng cho người dùng.
NukeViet không chỉ là một nền tảng website mà còn được ứng dụng rộng rãi trong nhiều phần mềm khác nhau, bao gồm 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 với tính năng đ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 Friends website The current version available is 1.8.3, and you should select the Installer option for installation For more details, you can access the download link at [FileHorse](http://www.filehorse.com/download-xampp/).
After downloading, double-click the xampp-win32-1.8.3-1-VC11-installer.exe file to begin the XAMPP installation 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 trong khay hệ thống Nhấp 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 bên cạnh các dịch vụ Apache và MySQL để khởi động chúng.
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 lựa 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 xảy ra lỗi, hệ thống 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 vào ô “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 thủ công.
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ấp vào 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 từ 5.2.0 và MySQL 5.0.2 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 bổ sung của máy chủ Mặc dù bạn vẫn có thể cài đặt NukeViet nếu không đáp ứng các yêu cầu này, nhưng một số chức năng tiện ích sẽ bị thiếu.
- 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 (*) và tham khảo cột ghi chú bên cạnh để hiểu rõ hơn về quy trình nhập dữ liệu.
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 thiết lập, hệ thống sẽ cung cấp hai lựa chọn: truy cập trang chủ hoặc đăng nhập vào trang quản trị Để đăng nhập vào trang quản trị, bạn chỉ cần thêm "/admin/" vào sau đị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à các phần mở rộng của hệ thống NukeViet, đóng vai trò quan trọng trong việc cung cấp các tính năng tăng cường Mỗi mô-đun đảm nhiệm một chức năng riêng, có thể thực hiện các tác vụ nền hoặc tương tác với người sử dụng, tùy thuộc vào nhiệm vụ và chức năng của nó.
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 là một khái niệm xuất hiện từ phiên bản NukeViet 3.0, cho phép hỗ trợ 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ã, với khả năng quản lý nhiều cơ sở dữ liệu khác nhau từ một nhân module duy nhất.
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 Tính năng này hỗ trợ áp dụng các quy tắc khác nhau cho từng nhóm, nâng cao hiệu quả quản lý và tương tác trong tổ chức.
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
Thiết lập các chức năng trong module Tài khoản bao gồm việc xem danh sách thành viên, cho phép thành viên đăng nhập, cho phép thay đổi địa chỉ email (tên thành viên), và thêm câu hỏi bí mật để bảo mật tài khoản.
2.4.2 Quản trị module Quảng cáo
Chức năng quản lý khách hàng đăng quảng cáo trên site cho phép người dùng không cần phải là thành viên chính thức Thay vào đó, khách hàng sẽ được cấp tài khoản riêng để dễ dàng theo dõi các quảng cáo của mình.
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 và chỉnh sửa các quảng cáo đã đăng Người dùng cũng có thể tạm ngừng hoạt động của 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 mỗi ngày.
Chức năng thêm quảng cáo cho website cho phép bạn định nghĩa các khu vực quảng cáo thông qua các block Bằng cách thêm block quảng cáo vào vị trí phù hợp, quảng cáo sẽ tự động hiển thị tại những vị trí đã đượ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 cấu hình 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ị viên, chọn Modules, và 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 nhận phản hồi từ người dùng, giúp quản lý và phân quyền tiếp nhận thông tin một cách 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, các liên kết module không được thiết lập sẵn, vì vậy bạn cần cấu hình chúng 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), sau đó chọn Modules và 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 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à công cụ hữu ích giúp biến máy tính của bạn thành một máy chủ web, được gọi là localhost, nhằm phân biệt với các máy chủ trực tuyến khác.
- 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 trên 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, cùng với quy trình hệ thống của Nukeviet để tiến hành thử nghiệm 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 có khối, thông tin về tác giả và phiên bản của module, cùng với 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 function.php file 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 administrative area The funcs/main.php file presents the main content of the external site module Language files are located in the language directory for both the admin and external site modules The themes/admin_default/images/quanly/ directory contains images used within the management module, and themes/admin_default/css/quanly.css 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 trước, tùy thuộc vào quyền truy cập của admin hoặc người dùng bên ngoài Sau đó, các tệp tin trong thư mục admin hoặc funcs sẽ được chạy, với tệp tin main.php là tệp tin mặc định tiếp theo.
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 khi hoạt động bên ngoài site Các hàm không có khối, như xử lý AJAX hay 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 1 cho phép và 0 không cho phép Thông tin như ngày, tác giả và phiên bản được ghi nhận trong module Cấu trúc thư mục được khai báo trong uploads_dir, và khi kích hoạt module, hệ thống sẽ tự động tạo thư mục mang tên module trong thư mục uploads, với $module_name đại diện cho tên module.
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 Nếu các hàm không được khai báo trong biến này, khi thực thi sẽ báo lỗi.
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 như main.php sẽ kiểm tra giá trị của hằng số này; nếu đúng, hệ thống sẽ tiếp tục hoạt động, 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 current function's title, while all content is stored in the $contents variable This content is then displayed after including the header file (header.php) by using the echo nv_admin_theme($contents) function, followed by including the footer file (footer.php).
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 trang quản trị và bên ngoài site Bây giờ, hãy 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 để xem 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ẽ thêm 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 action.php sẽ tạo cơ sở dữ liệu với các thông tin cần thiết như stt, 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'] là tiền tố của bảng, $lang đại diện cho 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 hay thêm mà còn có thể 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'] được sử dụng để khai báo một submenu trong phần quản trị Việc thêm $allow_func với giá trị 'add' cho thấy chúng ta đã chấp nhận thêm 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 = "