Xây dựng hệ thống

Một phần của tài liệu Tìm hiểu hệ thống mã mở DotNetNuke và ứng dụng xây dựng trên nền DotNetNuke (Trang 93 - 130)

4. Ứng dụng xây dựng Tòa soạn báo điện tử

4.3Xây dựng hệ thống

4.3.1 Các chức năng chính của hệ thống a. Đăng nhập hệ thống  Phóng viên Đăng nhập Kiểm tra Lựa chọn chức năng True

Soạn nộp tin bài Danh sách tin bài

cá nhân False

 Biên tập viên

Đăng nhập Kiểm tra Chọn chức năng

Danh sách tin bài không dùng Soạn nộp tin bài

Danh sách tin bài hủy xuất bản Danh sách tin bài

đã xuất bản Xuất bản tin bài

Chủ đề tin Danh sách tin bài

cá nhân

True

False

b. Sản xuất nội dung

 Soạn nộp tin bài

Soạn nộp tin bài

Chọn

Thêm bài viết mới Sửa bài Nộp bài

Nhập thông tin

Yêu cầu xác nhận

Chọn

Thay đổi thông tin

Hệ thống tạo bài mới True Chọn bài cần xóa Hệ thống yêu cầu xác nhận xóa Chọn Hệ thống xóa bài True Chọn bài cần nộp Database False Xóa bài Yêu cầu xác nhận Chọn Hệ thống cập nhật dữ liệu True

False Hệ thống yêu cầu

xác nhận nộp False Chọn Hệ thống cập nhật trạng thái nộp bài True False

 Hiển thị danh sách tin bài cá nhân

Danh sách tin bài cá nhân

Xem các tin bài

Hệ thống hiển thị thông tin bài và trạng thái

Database

 Biên tập viên

 Hiển thị danh sách tin bài cá nhân (adsbygoogle = window.adsbygoogle || []).push({});

Danh sách tin bài cá nhân

Xem các tin bài

Hệ thống hiển thị thông tin bài và trạng thái

 Soạn nộp tin bài cá nhân

Soạn nộp tin bài

Chọn

Thêm bài viết mới Sửa bài Nộp bài

Nhập thông tin

Yêu cầu xác nhận

Chọn

Thay đổi thông tin

Hệ thống tạo bài mới True Chọn bài cần xóa Hệ thống yêu cầu xác nhận xóa Chọn Hệ thống xóa bài True Chọn bài cần nộp Database False Xóa bài Yêu cầu xác nhận Chọn Hệ thống cập nhật dữ liệu True

False Hệ thống yêu cầu

xác nhận nộp False Chọn Hệ thống cập nhật trạng thái nộp bài True False

 Chủ đề tin bài

Chọn

Tạo chủ đề tin Sửa chủ đề tin Xóa chủ đề tin

Nhập thông tin

Yêu cầu xác nhận

Chọn

Thay đổi thông tin

Hệ thống tạo chủ đề mới Chọn bài cần xóa Hệ thống yêu cầu xác nhận xóa Chọn Hệ thống chủ đề Database Chủ đề tin Yêu cầu xác nhận Chọn Hệ thống cập nhật dữ liệu

True True True

 Xuất bản tin bài

Chọn

Chấm điểm tin bài Sửa bài

Chọn bài cần chấm điểm

Chấm điểm

Chọn bài cần sửa Chọn bài cần xuất bản Xuất bản tin bài

Thay đổi thông tin (adsbygoogle = window.adsbygoogle || []).push({});

Chọn Hệ thống cập nhật dữ liệu Hệ thống yêu cầu xác nhận xuất bản Chọn Hệ thống cập nhật dữ liệu True True Xuất bản False False

 Danh sách tin bài đã xuất bản

Chọn chủ đề tìm kiếm

Xem bài Hủy xuất bản

Hệ thống hiển thị

thông tin bài Chọn bài cần hủy

Database

Danh sách tin bài đã xuất bản

Hệ thống yêu cầu xác nhận hủy Chọn Hệ thống hủy xuất bản False True

 Danh sách tin bài đã hủy xuất bản

Chọn

Xem nội dung Tái xuất bản

