You are on page 1of 130

Giới thiệu Portal và Dotnetnuke

Mục lục
1. Khái niệm Portal..............................................................................................................2
2. Giới thiệu Dotnetnuke Portal (Giải pháp phát triển Website cộng nghệ mới).................7
3 Kiến trúc Module của Dotnetnuke..................................................................................76
4. Ứng dụng xây dựng Tòa soạn báo điện tử.....................................................................90
5. Tổng kết.......................................................................................................................127
Tài liệu tham khảo...........................................................................................................129

------------------------------------------------------------------------------------------------------- 1
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

CHUYÊN ĐỀ TỐT NGHIỆP CÔNG NGHỆ .NET


Portal và Dotnetnuke
1. Khái niệm Portal
1.1 Khái niệm cổng thông tin tích hợp (portal)
“Cổng thông tin điện tử tích hợp là điểm truy cập tập trung và duy nhất, tích
hợp các kênh thông tin, các dịch vụ và ứng dụng, phân phối tới người sử
dụng thông qua một phương thức thống nhất và đơn giản trên nền tảng
Web”.
1.2 Phân loại cổng thông tin
Có nhiều cách phân loại Portal, ở đây phân loại theo mục đích sử
dụng cũng như quy mô thì có thể chia các Portal hiện có thành ba loại.
1.2.1 Các Portal công cộng (Public Portal)
Các Portal loại này được thiết kế dành cho một lượng rất lớn người
dùng dễ dàng truy cập vào các ứng dụng trên web (web-based) thông qua
các liên kết và hộp tìm kiếm chỉ bằng một lần đăng nhập duy nhất. Nổi tiếng
nhất trong loại Portal này là các Portal: My Yahoo, AOL hay Excite. Các
Portal kiểu này hướng đến đại đa số người dùng, do vậy chúng thường tập
trung vào khả năng cá nhân hóa (Personalization), đa ngôn ngữ, phát triển
các tính năng phổ biến sao cho người dùng có thể sử dụng dễ dàng. Khả
năng quản lý số lượng người dùng rất lớn cũng như cho phép tìm kiếm
nhanh thông tin từ một lượng dữ liệu khổng lồ là thế mạnh của loại portal
này tuy nhiên vì phục vụ số đông nên chúng không dành cho các công việc
nghiệp vụ cụ thể nào cả.
1.2.2 Các Portal tác nghiệp (Enterprise Portal)
Các Portal loại này quản lý số lượng người dùng không nhiều bằng
Portal công cộng. Các Portal loại này chuyên dùng cho các doanh nghiệp,
------------------------------------------------------------------------------------------------------- 2
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

phục vụ cho tác nghiệp, chuyên làm các công việc nghiệp vụ như: quản lý
mạng lưới bán lẻ, ngân hàng, website bán hàng cỡ lớn hay quản lý tài
nguyên công ty... Do vậy, chúng được thiết kế rất tốt, thực hiện được các
nghiệp vụ phức tạp, liên kết nhiều kiểu dữ liệu khác nhau.
1.2.3 Các Portal Website
Các Portal kiểu này thường dùng để tạo ra các Website, chính xác hơn
là các Website có thể tùy biến (customizable website). Các Portal này cung
cấp các tính năng rất cơ bản, giúp các nhà phát triển web có thể dễ dàng tạo
ra một website cho riêng mình. Các Portal này hỗ trợ các tính năng cá nhân
hoá và đa ngôn ngữ ở mức vừa phải, có thể thêm vào các mô đun tác nghiệp
không quá phức tạp. Để làm được điều này, các Portal được mở một phần
hoặc hoàn toàn mã nguồn, để người dùng Portal (thường là quản trị Website)
có thể tự xây dựng các mô đun, tất nhiên là theo chuẩn của Portal, để tích
hợp vào website của mình hoặc thậm chí đem bán cho các site khác có cùng
nguồn gốc. Các portal này tương đối đơn giản, chỉ sử dụng một vài cơ sở dữ
liệu phổ biến, tuy nhiên cũng không kém phần linh động khi tuỳ biến giao
diện cũng như thao tác nghiệp vụ.
1.3 Các tính năng cơ bản của portal
Tuy có nhiều loại cổng thông tin khác nhau, cung cấp nhiều loại dịch
vụ và ứng dụng khác nhau, nhưng tất cả các loại cổng thông tin đều có
chung một số tính năng cơ bản. Các tính năng này là được sử dụng như là
một tiêu chuẩn để phân biệt giữa cổng thông tin điện tử tích hợp với một
website hoặc với một ứng dụng chạy trên nền tảng Web (web application).
Các tính năng đó bao gồm:
• Đăng nhập một lần (Single-Sign-On-SSO)
Để truy cập vào dữ liệu và dịch vụ khác nhau, người dùng chỉ cần
đăng nhập một lần duy nhất. Hệ thống Portal thực hiện điều này thông qua
------------------------------------------------------------------------------------------------------- 3
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

quá trình quản lý phiên (Session Management). Thông qua quá trình này,
người dùng dễ dàng truy cập và thao tác dữ liệu, nhưng không phải lo lắng
gì về mặt an ninh bảo mật vì Portal đã dùng những công nghệ bảo mật an
toàn nhất ngầm phía dưới một phiên làm việc từ khi người dùng đăng nhập
đến khi đăng xuất.
• Khả năng cá nhân hoá (Customization hay Personalization)
Khi người dùng đăng ký với hệ thống, họ sẽ được cấp một tài khoản.
Mỗi tài khoản người dùng đăng nhập vào đều được cấp cho một “khung trời
riêng”, họ có cảm giác như là một website của riêng mình, họ có thể tuỳ biến
được giao diện tuỳ theo ý thích, thêm bớt các mô đun, hình ảnh… giống như
post hay delete một bài viết của mình trên forum vậy. Khả năng này còn thể
hiện ở chỗ: nhà quản trị website có thể trực quan hoá các công việc thêm
bớt, thay đổi vị trí các mô đun mà không động đến một dòng HTML hay mã
nguồn của Website mình.
• Tích hợp nhiều loại thông tin (Content aggregation):
Cho phép xây dựng nội dung thông tin từ nhiều nguồn khác nhau cho
nhiều đối tượng sử dụng. Sự khác biệt giữa các nội dung thông tin sẽ được
xác định qua các ngữ cảnh hoạt động của người dùng, ví dụ như đối với từng
đối tượng sử dụng sau khi thông qua quá trình xác thực thì sẽ được cung cấp
các thông tin khác nhau, hoặc nội dung thông tin sẽ được cung cấp khác
nhau trong quá trình cá nhân hoá thông tin.
• Xuất bản thông tin (Content syndication):
Thu thập thông tin từ nhiều nguồn khác nhau, cung cấp cho người
dùng thông qua các phương pháp hoặc giao thức (protocol) một cách thích
hợp. Một hệ thống xuất bản thông tin chuyên nghiệp phải có khả năng xuất
bản thông tin với các định dạng đã được quy chuẩn, ví dụ như RDF
(Resource Description Format), RSS (Realy Simple Syndication), NITF
------------------------------------------------------------------------------------------------------- 4
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

