Đề tài Xây dựng Cổng thông tin cho Viện Đại Học Mở Hà Nội

.NET Framwork là cơ sở hạ tầng cung cấp cho người dùng cách thức sử dụng nhiều ngôn ngữ lập trình khác nhau cho phép truy cập thông tin, file, hoặc các chương trình của họ ở mọi lúc mọi nơi trên mọi cấu hình phần cứng và thiết bị. Tâm điểm của .NET Framework là môi trường CLR (Common Language Runtime) và tập phân cấp các bộ thư viện hợp nhất cùng với ASP.NET. CLR quản lý sự thực thi của đoạn mã .NET và cung cấp các dịch vụ giúp cho quá trình phát triển chương trình ứng dụng dễ dàng hơn. Các trình biên dịch và các công cụ làm cho chức năng của thư viện thực thi runtime trở nên phong phú và hiệu quả hơn. Đoạn mã viết trong trang ASP.NET hướng đến một kiến trúc đích cụ thể gọi là mã được quản lý (managed code). CLR quản lý đoạn mã ở mức thực thi thấp nhất, kết hợp khả năng sử dụng đồng thời nhiều ngôn ngữ có khả năng triệu gọi lẫn nhau (cross-language), tích hợp quản lý các lỗi ngoại lệ, khởi động và chấm dứt các tiểu trình (thread) ở mức thấp, hỗ trợ về bảo mật, quản lý phiên bản, đóng gói cài đặt. Ngoài ra, dịch vụ Web trong .NET Framework cho phép phát triển ứng dụng Internet hay Intranet trong hiện tại lẫn tương lai bằng bất cứ ngôn ngữ lập trình nào, truy cập đến hệ thống bất kỳ. CLR cung cấp cơ chế dễ dàng cho các nhà phát triển Visual Basic.NET khi thiết kế và xây dựng ứng dụng trong đó những đối tượng viết bằng Web Services có thể tương tác với các đối tượng được viết bằng ngôn ngữ khác. Sự tương tác này có thể bởi vì các trình biên dịch ngôn ngữ và các công cụ phát triển hướng đến sử dụng CLR với một hệ thống kiểu dữ liệu chung định nghĩa bởi thư viện runtime như hình 19 dưới đây.