Hệ thống hiển thị thông tin

Chọn bài cần tái xuất bản

Database

Danh sách tin bài đã hủy xuất bản Hệ thống yêu cầu xác nhận tái xuất bản Chọn Hệ thống tái xuất bản False True

 Danh sách tin bài không dùng

Chọn

Xem nội dung Sử dụng lại tin bài

Hệ thống hiển thị thông tin

Chọn bài cần sử dụng lại

Database

Danh sách tin bài không sử dụng

Hệ thống yêu cầu xác nhận sử dụng

lại tin bài Chọn

Hệ thống sử dụng lại tin bài

False

c. Quy trình đưa bản tin lên Web

Soạn nộp tin bài Xuất bản tin bài

Tin bài đã xuất bản Tin bài hủy xuất (adsbygoogle = window.adsbygoogle || []).push({});

bản

Lưu giữ

Tin bài không dùng Nộp bài

Xuất bản

Không dùngTái sử dụng

Tái xuất bản Hủy xuất bản

4.3.2 Xây dựng cơ sở dữ liệu

Hệ thống được xây dựng dựa trên bộ khung có sẵn của Dotnetnuke vì thế quá trình thiết kế database cũng được giảm thiểu rất nhiều. Những người phát triển ứng dụng Web trên nền tảng Dotnetnuke sẽ không mất nhiều thời gian vào việc thiết kế DataBase mà chỉ phải xây dựng thêm bảng dữ liệu phục vụ cho những module của mình.

 Bảng “Chủ đề” tin (dnn_MyNews_Categories) Ý nghĩa bảng:

Tòa soạn báo có nhiều kênh thông tin (chủ đề) như: văn hóa, xã hội, pháp luật,…

Bảng mô tả các thuộc tính

STT Thuộc tính Kiểu dữ liệu Null Diễn giải

1 CategoryID Int 0 ID của chủ đề, tự động tăng 2 CategoryName Nvarchar 0 Tên của chủ đề

3 CategoryNoiDung Nvarchar 1 Nội dung của chủ đề 4 UserIDCreated Int 0 ID của người tạo ra chủ đề 5 NgayTao DateTime 0 Ngày tạo chủ đề

6 NgayCapNhat DateTime 1 Ngày sửa chữa nội dung

 Bảng “Tin bài” (dnn_MyNews_News)

Ý nghĩa bảng:

Chứa nội dung những tin bài tồn tại trong hệ thống Bảng mô tả các thuộc tính

STT Thuộc tính Kiểu dữ liệu Null Diễn giải

1 NewID Int 0 ID của từng tin bài, tự động tăng 2 CategoryID Int 0 ID chủ đề của tin bài

3 TieuDe Nvarchar 0 Tiêu đề của tin bài 4 TomTat Nvarchar 0 Tóm tắt của tin bài 5 NoiDung Ntext 0 Nội dung của tin bài

6 Anh Nvarchar 1 Đường dẫn ảnh đại diện của tin bài 7 TinDB Bit 1 =1: thể hiện đây là tin bài đặc biệt

=0: tin bài bình thường

8 TinMoi Bit 1 =1: thể hiện đây là tin bài mới nhất =0: tin bài bình thường

khoảng [0,100] 10 SLTruyCap Int 1 Số lần tin bài xem 11 UserIDCreated Int 0 ID của người tạo tin bài 12 NgayTao Datetime 0 Ngày phóng viên tạo tin bài 13 UserIDModify Int 1 ID của người sửa tin bài 14 NgayCapNhat Datetime 1 Ngày sửa tin bài

15 NopBai Bit 0 =0: tin bài chưa nộp =1: tin bài đã được nộp

16 ThamDinh Bit 0 =0: tin bài chưa được thẩm định (chưa được xuất bản lên Web) =1: tin bài đã được thẩm định (đã xuất bản lên Web)

17 KhongDung Bit 1 =0: tin bài được sử dụng =1: tin bài không được sử dụng 18 LyDoKhongDung Nvarchar 1 Lý do không dùng tin bài 19 HuyXuatBan Bit 1 =0: tin bài được sử dụng