(News Industry Text Format) và NewsXML. Ngoài ra, các tiêu chuẩn dựa
trên XML cũng phải được áp dụng để quản trị và hiển thị nội dung một cách
thống nhất, xuyên suốt trong quá trình xuất bản thông tin. Các tiêu chuẩn
dựa trên XML này cho phép đưa ra giải pháp nhanh nhất để khai thác và sử
dụng thông tin trên các Web site khác nhau thông qua quá trình thu thập và
bóc tách thông tin với các định dạng đã được quy chuẩn.
• Hỗ trợ nhiều môi trường hiển thị thông tin (Multidevice support):
Cho phép hiển thị cùng một nội dung thông tin trên nhiều loại thiết bị
khác nhau như: màn hình máy tính (PC), thiết bị di động (Mobile phone,
Wireless phone, PDA), sử dụng để in hay cho bản fax…. một cách tự động
bằng cách xác định thiết bị hiển thị thông qua các thuộc tính khác nhau. Ví
dụ: cùng một nội dung đó, khi hiển thị trên màn hình máy tính thì sử dụng
HTML, nhưng khi hệ thống xác định được thiết bị hiển thị là PDA hay
mobile phone, hệ thống sẽ loại bỏ các ảnh có trong nội dung và tự động
chuyển nội dung đó sang định dạng WML (Wireless Markup Language) để
phù hợp cho việc hiển thị trên màn hình của thiết bị di động.
• Quản trị portal (Portal administration):
Xác định cách thức hiển thị thông tin cho người dùng cuối. Tính năng
này không chỉ đơn giản là thiết lập các giao diện người dùng với các chi tiết
đồ hoạ (look-and-feel), với tính năng này, người quản trị phải định nghĩa
được các thành phần thông tin, các kênh tương tác với người sử dụng cuối,
định nghĩa nhóm người dùng cùng với các quyền truy cập và sử dụng thông
tin khác nhau.
1.4 Các dịch vụ mà hệ thống Portal có thể cung cấp
Hệ thống Portal cần xây dựng cung cấp các nhóm dịch vụ như sau:
• Các dịch vụ cơ bản: post bài định dạng HTML/Document, Danh sách
liên kết, Upload/Download Files, Thao tác ảnh…
------------------------------------------------------------------------------------------------------- 5
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• Các dịch vụ cộng đồng ảo (Virtual community hay Collaboration)


Cộng đồng ảo là “một địa điểm ảo” trên internet mà các cá nhân hay
tổ chức có thể tập hợp để giúp đỡ, hợp tác với nhau mà ranh giới về vị trí địa
lý không còn có ý nghĩa.
Cung cấp môi trường cộng tác (collaborative) thông qua việc quản lý
và khai thác thống nhất toàn diện các dịch vụ cơ bản như: Forum, Mail,
Calendar, Task Management, Report Systems, Conferences, Discussion
Groups, News Groups, v.v...
• Các dịch vụ cung cấp thông tin: Thông báo, bản tin…
• Các dịch vụ tìm kiếm:
Hỗ trợ tìm kiếm nhanh và mạnh theo nhiều tiêu chí: tiêu đề, ngày, từ
khóa, phân loại… và trong toàn bộ nội dung trang. Kết hợp với các trang tìm
kiếm như Google, Yahoo, Vinaseek…
• Các dịch vụ hiển thị tự động và đa kết nối
Có thể soạn trước các bài và cài đặt ngày giờ cho hiển thị lên trang
báo, sẽ tạo ra tính năng online về nội dung, mà không tốn nhiều công sức.
Ngoài ra có thể tích hợp với các nguồn tin hay hệ thống dữ liệu khác.
• Các dịch vụ trợ giúp người dung: thông tin cá nhân, Lịch biểu…
1.5 Sự khác nhau cơ bản của Portal và WebSite
Portal (cổng giao dịch điện tử) là một bước tiến hóa của website
truyền thống. Nó ra đời để giải quyết những vấn đề mà website truyền thống
gặp phải. Xây dựng hệ thống Portal thay vì Website bởi vì hệ thống Portal
có những ưu điểm hơn hẳn so với Website có cùng chức năng như sau:
- Là "siêu web site“, gọi tắt là Portal, đối với người dùng vẫn chỉ là sử
dụng trang web thông qua trình duyệt (tức là web browser), nhưng đằng sau
đó là sự thay đổi thuật ngữ và quan niệm mới về triết lý phục vụ thay cho
cách hiểu “tuyên truyền” thông qua web site như trước đây.
------------------------------------------------------------------------------------------------------- 6
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

- Các mô đun trong Portal có tính độc lập cao, hoạt động không ảnh
hưởng tới các mô đun khác.
- Người dùng Portal có khả năng truy cập thông tin có được từ nhiều
nguồn dữ liệu khác nhau.
- Người phát triển dựa theo các chuẩn có sẵn để tích hợp thêm các
mô đun tác nghiệp mới.

2. Giới thiệu Dotnetnuke Portal (Giải pháp phát


triển Website cộng nghệ mới)
2.1 Giới thiệu chung
2.1.1 Dotnetnuke là gì (DNN) ?
a. Khái niệm:

------------------------------------------------------------------------------------------------------- 7
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

DotNetNuke là một hệ thống quản lý nội dung mã nguồn mở viết


