Tìm hiểu hệ thống mã mở dotnetnuke và ứng dụng xây dựng trên nền dotnetnuke

Mục lục 1. Khái niệm Portal3 1.1 Khái niệm cổng thông tin tích hợp (portal)3 1.2 Phân loại cổng thông tin. 3 1.2.1 Các Portal công cộng (Public Portal)3 1.2.2 Các Portal tác nghiệp (Enterprise Portal)3 1.2.3 Các Portal Website. 4 1.3 Các tính năng cơ bản của portal4 1.4 Các dịch vụ mà hệ thống Portal có thể cung cấp. 6 1.5 Sự khác nhau cơ bản của Portal và WebSite. 7 2. Giới thiệu Dotnetnuke Portal (Giải pháp phát triển Website cộng nghệ mới)9 2.1 Giới thiệu chung. 9 2.1.1 Dotnetnuke là gì (DNN) ?. 9 2.1.2 Nguồn gốc Dotnetnuke. 11 2.1.3Khả năng mở rộng. 12 2.2Cài đặt Dotnetnuke. 12 2.2.1 Tải hệ thống DotNetNuke. 12 2.2.2 Cài đặt13 2.3 Trang cơ bản. 22 2.3.1 Tổng quan về trang. 22 2.3.2 Tạo trang cơ bản. 24 2.3.3 Xóa trang. 27 2.3.4 Phục hồi trang bị xóa. 28 2.3.5 Phân quyền sử dụng trên trang. 31 2.3.6 Di chuyển trang. 32 2.4 Quản Lý WebSite. 35 2.4.1 Thay đổi Skin của WebSite. 35 2.4.2 Thay đổi logo của WebSite. 41 2.4.3 Quản lý người dùng. 43 2.4.4 Quản lý File. 45 2.5 Quản lý Modules. 47 2.5.1 Tổng quan về module. 47 2.5.2 Thêm module vào trang. 51 2.5.3 Di chuyển module. 53 2.5.4 Xóa Module. 56 2.5.5 Phục hồi module bị xóa. 57 2.5.6 Phân quyền cho module. 59 2.6 Một số module thường dung. 62 2.6.1 Text/Html62 2.6.2 Announcements (thông báo)63 2.6.3 Link (liên kết)66 2.6.4 Module Documents (tài liệu)71 2.6.5 Events (sự kiện)75 3 Kiến trúc Module của Dotnetnuke. 78 3.1 Định nghĩa. 78 3.2 Xây dựng module. 80 3.2.1 Cơ sở dữ liệu và thiết lập ban đầu. 81 3.2.2 Tầng logic nghiệp vụ (Business Logic Layer - BLL)83 3.2.3 Tầng truy cập dữ liệu (Data Access Layer - DAL)85 3.2.4 Tầng giao diện (Presentation Layer)86 3.2.5 Khai báo module với Dotnetnuke. 87 4. Ứng dụng xây dựng Tòa soạn báo điện tử. 91 4.1 Cách nhìn nhận về Tòa soạn báo điện tử. 91 4.2 Mục tiêu đề tài91 4.2.1 Tìm hiểu Bộ portal mã nguồn mở DotNetNuke. 91 4.2.2 Xây dựng tòa soạn báo điện tử. 92 4.3 Xây dựng hệ thống. 93 4.3.1 Các chức năng chính của hệ thống. 93 4.3.2 Xây dựng cơ sở dữ liệu. 103 4.3.3 Xây dựng module và gắn vào Dotnetnuke. 110 4.4 Giao diện chương trình. 122 5. Tổng kết128 Tài liệu tham khảo. 130