=1: tin bài bị hủy xuất bản

 Bảng “Ý kiến” (dnn_MyNews_YKien) (adsbygoogle = window.adsbygoogle || []).push({});

Ý nghĩa bảng:

Chứa ý kiến của độc giả về nội dung tin bài đã xuất bản Bảng mô tả các thuộc tính

STT Thuộc tính Kiểu dữ liệu Null Diễn giải

1 YKienID Int 0 ID ý kiến của độc giả, tự động tăng 2 Email Nvarchar 0 Địa chỉ Email của độc giả

3 IPClient Narchar 0 Địa chỉ IP của độc giả khi gửi ý kiến 4 NoiDung Ntext 0 Nội dung ý kiến về tin bài

4.3.3 Xây dựng module và gắn vào Dotnetnuke

Trong quá trình tìm hiểu phần cơ sở của Dotnetnuke và thiết kế hệ thống, chúng tôi đã xây dựng những module phục vụ việc trình diễn, sản xuất, thẩm định nội dung tin bài thông qua môi trường Web.

Hệ thống Module Quản lý chủ đề tin Module Soạn nộp tin bài Module Xuất bản tin bài Module Danh sách tin bài đã xuất bản

Module Hủy xuất bản Module Chủ đề tin Module Tin tức Module Sự kiện đặc biệt

Trình diễn nội dung

Module Tin đọc nhiều nhất

Quản trị nội dung

 Module “Chủ đề”: danh sách chủ đề tin bài của hệ thống.

 Database: lấy dữ liệu trong bảng [dnn_MyNews_Categories]

- Trường [CategoryName]: thể hiện tên các chủ đề người dùng nhìn

thấy.

 Chức năng: Khi người dùng chọn một chủ đề tin bất kỳ, cặp giá trị CategoryID=value tương ứng được đưa lên URL để các module khác sử dụng.

 Thành phần trên giao diện

Giao diện Hoạt động

Control: DataList

Mỗi thành phần (item) của DataList là một Hyperlink, với Text là tên của chủ đề.

Mỗi khi một chủ đề được chọn, URL được thay đổi:

http://localhost/dnn2005/Default.aspx?tabid=58&CategoryID =5

Dựa vào cặp giá trị CategoryID=value, mà module thể hiện danh sách tin bài theo chủ đề biết được cần load chủ đề nào .

 Module “Tin tức” thể hiện

- danh sách tin bài mới nhất của tất cả các chủ đề tin - danh sách tin của từng chủ đề tin

- nội dung cụ thể của tin bài

 Database: lấy dữ liệu trong bảng [dnn_MyNews_News]

- Trường [NewID]: số định danh của một tin bài cụ thể

- Trường [CategoryID]: số định danh của chủ đề tin bài (adsbygoogle = window.adsbygoogle || []).push({});

- Trường [TieuDe]: tiêu đề của tin bài

- Trường [TomTat]: tóm tắt của tin bài

- Trường [NoiDung]: nội dung của tin bài

- dựa vào cặp giá trị CategoryID=value có trên chuỗi URL, module load những tin bài mới nhất nằm trong chủ đề.

- nếu không có cặp giá trị CategoryID=value, load toàn bộ tin bài mới nhất của tất cả các chủ đề.

- khi phần một tin bài được chọn để xem nội dung, cặp giá trị NewID=value được hiện thị trên chuỗi URL, dựa vào cặp giá trị này nội dung tin bài sẽ được hiện thị.

 Thành phần trên giao diện

Giao diện Hoạt động

Control: DataList có cấu trúc Chủ đề của tin (1)

Tiêu đề tin (2)

Ảnh đại diện nếu có (3) Tiêu đề tóm tắt (4) . Tin 1 (5) . Tin 2 (6) . Tin 3 (7)

Mỗi thành phần (item) của DataList là một bảng có cấu trúc như trên.

(1): control Hyperlink thể hiện chủ đề của bản tin, khi được chọn, hệ thống sẽ hiển thị danh sách tin bài của chủ đề này.

(2): control Hyperlink thể hiện tiêu đề của bản tin, khi được chọn hệ thống sẽ hiện thị nội dung chi tiết của tin bài.