bằng ngôn ngữ lập trình VB.NET trên nền tảng ASP.NET, hệ quản trị cơ sở
dữ liệu có thể là MS SQL server hoặc Oracle, tùy biến dựa trên Skin và
Module. DNN được đánh giá là hệ thống quản trị nội dung mã nguồn mở
.NET phát triển mạnh nhất hiện nay với số lượng thành viên đông đảo và
phát triển rất nhanh trên khắp thế giới.
b. Các tính năng cơ bản của DotNetNuke portal:
• Hệ thống quản lý nội dung trực quan:
- DNN portal quản lý nội dung theo menu tình huống, trên mỗi
module sẽ có một menu tương ứng xuất hiện ngay tại một ICON bên trái
Title của Module. Người sử dụng sẽ dễ dàng tìm ra các chức năng điều
khiển hay quản trị của module này một cách nhanh chóng tương ứng với
quyền quản trị của mình.
- Các module được hiển thị và phân bố trên giao diện portal dễ dàng
nhờ vào các từ khoá định trước trên các vùng khác nhau của giao diện.
Chúng ta có thể di chuyển một module từ khu vực này sang khu vực khác
bằng một lệnh trên menu tình huống hoặc dùng cách Drag and Drop (Kéo
thả).
- Nội dung thông tin được soạn thảo trên công cụ được hỗ trợ với các
công cụ thuận tiện và hiện đại nhất: với khả năng chèn Flash file, Movie, …
điều chỉnh các thuộc tính của đối tượng, làm sạch code…
- Cấu trúc site (Site Map) được quản lý một cách dễ dàng. Người sử
dụng có thể thêm một trang mới vào hệ thống và cho phép hoặc không cho
phép xuất hiện trên Menu.
• Quản lý giao diện độc lập, linh hoạt
- Giao diện được phát triển riêng độc lập với chương trình, một nhà
thiết kế giao diện cho Website có thể làm việc độc lập, chỉ cần một số tiêu
------------------------------------------------------------------------------------------------------- 8
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

chuẩn về giao diện phải tuân thủ, các nhà thiết kế không phải quan tâm
nhiều đến vấn đề kỹ thuật của hệ thống, giao diện sau khi làm xong sẽ được
tích hợp nhanh chóng vào hệ thống.
- Hệ thống quản lý giao diện của DNN portal là một trong những ưu
điểm nổi bật so với các Portal khác. Do vậy DNN portal phù hợp cho các
Website có yêu cầu giao diện cao và phục vụ công tác đối ngoại cho các
doanh nghiệp, tổ chức…
• Quản trị hệ thống với đầy đủ chức năng
- Quản lý phân quyền là một trong những chức năng quan trọng của
Portal. Hệ thống phân quyền của DNN Portal được cung cấp rất chặt chẽ,
cho phép nhà quản trị có thể tạo ra nhiều nhóm quyền (role) khác nhau và
sau đó phân công cho người dùng (user).
- Hệ thống phân quyền của các module có thể tích hợp và phân công
thông qua các quyền đã tạo ra của hệ thống; do vậy việc phân quyền có thể
thực hiện đến từng chức năng nhỏ của module.
- Hệ thống cũng cung cấp sẵn công cụ quản lý thành viên.
- DNN portal 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 vào hệ thống.
- Đối với việc quản lý các trang thông tin, hệ thống cũng cho phép
khôi phục dữ liệu đã xoá (recylce bin). Việc này làm giảm rủi ro trong quản
lý nội dung.
- Ngoài ra trong việc quản trị hệ thống, giải pháp này còn cung cấp
nhiều chức năng khác như: thống kê truy cập, quản lý nhật ký truy xuất,
quản lý bộ nhớ đệm, thời khoá biểu vận hành của ứng dụng trên Portal, cơ
chế cài đặt Module mới thuận tiện và khả năng quản lý nhiều Website thành
viên.
------------------------------------------------------------------------------------------------------- 9
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• An toàn và bảo mật


- Mức độ người dùng: Hệ thống được quản lý phân quyền tập trung
và chủ động tạo các quyền, nhóm quyền riêng cho từng phân hệ hoặc toàn
bộ website, do đó những thành viên phụ trách phần nào sẽ chỉ có quyền truy
xuất thông tin vào phần đó.
- Mức độ dữ liệu: Mã hoá dữ liệu (Password được mã hóa theo chuẩn
SHA1), Sử dụng SSL(Security Socket Layer) dành cho hệ thống thành viên,
đăng nhập.
2.1.2 Nguồn gốc Dotnetnuke
Dotnetnuke được phát triển dựa trên cổng điện tử IBuySpy được
Microsoft giới thiệu như là một ứng dụng mẫu dựa trên nền tảng .NET
Framework. Dotnetnuke đã được phát triển qua nhiều phiên bản và hiện tại
đang ở phiên bản 5.1. Từ phiên bản 4.5.5 trở về sau đòi hỏi .NET
Framework 2.0 trong khi các phiên bản trước đó sử dụng .NET Framework
1.1.4
Một cài đặt (install) của Dotnetnuke có thể phục vụ nhiều trang web,
mỗi trang có thể có giao diện và cộng đồng người sử dụng riêng biệt. Phiên
bản hiện tại cho phép chức năng đa ngôn ngữ.
Khả năng mở rộng
Dotnetnuke có một nhân cơ bản có thể mở rộng với các module để bổ
xung các tính năng mới, giao diện của hệ thống có thể tùy biến nhờ vào kỹ
thuật Skin.
a. Module
Có khoảng 10 module cơ bản được cung cấp cùng với bản Dotnetnuke
Các module khác có thể download từ trang web của Dotnetnuke, trong đó có
các module như: thương mại điện tử, album ảnh, blog, forum,… Các module

------------------------------------------------------------------------------------------------------- 10
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