doc135 trang | Chia sẻ: oanh_nt | Lượt xem: 1272 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Đề tài Xây dựng Cổng thông tin cho Viện Đại Học Mở Hà Nội, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
àm Xóa thành viên 5.2.4.4 Biểu đồ dòng dữ liệu hàm 1.4.4 – Tìm kiếm Quản trị Tìm kiếm Thông báo Tên thành viên Không tìm thấy kết quả Thành viên Quản trị Kết quả tìm kiếm Hình 49. Biểu đồ dòng dữ liệu hàm Tìm kiếm 5.3 Biểu đồ dòng dữ liệu hàm 2 – Quản lý Module Quản trị viên 2.3 Tổ chức Module 2.1 Quản lý danh sách Module Cấu hình 2.2 Quản lý Tab Yêu cầu Yêu cầu Yêu cầu Cấu hình Hình 50. Biểu đồ dòng dữ liệu hàm Quản lý Module 5.3.1 Biểu đồ dòng dữ liệu hàm 2.1 – Quản lý danh sách Module Quản trị Kiểm tra quyền Admin Thông báo Không hợp lệ Quyền Định nghĩa Module Sửa định nghĩa Module Xóa định nghĩa Module Cấu hình Cấu hình Tên truy cập Thông tin kiểm tra Thông tin kiểm tra Thông tin kiểm tra Hình 51. Biểu đồ dòng dữ liệu hàm Quản lý danh sách Module 5.3.2 Biểu đồ dòng dữ liệu hàm 2.2 – Quản lý Tab Quản trị Kiểm tra quyền Admin Thông báo Quyền không hợp lệ Quyền Tạo Tab Sửa Tab Xóa Tab Cấu hình Cấu hình Cấu hình Tên truy cập Thông tin kiểm tra Thông tin kiểm tra Thông tin kiểm tra Hình 52. Biểu đồ dòng dữ liệu hàm Quản lý Tab 5.3.3 Biểu đồ dòng dữ liệu hàm 2.3 – Tổ chức Module Quản trị Kiểm tra quyền Admin Thông báo Không hợp lệ Quyền Cập nhật Module Sửa Module Xóa Module Cấu hình Cấu hình Cấu hình Tên truy cập Thông tin kiểm tra Thông tin kiểm tra Thông tin kiểm tra Hình 53. Biểu đồ dòng dữ liệu hàm Tổ chức Module 5.4 Biểu đồ dòng dữ liệu hàm 3 – Tra cứu tuyển sinh Người dùng Tra cứu kết quả tuyển sinh Yêu cầu Tuyển sinh Quản trị viên Kết quả Quản lý kết quả tuyển sinh Thông tin kết quả tuyển sinh Nhập kết quả tuyển sinh Xóa Sửa Yêu cầu Yêu cầu Yêu cầu Tuyển sinh Hình 54. Biểu đồ dòng dữ liệu hàm Tra cứu tuyển sinh 5.5 Biểu đồ dòng dữ liệu hàm 4 – Quản lý tin tức Quản trị 4.1 Quản lý trang tin Tin tức 4.3 Quản lý liên kết nhanh 4.4 Quản lý thảo luận 4.2 Quản lý thông báo Thảo luận Thư mục Liên kết Tin tức Người dùng Trang tin Sự kiện Thông báo Liên kết Thông báo Thông báo Người dùng Liên kết Thông tin thảo luận 4.5 Quản lý thông tin góp ý Người dùng Thông tin góp ý Thành viên Góp ý Quản trị Xem xét góp ý Phản hồi Yêu cầu xem tin Hình 55. Biểu đồ dòng dữ liệu hàm Quản lý tin tức 5.5.1 Biểu đồ dòng dữ liệu hàm 4.1 – Quản lý trang tin Trang tin Hiển thị Tin tức Hệ thống quản lý Tab Thông báo Sự kiện Liên kết Tin tức Vị trí hiển thị Module Thư mục Vị trí hiển thị tin ,số lượng tin Người dùng Yêu cầu xem Tin tức Quản trị viên Tin tức 4.1.1 Quản lý bài viết 4.1.2 Quản lý thư mục 4.1.3 Upload Gửi bài mới Yêu cầu Thông báo Upload Yêu cầu Thư mục Yêu cầu Yêu cầu Hình 56. Biểu đồ dòng dữ liệu hàm Quản lý trang tin 5.5.1.1 Biểu đồ dòng dữ liệu hàm 4.1.1 – Quản lý bài viết Quản trị Tin tức Xem tin Sửa tin Xóa tin tức Thư mục Tin tức Yêu cầu Tìm kiếm Thư mục Thông tin yêu cầu Thông tin tìm kiếm Kết quả Tin tức Thông báo Yêu cầu Thông báo Hình 57. Biểu đồ dòng dữ liệu hàm Quản lý bài viết 5.5.1.2 Biểu đồ dòng dữ liệu hàm 4.1.2 – Quản lý thư mục Quản trị Xem thư mục Sửa thư mục Xóa thư mục Thư mục Thư mục Yêu cầu yêu cầu Thư mục Thông báo Yêu cầu Thông báo Tạo thư mục Yêu cầu Kết quả Thư mục Hình 58. Biểu đồ dòng dữ liệu hàm Quản lý thư mục 5.5.1.3 Biểu đồ dòng dữ liệu hàm 4.1.3 – Upload Quản trị Tải file lên server Thư mục trên Server Upload Đường dẫn File Yêu cầu Thông báo Hình 59. Biểu đồ dòng dữ liệu hàm Upload 5.5.2 Biểu đồ dòng dữ liệu hàm 4.2 – Quản lý thông báo Quản trị Xem thông báo Sửa thông báo Thông báo yêu cầu Thông báo Yêu cầu Thông báo Tạo thông báo Yêu cầu Kết quả Thông báo Thành viên Hình 57. Biểu đồ dòng dữ liệu hàm Quản lý thông báo 5.5.3 Biểu đồ dòng dữ liệu hàm 4.3 – Quản lý liên kết nhanh Quản trị Xem liên kết Sửa liên kết Xóa liên kết Liên kết Liên kết Yêu cầu yêu cầu Liên kết Thông báo Yêu cầu Thông báo Tạo liên kết Yêu cầu Kết quả Liên kết Hình 58. Biểu đồ dòng dữ liệu hàm Quản lý liên kết nhanh 5.5.4 Biểu đồ dòng dữ liệu hàm 4.4 – Quản lý thảo luận Quản trị Tạo Topic mới Sửa Topic Thảo luận Xem Trả lời Thảo luận Thông tin topic Thông báo Thông tin topic Thảo luận Thông báo Xóa Topic Yêu cầu Thông báo Thành viên Yêu cầu Yêu cầu Thông tin thảo luận Thông báo Hình 59. Biểu đồ dòng dữ liệu hàm Quản lý thảo luận 5.5.4 Biểu đồ dòng dữ liệu hàm 4.5 – Quản lý thông tin góp ý Quản trị Xem Trả lời Xóa Người góp ý Email, nội dung trả lời Góp ý Yêu cầu Thông tin góp ý Yêu cầu Góp ý Thông báo Hình 60. Biểu đồ dòng dữ liệu hàm Quản lý thông tin góp ý 5.6 Biểu đồ dòng dữ liệu hàm 5 – Tra cứu thông tin sinh viên Người dùng Tra cứu thông tin sinh viên Yêu cầu Sinh viên Quản trị viên Kết quả Quản lý thông tin sinh viên Thông tin sinh viên Nhập thông tin sinh viên Xóa Sửa Điếm chuẩn / Thông tin sinh viên Yêu cầu Yêu cầu Sinh viên Tuyển sinh Hình 61. Biểu đồ dòng dữ liệu hàm Tra cứu thông tin sinh viên MÔ HÌNH THỰC THỂ LIÊN KẾT 6.1 Xác định thực thể Chức năng Thực thể Quản lý thành viên và phân quyền thành viên Thành viên, quyền, quyền thành viên Quản lý thông tin góp ý Góp ý Quản lý Điểm tuyển sinh Điểm tuyển sinh Chức năng Thảo luận Thảo luận Chức năng Thông báo Thông báo Chức năng quản lý sinh viên Sinh viên Quản lý các sự kiện Sự kiện Quản lý các liên kết nóng Liên kết Chức năng Quản lý tin tức Tin tức, nhóm tin tức Quản lý uploadfile Upload Thuộc tính của thực thể Tên thực thể Thuộc tính Thành viên Mã thành viên, Tên truy cập, Tên thành viên, Mật khẩu, Email Quyền Mã quyền, Tên quyền Quyền thành viên Mã quyền, mã thành viên Góp ý Mã góp ý, người gửi, email, tiêu đề, nội dung, ngày gửi Điểm tuyển sinh Mã thí sinh, Tên thí sinh, Ngày sinh, Quê quán, Số báo danh, Hệ đào tạo, Năm tuyển sinh, Điểm môn1,Hệ số môn 1, Điểm môn2, Hệ số môn2, Điểm môn3, Hệ số môn 3, Điểm thưởng, Tổng điểm,Trạng thái Thảo luận Mã thảo luận, Mã Module, Tiêu đề, Ngày gửi, Nội dung, Ngày hết hạn, Người gửi Thông báo Mã thông báo, Mã Module, Người gửi, Ngày gửi, Tiêu đề, Liên kết, Ngày hết hạn, Nội dung Sự kiện Mã sự kiện, Mã Module, Người gửi, Ngày gửi, Tiêu đề, Nơi xảy ra, Ngày hết hạn, Nội dung Liên kết Mã liên kết, Mã Module, Người gửi, Ngày gửi, Tiêu đề, Nội dung, Đường dẫn Sinh viên Mã sinh viên, Tên sinh viên, Ngày sinh, Quê quán, Địa chỉ, Số báo danh, Hệ đào tạo, Năm tuyển sinh, Điểm môn1,Hệ số môn1, Điểm môn2, Hệ số môn2, Điểm môn3, Hệ số môn 3, Điểm thưởng, Tổng điểm,Lớp, Khoa,Trung bình khóa học, Kiểu tốt nghiệp,Môn tốt nghiệp 1, Môn tốt nghiệp 2, Môn tốt nghiệp 3, Điểm thưởng tốt nghiệp, Trạng thái, Ghi chú Tin tức Mã tin, Tiêu đề, Tóm tắt nội dung, Nội Dung, Người gửi, Mã nhóm tin tức, Hình ảnh Nhóm tin tức Mã nhóm, Tiêu đề, Mức, Mã thư mục cha, Vị trí hiển thị, Số lượng tin hiển thị Upload Mã file, Tên file, Đường dẫn, Người gửi 6.3 Mô hình thực thể liên kết CHƯƠNG V THIẾT KẾ HỆ THỐNG CỔNG THÔNG TIN VIỆN ĐẠI HỌC MỞ HÀ NỘI Chương 5 trình bày 5 vấn đề chính sau - Đặc tả tiến trình - Cấu trúc cổng thông tin Viện Đại học Mở Hà Nội - Cơ sở dữ liệu quan hệ - Các giao diện chính - Các đoạn code tiêu biểu I. ĐẶC TẢ TIẾN TRÌNH Đặc tả tiến trình hệ thống dùng giả mã 1.1 Đặc tả tiến trình đăng nhập 1.1.1 Đặc tả tiến trình xử lý đăng nhập 1, myname = tên truy cập 2, my pass = mật khẩu 3, Mở kho dữ liệu “Thành viên” 4, Find( THANHVIEN.name) = myname 5, If không thấy then a,Thông báo tên truy cập không hợp lệ b, Dừng 6, Kiểm tra mật khẩu If THANHVIEN.pass mypass then a, Thông báo sai mật khẩu b, Dừng 7, Lấy quyền quản trị của thành viên myroleid : mã quyền của thành viên THANHVIEN.roleid = myroleid 8, Đóng kho “Thành viên” 9, Mở kho “Quyền” 10, Tìm quyền của thành viên Find(myroleid) = QUYEN.roleid Return tên quyền 11, Đóng kho “Quyền” 12, Thông báo thành viên đăng nhập thành công 1.1.2 Đặc tả tiến trình xử lý đổi mật khẩu 1, Đăng nhập thành công 2, newpass = mật khẩu mới 3, Mở kho dữ liệu “Thành viên” 4, Find ( THANHVIEN.name) = tên truy cập đã đăng nhập 5, Cập nhật lại mật khẩu THANHVIEN.pass = newpass 6, Đóng kho “Thành viên” 7, Thông báo đã đổi mật khẩu thành công 1.1.3 Đặc tả tiến trình xử lý quên mật khẩu 1, myname = tên truy cập 2, Gửi cho Người quản trị (Admin) Các công việc của Admin 3, Nhận thông tin người dùng quên mật khẩu 4, Admin đăng nhập bằng tài khoản của Admin 5, Chọn phần Sửa thông tin thành viên 6, Nhập myname (người dùng vừa gửi) 7, Mở kho dữ liệu “Thành viên” 8, Find(THANHVIEN.name) = myname 9, If không thấy then a,Thông báo tên truy cập không hợp lệ b, Thông báo cho người dùng không có tên truy cập đã nêu. c, Dừng 10, Cập nhật lại mật khẩu newpass = mật khẩu mới THANHVIEN.pass = newpass 11, Đóng kho “Thành viên” 12, Thông báo cho người dùng đã cấp lại mật khẩu 13, Gửi cho người dùng mật khẩu mới 1.2 Đặc tả tiến trình Đăng ký thành viên 1, Vào mục “Đăng ký thành viên” 2, newname = tên thành viên mới 3, newpass = mật khẩu 4, Nhập Email 5, Hệ thống mở kho dữ liệu “Thành viên” 6, Kiểm tra thành viên mới nhập có trùng tên với thành viên đã có hay không If trùng then a, Thông báo trùng tên thành viên b, Dừng 7, Tạo bản ghi thành viên 8, Cập nhật vào Kho dữ liệu “Thành viên” 9, Đóng kho “Thành viên” 10, Thông báo đã cập nhật thành công 1.3 Đặc tả tiến trình hiển thị của Trang tin tức 1, Yêu cầu hiển thị Trang tin tức 2, Mở Kho “Tin tức”,“Thư mục”,“Thông báo”, “Liên kết nhanh”. 3, Lấy dữ liệu “Trang tin tức” yêu cầu để hiển thị a, Các thông báo còn hiệu lực b, Các liên kết nhanh c, Các Module được chỉ định hiển thị trên trang tin tức d, Các Topic được chỉ định hiện tại các vị trí e, Số lượng tin chỉ định hiển thị cho mỗi Topic 4, Đóng kho “Tin tức”,“Thư mục”,“Thông báo”, “Liên kết nhanh”. 5, Hiển thị 1.4 Đặc tả tiến trình Tra cứu điểm tuyển sinh 1, Nhập thông tin tìm kiếm 2, Mở Kho “Tuyển sinh”. 3, Tùy chọn Tìm kiếm Theo Tên thí sinh Theo Số báo danh thí sinh Theo Quê quán thí sinh 4, If chọn tìm kiếm theo tên then myname = Tên thí sinh a, Find(TUYENSINH.name) = myname b, If không tìm thấy then x, Thông báo không tìm thấy y, Dừng c, Return myname d, Thông báo kết quả 5, If chọn tìm kiếm theo số báo danh then mynumber = Số báo danh thí sinh a, Find(TUYENSINH.number) = mynumber b, If không tìm thấy then x, Thông báo không tìm thấy y, Dừng c, Return mynumber d, Thông báo kết quả 6, If chọn tìm kiếm theo quê quán then myplace = quê quán thí sinh a, Find(TUYENSINH.place) = myplace b, If không tìm thấy then x, Thông báo không tìm thấy y, Dừng c, Return myplace d, Thông báo kết quả 7, Đóng kho “Tuyển sinh” 1.5 Đặc tả tiến trình Tra cứu thông tin sinh viên 1, mname = tên sinh viên 2, myclass = Lớp 3, myFaculty = Khoa 4, mySystem = Hệ đào tạo 5, Mở Kho “Sinh viên”. 6, Tìm kiếm Find( SINHVIEN.class = myclass and SINHVIEN.faculty = myFaculty and SINHVIEN.system = mySystem) If không tìm thấy then a, Thông báo không tìm thấy a, Dừng 7, Return Thông tin sinh viên 8, Đóng kho “Sinh viên” 9, Thông báo kết quả. 1.6 Đặc tả tiến trình Thông tin góp ý 1, Nhập thông tin góp ý 2, Mở kho “Góp ý” 3, Tạo bản ghi mới 4, Cập nhật vào kho “Góp ý” 5, Đóng kho “Góp ý” 6, Thông báo góp ý thành công. 1.7 Đặc tả tiến trình Quản trị hệ thống 1.7.1 Đặc tả tiến trình Quản lý Tab 1.7.1.1 Đặc tả tiến trình Tạo Tab 1, Nhập tên Tab 2, Cập nhật vào file Cấu hình 3, Thông báo cập nhật thành công 1.7.1.2 Đặc tả tiến trình Xóa Tab 1, Chọn Tab cần xóa 2, Xóa Tab a, Xóa tab b, Xóa các Module đang được hiển thị trong Tab đó 3, Thông báo Xóa thành công 1.7.1.3 Đặc tả tiến trình Sửa Tab 1, Chọn Tab cần sửa 2, Nhập tên Tab mới 3, Cập nhật thêm/ bớt Module hiển thị 4, Cập nhật vào file Cấu hình 5, Thông báo sửa thành công 1.7.2 Đặc tả tiến trình Quản lý Module 1.7.2.1 Đặc tả tiến trình Cập nhật Module 1, Nhập tên Module 2, Cập nhật vào file Cấu hình 3, Tải Module lên Server 4, Thông báo cập nhật thành công 1.7.2.2 Đặc tả tiến trình Xóa Module 1, Chọn Module cần xóa 2, Xóa Module a, Xóa định nghĩa Module trong file cấu hình b, Xóa Module trên Server 3, Thông báo Xóa thành công 1.7.2.3 Đặc tả tiến trình Sửa Module (Sửa tên Module) 1, Chọn Module cần sửa 2, Nhập tên Module mới 3, Cập nhật vào file Cấu hình 4, Thông báo sửa thành công 1.7.3 Đặc tả tiến trình Quản lý Thành viên 1.7.3.1 Đặc tả tiến trình Tạo tài khoản mới 1, newname = tên thành viên mới 2, newpass = mật khẩu 3, Nhập Email 4, Mở kho dữ liệu “Thành viên” 5, Kiểm tra thành viên mới nhập có trùng tên với thành viên đã có hay không If trùng then a, Thông báo trùng tên thành viên b, Dừng 6, Tạo bản ghi thành viên 7, Cập nhật vào Kho dữ liệu “Thành viên” 8, Đóng kho “Thành viên” 9, Thông báo đã cập nhật thành công 1.7.3.2 Đặc tả tiến trình Sửa thông tin thành viên 1, myname = tên thành viên 2, Mở kho dữ liệu “Thành viên” 3, Find(THANHVIEN.name) = myname 4, If không tìm thấy then a, Thông báo không có thành viên b, Dừng 5, Sửa lại thông tin thành viên 7, Cập nhật vào bản ghi THANHVIEN 8, Đóng kho “thành viên” 9, Thông báo sửa thành công 1.7.3.3 Đặc tả tiến trình Xóa thành viên 1, mname = tên thành viên cần xóa 2, Mở kho dữ liệu “Thành viên” 3, Find( THANHVIEN.name) = mname 4, If không tìm thấy then a, Thông báo không có thành viên b, Dừng 5, Xóa bản ghi THANHVIEN 6, Đóng kho “Thành viên” 7, Thông báo xóa thành công 1.7.3.4 Đặc tả tiến trình Tìm kiếm thành viên 1, mname = tên thành viên 2, Mở kho dữ liệu “Thành viên” 3, Find( THANHVIEN.name) = myname 4, If không tìm thấy then a, Thông báo không có thành viên b, Dừng 5, Return THANHVIEN 6, Đóng kho “Thành viên” 7, Thông báo kết quả tìm kiếm. 1.7.4 Đặc tả tiến trình Quản lý Quyền 1.7.4.1 Đặc tả tiến trình Tạo quyền mới 1, newrole = tên quyền mới 2, Mở kho dữ liệu “Quyền” 3, Cập nhật vào Kho dữ liệu “Quyền” 4, Đóng kho “Quyền” 5, Thông báo đã cập nhật thành công 1.7.4.2 Đặc tả tiến trình Sửa quyền 1, editrole = quyền cần sửa 2, Mở kho dữ liệu “Quyền” 3, Sửa lại tên quyền 4, Find(ROLE.name) =editrole 5, Cập nhật vào bản ghi ROLE 6, Đóng kho “Quyền” 7, Thông báo sửa thành công 1.7.4.3 Đặc tả tiến trình Xóa quyền 1, myrole = tên quyền 2, Mở kho dữ liệu “Quyền” 3, Find(ROLE.name) = myrole 4, Xóa bản ghi ROLE 5, Đóng kho “Quyền” 6, Thông báo xóa thành công 1.7.5 Đặc tả tiến trình Quản lý Tin tức 1.7.5.1 Đặc tả tiến trình Cập nhật bài mới 1, Nhập thông tin bài viết 2, Mở kho dữ liệu “Tin tức” 3, Tạo bản ghi mới 4, Tải ảnh (nếu có) lên Server 5, Cập nhật vào Kho dữ liệu “Tin tức” 6, Đóng kho “Tin tức” 7, Thông báo đã cập nhật thành công 1.7.5.2 Đặc tả tiến trình xem bài viết 1, Chọn bài viết cần xem 2, Mở kho dữ liệu “Tin tức” 3, myId= mã bài viết Find( TINTUC.id) = myId 4, Tải nội dung về Client 5, Đóng kho “Tin tức” 6, Hiển thị nội dung tin 1.7.5.3 Đặc tả tiến trình Xóa bài viết 1, Chọn bài viết cần xóa 2, Mở kho dữ liệu “Tin tức” 3, myId= mã bài viết Find( TINTUC.id) = myId 4, Xóa bản ghi TINTUC 5, Đóng kho “Tin tức” 6, Thông báo xóa thành công 1.7.5.4 Đặc tả tiến trình Sửa bài viết 1, myId= mã bài viết 2, Mở kho dữ liệu “Tin tức” 3, Find(TINTUC.id) = myId 4, Tải bản ghi TINTUC về Client 5, Sửa nội dung bài viết 6,Cập nhật nội dung mới vào bản ghi TINTUC 7, Đóng kho “Tin tức” 8, Thông báo sửa thành công 1.7.5.5 Đặc tả tiến trình tìm kiếm bài viết (theo thư mục) 1, Chọn thư mục chứa bài viết cần tìm 2, Mở kho dữ liệu “Thư mục” 3, myId= mã thư mục Find(THUMUC.id) = myId 4, Hiển thị tiêu đề tất cả bài viết có mã thư mục = myId 5, Đóng kho “Thư mục” 1.7.5 Đặc tả tiến trình Upload 1, Chọn file cần upload 2, Mở kho dữ liệu “Upload” 3, Tải file lên Server 4, Tạo bản ghi mới 5, Cập nhật đường dẫn vào kho “Upload” 6, Đóng kho “Upload” 7, Thông báo upload thành công 1.7.6 Đặc tả tiến trình Quản lý thư mục 1.7.6.1 Đặc tả tiến trình Tạo thư mục 1, Nhập tên thư mục 2, Mở kho dữ liệu “Thư mục” 3, Tạo bản ghi mới 4, Cập nhật vào Kho dữ liệu “Thư mục” 5, Đóng kho “Thư mục” 6, Thông báo đã cập nhật thành công 1.7.6.2 Đặc tả tiến trình Sửa thư mục 1, Chọn thư mục cần sửa 2, Mở kho dữ liệu “Thư mục” 3, mydirid = mã thư mục Find( THUMUC.id) = mydirid 4, Sửa thông tin thư mục 5, Cập nhật vào bản ghi THUMUC 6, Đóng kho “Thư mục” 7, Thông báo đã cập nhật thành công 1.7.6.3 Đặc tả tiến trình Xóa thư mục 1, mydirid = mã thư mục 2, Mở kho dữ liệu “Thư mục” 3, Find(THUMUC.id) = mydirid 4, Xóa thư mục con của bản ghi THUMUC 5, Xóa bản ghi THUMUC 6, Đóng kho “Thư mục” 7, Thông báo đã xóa thành công 1.7.7 Đặc tả tiến trình Quản lý tuyển sinh 1.7.7.1 Đặc tả tiến trình Nhập kết quả tuyển sinh 1, Nhập tên thông tin thí sinh 2, Mở kho dữ liệu “Tuyển sinh” 3, Tạo bản ghi mới 4, Cập nhật vào Kho dữ liệu “Tuyển sinh” 5, Đóng kho “Tuyển sinh” 6, Thông báo đã cập nhật thành công 1.7.7.2 Đặc tả tiến trình Sửa kết quả tuyển sinh 1, Nhập tên thí sinh cần sửa 2, Mở kho dữ liệu “Tuyển sinh” 3, myid = Mã thí sinh Find(TUYENSINH.id) = myid 4, Sửa thông tin thí sinh 5, Cập nhật lên bản ghi TUYENSINH 6, Đóng kho “Tuyển sinh” 7, Thông báo sửa thành công 1.7.7.1 Đặc tả tiến trình Xóa kết quả tuyển sinh 1, Nhập năm tuyển sinh cần xóa 2, Nhập hệ đào tạo cần xóa 3, Mở kho “Tuyển sinh” 4, delyear = năm cần xóa delsys = hệ đào tạo cần xóa 5, while TUYENSINH.year = delyear AND TUYENSINH.system = delsys DO Delete(TUYENSINH) TUYENSINH += 1 End while 6, Đóng kho “Tuyển sinh” 7, Thông báo đã xóa thành công 1.7.8 Đặc tả tiến trình nhập thông tin sinh viên 1, exyear = năm tuyển sinh 2, sys = Hệ đào tạo 3, fal = Khoa 4, Nhập điểm chuẩn tuyển sinh (point = điểm chuẩn) 5, Mở kho “Tuyển sinh” 6, Mở kho “Sinh viên” 7, Cập nhật thí sinh thi đỗ sang kho “Sinh viên” while TUYENSINH.point >= point DO SINHVIEN = TUYENSINH SINHVIEN +=1 TUYENSINH +=1 End while 8, Đóng kho “Tuyển sinh” 9, Đóng kho “Sinh viên” 10, Thông báo cập nhật thành công 1.7.9 Đặc tả tiến trình Quản lý liên kết 1.7.9.1 Đặc tả tiến trình Tạo liên kết 1, linkname = tên liên kết 2, Mở kho dữ liệu “Liên kết” 3, Tạo bản ghi mới 4, Cập nhật vào Kho dữ liệu “Liên kết” 5, Đóng kho “Liên kết” 6, Thông báo đã cập nhật thành công 1.7.9.2 Đặc tả tiến trình Sửa liên kết 1, mylink = tên liên kết cần sửa 2, Mở kho dữ liệu “Liên kết” 3, myid = Mã liên kết Find(LIENKET.id) = myid 4, Sửa thông tin liên kết 5, Cập nhật lên bản ghi LIENKET 6, Đóng kho “Liên kết” 7, Thông báo sửa thành công 1.7.10 Đặc tả tiến trình Quản lý thông tin góp ý 1.7.10.1 Đặc tả tiến trình Xem thông tin góp ý 1, Chọn thông tin góp ý muốn xem 2, Mở kho “Góp ý” 3, Ideaid = mã thông tin góp ý Tìm kiếm GOPY.id = Ideaid 4, Tải về Client 5, Đóng kho “Góp ý” 1.7.10.1 Đặc tả tiến trình Xóa thông tin góp ý 1, myideaid = mã tin góp ý 2, Mở kho dữ liệu “Góp ý” 3, Find(GOPY.id) = myideaid 4, Xóa bản ghi GOPY 6, Đóng kho “Góp ý” 7, Thông báo đã xóa thành công II. Cấu trúc Cổng thông tin Viện Đại Học Mở Hà Nội 2.1 Cấu trúc cổng Cổng thông tin Viện Đại Học Mở được cấu trúc dưới dạng Tab. Tất cả các thông tin sẽ được trình bày trên 1 trang duy nhất (default.aspx) Portal Default .aspx Tab1 Header … Nội dung Tab3 Tab2 …… Nội dung trái Nội dung phải Nội dung giữa Footer … Hình 63 : Cấu trúc Cổng Thông Tin Viện Đại Học Mở Hà Nội Các Module chương trình sẽ được trình bày trên các Tab. Khi mỗi Tab được chọn, nội dung của Tab đó sẽ được hiển thị. Module 1 Module 2 Module 3 … Tab1 Hình 64: Cấu trúc một Tab 2.2 Ý nghĩa của Tab trong hệ thống Trong Cổng thông tin Viện Đại Học Mở Hà Nội, có 3 file quan trọng nhất đó là : Configuration.vb , DesktopControls.vb , PortalCfg.xml PortalCfg.xml : chứa cấu trúc của portal dạng xml Configuration.vb : là file quan trọng nhất , chứa lõi của portal . DesktopControls.vb : chứa định nghĩa PortalModuleControl , là baseclass của các module trong Portal . Khi Click vào 1 Tab sẽ xuất hiện đường dẫn như sau: trong đó : tabindex : thứ tự của tab hiện thời. tabid : id của tab hiện thời Như vậy đường dẫn trên có ý nghĩa : tab hiện thời có id là 1 và có thứ tự trong listtab là 0 . Như thế phần nội dung phía dưới sẽ hiển thị nội dung của tab có id là 1 và sẽ tô trắng tab có thứ tự là 0 trong listtab (chính là phần tử có id = 1). Trong hệ thống đây chính là “trang chủ” Trong file Global.asax, mỗi lần có yêu cầu (request) (mỗi lần hiển thị trang) các tham số tabindex và tabid sẽ được nhận và từ đó sẽ lấy ra PortalSettings cần thiết . Cùng với SiteSettings , 2 đối tượng này sẽ được cho vào Context (đối tượng tồn tại suốt trong thời gian chạy Portal) . Đoạn mã sau nằm trong file Global.asax thực thi việc này. Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs) Dim tabIndex As Integer = 0 Dim tabId As Integer = 1 ' Lay tabindex tu querystring If Not (Request.Params("tabindex") Is Nothing) Then tabIndex = CInt(Request.Params("tabindex")) End If ' lay TabID tu querystring If Not (Request.Params("tabid") Is Nothing) Then tabId = CInt(Request.Params("tabid")) End If ' Add doi tuong PortalSettings vao context Context.Items.Add("PortalSettings", New PortalSettings(tabIndex, tabId)) ' Doc thong tin cau hinh tu file XML và add vao context Dim config As Configuration = New Configuration Context.Items.Add("SiteSettings", config.GetSiteSettings()) Try If Not (Request.UserLanguages Is Nothing) Then Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages(0)) Else Thread.CurrentThread.CurrentCulture = New CultureInfo("en-us") End If Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture Catch ex As Exception Thread.CurrentThread.CurrentCulture = New CultureInfo("en-us") End Try End Sub ----------------------------------------------------------------------------------------------------------- Như vậy nhiệm vụ còn lại của DestopDefault.aspx chỉ là sử dụng 2 đối tượng này (tabindex, tabid) và hiển thị các Module. Đoạn mã sau nằm trong file DestopDefault.aspx.vb thực thi công việc này. Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init InitializeComponent() If Request.Params("tabindex") Is Nothing Or Request.Params("tabid") Is Nothing Then Response.Redirect("DesktopDefault.aspx?tabindex=0&tabid=1") Return End If ' Lay PortalSettings tu` Current Context Dim _portalSettings As PortalSettings = CType(HttpContext.Current.Items("PortalSettings"), PortalSettings) 'Kiem tra quyen` If PortalSecurity.IsInRoles(_portalSettings.ActiveTab.AuthorizedRoles) = False Then Response.Redirect("~/Admin/AccessDenied.aspx") End If ' Tu dong chen` cac module vao` trang . If _portalSettings.ActiveTab.Modules.Count > 0 Then ' Lap qua cac Configuration Dim _moduleSettings As ModuleSettings For Each _moduleSettings In _portalSettings.ActiveTab.Modules Dim parent As Control = Page.FindControl(_moduleSettings.PaneName) If _moduleSettings.CacheTime = 0 Then Dim portalModule As PortalModuleControl = CType(Page.LoadControl(_moduleSettings.DesktopSrc), PortalModuleControl) portalModule.PortalId = _portalSettings.PortalId portalModule.ModuleConfiguration = _moduleSettings parent.Controls.Add(portalModule) Else Dim portalModule As New CachedPortalModuleControl portalModule.PortalId = _portalSettings.PortalId portalModule.ModuleConfiguration = _moduleSettings parent.Controls.Add(portalModule) End If ' moi module duoc cach nhau boi (xuong dong`) parent.Controls.Add(New LiteralControl("")) parent.Visible = True Next _moduleSettings End If End Sub III. Cơ sở dữ liệu quan hệ Cơ sở dữ liệu của hệ thống gồm 13 bảng dữ liệu có quan hệ với nhau như sau: Hình 65 : Cơ sở dữ liệu quan hệ của hệ thống 3.1 Cơ sở dữ liệu cho Module Quản lý thành viên Hình 66 : Cơ sở dữ liệu cho Module Quản lý thành viên 3.2 Cơ sở dữ liệu cho Module Quản lý tin tức Hình 67 : Cơ sở dữ liệu cho Module Quản lý tin tức 3.3 Cơ sở dữ liệu cho Module Tra cứu điểm tuyển sinh Hình 68 : Cơ sở dữ liệu cho Module Tra cứu điểm tuyển sinh 3.4 Cơ sở dữ liệu cho Module tra cứu thông tin sinh viên Hình 69 : Cơ sở dữ liệu cho Module Tra cứu thông tin sinh viên 3.5 Nội dung các bảng dữ liệu Tên bảng Nội dung Portal_Student Lưu trữ các thông tin về sinh viên Portal_News_Uploadfile Lưu trữ các thông tin về các file được tải lên Server Portal_Users Lưu trữ các thông tin về thành viên hệ thống Portal_UserRoles Lưu trữ các thông tin về mã thành viên và mã quyền Portal_Roles Lưu trữ các thông tin về quyền truy nhập Portal_Point Lưu trữ các thông tin về kết quả tuyển sinh Portal_Idea Lưu trữ các thông tin về các ý kiến đóng góp cho hệ thống của người dùng Portal_Discussion Lưu trữ các thông tin về thảo luận của các thành viên hệ thống Portal_Annoucements Lưu trữ các thông tin về các thông báo Portal_Events Lưu trữ các thông tin về các sự kiện Portal_NewsCat Lưu trữ các thông tin về thư mục tin tức Portal_NewsItem Lưu trữ các thông tin về tin tức Portal_Link Lưu trữ các thông tin về các liên kết nhanh IV. Các giao diện chính Hình 70 : Giao diện hệ thống (được hiển thị bởi Module Tin tức) Hình 71 : Giao diện khi 1 mẩu tin được hiển thị Hình 72 : Giao diện tiếp nhận thông tin góp ý Hình 73 : Giao diện hệ thống quản lý thông tin góp ý Hình 74 : Giao diện hệ thống quản lý Module Hình 75 : Giao diện hệ thống quản lý tab Hình 76 : Giao diện hệ thống tổ chức Module Hình 77 : Giao diện hệ thống tra cứu kết quả tuyển sinh V. Một số đoạn chương trình tiêu biểu 5.1 Đoạn chương trình cấu hình hệ thống Public Class Configuration Public Sub UpdatePortalInfo(ByVal portalId As Integer, ByVal portalName As String, ByVal alwaysShow As Boolean) Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration) With siteSettings.Global.FindByPortalId(portalId) .PortalId = portalId .PortalName = portalName .AlwaysShowEditButton = alwaysShow End With SaveSiteSettings() End Sub ‘---------------------- Public Function AddTab(ByVal portalId As Integer, ByVal tabName As String, ByVal tabOrder As Integer) As Integer Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration) Dim newRow As SiteConfiguration.TabRow = siteSettings.Tab.NewTabRow() With newRow .TabName = tabName .TabOrder = tabOrder .AccessRoles = "All Users" End With siteSettings.Tab.AddTabRow(newRow) SaveSiteSettings() Return newRow.TabId End Function ‘--------------------------------- Public Sub UpdateTab(ByVal portalId As Integer, ByVal tabId As Integer, ByVal tabName As String, ByVal tabOrder As Integer, ByVal authorizedRoles As String) Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration) With siteSettings.Tab.FindByTabId(tabId) .TabName = tabName .TabOrder = tabOrder .AccessRoles = authorizedRoles End With SaveSiteSettings() End Sub ‘------------------------------------ Public Sub UpdateTabOrder(ByVal tabId As Integer, ByVal tabOrder As Integer) Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration) With siteSettings.Tab.FindByTabId(tabId) .TabOrder = tabOrder End With SaveSiteSettings() End Sub Public Sub DeleteTab(ByVal tabId As Integer) Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration) Dim tabTable As SiteConfiguration.TabDataTable = siteSettings.Tab Dim tabRow As SiteConfiguration.TabRow = siteSettings.Tab.FindByTabId(tabId) Dim myConnection As New SqlConnection(ConfigurationSettings.AppSettings("connectionString")) Dim myCommand As New SqlCommand("Portal_DeleteModule", myConnection) myCommand.CommandType = CommandType.StoredProcedure Dim parameterModuleID As New SqlParameter("@ModuleID", SqlDbType.Int, 4) myConnection.Open() Dim moduleRow As SiteConfiguration._ModuleRow Try For Each moduleRow In tabRow.GetModuleRows() myCommand.Parameters.Clear() parameterModuleID.Value = moduleRow.ModuleId myCommand.Parameters.Add(parameterModuleID) myCommand.ExecuteNonQuery() Next Catch ex As Exception End Try myConnection.Close() tabTable.RemoveTabRow(tabRow) SaveSiteSettings() End Sub ‘------------------------------------- Public Sub UpdateModuleOrder(ByVal ModuleId As Integer, ByVal ModuleOrder As Integer, ByVal pane As String) Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration) With siteSettings._Module.FindByModuleId(ModuleId) .ModuleOrder = ModuleOrder .PaneName = pane End With SaveSiteSettings() End Sub ‘--------------------------------------- Public Function AddModule(ByVal tabId As Integer, ByVal moduleOrder As Integer, ByVal paneName As String, ByVal title As String, ByVal moduleDefId As Integer, ByVal cacheTime As Integer, ByVal editRoles As String, ByVal showMobile As Boolean) As Integer Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration) Dim newModule As SiteConfiguration._ModuleRow = siteSettings._Module.New_ModuleRow() With newModule .ModuleDefId = moduleDefId .ModuleOrder = moduleOrder .ModuleTitle = title .PaneName = paneName .EditRoles = editRoles .CacheTimeout = cacheTime .TabRow = siteSettings.Tab.FindByTabId(tabId) End With ' add modun moi vao trong bang modun siteSettings._Module.Add_ModuleRow(newModule) ' luu lai SaveSiteSettings() ' tra lai id modun moi Return newModule.ModuleId End Function ‘--------------------------------------------------- Public Function UpdateModule(ByVal moduleId As Integer, ByVal moduleOrder As Integer, ByVal paneName As String, ByVal title As String, ByVal cacheTime As Integer, ByVal editRoles As String) As Integer Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration) With siteSettings._Module.FindByModuleId(moduleId) .ModuleOrder = moduleOrder .ModuleTitle = title .PaneName = paneName .CacheTimeout = cacheTime .EditRoles = editRoles End With SaveSiteSettings() Return moduleId End Function ‘----------------------------------------------------- Public Sub DeleteModule(ByVal moduleId As Integer) Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration) Dim myConnection As New SqlConnection(ConfigurationSettings.AppSettings("connectionString")) Dim myCommand As New SqlCommand("Portal_DeleteModule", myConnection) myCommand.CommandType = CommandType.StoredProcedure Dim parameterModuleID As New SqlParameter("@ModuleID", SqlDbType.Int, 4) myConnection.Open() parameterModuleID.Value = moduleId myCommand.Parameters.Add(parameterModuleID) myCommand.ExecuteNonQuery() myConnection.Close() siteSettings._Module.Remove_ModuleRow(siteSettings._Module.FindByModuleId(moduleId)) SaveSiteSettings() End Sub ‘-------------------------------------------------- Public Sub UpdateModuleSetting(ByVal moduleId As Integer, ByVal key As String, ByVal value As String) Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration) Dim moduleRow As SiteConfiguration._ModuleRow = siteSettings._Module.FindByModuleId(moduleId) Dim settingsRow As SiteConfiguration.SettingsRow If moduleRow.GetSettingsRows().Length > 0 Then settingsRow = moduleRow.GetSettingsRows()(0) Else settingsRow = siteSettings.Settings.NewSettingsRow() settingsRow._ModuleRow = moduleRow siteSettings.Settings.AddSettingsRow(settingsRow) End If Dim settingRow As SiteConfiguration.SettingRow Dim settingRows() As SiteConfiguration.SettingRow = settingsRow.GetSettingRows() If settingRows.Length = 0 Then If value String.Empty Then settingRow = siteSettings.Setting.NewSettingRow() With settingRow .SettingsRow = settingsRow .Name = key .Setting_Text = value End With siteSettings.Setting.AddSettingRow(settingRow) End If Else Dim found As Boolean = False Dim i As Int32 For i = 0 To settingRows.Length - 1 If settingRows(i).Name = key Then If value = String.Empty Then siteSettings.Setting.RemoveSettingRow(settingRows(i)) Else settingRows(i).Setting_Text = value End If found = True End If Next If found = False Then If value String.Empty Then settingRow = siteSettings.Setting.NewSettingRow() With settingRow .SettingsRow = settingsRow .Name = key .Setting_Text = value End With siteSettings.Setting.AddSettingRow(settingRow) End If End If End If SaveSiteSettings() End Sub ‘-------------------------------------------- Public Shared Function GetModuleSettings(ByVal moduleId As Integer) As Hashtable Dim _settingsHT As New Hashtable Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration) Dim moduleRow As SiteConfiguration._ModuleRow = siteSettings._Module.FindByModuleId(moduleId) If moduleRow.GetSettingsRows().Length > 0 Then Dim settingsRow As SiteConfiguration.SettingsRow = moduleRow.GetSettingsRows()(0) If Not settingsRow Is Nothing Then Dim sRow As SiteConfiguration.SettingRow For Each sRow In settingsRow.GetSettingRows() _settingsHT(sRow.Name) = sRow.Setting_Text Next End If End If Return _settingsHT End Function ' ' DINH NGHIA MODULE ' Public Function GetModuleDefinitions(ByVal portalId As Integer) As DataRow() Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration) Return siteSettings.ModuleDefinition.Select() End Function ‘---------------------------------- Public Function AddModuleDefinition(ByVal portalId As Integer, ByVal name As String, ByVal desktopSrc As String) As Integer Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration) Dim newModuleDef As SiteConfiguration.ModuleDefinitionRow = siteSettings.ModuleDefinition.NewModuleDefinitionRow() With newModuleDef .FriendlyName = name .DesktopSourceFile = desktopSrc End With siteSettings.ModuleDefinition.AddModuleDefinitionRow(newModuleDef) SaveSiteSettings() Return newModuleDef.ModuleDefId End Function Public Sub DeleteModuleDefinition(ByVal defId As Integer) Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration) Dim myConnection As New SqlConnection(ConfigurationSettings.AppSettings("connectionString")) Dim myCommand As New SqlCommand("Portal_DeleteModule", myConnection) myCommand.CommandType = CommandType.StoredProcedure Dim parameterModuleID As New SqlParameter("@ModuleID", SqlDbType.Int, 4) myConnection.Open() Dim moduleRow As SiteConfiguration._ModuleRow For Each moduleRow In siteSettings._Module.Select() If moduleRow.ModuleDefId = defId Then myCommand.Parameters.Clear() parameterModuleID.Value = moduleRow.ModuleId myCommand.Parameters.Add(parameterModuleID) siteSettings._Module.Remove_ModuleRow(moduleRow) myCommand.ExecuteNonQuery() End If Next myConnection.Close() siteSettings.ModuleDefinition.RemoveModuleDefinitionRow(siteSettings.ModuleDefinition.FindByModuleDefId(defId)) SaveSiteSettings() End Sub ********************************************************************* Public Sub UpdateModuleDefinition(ByVal defId As Integer, ByVal name As String, ByVal desktopSrc As String) Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration) With siteSettings.ModuleDefinition.FindByModuleDefId(defId) .FriendlyName = name .DesktopSourceFile = desktopSrc End With SaveSiteSettings() End Sub ‘-------------------------------------------- Public Function GetSingleModuleDefinition(ByVal defId As Integer) As SiteConfiguration.ModuleDefinitionRow Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration) Return siteSettings.ModuleDefinition.FindByModuleDefId(defId) End Function ‘----------------------------------------------- Public Shared Function GetSiteSettings() As SiteConfiguration Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Cache("SiteSettings"), SiteConfiguration) If siteSettings Is Nothing Then siteSettings = New SiteConfiguration Dim configFile As String = HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings("configFile")) With siteSettings .Tab.TabIdColumn.AutoIncrement = True ._Module.ModuleIdColumn.AutoIncrement = True .ModuleDefinition.ModuleDefIdColumn.AutoIncrement = True siteSettings.ReadXml(configFile) End With HttpContext.Current.Cache.Insert("SiteSettings", siteSettings, New CacheDependency(configFile)) End If Return siteSettings End Function ‘-------------------------------------------- Public Sub SaveSiteSettings() Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Cache("SiteSettings"), SiteConfiguration) If siteSettings Is Nothing Then siteSettings = GetSiteSettings() End If Dim configFile As String = HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings("configFile")) siteSettings.WriteXml(configFile) End Sub End Class ‘------------------------------------ Public Class PortalSettings Public PortalId As Integer Public PortalName As String Public AlwaysShowEditButton As Boolean Public DesktopTabs As New ArrayList Public MobileTabs As New ArrayList Public ActiveTab As New TabSettings ‘------------------------------- Public Sub New(ByVal tabIndex As Integer, ByVal tabId As Integer) Dim config As Configuration = New Configuration Dim siteSettings As SiteConfiguration = config.GetSiteSettings() Dim tRow As SiteConfiguration.TabRow For Each tRow In siteSettings.Tab.Select("", "TabOrder") Dim tabDetails As New TabStripDetails With tabDetails .TabId = tRow.TabId .TabName = tRow.TabName .TabOrder = tRow.TabOrder .AuthorizedRoles = tRow.AccessRoles End With Me.DesktopTabs.Add(tabDetails) Next If Me.ActiveTab.TabId = 0 Then Me.ActiveTab.TabId = CType(Me.DesktopTabs(0), TabStripDetails).TabId End If Dim mRow As SiteConfiguration.TabRow For Each mRow In siteSettings.Tab.Select("ShowMobile='true'", "TabOrder") Dim tabDetails As New TabStripDetails With tabdetails .TabId = mRow.TabId .AuthorizedRoles = mRow.AccessRoles End With Me.MobileTabs.Add(tabDetails) Next Dim activeTab As SiteConfiguration.TabRow = siteSettings.Tab.FindByTabId(tabId) Dim moduleRow As SiteConfiguration._ModuleRow For Each moduleRow In activeTab.GetModuleRows() Dim moduleSettings As New moduleSettings With moduleSettings .ModuleTitle = moduleRow.ModuleTitle .ModuleId = moduleRow.ModuleId .ModuleDefId = moduleRow.ModuleDefId .ModuleOrder = moduleRow.ModuleOrder .TabId = tabId .PaneName = moduleRow.PaneName .AuthorizedEditRoles = moduleRow.EditRoles .CacheTime = moduleRow.CacheTimeout Dim modDefRow As SiteConfiguration.ModuleDefinitionRow = siteSettings.ModuleDefinition.FindByModuleDefId(.ModuleDefId) .DesktopSrc = modDefRow.DesktopSourceFile End With Me.ActiveTab.Modules.Add(moduleSettings) Next Me.ActiveTab.Modules.Sort() Dim globalSettings As SiteConfiguration.GlobalRow = siteSettings.Global.Rows(0) Me.PortalId = globalSettings.PortalId Me.PortalName = globalSettings.PortalName Me.AlwaysShowEditButton = globalSettings.AlwaysShowEditButton Me.ActiveTab.TabIndex = tabIndex Me.ActiveTab.TabId = tabId Me.ActiveTab.TabOrder = activeTab.TabOrder Me.ActiveTab.AuthorizedRoles = activeTab.AccessRoles Me.ActiveTab.TabName = activeTab.TabName End Sub End Class ‘------------------------------------- Public Class ModuleSettings Implements IComparable Public ModuleId As Integer Public ModuleDefId As Integer Public TabId As Integer Public CacheTime As Integer Public ModuleOrder As Integer Public PaneName As String Public ModuleTitle As String Public AuthorizedEditRoles As String Public DesktopSrc As String Protected Overridable Function CompareTo(ByVal value As Object) As Integer Implements IComparable.CompareTo If value Is Nothing Then Return 1 End If Dim compareOrder As Integer = CType(value, ModuleSettings).ModuleOrder If Me.ModuleOrder = compareOrder Then Return 0 If Me.ModuleOrder < compareOrder Then Return -1 If Me.ModuleOrder > compareOrder Then Return 1 Return 0 End Function End Class ‘-------------------------------- Public Class ModuleItem Implements IComparable Private _moduleOrder As Integer Private _title As String Private _pane As String Private _id As Integer Private _defId As Integer Public Property ModuleOrder() As Integer Get Return _moduleOrder End Get Set(ByVal Value As Integer) _moduleOrder = Value End Set End Property Public Property ModuleTitle() As String Get Return _title End Get Set(ByVal Value As String) _title = Value End Set End Property Public Property PaneName() As String Get Return _pane End Get Set(ByVal Value As String) _pane = Value End Set End Property Public Property ModuleId() As Integer Get Return _id End Get Set(ByVal Value As Integer) _id = Value End Set End Property Public Property ModuleDefId() As Integer Get Return _defId End Get Set(ByVal Value As Integer) _defId = Value End Set End Property Protected Overridable Function CompareTo(ByVal value As Object) As Integer Implements IComparable.CompareTo If value Is Nothing Then Return 1 End If Dim compareOrder As Integer = CType(value, ModuleItem).ModuleOrder If Me.ModuleOrder = compareOrder Then Return 0 If Me.ModuleOrder < compareOrder Then Return -1 If Me.ModuleOrder > compareOrder Then Return 1 Return 0 End Function End Class ' ModuleDef :mot Arraylist cua ModuleDefDetails Public Class ModuleDfs Inherits ArrayList Dim m As ArrayList = New ArrayList Public Sub New() Dim siteSettings As SiteConfiguration = Configuration.GetSiteSettings() Dim mds As ModuleDefDetails = New ModuleDefDetails Dim mdRow As SiteConfiguration.ModuleDefinitionRow For Each mdRow In siteSettings.ModuleDefinition.Select("ModuleType ='Admin'") Dim mdDetails As ModuleDefDetails = New ModuleDefDetails mdDetails.ModuleDefId = mdRow.ModuleDefId mdDetails.DesktopSourceFile = mdRow.DesktopSourceFile Try mdDetails.ModuleType = mdRow.ModuleType Catch ex As Exception End Try mdDetails.FriendlyName = mdRow.FriendlyName Me.Add(mdDetails) Next End Sub End Class Public Class ModuleDefDetails Public ModuleDefId As Integer Public DesktopSourceFile As String Public ModuleType As String Public FriendlyName As String End Class Public Class TabItem Implements IComparable Private _tabOrder As Integer Private _name As String Private _id As Integer Public Property TabOrder() As Integer Get Return _tabOrder End Get Set(ByVal Value As Integer) _tabOrder = Value End Set End Property Public Property TabName() As String Get Return _name End Get Set(ByVal Value As String) _name = Value End Set End Property Public Property TabId() As Integer Get Return _id End Get Set(ByVal Value As Integer) _id = Value End Set End Property Public Overridable Function CompareTo(ByVal value As Object) As Integer Implements IComparable.CompareTo If value Is Nothing Then Return 1 End If Dim compareOrder As Integer = CType(value, TabItem).TabOrder If Me.TabOrder = compareOrder Then Return 0 If Me.TabOrder < compareOrder Then Return -1 If Me.TabOrder > compareOrder Then Return 1 Return 0 End Function End Class End Namespace 5.2 Các hàm trong hệ thống quản lý tin tức Shared Function GetCat(ByVal cid As Integer) As DataSet Dim myconnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("connectionString")) Dim mycommand As SqlCommand = New SqlCommand("Portal_News_GetCat", myconnection) Dim ds As DataSet = New DataSet Dim da As SqlDataAdapter = New SqlDataAdapter mycommand.CommandType = CommandType.StoredProcedure AddParamToSQLCmd(mycommand, "@id", SqlDbType.Int, 0, ParameterDirection.Input, cid) myconnection.Open() da = New SqlDataAdapter(mycommand) da.Fill(ds) myconnection.Close() Return ds End Function ‘--------------------------------- Shared Function GetAllCatsLevel(ByVal id As Integer) As DataSet Dim myconnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("connectionString")) Dim mycommand As SqlCommand = New SqlCommand("Portal_News_GetAllCatsLevel", myconnection) Dim ds As DataSet = New DataSet Dim da As SqlDataAdapter = New SqlDataAdapter mycommand.CommandType = CommandType.StoredProcedure myconnection.Open() AddParamToSQLCmd(mycommand, "@id", SqlDbType.Int, 0, ParameterDirection.Input, id) da = New SqlDataAdapter(mycommand) da.Fill(ds) myconnection.Close() Return ds End Function ‘----------------------------------------- Shared Function UpdateCat(ByVal catid As Integer, ByVal newname As String, ByVal newparentid As Integer, ByVal newlevel As Integer, ByVal newviewitem As Integer, ByVal newamount As Integer) Dim myconnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("connectionString")) Dim mycommand As SqlCommand = New SqlCommand("Portal_News_UpdateCat", myconnection) Dim ds As DataSet = New DataSet Dim da As SqlDataAdapter = New SqlDataAdapter mycommand.CommandType = CommandType.StoredProcedure AddParamToSQLCmd(mycommand, "@id", SqlDbType.Int, 0, ParameterDirection.Input, catid) AddParamToSQLCmd(mycommand, "@newname", SqlDbType.NVarChar, 200, ParameterDirection.Input, newname) AddParamToSQLCmd(mycommand, "@newparentid", SqlDbType.Int, 0, ParameterDirection.Input, newparentid) AddParamToSQLCmd(mycommand, "@newlevel", SqlDbType.Int, 0, ParameterDirection.Input, newlevel) AddParamToSQLCmd(mycommand, "@newviewitem", SqlDbType.Int, 0, ParameterDirection.Input, newviewitem) AddParamToSQLCmd(mycommand, "@newamount", SqlDbType.Int, 0, ParameterDirection.Input, newamount) myconnection.Open() mycommand.ExecuteNonQuery() myconnection.Close() End Function ‘----------------------------------------- Shared Function AddNewsItem(ByVal title As String, ByVal summary As String, ByVal content As String, ByVal catid As Integer, ByVal author As String, ByVal imglink As String) Dim myconnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("connectionString")) Dim mycommand As SqlCommand = New SqlCommand("Portal_News_AddItem", myconnection) mycommand.CommandType = CommandType.StoredProcedure AddParamToSQLCmd(mycommand, "@title", SqlDbType.NVarChar, 500, ParameterDirection.Input, title) AddParamToSQLCmd(mycommand, "@summary", SqlDbType.NVarChar, 1000, ParameterDirection.Input, summary) AddParamToSQLCmd(mycommand, "@catid", SqlDbType.Int, 0, ParameterDirection.Input, catid) AddParamToSQLCmd(mycommand, "@author", SqlDbType.NVarChar, 100, ParameterDirection.Input, author) AddParamToSQLCmd(mycommand, "@img", SqlDbType.NVarChar, 100, ParameterDirection.Input, imglink) mycommand.Parameters.Add("@content", SqlDbType.NText) mycommand.Parameters("@content").Value = content myconnection.Open() mycommand.ExecuteNonQuery() myconnection.Close() End Function ‘---------------------------- Shared Function DelItem(ByVal id As Integer) Dim myconnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("connectionString")) Dim mycommand As SqlCommand = New SqlCommand("Portal_News_DelItem", myconnection) Dim ds As DataSet = New DataSet Dim da As SqlDataAdapter = New SqlDataAdapter mycommand.CommandType = CommandType.StoredProcedure AddParamToSQLCmd(mycommand, "@id", SqlDbType.Int, 0, ParameterDirection.Input, id) myconnection.Open() mycommand.ExecuteNonQuery() myconnection.Close() End Function ‘---------------------------------- Shared Function GetNewsItem(ByVal nid As Integer) As DataSet Dim myConnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("connectionString")) Dim mycommand As SqlCommand = New SqlCommand("Portal_News_GetNewsItem", myConnection) Dim ds As DataSet = New DataSet Dim da As SqlDataAdapter = New SqlDataAdapter mycommand.CommandType = CommandType.StoredProcedure AddParamToSQLCmd(mycommand, "@id", SqlDbType.Int, 0, ParameterDirection.Input, nid) myConnection.Open() da = New SqlDataAdapter(mycommand) da.Fill(ds) myConnection.Close() Return ds End Function TÀI LIỆU THAM KHẢO ---------------------------------------------- Phân tích và thiết kế hệ thống – Đào Thanh Tĩnh 2. Phân tích và thiết kế hệ thống thông tin – Nguyễn Văn Ba 3. Cấu trúc dữ liệu và giải thuật – Đỗ Xuân Lôi 4. SQL Server2000 - Phạm Hữu Khang 5. Lập trình Windows với C#.NET – Phương Lan 6. XML – nền tảng và ứng dụng – Nguyễn Phương Lan 7. Lập trình Visual Basic.NET – Hoàng Đức Hải 8. Khai thác hệ thống thông tin điện tử trong đề án 112 – Nguyễn Đình Hóa 9. Xây dựng ứng dụng thương mại điện tử bằng ASP.NET - Phạm Hữu Khang 10. Diễn đàn Tin Học – www.ddth.com 11. Diễn đàn Trái tim Việt Nam Online – www.ttvnol.com\forum 12. Diễn đàn Mã Nguồn – www.manguon.com 13. Diễn đàn hacker Việt Nam – www.hvaonline.net 14. Diễn đàn Khoa Công Nghệ Tin Học – Viện ĐH Mở Hà Nội – forum.fithou.net.vn 15. What is a Portal? 16. Microsoft ASP.NET - 17. ASP.NET – Genetic Center - Hanoi University of Technology 18. Inside ASP.NET – Apptech Education MỤC LỤC ****************************

Các file đính kèm theo tài liệu này:

  • docP0056.doc
Tài liệu liên quan