bài.

(4): phần nội dung tóm tắt của tin bài.

(5),(6),(7): 3 control Hyperlink thể hiện 3 tin bài tiếp theo của chủ đề.

Mỗi khi (2), (3), (5), (6), (7) được chọn, chuỗi URL được thay đổi:

http://localhost/dnn2005/Default.aspx?tabid=58&Ne wID=124

Dựa vào cặp tham số NewID=value, hệ thống load nội dung tin bài được yêu cầu.

Nội dung chi tiết của tin bài Tiêu đề tin (1)

Ảnh đại diện nếu có (2)

Tiêu đề tóm tắt (3)

Nội dung tin bài (4) (1): nội dung tiêu đề tin

(2): control Image thể hiện ảnh đại diện của tin

(3): tiêu đề tóm tắt của bản tin (4): nội dung của tin bài

 Module “Sự kiện đặc biệt”: danh sách những tin bài đặc biệt

 Database: lấy dữ liệu trong bảng [dnn_MyNews_News]

- Trường [TinDB]: những tin có trường TinDB =1 mới được load trong module này.

 Chức năng: trong quá trình thẩm định, những tin bài được biên tập viên đánh dấu là tin đặc biệt, hệ thống sẽ cập nhật vào database trương TinDB=1, để phân biệt với các tin bài bình thường (TinDB=0). (adsbygoogle = window.adsbygoogle || []).push({});

 Thành phần trên giao diện

Giao diện Hoạt động

Control: DataList

Mỗi thành phần (item) của DataList là một Hyperlink, với Text là tiêu đề một bản tin. Mỗi khi một tin bài được chọn, URL được thay đổi:

http://localhost/dnn2005/Default.aspx?tabid=58&NewID =124

Dựa vào cặp tham số NewID=value, hệ thống load nội dung tin bài được yêu cầu.

 Module “Tin đọc nhiều nhất”: danh sách những tin được truy cập nhiều

nhất.

 Database: lấy dữ liệu trong bảng [dnn_MyNews_News]

- Trường [NewID]: số định danh của một tin bài cụ thể

- Trường [TieuDe]: tiêu đề của tin bài

- Trường [SLTruyCap]: số lần truy cập của tin bài

 Chức năng: khi nội dung của một tin bài được hiển thị, hệ thống tự động tăng trường SLTruyCap lên 1. Module này sẽ tìm duyệt, lấy ra những tin có số lần truy cập nhiều nhất để hiện thị.

Giao diện Hoạt động Control: DataList

Mỗi thành phần (item) của DataList là một Hyperlink, với Text là tiêu đề một bản tin. Mỗi khi một tin bài được chọn, URL được thay đổi:

http://localhost/dnn2005/Default.aspx?tabid=58&NewID =124

Dựa vào cặp tham số NewID=value, hệ thống load nội dung tin bài được yêu cầu.

 Module “Quản lý chủ đề”: bao gồm những chức năng tạo mới, sửa xóa

chủ đề của hệ thống.

 Database: lấy dữ liệu trong bảng [dnn_MyNews_Categories]

- Trường [CategoryName]: thể hiện tên các chủ đề người dùng

nhìn thấy.

- Trường [CategoryID]: số định danh của chủ đề

- Trường [NoiDung]: nội dung của chủ đề

 Chức năng

- Tạo chủ đề mới: cung cấp giao diện tạo một chủ đề mới.

- Sửa chủ đề: cung cấp giao diện sửa nội dung chủ đề đã tồn tại

 Thành phần trên giao diện

TextBox: nội dung của chủ đề Button: thêm mới một chủ đề

Khi thêm mới một chủ đề, hệ thống tạo mới một bản ghi trong bảng dnn_MyNews_Categories, với dữ liệu lấy từ 2 TextBox tên và nội dung chủ đề (adsbygoogle = window.adsbygoogle || []).push({});

Giao diện

Hoạt động Sửa / Xóa chủ đề

Control: GridView, với mỗi dòng là một chủ đề

Chức năng “Sửa”: khi được chọn, hệ thống chuyển sang giao diện:

Người sử dụng chọn “OK” để lưu lại nội dung đã sửa, chọn “Hủy Bỏ” để quay về trạng thái ban đầu.

Chức năng “Xóa”: khi chọn chức năng này, hệ thống đưa ra hộp thoại hỏi có chắc chắn muốn xóa chủ đề.

 Module “Soạn, nộp tin bài”: cung cấp chức năng để người sử dụng tạo tin

 Database: lấy dữ liệu trong bảng [dnn_MyNews_News]

- Trường [NewID]: số định danh của một tin bài cụ thể

- Trường [UserIDCreated]: số định danh của tác giả bài viết

- Trường [NopBai]: thể hiện tin bài đã được nộp hay chưa

 Chức năng

- Tạo bài mới: cung cấp giao diện để tạo một tin bài mới, người sử dụng có thể lưu lại để có thể chỉnh sửa ở lần sau hoặc gửi nộp bài luôn.

- Gửi nộp: hệ thống hiển thị danh sách tin bài chưa nộp để người sử

dụng chỉnh sửa, gửi nộp lên mức trên.

 Thành phần trên giao diện

Giao diện

Hoạt động Xem danh sách tin bài cá nhân

Control: GridView, mỗi dòng là một tin bài

Nộp bài: với những tin bài đã viết xong, người đứng tên bài viết chọn vào CheckBox, sau đấy click vào “Nộp bài” Xóa bài: chọn “Xóa” để hủy những tin bài không dùng đến Sửa: người đứng tên bài chọn “Sửa” hoặc click vào tiêu đề bài viết để sửa.

Giao diện

Hoạt động Tạo / Sửa bài viết

Khi chọn tạo / sửa bài viết hệ thống hiển thị giao diện để người sử dụng thêm / thay đổi nội dung bài viết.

DropDownList: các chủ đề tồn tại trong hệ thống TextBox: Nội dung tiêu đề của tin bài

TextBox: Nội dung tóm tắt của tin bài

Image: Ảnh đại diện của tin bài, người sử dụng chọn “Browre…” để “Upload” ảnh lên server

TextEditor: Nội dung của tin bài, với control này, người sử dụng có thể thực hiện các chức năng chỉnh sửa như đang làm việc với chương Microsoft Office.

Button: cập nhật / tạo mới tin bài

 Module “Xuất bản tin bài”: danh sách tin bài chờ thẩm định để đưa lên

 Database: lấy dữ liệu trong bảng [dnn_MyNews_News] (adsbygoogle = window.adsbygoogle || []).push({});

- Trường [NewID]: số định danh của một tin bài cụ thể.

- Trường [ThamDinh]: thể hiện tin bài đã được xuất bản hay chưa.

- Trường [NgayTao]: ngày tin bài được tạo ra trong hệ thống.

 Chức năng: những tin bài sau khi được phóng viên nộp được biên tập

viên thẩm định, xuất bản lên Web.

 Thành phần trên giao diện

Giao diện

Hoạt động Xuất bản tin bài

Control: GridView, mỗi dòng là một tin bài. Control này chứa tất cả các tin bài đang chờ thẩm định để được xuất bản lên Web.

Những bài viết sau khi được “chấm điểm” mới được xuất bản.

Người có quyền “Xuất bản” nhập điểm cho tin bài, sau đấy chọn “Cập nhật” để lưu lại nội dung.

Khi muốn xuất bản tin bài, người sử dụng chọn vào Check Box “Xuất bản”, sau đấy chọn “Xuất bản” tin bài.

Nếu muốn tin bài được hiển thị trong phần “Sự kiện trong ngày” thì chọn vào CheckBox “TinDB”.

Giao diện

Hoạt động Sửa bài viết

Người sử dụng chọn “Sửa” để thay đổi nội dung tin bài. DropDownList: các chủ đề tồn tại trong hệ thống

TextBox: Nội dung tiêu đề của tin bài TextBox: Nội dung tóm tắt của tin bài

Image: Ảnh đại diện của tin bài, người sử dụng chọn

Một phần của tài liệu Tìm hiểu hệ thống mã mở DotNetNuke và ứng dụng xây dựng trên nền DotNetNuke (Trang 93 - 130)