bổ xung khác cũng được cộng đồng nguồn mở và các công ty phần mềm
thương mại cung cấp.
Các module này có thể được cài đặt bổ xung dễ dàng bằng cách
Upload chúng thông qua giao diện của trang quản trị.
b. Skin
Giao diện của Dotnetnuke được thiết kế với kiến trúc sử dụng Skin
cho phép tách biệt nội dung và giao diện của hệ thống. Kiến trúc này cho
phép người thiết kế giao diện có thể làm việc độc lập với quá trình phát triển
trong ASP.NET và chỉ đòi hỏi kiến thức về HTML cùng với các kiến thức
về Skin của Dotnetnuke. Skin bao gồm một số file HTML cơ bản, trong đó
có các vị trí để đặt nội dung, menu và các tính năng khác. Đồng thời cũng
chứa các file ảnh, file javascript và file định dạng (stylesheet); tất cả thường
được đóng gói trong một file ZIP. Giống như module, skin có thể được
upload và cài đặt tự động thông qua trang quản trị.
Cài đặt Dotnetnuke
2.2.1 Tải hệ thống DotNetNuke
Chúng ta có thể tải về phiên bản mới nhất của hệ thống DotNetNuke
tại địa chỉ http://www.dotnetnuke.com (Để tải về chúng ta phải đăng ký một
tài khoản trên website này).
Download bản DotNetNuke_04.08.02_Install.zip
2.2.2 Cài đặt
Có nhiều cách để dựng một framework Dotnetnuke, bạn có thể sử
dụng một trong những phiên bản sau DotNetNuke_04.08.02_Install.zip,
DotNetNuke_040802_Source.zip, hay DotNetNuke_04.08.02_StartKit.vsi
Trong tài liệu này tôi sử dụng DotNetNuke_04.08.02_StarterKit.vsi,
hệ quản trị cơ sở dữ liệu SQL Server 2005 và Visual Studio 2005.

------------------------------------------------------------------------------------------------------- 11
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• Bước 1: cài đặt DotNetNuke_04.08.02_StarterKit.vsi, click đúp vào


file. Chọn “Next >”, hộp thoại thông báo lỗi xuất hiện.

Chọn “Yes”

Chọn “Finish”, lúc này quá trình cài đặt tự động được thực hiện.
• Bước 2: Tạo dự án để phát triển
- Mở Visual Studio 2005: File  News  Web Site

- Chọn ngôn ngữ phát triển là Visual Basic, chọn trong phần “My

Templates” kiểu dự án “DotNetNuke Web Application Framework ”.


- Điền tên dự án và đương dẫn lưu trữ

------------------------------------------------------------------------------------------------------- 12
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

-Chọn “OK”, chương trình Visual Studio 2005 tự động sinh ra một dự
án.

• Bước 3: Tạo cơ sở dữ liệu


- Mở SQL Server 2005, tạo database
- Chúng ta có thể tạo một tài khoản trong SQL Server 2005 cho
database của mình, trong tài liệu này chúng ta sử dụng tài khoản “sa” của
SQL Server 2005.

------------------------------------------------------------------------------------------------------- 13
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• Bước 4: Thiết lập quyền hạn (Nếu đĩa cứng của chúng ta không sử
dụng cấu trúc NTFS mà sử dụng cấu trúc FAT32 hay cấu trúc khác thì có
thể bỏ qua bước này).
- Cho phép process ASP.NET quyền read/write đối với thư mục trên.
+ Đối với IIS5 (Win 2000, XP) tài khoản này tên là ASPNET.
+ Đối với IIS 6 (Win 2003) tài khoản này là NETWOR SERVICE.
- Để thực hiện được điều này click chuột phải lên thư mục đặt
DotNetNuke, chọn Properties và chọn tab Security.

Lưu ý:
(*) Một số hệ thống, thường khi mới cài đặt sẽ không có tab Security

trên cửa sổ Properties. Để hiển thị tab này:


- Mở khung Window Explorer (Click đúp vào My Computer).

- Chọn menu Tools -> Folder Option.


- Chọn tab View.
- Kéo danh sách xuống dưới cùng và bỏ chọn (uncheck) mục “Use
Simple File Sharing”.
(*) Nếu trong khung “Group or user names” không có tài khoản
ASP.NET thì thực hiện theo các bước sau:
• Chọn tab “Seccurity”.
• Nhấn vào nút “Add”
• Nhấn vào nút “Advanced…”
• Chọn tài khoản “ASP.NET”, sau đó chọn Ok
• Chọn tài khoản ASP.NET và check vào “Full Control”
• Chọn OK.
• Bước 5: Cấu hình IIS (Internet Information Server)

------------------------------------------------------------------------------------------------------- 14
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Bạn vào Start -> Settings -> Control Panel -> Administrative Tools ->
Internet Information Server, tạo một web site mới ( Ví dụ: dnn2005)

Sau khi tạo thành công:


- Click phải chuột vào Virtual Directory “dnn2005”, chọn Properties

- Chọn mục “ASP.NET”, trong mục “ASP.NET version”, chọn

“2.0.50727”.
• Bước 6: Cấu hình file “web.config” cho việc cài đặt

------------------------------------------------------------------------------------------------------- 15
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Bạn vào file “web.config” nằm trong folder đã chọn trong “Bước 2”
- Tìm trong file đoạn
<connectionStrings>
<!-- Connection String for SQL Server 2005 Express -->
<add name="SiteSqlServer" connectionString="Data
Source=.\SQLExpress;Integrated Security=True;User
Instance=True;AttachDBFilename=|DataDirectory|Database.mdf;"
providerName="System.Data.SqlClient" />
<!-- Connection String for SQL Server 2000/2005
<add name="SiteSqlServer" connectionString="Server=(local);
Database=DotNetNuke;uid=;pwd=;"
providerName="System.Data.SqlClient" />
-->
</connectionStrings>
<appSettings>
<!-- Connection String for SQL Server 2005 Express - kept for backwards
compatability - legacy modules -->
<add key="SiteSqlServer" value="Data Source=.\SQLExpress;Integrated
Security=True;User Instance=True;AttachDBFilename=|DataDirectory|
Database.mdf;"/>
<!-- Connection String for SQL Server 2000/2005 - kept for backwards
compatability - legacy modules
<add key="SiteSqlServer"
value="Server=(local);Database=DotNetNuke;uid=;pwd=;"/>
-->
- Nếu bạn sử dụng SQL Server 2005 như tài liệu này thì đổi đoạn code
trên như sau:
<connectionStrings>
<!-- Connection String for SQL Server 2005 Express
<add name="SiteSqlServer" connectionString="

------------------------------------------------------------------------------------------------------- 16
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Data Source=.\SQLExpress;Integrated Security=True;User


Instance=True;AttachDBFilename=|DataDirectory|
Database.mdf;"providerName="System.Data.SqlClient" />-->
<!-- Connection String for SQL Server 2000/2005 -->
<add name="SiteSqlServer" connectionString="
Server=DAT_PHUONG\DAT_PHUONG;Database=dat6447;uid=sa;pwd
=sa;"
providerName="System.Data.SqlClient" />