doc130 trang | Chia sẻ: lvcdongnoi | Lượt xem: 7197 | Lượt tải: 1download
Bạn đang xem trước 20 trang 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, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
nu, đơn giản là chọn một và di chuyển sang phải hoặc trái trong danh sách theo mũi tên thích hợp. Ví dụ Menu sau đó Những sự thay đổi của chúng ta sẽ được lưu lại ngay lập tức. 2.4 Quản Lý WebSite 2.4.1 Thay đổi Skin của WebSite “Skin” là phương thức dùng để mô tả cách hiển thị và cách bố trí các trang trên website. Chúng ta có thể thay đổi chúng với một vài nhấp chuột đơn giản! Một Skin có thể rất đơn giản hoặc phức tạp. Nó có thể cung cấp Menu nằm dọc hay nằm ngang, cung cấp những dạng khác nhau của Container (như skin cho Module), cung cấp các cách bố trí khác nhau, v..v.. Đó là tùy theo skin của người thiết kế. Ở đây có một số ví dụ về Skin. Nhiều skin có thể lấy từ nguồn khác nhau (cả miễn phí lẫn bán). Skin của website có thể được thiết kế tùy thích. Các bước thay đổi skin Skin của website được quản lý, thay đổi bởi Admin. Bước 1: Chọn Skin từ menu Admin Bước 2: Chọn trong phần Skin để xem những skin đã tồn tại. Bước 3: Chọn xem chúng ta muốn áp dụng Skin này cho public Portal hay chỉ ở phẩn Admin của website. Bước 4: Chọn Skin cho trang web và nhấp Apply. Skin của website đã được thay đổi (như minh họa bên dưới). Chúng ta cũng có thể thiết đặc mặc định Container khiến cho skin đẹp hơn (chú ý container xanh vẫn là mặc định như bên dưới). Các bước để thay đổi container mặc định Quản lý Container trên trang web cũng giống như trên Skin. Tương tự như skin, các thiết lập được áp dụng trên toàn bộ website và tới tất cả các Module mới mà chúng ta đã sử dụng. Chúng ta sẽ lập lại bước 1, 2, và 3 như ở trên và chọn Container (thay vì Skin). Bước 1: Chọn Skin từ menu Admin Bước 2: Chọn bộ sưu tập Skin hoặc Container muốn xem từ hộp danh sách rơi xuống ở đầu trang. Bước 3: Ở giữa trang chứa các Container mà hệ thống đang có. Chúng ta chỉ nên chọn áp dụng vào puclic Portal hoặc phần Admin trên website. Bước 4: Chọn Container chúng ta thích và nhấp vào Apply. Website bây giờ đã được thay đổi Container mặc định (như minh họa ở bên dưới). Chúng ta đã thay đổi xong cả Skin và container. Các bước thay đổi skin/container cho trang đơn Có thể chỉ rõ sự khác nhau của Skin và Container mặc định cho một trang cá nhân của website. Chú ý rằng nếu chúng ta thay đổi skin hoặc container tại trang đó, thì những thiết lập mặc định sẽ không ảnh hướng đến trang ta đang thay đổi. Khi thay đổi Container cho một trang đơn thì nó đuợc áp dụng mặc định lên bất cứ Module nào được thêm vào ở trang đó. Bước 1: Thông qua trang muốn thay đổi Skin hoặc Container mặc định. Bước2: Chọn Setting từ Page Functions của Control Pane. Bước 3: Trên trang Page Management, mở rộng nhóm các thiết lập nâng cao. Cuốn tới phần thiết lập Page Skin và Page Container ở phần Appearance. Bước 4: Chọn Skin hoăc Container mặc định cho trang. Bước 5: Di chuyển vào giữa trang rồi nhấp vào Update để lưu lại những gì đã thay đổi! 2.4.2 Thay đổi logo của WebSite Trước khi bắt đầu, điều quan trọng là chúng ta phải hiểu Logo được hiển thị như là một phần của Skin. Nếu skin không hỗ trợ hiển thị cho logo, thì sau khi chúng ta thay đổi logo thì nó cũng sẽ không có hiệu quả! Nhưng hầu hết các skin mặc định có thể thực hiện điều này. Đây là một ví dụ của Skin với phần Logo được làm nổi bật. Đây là ví dụ của Skin không có hiển thị Logo. Các bước thực hiện việc thay đổi logo của bạn Bước 1: Chọn Site Setting từ menu Admin. Bước 2: Trên trang Site Settings, di chuyển xuống phần Appearance và tìm phần thiết lập Logo. Bước 3: Nếu như chúng ta đã tải tập tin Logo lên, đơn giản là chọn danh mục (vị trí tập tin) có nội dung của logo từ hộp danh sách rơi xuống. Nếu như cần tải lên một file mới, chúng ta có thể nhấp vào Upload New File và sau đó chọn file nằm ở trên máy Client để tải lên. Bước 4: Nhấp vào Update ở giữa trang để lưu lại những thay đổi. Logo mới bây giờ sẽ thay thế logo cũ. 2.4.3 Quản lý người dùng Quản lý người sử dụng website Ai là Users trên website của chúng ta? Thuật ngữ “User” được áp dụng cho bất kỳ người nào truy cập vào website . Nhưng có hai kiểu cơ bản để chỉ những người vào truy cập website. Kiểu người đầu tiên là người chỉ nhìn lướt xung quanh và không bao giờ đăng ký hoặc ít nhất là chưa bao giờ nhập vào hệ thống, những người đó gọi là người sử dụng không xác thực. Người sử dụng không xác thực là ẩn danh. Kiểu người thứ hai là người có đăng nhập vào. Để đăng nhập vào thì họ phải đăng ký từ trước và vì thế họ được đề cập tới như là những người sử dụng có đăng ký. Để nhận ra những người sử dụng có đăng ký đó là họ được biết và đuợc quyền để xem hoặc thay đổi cái gì đó mà người sử dụng khác không thể làm được. Các bước thực hiện thiết lập quyền cho người sử dụng. Bước 1: Chọn Site setting từ menu Admin Bước 2: Trên trang Site settings. Di chuyển xuống phần Advanced settings và tìm phần thiết lập User Registration. Bước 3: Chọn một trong những hộp Option bằng cách nhấp vào nút thích hợp: None: mặc định ai cũng có thể nhìn thấy Private: Dù là người sử dụng có đăng ký cũng không nhìn thấy nội dung nếu người quản trị không cho phép Public: Những người đã đăng ký tự động được cho phép nhìn thấy nội dung. Verified: Người sử dụng đã đăng ký sẽ nhận được một email để xác nhận lại việc đã đăng ký. Bước 4: Nhấp vào Update ở giữa trang để lưu lại những thay đổi. Việc thiết lập bây giờ đã có hiệu lực. Các bước để quản lý người sử dụng: Bước 1: Chọn User Accounts từ menu Admin. Từ trang User Account chúng ta có thể tìm thấy người sử dụng đang dùng bằng cách tra cứu Username hoặc địa chỉ email hoặc có thể tìm danh sách người sử dụng theo alpha. Danh sách này nhanh chóng đưa cho chúng ta thông tin người sử dụng bao gồm cả những người có hoặc không cho phép. Bước 2: Nhấp vào biểu tượng cây bút chì kế bên Username để mở trang Edit User Account của người sử dụng. Từ trang này có một số chức năng để thiết lập quyền hạn cho người sử dụng. Bước 3: Nhấp vào Update ở giữa trang để lưu lại những thay đổi. 2.4.4 Quản lý File Dotnetnuke cung cấp công cụ quản lý File/Folder qua giao diện Admin web với đầy đủ các chức năng như tạo thư mục, Upload, download, zip/Unzip cũng như việc phân quyền truy xuất đến từng User. Các bước thực hiện tải tập tin lên với phần File Manager Bước 1: Chọn File Manager từ menu Admin Nó sẽ mở ra trang File Manager. Bước 2: Tạo một Folder để tải tập lên. Nhấp vào Folder hiện tại là nơi mà chúng ta muốn tạo thư mục mới (thí dụ “Portal Root”). Đưa con trỏ vào mục nhập của Folder mới và nhấp vào nút Add Folder. Bước 3: Chọn Folder chúng ta muốn tại tập tin lên và sau đó nhấp vào nút Upload File. Bước 4: Nhấp vào nút Browse và chọn tập tin cần tải lên. Sau đó nhấp vào nút Add và lưu lại chúng trong danh sách (chúng ta có thể tải lên nhiều file một lúc). Sau khi đã chọn tất cả các tập tin, nhấp vào Upload New File đề di chuyển tập tin lên website. 2.5 Quản lý Modules 2.5.1 Tổng quan về module Website được tạo từ 1 hoặc nhiều trang. Trên mỗi trang bao gồm một số module chứa nội dung để hiện thị thông tin cho người truy cập vào xem. Đó chính là vai trò của Modules. Modules có thể đơn giản là một đoạn văn bản hoặc hình ảnh, hoặc có thể phức tạp như để tính phí bảo hiểm hoặc thiết thực là nói chuyện trực tuyến… Module được đặt ở đâu? Module được đặt trong các phần cố định được tạo sẵn dựa vào Skin của trang. Với mỗi loại Skin chúng ta có những vùng đặt module khác nhau. Modules Module có những dạng nào? Có nhiều loại module dùng được từ nhiều nguồn khác nhau (cả miễn phí, mua, hoặc do chúng ta tạo ra). Account Login cho phép người sử dụng đăng nhập vào portal. Announcements của nhà sản xuất là danh sách của các đoạn văn bản thông báo bao gồm tiêu đề và hướng dẫn ngắn gọn. Banner cung cấp cho website những quảng cáo lặt vặt. Chúng ta có thể chọn số lượng banner hiển thị cũng như là dạng banner. Blog weblog cho quyền người truy cập sử dụng blog. Contacts hiển thị nội dung thông tin cho một nhóm người như là một nhóm đề án. Discussion danh sách một nhóm thông điệp được gửi lên cho một chủ đề cụ thể. Document hiển thị danh sách các tài liệu, bao gồm các đường liên kết được duyệt qua hay tải về. Events hiển thị danh sách các sự kiện được đưa lên, bao gồm thời gian và vị trí. FAQs cho phép quản lý danh sách các câu hỏi thường xuyên và những câu trả lời. Feedback cho phép những người truy cập gởi những thông điệp đến quản trị viên của website. Forum là nơi quản lý thảo luận và đáp lại của các chủ đề. Gallery hiển thị các album đồ họa và các tập tin đa phương tiện. IFrame là nét đặc biệt của phần duyệt internet Explorer nó cho phép hiển thị nội dung từ trang web khác trong module do chúng ta tạo ra. Image hiển thỉ những image chỉ định. Links hiển thị danh sách của các đường siêu liên kết đến bất cứ trang nào, image hoặc là một file nào trên website của chúng ta, hoặc đến một tập tin, image hoặc là một trang của website khác. New Feed (RSS) hiển thị những thông tin mới được cung cấp trên trang. Nó cung cấp cho người truy cập cập nhật được những thông tin mới nhất, những thông tin của đề tài trên bất cứ lãnh vực nào của chủ đề. Text/HTML cho phép thiết kế nội dung của một đoạn văn bản, hoặc thêm html. Bao gồm hình ảnh của tất cả image đã có trên website. Tài khoản của người sử dụng module cho phép người đăng ký sử dụng thêm, sửa chữa và cập nhật thêm những thông tin chi tiết vào User Account. Các dịch vụ của hội viên sẽ được quản lý tại đây. User Defined Table cho phép tạo bảng dữ liệu tùy thích cho việc quản lý danh sách các thông tin. Những dữ liệu được sắp xếp theo thứ tự A-Z hoặc Z-A khi click vào tiêu đề từng cột. XML/XSL hiển thị kết quả của sự chuyển đổi XML/XSL. Các tập tin XML và XSL được nhận dạng bởi đường dẫn UNC trong đặc tính xmlsrc và xslsrc của module. Ai là người có thể nhìn thấy và thay đổi Module? Thiết lập sự bảo mật cho Module cũng giống như của trang. Chúng ta có thể thiết lập quyền hạn khác nhau với từng nhóm người sử dụng trong việc xem, sửa, tạo mới nội dung trên những module chỉ định. Module có sự lựa chọn đặc biệt là “Inherit View permissions from Page”. Những module được thiết lập với tùy chọn này thì người sử dụng được thừa kế quyền theo quyền của trang chứa module. 2.5.2 Thêm module vào trang Dùng control panel để thêm module vào trang Cách thêm module vào trang này chỉ đòi hỏi 2 bước. Bước 1: Chọn Module từ hộp danh sách rơi xuống. Bước 2: Click vào nút Add trên control Panel. Module sẽ được thêm vào trang với những thiết lập mặc định (được hiển thị trong control panel). Chúng ta có thể thay đổi các thiết lập khác trong control panel trước khi thêm module lên trang. Bước 1: Chọn Module từ hộp danh sách rơi xuống. Bước 2: Đặt con trỏ chuột vào vùng tiêu đề và đánh tên của Module vào. Tên này sẽ xuất hiện trong phần tiêu đề của module container khi module được thêm vào trang. Bước 3: Chọn Visibility của trang từ hộp danh sách rơi xuống. Ở đây chỉ có 2 sự lựa chọn. Same As Page có nghĩa là Module được hiển thị ở bất cứ trang nào thì người truy cập cũng có thể thấy trang đó. Nếu trang đó đã được hiển thị rộng rãi thì module đó cũng sẽ hiển thị ngay lập tức. Nếu chọn Page Editors Only thì module này chỉ được nhìn thấy với người có quyền sửa. Tình trạng hiển thị có thể bị thay đổi trong Module settings khi nó đã sẵn sàng. Bước 4: Chọn vị trí mà bạn sẽ thêm Module vào. Bước 5: Chọn nơi muốn chèn module vào (ở trên đầu hay là cuối). Bước 6: Chọn cách mà nội dung sắp xếp trong module (trái, giữa, phải). Một vài container không cho phép sắp xếp. Bước 7: Chọn Add New Module (mặc định) hoặc Add Existing Module. Bước 8: Click vào nút Add trên Control Panel. 2.5.3 Di chuyển module Chúng ta có thể di chuyển module từ vị trí này sang vị trí khác ở trên trang, có thể sẽ thay đổi thứ tự giữa các module trên cùng vùng, hoặc di chuyển module từ trang này sang trang khác. Có 2 cách khác nhau để di chuyển module: Module Actions Menu hoặc Drag&Drop. Các bước thực hiện việc di chuyển module trong Module Actions Menu: Hầu như trong bất cứ module Container nào cũng sẵn có Module Actions Menu. Chúng ta có thể sử dụng chức năng này để thay đổi vị trí của hai module Text/HTML trên trang. Bước 1: Đưa con chuột vào Module Action Menu và cuộn xuống mục menu Move. Lệnh “Move to” luôn luôn hiện diện và có thể khác với skin khác. Bước 2: Chọn mục Menu để nhận biết nơi muốn di chuyển Module đến đó. Các bước để thực hiện việc di chuyển bằng Drag& Drop: Hầu như trong bất cứ module nào cũng sẵn có Drag&Drop nơi mà tiêu đề được hiển thị. Chúng ta sử dụng Drag&Drop để thay đổi vị trí của 2 module Text/HTML trên trang. Bước 1: Nhấp chuột trái và giữ chuột ở dưới Title của module. Chúng ta sẽ thấy module được lộ ra xung quanh nó có đường viền ngoài. Đường viền ngoài chỉ rằng module sẵn sàng được di chuyển sang vị trí mới. Bước 2: Giữ nút chuột trái, di chuyển Module sang ô cửa khác. Bước 3: Bỏ chuột ra khi ô cửa sáng lên. Ô cửa sẽ refresh lại và Module sẽ ở vị trí mới. Các bước để thực hiện việc di chuyển sang trang khác: Di chuyển Module từ trang này sang trang khác thì phải làm trong trang Module Settings. Bước 1: Trỏ con chuột vào Module Actions Menu và di chuyển vào mục thiết lập. Chọn Module Settings Bước 2: Trên trang Module Settings, di chuyển xuống phần Advanced Settings. Bước 3: Chọn trang từ hộp danh sách rơi xuống của Move to page để di chuyển Module. Bước 4: Click vào update ở giữa trang Module Settings để di chuyển module sang trang mới (và để lưu lại các thay đổi này). 2.5.4 Xóa Module Khi một Module không cần thiết nữa chúng ta có thể xóa chúng. Các bước thực hiện trong Module Actions Menu: Bước 1: Trỏ con chuột xuống Module Actions Menu và di chuyển xuống mục Delete và click chuột trái. Bước 2: Click vào OK để xác nhận sự xóa module. Các bước thực hiện trong module setting page: Bạn có thể xóa Module trong trang Module Settings. Bước 1: Trỏ con chuột xuống Module Actions Menu và di chuyển xuống mục thiết lập. Chọn Module Settings rồi click vào đó. Bước 2: Di chuyển vào giữa trang Module Settings và nhấp vào nút Delete. Bước 3: Click vào OK để xác định là xóa module. 2.5.5 Phục hồi module bị xóa Thùng rác là nơi mà các Module (và Trang) sẽ nằm ở đó khi bị xóa. Chúng ta có thể phục hồi từ thùng rác cho đến khi thùng rác trống. Phục hồi lại các module bị xóa cũng tương tự như phục hồi trang bị xóa. Di chuyển chuột xuống menu Admin và chọn Recycle Bin. Các bước phục hồi module: Bước 1: Chọn Module muốn Restore. Nội dung của danh sách đó là tất cả những module đã bị xóa từ lúc trước. Bước 2: Chọn Page từ hộp danh sách rơi xuống nơi mà chúng ta muốn Module sẽ được hoàn lại. Module thêm vào sẽ được chỉ định vào nội dung của ô cửa mặc định. Bước 3: Click vào nút Restore. Module sẽ được di chuyển khỏi danh sách các module của thừng rác (và nó sẽ ở tại nơi mà Trang đã chị định). Các bước xóa trang (vĩnh viễn): Bước 1: Chọn Module mà muốn xóa đi vĩnh viễn. Nội dung của danh sách là những module mà đã xóa từ lúc trước. Bước 2: Click vào nút Delete trên phần Module. Bước 3: Click vào OK để xác định xóa. Module sẽ di chuyển khỏi danh sách các module của thùng rác và bị xóa đi vĩnh viễn. Các bước để làm trống thùng rác: Nếu thùng rác chứa quá nhiều rác, chúng ta có thể xóa toàn bộ những gì đang chứa, nghĩa là tất cả Trang và Module ở trong đó sẽ bị xóa vĩnh viễn. Bước 1: Click vào Empty Recycle Bin nằm ở giữa trang. Bước 2: Click vào OK để xác định là xóa hết tất cá các Trang và Module trong thùng rác. Chúng sẽ được di chuyển từ danh sách các trang và module trong thùng rác và bị xóa đi vĩnh viễn. Sau đó thùng rác sẽ xuất hiện trống rỗng. 2.5.6 Phân quyền cho module Người quản trị có thể thiết lập quyền hạn cho từng module với những nhóm người truy cập khác nhau. Trang này danh cho những người truy cập ẩn danh: Và nó sẽ như thế này sau khi họ đăng nhập vào… Đó là do việc thực hiện Module Permission. Các bước thực hiện việc thiết lập Module Permissions Bước 1: Click biểu tượng thiết lập Module hoặc chọn thiết lập từ menu Module Action. Mặc định ô được Check vào thể hiện người sử dụng Unauthenticated thấy module. Bước 2: Bỏ chọn mục “Unauthenticated”, chọn quyền hạn cho từng nhóm người tồn tại trong thệ thống. Click vào Update ở giữa trang để lưu lại những thay đổi của bạn. Thông tin thêm: Có bốn cách khác nhau để đưa ra đánh giá về Module trên website. Ai là người có thể thấy, hoặc thay đổi nội dung của module? (1)Administrators: chỉ có người sử dụng này mới có toàn quyền quản lý, thực hiện bất kỳ thay đổi nào lên module. Khi mà một Module chỉ hiển thị cho quản trị viên của website thấy, nó sẽ có viền đỏ để báo hiệu. (2)Unauthenticated Users: tất cả những người truy cập đều có thể thấy module. “Không xác thực” có nghĩa là những người sử dụng này không đăng nhập và có thể họ cũng không đăng ký như là người sử dụng của website. Bạn muốn bất kỳ ai cũng có thể thấy được nội dung của module. (3) Registered Users: người sử dụng này đã điền vào mẫu đăng ký trên website và bây giờ họ sử dụng tên và password để đăng nhập vào hệ thống. (4) Nhóm người sử dụng tùy thích: đó là những người đăng ký sử dụng và được đặt trong một nhóm đặc biệt. 2.6 Một số module thường dung 2.6.1 Text/Html Module Text/Html cung cấp một trình soạn thảo WYSIWYG để tạo ra một nội dung của chính bạn bằng HTML hoặc là một văn bản thuần túy. Giao diện module tương tự như một trình biên tập document phổ biến và rất dễ làm. Thêm module Text/HTML vào trang. Các bước để soạn thảo văn bản(đơn giản) Module ban đầu được tạo ra không có nội dung. Nó chỉ hiển thị một Container trống, với Title và Action Buttons. Bước 1: Nhấp vào nút Edit Text (hoặc chọn Edit text từ Module Actions Menu). Trên trang Edit Text/HTML được hiện thị. Nó cung cấp cho chúng ta giao diện với những chức năng sử lý nhất. (WYSIWYG = “ What you see is what you get”). 2.6.2 Announcements (thông báo) Module thông báo đưa ra một danh sách các đoạn thông báo đơn giản bao gồm tiêu đề và những hướng dẫn ngắn gọn. Nó rất thuận tiện để những người truy cập website nhận biết được các mục quan tâm khi có liên kết những thông tin thêm vào. Các bước để thêm thông báo mới: Module lúc ban đầu không có nội dung gì. Nó chỉ hiển thị một Container trống, với Title và Action Buttons. Bước 1: Nhấp vào Add New Announcement (hoặc chọn Add New Announcement từ Module Actions Menu). Trên trang Edit Announcements điền vào trình văn bản WYSIWYG như lúc sử dụng module Text/HTML. Bước 2: Đặt con trỏ chuột vào vùng Title và nhập vào đó một câu lệnh ngắn gọn để tóm tắt thông báo. Bước 3: Đặt con trỏ chuột vào phần mô tả và dùng những tính năng của trình văn bản WYSIWYG để tạo ra phần nội dung cho thông báo. Bước 4: Chọn dạng liên kết cho thông báo và hoàn thành những thông tin thích hợp. Chúng ta có thể chỉ rõ đường liên kết đến website khác, trang của website hoặc đến một tập tin trên website (như là hinh ảnh hoặc tài liệu PDF). Bước 5: Chọn đường liên kết từ những hộp tùy chọn có sẵn. Nếu như chọn Tracking, chúng ta sẽ có thể kiểm tra đường liên kết này được click vào bao nhiều lần. Nếu chọn Logging, hệ thống sẽ tự động lưu lại thông tin của những ai đã click vào đuờng liên kết này (Nếu người sử dụng đăng nhập vào hệ thống). Và nếu chọn New Window, đường link sẽ hiển thị trên trình duyệt mới. Bước 6: Chỉ rõ ngày mà thông báo ngừng không hiển thị nữa, sử dụng Calendar để chọn ngày. Bước 7: Bao gồm View Order để sắp xếp lại thông báo. Bước 8: Chọn Update để lưu lại những thay đổi. 2.6.3 Link (liên kết) Module liên kết hiển thị danh sách của những đường siêu liên kết đến được bất cứ trang nào, hình ảnh hoặc tập tin trên website; hoặc là một tập tin, hình ảnh hoặc một trang nào đó ở website khác. Thêm một module liên kết mới vào trang. Các bước để thêm một đường liên kết mới: Module được tạo ra lúc ban đầu không có nội dung. Chỉ hiển thị một Container trống với Title và Action Buttons. Bước 1: Nhấp vào Add Link (hoặc chọn Add Link từ Module Actions Menu). Bước 2: Đặt con trỏ chuột vào vùng Title và nhập vào đó một nhóm từ ngắn cho đoạn văn bản liên kết. Bước 3: Chọn Link Type cho đường liên kết, hoàn thành những thông tin thích hợp. Bước 4: Chọn từ những lựa chọn sẳn có cho đường liên kết. Nếu chọn Tracking, chúng ta sẽ kiểm tra được đường liên kết đó được click vào bao nhiêu lần. Nếu Logging hệ thống sẽ lưu lại những ai đã click vào đường liên kết đó (nếu như người truy cập có đăng nhập vào). Và nếu chọn New Window, đường link sẽ được mở trên một cửa sổ trình duyệt mới. Bước 5: Chỉ rõ phần mô tả cho đường liên kêt. Bước 6: Bao gồm cả phần View Order cho phần sắp xếp các đường liên kết của bạn. Theo mặc định, chúng sẽ được sắp xếp như lúc được tạo ra. Bước 7: Chọn “Update” để lưu lại những thay đổi. Các bước để hiển thị hộp lựa chọn: Module liên kết có một vài Display Option mà chúng ta có thể thay đổi cách hiển thị. Bước 1: Nhấp vào nút Settings (hoặc chọn Settings từ Module Action Menu). Or Bước 2: Trên trang Module Settings, di chuyển xuống Links Settings và nhấp vào nút để mở rộng đoạn đó ra. Nó sẽ cho chúng ta những hộp lựa chọn sẵn có của module liên kết. Bước 3: Chọn Dropdown như là Control Type và sau đó nhấp vào Update ở giữa trang. Đây là thay đổi kiểu đường liên kết bằng lựa chọn từ hộp rơi xuống và nút go (như minh họa bên dưới). Bước 4: Chọn Horizontal như là List Display Format và sau đó nhấp vào Update ở giữa trang. Đây là sự thay đổi đường liên kết để cho nó hiển thị ngang (như minh họa bên dưới). Bước 5: Chọn Yes cho phần Display Info Link và sau đó nhấp vào Update ở giữa trang. Đây là sự thay đổi cách hiển thị của phần mô tả. Phần mô tả bình thường hiển thị như là một “chú giải công cụ”. Một chú giải công cụ được hiển thi khi con chuột trỏ vào đường liên kết. [Display Link Info = No] Sự mô tả được hiển thị như là một sự lựa chọn với nhiều đường liên kết… là cái mà (khi nhấp vào) thì nó hiển thị sự mô tả ở trên trang. [Display Link Info = Yes] 2.6.4 Module Documents (tài liệu) Module tài liệu hiển thị ra một danh sách các tài liệu, bao gồm cả đường liên kết để người truy cập website duyệt hoặc tải chúng về. Thêm một module tài liệu mới vào trang. Các bước để thêm module tài liệu: Bước 1: Nhấp vào Add New Documet (hoặc chọn Add New Document từ Module Actions Menu). Trên trang Edit Document có hai vùng mà chúng ta cần phải điền vào như là phần kiểm soát Link Type và hộp lựa chọn. Bước 2: Đặt con trỏ chuột vào vùng Title và nhập vào đó một ngữ ngắn để làm tên tài liệu. Ngữ này sẽ được nhìn thấy bởi người truy cập website và là mô tả nội dung của tập tin. Bước 3: Chọn Link Type cho tài liệu và hoàn thành những thông tin thích hợp. File Link Type là mặc định và chúng ta có thể chọn tập tin từ danh sách các thư mục ở trong hộp rơi xuống của File Location, có thể chỉ định tài liệu nằm ở chỗ khác bằng cách chọn URL Link Type và chỉ rõ địa chỉ internet của tập tin. Bước 4: Chọn từ những lựa chọn sẵn có cho đuờng liên kết. Nếu chọn Tracking, chúng ta sẽ kiểm tra được đường liên kết đó được click vào bao nhiêu lần. Nếu chọn Logging hệ thống sẽ tự động lưu lại thông tin của người click vào đuờng liên kết đo (nếu như người truy cập có đăng nhập vào). Và nếu chọn New Window, đường link sẽ được mởi trong một cửa sổ trình duyệt mới. Bước 5: Chỉ định Category cho tài liệu. Phạm trù này đơn giản là cung cấp chủ đề cho các tài liệu hoặc mục đích tương tự nhau. Bước 6: Chọn “Update” để lưu lại những thay đổi. Các bước để hiệu chỉnh tài liệu: Hiệu chỉnh lại các thuộc tính của tài liệu hiện tại được làm như là thêm một tài liệu mới. Chỉ có khác biệt là ở chỗ làm sao chúng ta đến được những thuộc tính đó. Mỗi tài liệu là một danh sách các mục với nút Edit (cây bút chì) ở kế bên. Bước 1: Nhấp vào nút Edit bên cạnh tài liệu để thay đổi chúng. Bước 2: Thay đổi các lệnh thiết lập và nhấp vào Update ở giữa trang để lưu lại những thay đổi. Chúng ta nên quan tâm tới một vài thông tin mà nó nằm ngay giữa trang Edit Document. URL: cho biết phần URL mở rộng để đến thẳng tài liệu. Tracking URL: đây là sự khác biệt trong chúng vì số lượng nhấp vào để tăng lên trước khi đến tài liệu (nếu chọn chức năng “track”). Clicks: số lần tài liệu được tài về. Last Click: Ngày và thời gian của lần tải cuối cùng của tài liệu. 2.6.5 Events (sự kiện) Module sự kiện hiển thị danh sách những sự kiện sắp tới, bao gồm ngày, thời gian và sự mô tả. Sự kiện có thể được thiết lập hoàn trả trong lịch biểu hoặc danh sách định dạng. Thêm module sự kiện mới vào trang. Các bước để thêm sựkiện mới: Bước 1: Nhấp vào Add New Event nằm ở giữa trang (hoặc chọn Add New vent từ Module Actions Menu). Bước 2: Đặt con trỏ chuột vào vùng Title và nhập vào đó một ngữ ngắn cho đoạn văn bản sự kiện. Nó có giá trị là sẽ hiển thị lên lịch biểu (hoặc trong list view). Bước 3: Đặt con trỏchuột vào rich text editor và nhập vào đó mô tả cho sự kiện. Đoạn mô tả này sẽđược hiển thị ở phía dưới tiêu đề. Bước 4: Chọn Image dùng trong lịch biểu (hoặc tải lên một sự kiện mới). Nếu chúng ta muốn dùng hình ảnh, thì bảo đảm rằng nó thích ứng với kích cỡ của event… hình ảnh sẽ được hiển thị bên trong hộp ngày (trên lịch biểu) hoặc bên cạnh lối vào đó (trong list view). Bước 5: Chọn “Update” để lưu lại những thay đổi. 3 Kiến trúc Module của Dotnetnuke 3.1 Định nghĩa Module là gì? Modules cung cấp cho người phát triển khả năng mở rộng thêm chức năng của DotNetNuke. DotNetNuke cung cấp nền tảng có thể lắp thêm và được mở rộng bởi phát triển modules. Modules có thể được phát triển bằng bất cứ ngôn ngữ .NET nào, thậm chí DNN được phát triển bằng VB.NET, người phát triển C# vẫn tạo module và lắp vào lõi nền của DNN. Nền tảng có thể lắp thêm này được hoàn chỉnh bởi việc tạo ra module riêng đã biên dịch, chúng thực hiện và sử dụng những giao diện cụ thể đối với DNN. Một khi module đã được biên dịch thì chỉ cần tạo giao diện người sử dụng (UI) dưới dạng tệp ascx mà cho phép người sử dụng tương tác với module đó. Hộp chứa của Module (Module Containers) Module containers cung cấp nhiều tính năng cho người phát triển. Ngoài việc cho phép giao tiếp với nền tảng lõi DNN, module containers còn cung cấp: Cơ chế bảo mật: Chúng ta có thể định nghĩa quyền xem và sửa cho các module. DNN sẽ quản lý việc kiểm tra bảo mật của module. Chúng ta không cần phải viết riêng cơ chế bảo mật của mình mà dùng sự bảo mật dựa trên vai trò được cung cấp bởi nền tảng của DNN. Xem và cảm nhận: Module container có thể được tùy biến với nhiều cách xem khác nhau, hơn nữa module container còn cung cấp khả năng đặt module trong trang của DNN. Nó còn cho phép người sử dụng tùy biến hiển thị của module, ví dụ như chế độ phóng to và thu nhỏ. Lưu giấu: Là một cơ chế tăng tốc, chúng ta có thể định nghĩa việc lưu giấu ở mức container. Điều này cho phép các modules không cần phải cập nhật cho mỗi yêu cầu để có được nội dung được ẩn, do đó đem lại sự cải thiện tốc độ. Kiến trúc nền tảng của Dotnetnuke Các module của Dotnetnuke được phát triển dựa trên mô hình 3 lớp Tầng giao diện (Presentation Layer): là những gì chúng ta nhìn thấy, tác động vào trên bề mặt của trang Web, hay đó là sự giao tiếp giữa người sử dụng và trang web. Được xây dựng từ các User Controls (.ascx). Tầng logic nghiệp vụ (Business Logic Layer - BLL): là tầng cung cấp/sử lý dữ liệu cho giao diện người sử dụng (tầng giao diện). Đây là nơi mà chúng ta xây dựng các đoạn mã xử lý các hàm, các yêu cầu nghiệp vụ. Tầng truy cập dữ liệu (Data Access Layer - DAL): là tầng tương tác trực tiếp đến cơ sở dữ liệu, thực hiện một mục đích cụ thể lên dữ liệu mà tầng BLL đưa ra như xử lý các hàm, các yêu cầu liên quan đến việc trích dẫn, cập nhật và xóa nội dung trong cơ sở dữ liệu. Những module được Dotnetnuke cung cấp cũng như của bản thân chúng ta xây dựng đều phải dựa vào kiến trúc 3 tầng này, vì đây là kiến trúc nền tảng mà Dotnetnuke đã đưa ra. Mô hình đối tượng của Dotnetnuke 3.2 Xây dựng module Bây giờ chúng ta sẽ xây dựng một module có chức năng hiển thị thông tin lấy từ cơ sở dữ liệu như sau: 3.2.1 Cơ sở dữ liệu và thiết lập ban đầu Vào Sql Server tạo một bảng có cấu trúc như sau: Name: dnn_MyNews_Categories Tạo Store Procedure: MyNews_GetCategories Vào Visual Studio 2008 tạo module Visual Studio 2008 sẽ tự động tạo module với cấu trúc thư mục của Dotnetnuke: Đổi tên 2 thư mục ModuleName trong App_Code, DesktopModules thành Menu Left. Trong App_Code chúng ta có: MenuLeftInfo.vb (Info Object) MenuLeftController.vb (Controller Object) DataProvider.vb (DataProvider Object) SqlDataProvider.vb (SqlDataProvider Object) Trong DesktopModules chứa phần giao diện: ViewMenuLeft.ascx: đây là phần giao diện của Module EditMenuLeft.ascx: giao diện sửa chữa của Module Settings.ascx: phần thiết lập ban đầu của Module 3.2.2 Tầng logic nghiệp vụ (Business Logic Layer - BLL) DataProvider.vb là lớp mà tầng giao diện sử dụng để lấy dữ liệu từ database. Module mà chúng ta đang xây dựng chỉ với mục đích lấy dữ liệu từ database, thêm vào đoạn mã sau: Public MustOverride Function MyModule_MyNews_GetCategries() As _ IDataReader Chú ý từ khóa “MustOverride”, vì DataProvider là lớp ảo, nó chỉ cung cấp giao diện cho tầng giao diện sử dụng nên tất cả các phưong thức mà nó có đều phải được nạp chồng trong lớp SqlDataProvider ở tầng DAL (tầng truy cập cơ sở dữ liệu thực sự). MenuLeftController.vb: thêm đoạn mã sau MenuLeftInfo.vb: bạn thêm đoạn mã sau 3.2.3 Tầng truy cập dữ liệu (Data Access Layer - DAL) SqlDataProvider.vb là lớp tương tác trực tiếp với cơ sở dữ liệu của chúng ta. Module mà chúng ta đang xây dựng chỉ với mục đích lấy dữ liệu từ database, thêm đoạn mã vào sau “public Methods”: Public Overrides Function MyModule_MyNews_GetCategries() As _ System.Data.IDataReader Return CType(SqlHelper.ExecuteReader(ConnectionString, _ "MyNews_GetCategories"), IDataReader) End Function Đây là hàm thực hiện Store Procedure: MyNews_GetCategories trong cơ sở dữ liệu mà chúng ta đã tạo từ trước. Hàm trả về là một tập hợp các bản ghi có trong bảng dnn_MyNews_Categories. Từ khóa “Overrides” thể hiện đây là phương thức nạp chồng cho phương thức đã được khai báo trong DataProvider nằm trên tầng logic nghiệp vụ (BLL). 3.2.4 Tầng giao diện (Presentation Layer) Mở file MenuLeftView.ascx trong DesktopModules thêm vào đoạn mã: <a href='<%#NavigateURL(TabId, "", "CategoryID=" & DataBinder.Eval(Container.DataItem, "CategoryID"),"Page=1").ToString() %>' class="navbar" > Mở file MenuLeftView.ascx.vb trong DesktopModules, tìm hàm Page_Load và thêm vào đoạn mã: Try Dim objCategoriesController As New MenuLeftController Dim myListCategoriesInfo As List(Of MenuLeftInfo) myListCategoriesInfo = objCategoriesController.MyModule_MyNews_GetCoffeeShops() dlCatagoryList.DataSource = myListCategoriesInfo dlCatagoryList.DataBind() Catch exc As Exception 'Module failed to load ProcessModuleLoadException(Me, exc) End Try 3.2.5 Khai báo module với Dotnetnuke Sau khi biên dịch chương trình, nếu không xảy ra lỗi, hãy vào địa chỉ trang web của mình với tài khoản Host. Đăng ký sự tồn tại của module vừa tạo ra với Dotnetnuke, Chọn Điền thông tin của module Sau đấy chọn Create ở dưới màn hình Điền vào “New Definition”, chọn “Add Definition” Trên giao diện chúng ta sẽ thấy Chọn “Add Control”, hãy điền nội dung của Module, rồi chọn Update Module đã được thêm vào, chúng ta sẽ thấy : Bây giờ module MenuLeft có thể thêm vào bất cứ đâu mà chúng ta muốn: 4. Ứng dụng xây dựng Tòa soạn báo điện tử 4.1 Cách nhìn nhận về Tòa soạn báo điện tử Ngày nay, trong sự phát triển mạnh mẽ của khoa học kỹ thuật, nhu cầu cập nhật thông tin của con người cũng ngày càng nâng cao. Có thông tin thì con người mới có thể tiếp cận, nắm bắt và hiểu biết được sự thay đổi của thế giới xung quanh. Nhưng việc cung cấp thông tin như thế nào và cung cấp ra làm sao mới là vấn đề cần đặt ra cho những người làm công nghệ thông tin như chúng ta. Vậy “Báo điện tử là gì ?”. Đó là một trang web được thiết kế và ứng dụng trên nền Internet. Trong đó, việc xử lý thông tin được thực hiện tại máy chủ và trả về cho độc giả kết quả xử lý thông qua trình duyệt Web như Internet Explorer, FireFox. Việc này rất tiện lợi vì độc giả có thể truy cập được tin tức ở bất kỳ đâu không phụ thuộc vào môi trường làm việc miễn là máy tính của họ có kết nối Internet và cài đặt trình duyệt web. Được xem là sự hội tụ của cả 3 loại hình báo chí đi trước là báo nói, báo in và báo hình, báo điện tử đã thu hút được một lượng độc giả nhanh chóng đáng kể ngay từ khi mới ra đời. Nó chia sẻ số lượng độc giả với các loại hình báo chí khác… Cùng với sự phát triển của Internet và máy tính, loại hình báo chí này đã, đang và sẽ trở thành loại báo được nhiều người đọc nhất. 4.2 Mục tiêu đề tài 4.2.1 Tìm hiểu Bộ portal mã nguồn mở DotNetNuke Tìm hiểu kiến trúc DotNetNuke. Trong đó, tập trung vào các phần sau : a. Kiến trúc 3 lớp – Việc tìm hiểu kiến trúc này giúp khai thác những thế mạnh có sẵn của DotNetNuke làm nền tảng cho sự phát triển sau này của ứng dụng. b. Tính đóng gói – Tính đóng gói cho phép mở rộng ứng dụng theo nhiều hướng khác nhau một cách dễ dàng. c. Kiến trúc đa cổng (multi portal) – Đây chính là kiến trúc quan trọng cho việc triển khai ứng dụng trên phạm vi rộng. - Tìm hiểu cách sử dụng các module mà DotNetNuke hỗ trợ, xây dựng nhiều module mới phục vụ yêu cầu của nhiều đơn vị. - Đánh giá ưu điểm và tiềm năng phát triển lâu dài của DotNetNuke 4.2.2 Xây dựng tòa soạn báo điện tử - Xây dựng một tòa soạn báo điện tử có những tính năng sau : a. Vận hành một dây chuyền sản xuất tin bài gồm các khâu : viết bài, kiểm duyệt bài và đăng bài. b. Đưa lên trang chính thức các bài viết đã qua kiểm duyệt, cung cấp một lượng tin được cập nhất thường xuyên cho độc giả sử dụng mạng Internet (hoặc mạng nội bộ). c. Có khả năng biến đổi dễ dàng, đáp ứng đuợc yêu cầu của nhiều loại hình đơn vị (không chỉ gói gọn trong các đơn vị hoạt động về báo chí). - Xây dựng công cụ hỗ trợ cho việc thu thập tin tức từ các trang báo điện tử khác nhằm làm phong phú thêm lượng tin bài của tòa soạn. (Tương lai) 4.3 Xâ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 Biên tập viên b. Sản xuất nội dung Phóng viên Soạn nộp tin bài Hiển thị danh sách tin bài cá nhân Biên tập viên Hiển thị danh sách tin bài cá nhân Soạn nộp tin bài cá nhân Chủ đề tin bài Xuất bản tin bài Danh sách tin bài đã xuất bản Danh sách tin bài đã hủy xuất bản Danh sách tin bài không dùng Quy trình đưa bản tin lên Web 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. Thành phần cơ sở của Dotnetnuke Nội dung tin bài của hệ thống 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 9 Diem Int 1 Điểm của tin bài, nằm trong 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) Ý 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 5 NewID Int 0 ID tin bài được gửi ý kiến 6 NgayGui DateTime 0 Ngày độc giả gửi ý kiến 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. 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. Trường [CategoryID]: số định danh của chủ đề. 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: 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 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 Trường [Anh]: chuỗi địa chỉ của ảnh đại diện của tin bài Chức năng: 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. (3): control Image thể hiện ảnh đại diện tin 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: 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 [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 [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). 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: 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ị. 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: 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 Giao diện Hoạt động Tạo mới một chủ đề: TextBox: tên của chủ đề 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ủ đề 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 bài mới, gửi nộp những tin bài đã viết xong. 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. Thêm mới: khi muốn tạo bài viết mới chọn “Thêm mới”. 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 Web. 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 [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”. Nếu không muốn sử dụng tin bài nào, người sử dụng chọn Hyperlink “Khong dùng”. Tin bài sẽ được đưa đến trạng thái tin không dùng. 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 “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 nội dung tin bài Module “Danh sách tin bài đã xuất bản”: danh sách của tất cả các tin bài đã được xuất bản. 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 đã xuất bản Trường [TenTacGia]: tên tác giả bài viết Chức năng: hiển thị danh sách của tất cả các tin bài đã được xuất bản. Thành phần trên giao diện Giao diện Hoạt động Xem danh sách tin bài đã xuất bản theo chủ đề. 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 đã xuất bản lên Web. Chọn chủ đề từ dropdownlist chủ đề, sau đấy click vào “Tìm kiếm”, hệ thống sẽ load tất cả tin bài đã xuất bản lên web trong chủ đề đã chọn. Muốn sửa nội dung của tin bài chọn vào tiêu đề của tin bài hoặc biểu tượng “Xem”. Muốn hủy xuất bản: xóa bỏ những tin bài đã được đưa lên web ta chọn biểu tượng “Hủy XB”. 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 “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 nội dung tin bài 4.4 Giao diện chương trình Soạn nộp tin bài Danh sách tin bài cá nhân Biên tập viên Soạn nộp tin bài Danh sách tin bài cá nhân Chủ đề Xuất bản tin bài Danh sách tin bài đã xuất bản Danh sách tin bài hủy xuất bản Danh sách tin bài không dùng 5. Tổng kết Qua quá trình thực hiện chuyên đề tốt nghiệp, chúng tôi đã thu thập được rất nhiều kiến thức bổ ích về Dotnetnuke cũng như công nghệ .NET. Với quĩ thời gian có hạn của một chuyên đề tốt nghiệp, chúng tôi đã xây dựng một tòa soạn Báo điện tử đáp ứng được những chức năng cơ bản nhất mà nó cần phải có. Các chức năng nâng cao, phục vụ cho việc quản trị cũng như nâng cấp chương trình đòi hỏi nhiều thời gian và kĩ thuật đang được chúng tôi tìm hiểu và sẽ hoàn thành trong thời gian tới. Sau đây là những thành quả mà chúng tôi thu được trong quá trình thực hiện và những định hướng phát triển trong tương lai. Về mặt lý thuyết Hiểu rõ các tính năng, cách thức hoạt động của Dotnetnuke. Nắm rõ được trình hoạt động của tòa soạn báo điện tử hiện đại. Nâng cao khả năng làm việc theo nhóm, khả năng tìm kiếm tài liệu, khả năng tiếp cận công nghệ mới. Về mặt thực nghiệm Xây dựng các chức năng cơ bản cần có của một tòa soạn báo điện tử. Tạo sự an toàn, bảo mật cho người sử dụng khi sử dụng các chức năng của hệ thống trong việc quản lý nội dung cá nhân, thông tin bài viết… Thể hiện khá đầy đủ các tính năng của Dotnetnuke trong chương trình. Hệ thống có khả năng thay đổi toàn bộ giao diện một cách nhanh chóng. Quản lý chặt chẽ quyền hạn của từng nhóm người sử dụng. Việt hóa gần như toàn bộ nội dung của Dotnetnuke. Hạn chế Hệ thống phát triển dựa trên nền tảng đã có do cộng đồng Dotnetnuke xây dựng, vì thế trong bước đầu tìm hiểu chúng tôi đã gặp rất nhiều khó khăn để nắm bắt về kiến trúc tổng quan, cơ sở dữ liệu, tùy biến nội dung của Dotnetnuke. Quy trình vận hành của tòa soạn báo điện tử mới chỉ được thử nghiệp trên máy cá nhân, mạng Lan nội bộ với số lượng máy tính rất nhỏ. Chính vì vậy, chúng tôi chưa có những đánh giá chính xác về sự đúng đắn của hệ thống nếu được đưa vào sử dụng thực tế. Hướng phát triển Xây dựng thêm nhiều module phục vụ cho nhiều loại hình đơn vị khác nhau. Nâng cấp các tính năng phù hợp với yêu cầu thực tế. Nâng cấp hệ thống lên những phiên bản mới nhất của Dotnetnuke nhằm tận dụng các tính năng của Dotnetnuke. Triển khai hệ thống thành hệ thống phân tán nhằm đáp ứng được yêu cầu của các đơn vị hoạt động trên phạm vi lớn. Trong tương lai, chúng tôi sẽ phát triển hệ thống trở thành một Content Provider cung cấp nội dung cho dịch vụ nhắn tin SMS qua đầu số của mạng điện thoại di động. Tài liệu tham khảo Ebook: Professional DotNetNuke ASP.NET Portals Packt.Publishing.Building.Websites.with.VB.NET.and.DotNetNuke.4.Oct.2006.pdf

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

  • docTìm hiểu hệ thống mã mở DotNetNuke và ứng dụng xây dựng trên nền DotNetNuke.doc