</connectionStrings>
<appSettings>
<!-- Connection String for SQL Server 2005 Express - kept for backwards
compatability - legacy modules
<add key="SiteSqlServer" value="Data Source=.\SQLExpress;Integrated
Security=True;User Instance=True;AttachDBFilename=|DataDirectory|
Database.mdf;"/>-->
<!-- Connection String for SQL Server 2000/2005 - kept for backwards
compatability - legacy modules-->
<add key="SiteSqlServer"
value="Server=DAT_PHUONG\DAT_PHUONG;Database=dnn2005;uid
=sa;pwd=sa;"/>
- Nếu dùng SQL Server Express, chúng ta không cần quan tâm đến
việc cấu hình web.config nữa vì trong thư mục App_data đã có 1 file
database rỗng.
• Bước 7: Hoàn tất quá trình cài đặt
Mở trình duyệt và browse đến http://localhost/dnn2005. Thực hiện cài
đặt theo hướng dẫn. Nếu không có vấn đề gì, link "Please click here to
access your portal" hoặc “Finished (Go to site)” (tùy vào chế độ cài đặt) sẽ
hiện ra, chúng ta chỉ cần click vào là truy cập được đến trang web của mình.
Giao diện ban đầu
------------------------------------------------------------------------------------------------------- 17
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Chọn “Next”

Chọn “Next” sau khi đã kiểm tra “Test Permissions”

------------------------------------------------------------------------------------------------------- 18
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Chọn “Next” sau khi đã “Test Database Connection”


Quá trình cài đặt

------------------------------------------------------------------------------------------------------- 19
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Thiết lập thông tin cho host (Super User Account) – Tài khoản có
quyền hạn cao nhất trong hệ thống.
Xác lập thông tin cho Admin (Administrator Account) – Tài khoản có
quyền hạn cao sau host, cao nhất trong portal
Quá trình cài đặt kết thúc.
Chọn “Finished (Goto Site ), chúng ta sẽ đến giao diện ban đầu của hệ
thống.

Chúng ta đã hoàn thành việc cài đặt Framework Dotnetnuke.


2.3 Trang cơ bản
2.3.1 Tổng quan về trang
Trang là phần giao diện chứa nội dung mà người sử dụng nhìn thấy.
Thông thường mỗi trang tương ứng với một mục trên menu.
Nội dung: Trang chứa những gì?
Chúng ta đưa thông tin vào trang bằng các Module. Các module có
khả năng hiển thị nội dung khác nhau. Một trong những module thông

------------------------------------------------------------------------------------------------------- 20
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

thường nhất là module Text/HTML, cho phép hiển thị những đoạn HTML
hay Text đơn giản nhất. Thông tin được hiển thị trong module Text/HTML

Sự bảo mật: Ai có thể được nhìn thấy và thay đổi trang?


Thông thường có 2 kiểu người cơ bản truy cập trang web của chúng
ta. Kiểu người đầu tiên là họ chỉ muốn nhìn lướt qua và không bao giờ đăng
ký hoặc ít nhất là chưa bao giờ đăng nhập, họ được gọi là những người sử
dụng không xác thực. Những người sử dụng không xác thực là những người
dùng ẩn danh.
Kiểu người thứ 2 là người dùng có đăng nhập. Để đăng nhập được họ
phải đăng ký từ trước và họ được xem như là những người sử dụng có đăng
ký. Nét riêng của những người sử dụng có đăng ký là họ có quyền xem, thay
đổi nội dung mà những người sử dụng khác không làm được.

Hình thức của trang


Giao diện của trang phụ thuộc vào từng kiểu Skin mà người quản trị
chọn. Mỗi “Skin” là một cách thể hiện, bố trí trang web của chúng ta. Skin
có thể đơn giản hoặc phức tạp. Có một vài skin được minh họa dưới đây.

------------------------------------------------------------------------------------------------------- 21
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

2.3.2 Tạo trang cơ bản


Cách đơn giản nhất để tạo một trang mới trên website của chúng ta là
dùng nút Add ở những phần chức năng trang của Control Panel (nằm ở đầu
trang).

Các bước tạo trang


• Bước 1:
Click chuột vào nút Add trên Control Panel. Trang tiếp theo nó sẽ chỉ
rõ cho chúng ta cách thiết lập một trang mới.

------------------------------------------------------------------------------------------------------- 22
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• Bước 2:
Nếu như muốn trang mới có cùng module với trang khác, có thể chỉ
định trang muốn sao chép Module ở phần Copy Module From. Trọn trang từ
hộp danh sách rơi xuống.

• Bước 3:
Check vào nội dung cần sao chép nếu như muốn Module ở trang mới
cũng “mirror” với module của trang được sao chép.

• Bước 4:
Nhập vào ngày bắt đầu hoặc ngày kết thúc cho hoạt động của trang
web.

------------------------------------------------------------------------------------------------------- 23
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• Bước 5:
Dạng đường link mặc định cho trang là None, những trang này thường
không có đường link. Chúng ta có thể chọn nhiều dạng đường liên kết khác
nhau vì thế mục menu cũng được chạy khác nhau. Chúng ta sẽ nhìn thấy các
dạng ngắn gọn ở bên dưới.

Chỉ rõ dạng trang link. Thiết lập trang sẽ được cập nhật và sẽ cung
cấp một hộp danh sách các trang rơi xuống trong website. Menu được tạo
bởi các trang thiết lập sẽ mở ra ngay tại trang này thay vì mở sang trang mới.

Chỉ định rõ dạng đường link tập tin. Thiết lập trang sẽ được cập nhật
và tìm kiếm một hộp danh sách rơi xuống chỉ rõ danh mục và tên tập tin trên

------------------------------------------------------------------------------------------------------- 24
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

website. Menu sẽ được tạo bởi các trang thiết lập sẽ mở ra tập tin này thay vì
mở ra một trang truyền thống.

• Bước 6:
Khi hoàn thành xong các bước trên, chúng ta di chuyển vào giữa trang
click vào nút Update để lưu lại những sự thay đổi.

2.3.3 Xóa trang


Có 2 cách xóa trang từ website. Cách đơn giản nhất là để xóa trang là
dùng nút Delete ở trên phần chức năng trang của Control Panel (nằm ở đầu
trang)
Các bước xóa trang trong Page Settíngs.
• Bước 1:
Đến phần Page Settings cho dạng trang, di chuyển xuống phần Menu
Admin và chọn mục Pages.

------------------------------------------------------------------------------------------------------- 25
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• Bước 2:
Chọn mục Page từ danh sách và click vào nút Edit. Nút Edit này nhìn
như cây bút chì màu xanh. Chúng ta sẽ được đưa tới phần Page Settings cho
trang được chọn.

• Bước 3: Ở giữa phần Page Settings, click vào nút Delete


• Bước 4:
Click OK xác định trang muốn xóa. Sau khi xóa trang xong chúng ta
sẽ quay về danh sách Pages.
2.3.4 Phục hồi trang bị xóa
Thùng rác là nơi chứa trang (và module) đã xóa. Chúng ta có thể phục
hồi lại chúng từ thùng rác.
------------------------------------------------------------------------------------------------------- 26
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Di chuyển xuống menu Admin và chọn vào Recycle Bin.

Các bước phục hồi trang bị xóa


• Bước 1:
Chọn trang muốn Restore. Trong thùng rác chứa danh sách bao gồm
tất cả những trang đã xóa từ trước.

• Bước 2:
Click vào nút Restore. Trang sẽ được di chuyển từ danh sách các trang
ở thùng rác vào mục menu.

------------------------------------------------------------------------------------------------------- 27
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Các bước để xóa trang(vĩnh viễn)


• Bước 1:
Chọn trang muốn xóa vĩnh viễn. Trong thùng rác sẽ có danh sách bao
gồm tất cả các trang đã xóa từ trước.
• Bước 2: Click nút Delete trên phần Pages.

• Bước 3:
Click OK để xác định là sẽ xóa. Trang sẽ di chuyển khỏi danh sách
các trang của thùng rác và sẽ bị xóa vĩnh viễn.
Các bước để làm thùng rác trống
Nếu như thùng rác có quá nhiều rác, chúng ta muốn thùng rác trống
để sau này dễ dàng sử dụng. Làm trống thùng rác sẽ xóa vĩnh viễn các trang
và Module ở trong đó.
• Bước1: Click vào nút Empty Recycle Bin nằm ở giữa trang.

• Bước 2:
Click OK để xác định muốn xóa tất cả các trang và Module trong
thùng rác. Chúng sẽ di chuyển khỏi thùng rác và bị xóa vĩnh viễn.

------------------------------------------------------------------------------------------------------- 28
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Sau đó thì thùng rác sẽ trống rỗng.

2.3.5 Phân quyền sử dụng trên trang


Trang có thể có những người xem ẩn danh hoặc một nhóm người sử
dụng có đăng ký. Nếu như người dùng truy cập không có quyền để xem
trang đó (hoặc không đăng nhập vào được), thì nó sẽ không xuất hiện trên
mục menu mà họ chọn.
Các bước thực hiện: Chỉ dành cho người sử dụng có đăng ký:
Bắt đầu tạo một trang mới như đã được hướng dẫn trong cách tạo
trang cơ bản. Tuy nhiên, thay vì cho phép mọi người đều được xem trang
web kể cả người ẩn danh, chúng ta sẽ thay đổi chỉ cho người sử dụng có
đăng ký được thấy.
• Bước 1:
Thông qua trang mới, Click vào Settings trong phần chức năng trang
của Control Panel (ở góc phải phía dưới của trang)
• Bước 2: Di chuyển xuống phần Permissions
• Bước 3:
Check vào Resgister Users ở phía dưới của View Page permission.
Không check vào bất cứ nhóm nào khác (lưu ý là quan trị viên luôn luôn có
View Page permission).

------------------------------------------------------------------------------------------------------- 29
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Bây giờ, khi những người truy cập ẩn danh đến website, họ sẽ thấy
Menu mà không bao gồm những trang đã được đã phân quyền sử dụng
trang! Người sử dụng phải đăng ký và sau đó đăng nhập vào thì họ mới có
thể thấy và xem những trang đó.
2.3.6 Di chuyển trang
Cách đơn giản nhất là di chuyển từng trang trong trang thiết lập.
• Bước 1:
Bắt đầu từ trang muốn di chuyển. Click vào nút Setting trên Control
Panel. Trang tiếp theo mà chúng ta thấy là trang tương tự như lúc điền vào
khi tạo trang mới, ngoại trừ là nó sẽ đưa ra tất cả các thiết lập của trang (thay
vì để trống).

• Bước 2: Trong Page Management page, di chuyển xuống Parent Page


setting.
• Bước 3: Click vào danh sách rơi xuống và chọn trang mà mục menu
sẽ xuất hiện ở phía dưới.

• Bước 4:
------------------------------------------------------------------------------------------------------- 30
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Khi hoàn thành xong những bước trên, di chuyển vào giữa trang và
click vàoUpdate để lưu lại sự thay đổi!
Các bước thực hiện: trang trong Menu Admin
Đây là cách phù hợp nhất khi chúng ta muốn di chuyển nhiều trang.
Danh sách các trang thể hiện hết tất cả các trang của chúng ta thành một
danh sách, với sự thụt dòng để minh họa cho trang gốc của trang khác.
• Bước 1:
Di chuyển xuống menu Admin và chọn menu trang. Chúng ta sẽ được
đưa ra danh sách các trang và điều khiển những trang muốn di chuyển.

• Bước 2:
Thay đổi thứ tự của Menu, đơn giản là chọn một và di chuyển chúng
lên hoặc xuống danh sách bằng cách nhấp vào các mũi tên phù hợp.

------------------------------------------------------------------------------------------------------- 31
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Ví dụ

Menu sau đó

• Bước 3:
Thay đổi lồng Menu, đơ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.

------------------------------------------------------------------------------------------------------- 32
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 33
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 34
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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

------------------------------------------------------------------------------------------------------- 35
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 36
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 37
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• 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!

------------------------------------------------------------------------------------------------------- 38
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 39
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 40
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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ọ

------------------------------------------------------------------------------------------------------- 41
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

đượ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.

------------------------------------------------------------------------------------------------------- 42
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• 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.

------------------------------------------------------------------------------------------------------- 43
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• 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.

------------------------------------------------------------------------------------------------------- 44
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• 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

------------------------------------------------------------------------------------------------------- 45
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 46
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 47
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 48
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 49
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• 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.

------------------------------------------------------------------------------------------------------- 50
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• 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.
------------------------------------------------------------------------------------------------------- 51
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• 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.

------------------------------------------------------------------------------------------------------- 52
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• 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.

------------------------------------------------------------------------------------------------------- 53
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• 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.

------------------------------------------------------------------------------------------------------- 54
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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).

------------------------------------------------------------------------------------------------------- 55
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 56
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• 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.

------------------------------------------------------------------------------------------------------- 57
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 58
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 59
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

(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).

------------------------------------------------------------------------------------------------------- 60
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 61
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 62
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• 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).

------------------------------------------------------------------------------------------------------- 63
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• 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.

------------------------------------------------------------------------------------------------------- 64
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 65
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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).

------------------------------------------------------------------------------------------------------- 66
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 67
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• 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).

------------------------------------------------------------------------------------------------------- 68
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• 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.

------------------------------------------------------------------------------------------------------- 69
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 70
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• 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.

------------------------------------------------------------------------------------------------------- 71
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 72
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• 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.

------------------------------------------------------------------------------------------------------- 73
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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).

------------------------------------------------------------------------------------------------------- 74
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• 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).

------------------------------------------------------------------------------------------------------- 75
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• 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)

------------------------------------------------------------------------------------------------------- 76
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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

------------------------------------------------------------------------------------------------------- 77
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và 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ữ

------------------------------------------------------------------------------------------------------- 78
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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:

------------------------------------------------------------------------------------------------------- 79
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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

------------------------------------------------------------------------------------------------------- 80
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Visual Studio 2008 sẽ tự động tạo module với cấu trúc thư mục của
Dotnetnuke:

------------------------------------------------------------------------------------------------------- 81
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và 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.

------------------------------------------------------------------------------------------------------- 82
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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

------------------------------------------------------------------------------------------------------- 83
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 84
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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ã: <table border="0" cellpadding="0" cellspacing="0" width="125px" >
<tr>
<td valign="top" align="center">
<asp:DataList ID="dlCatagoryList" runat="server" >
<ItemTemplate>
<table border="0" cellpadding="0" cellspacing="0" width="125px" >
<tr>
<td class="navbar" id="tdCot" >
<a href='<%#NavigateURL(TabId, "",
"CategoryID=" & DataBinder.Eval(Container.DataItem,
"CategoryID"),"Page=1").ToString() %>'
class="navbar" ><%#DataBinder.Eval(Container.DataItem, "CategoryName")
%></a>

------------------------------------------------------------------------------------------------------- 85
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
</td>
</tr>
</table>
• 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

------------------------------------------------------------------------------------------------------- 86
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Đ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

------------------------------------------------------------------------------------------------------- 87
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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 :

------------------------------------------------------------------------------------------------------- 88
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Bây giờ module MenuLeft có thể thêm vào bất cứ đâu mà chúng ta
muốn:

------------------------------------------------------------------------------------------------------- 89
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 90
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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)

------------------------------------------------------------------------------------------------------- 91
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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
Đăng nhập

False

Kiểm tra

True

Lựa chọn chức


năng

Danh sách tin bài


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

------------------------------------------------------------------------------------------------------- 92
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

 Biên tập viên

S o ạ n nộ p tin b à i

D a nh sách tin b à i
cá n hâ n

C h ủ đ ề tin

Đ ă n g nh ậ p K iểm tra T r ue C h ọn chứ c nă ng X u ấ t bả n tin b à i

F a lse

D a nh sách tin b à i
đã xu ấ t b ả n

D a nh sách tin b à i
kh ô ng d ùn g

D a nh sách tin b à i
h ủ y xu ất b ả n

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


 Phóng viên

------------------------------------------------------------------------------------------------------- 93
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

• Soạn nộp tin bài

Soạn nộp tin bài

Chọn

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

Nhập thông tin Thay đổi thông tin Chọn bài cần xóa Chọn bài cần nộp

False False Hệ thống yêu cầu False Hệ thống yêu cầu False
Yêu cầu xác nhận Yêu cầu xác nhận
xác nhận xóa xác nhận nộp

Chọn Chọn Chọn Chọn

True True True True

Hệ thống tạo bài Hệ thống cập nhật Hệ thống cập nhật


Hệ thống xóa bài
mới dữ liệu trạng thái nộp bài

Database

------------------------------------------------------------------------------------------------------- 94
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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


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

Xem các tin bài

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


trạng thái

Database

 Biên tập viên


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

------------------------------------------------------------------------------------------------------- 95
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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

Xem các tin bài

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


trạng thái

Database

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

------------------------------------------------------------------------------------------------------- 96
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Soạn nộp tin bài

Chọn

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

Nhập thông tin Thay đổi thông tin Chọn bài cần xóa Chọn bài cần nộp

False False Hệ thống yêu cầu False Hệ thống yêu cầu False
Yêu cầu xác nhận Yêu cầu xác nhận
xác nhận xóa xác nhận nộp

Chọn Chọn Chọn Chọn

True True True True

Hệ thống tạo bài Hệ thống cập nhật Hệ thống cập nhật


Hệ thống xóa bài
mới dữ liệu trạng thái nộp bài

Database

• Chủ đề tin bài

------------------------------------------------------------------------------------------------------- 97
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Chủ đề tin

Chọn

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

Nhập thông tin Thay đổi thông tin Chọn bài cần xóa

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


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

Chọn Chọn Chọn

True True True

Hệ thống tạo chủ Hệ thống cập nhật


Hệ thống chủ đề
đề mới dữ liệu

Database

• Xuất bản tin bài


------------------------------------------------------------------------------------------------------- 98
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Xuất bản tin bài

Chọn

Chấm điểm tin bài Sửa bài Xuất bản

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


Chọn bài cần sửa
chấm điểm bản

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


Chấm điểm Thay đổi thông tin
xác nhận xuất bản

Chọn Chọn

True True

Hệ thống cập nhật Hệ thống cập nhật


dữ liệu dữ liệu

Database

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


------------------------------------------------------------------------------------------------------- 99
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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

Chọn chủ đề tìm


kiếm

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

Hệ thống hiển thị


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

Hệ thống yêu cầu


Chọn
xác nhận hủy

True

Hệ thống hủy xuất


bản
Database

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

------------------------------------------------------------------------------------------------------- 100
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Danh sách tin bài đã hủy


xuất bản

Chọn

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

Hệ thống hiển thị Chọn bài cần tái


False
thông tin xuất bản

Hệ thống yêu cầu


Chọn xác nhận tái xuất
bản

True

Hệ thống tái xuất


bản
Database

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

------------------------------------------------------------------------------------------------------- 101
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Danh sách tin bài không


sử dụng

Chọn

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

Hệ thống hiển thị Chọn bài cần sử


False
thông tin dụng lại

Hệ thống yêu cầu


Chọn xác nhận sử dụng
lại tin bài

True

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

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

------------------------------------------------------------------------------------------------------- 102
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Tin bài hủy xuất


bản

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

Tin bài đã xuất


bản

Xuất bản

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

Lưu giữ
Không dùng Tái sử dụng

Tin bài không


dùng

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.

A. Thành phần cơ sở của Dotnetnuke

------------------------------------------------------------------------------------------------------- 103
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

------------------------------------------------------------------------------------------------------- 104
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

------------------------------------------------------------------------------------------------------- 105
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

------------------------------------------------------------------------------------------------------- 106
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

B. Nội dung tin bài của hệ thống

------------------------------------------------------------------------------------------------------- 107
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

 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

------------------------------------------------------------------------------------------------------- 108
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

=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.

------------------------------------------------------------------------------------------------------- 109
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Module Sự kiện Module Tin đọc


Module Chủ đề tin Module Tin tức
đặc biệt nhiều nhất

Trình diễn nội


dung

Module Quản lý Module Hủy xuất


Hệ thống
chủ đề tin bản

Quản trị nội dung

Module Soạn nộp Module Xuất bản Module Danh sách


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

 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

------------------------------------------------------------------------------------------------------- 110
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Control: DataList
Mỗi thành phần (item) của DataList là một
Hyperlink, với Text là tên của chủ đề.
Mỗi khi một chủ đề được chọn, URL được thay đổi:
http://localhost/dnn2005/Default.aspx?
tabid=58&CategoryID=5
Dựa vào cặp giá trị CategoryID=value, mà module
thể hiện danh sách tin bài theo chủ đề biết được cần
load chủ đề nào .

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


- danh sách tin bài mới nhất của tất cả các chủ đề tin
- danh sách tin của từng chủ đề tin
- nội dung cụ thể của tin bài
• Database: lấy dữ liệu trong bảng [dnn_MyNews_News]
- Trường [NewID]: số định danh của một tin bài cụ thể
- Trường [CategoryID]: số định danh của chủ đề tin bài
- 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ủ đề.

------------------------------------------------------------------------------------------------------- 111
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

- 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ó Tiêu đề tóm tắt
(3) (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:

------------------------------------------------------------------------------------------------------- 112
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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

Dựa vào cặp tham số NewID=value, hệ thống


load nội dung tin bài được yêu cầu.

Nội dung chi tiết của tin bài


Tiêu đề tin (1)
Ảnh đại diện nếu có Tiêu đề tóm tắt (3)

(2)
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

------------------------------------------------------------------------------------------------------- 113
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Control: DataList
Mỗi thành phần (item) của DataList là một
Hyperlink, với Text là tiêu đề một bản tin.
Mỗi khi một tin bài được chọn, URL được thay
đổi: http://localhost/dnn2005/Default.aspx?
tabid=58&NewID=124
Dựa vào cặp tham số NewID=value, hệ thống
load nội dung tin bài được yêu cầu.

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

nhiều nhất.
• Database: lấy dữ liệu trong bảng [dnn_MyNews_News]
- Trường [NewID]: số định danh của một tin bài cụ thể
- Trường [TieuDe]: tiêu đề của tin bài
- Trường [SLTruyCap]: số lần truy cập của tin bài
• Chức năng: khi nội dung của một tin bài được hiển thị, hệ thống
tự động tăng trường SLTruyCap lên 1. Module này sẽ tìm duyệt, lấy ra
những tin có số lần truy cập nhiều nhất để hiện thị.
• Thành phần trên giao diện
Giao diện Hoạt động
Control: DataList
Mỗi thành phần (item) của DataList là một
Hyperlink, với Text là tiêu đề một bản tin.
Mỗi khi một tin bài được chọn, URL được thay
đổi: http://localhost/dnn2005/Default.aspx?
tabid=58&NewID=124
Dựa vào cặp tham số NewID=value, hệ thống
load nội dung tin bài được yêu cầu.

------------------------------------------------------------------------------------------------------- 114
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

 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ủ đề

------------------------------------------------------------------------------------------------------- 115
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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

------------------------------------------------------------------------------------------------------- 116
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

- 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

------------------------------------------------------------------------------------------------------- 117
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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

------------------------------------------------------------------------------------------------------- 118
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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
------------------------------------------------------------------------------------------------------- 119
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.
------------------------------------------------------------------------------------------------------- 120
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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

------------------------------------------------------------------------------------------------------- 121
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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

------------------------------------------------------------------------------------------------------- 122
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

 Biên tập viên


Soạn nộp tin bài

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

------------------------------------------------------------------------------------------------------- 123
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

Chủ đề

Xuất bản tin bài

------------------------------------------------------------------------------------------------------- 124
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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

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

------------------------------------------------------------------------------------------------------- 125
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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

------------------------------------------------------------------------------------------------------- 126
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

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.

------------------------------------------------------------------------------------------------------- 127
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

 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ế.

------------------------------------------------------------------------------------------------------- 128
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

 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


http://en.wikipedia.org/wiki/Web_portal
http://www.dotnetnuke.com
http://www.dot.net.vn
http://vi.wikipedia.org/wiki/DotNetNuke

Ebook:
Professional DotNetNuke ASP.NET Portals
Packt.Publishing.Building.Websites.with.VB.NET.and.DotNetNuke.4.Oct.2
006.pdf

------------------------------------------------------------------------------------------------------- 129
Nguyễn Tất Đạt – A06447
Giới thiệu Portal và Dotnetnuke

------------------------------------------------------------------------------------------------------- 130
Nguyễn Tất Đạt – A06447

You might also like