Mục Lục
LỜI CÁM ƠN
Nguyễn Vũ Thanh Phong
Trước tiên, tôi gởi lời cảm ơn chân thành đến trường Trung Cấp Đại Việt đã tạo điều kiện
thuận lợi cho tôi học lớp CNTT 201T2, tôi gởi lời cảm ơn chân thành đến qúi thầy cô bộ
môn đã nhiệt tình giảng dạy tôi trong thời gian qua, qua đó tôi đã có được những kiến
thức rất bổ ích để làm bài báo cao. Đặc biệt tôi gởi lời cảm ơn chân thành đến thầy Văn
Phú Hội đã nhiệt tình hướng dẫn và có nhiều đóng góp cho tôi thực hiện bài tiểu luận
này.
Xin chân thành cảm ơn.
Tp.HCM, ngày tháng năm 2012
HỌC SINH THỰC HIỆN
(Ký, ghi rõ họ tên)
Nguyễn Vũ Thanh Phong
LỜI NÓI ĐẦU
Ngày nay, Internet đã trở thành một phần không thể thiếu trong các lĩnh vực phát triển
của xã hội. Bên cạnh những tác dụng to lớn đối với các tổ chức khác nhau, website còn
là nơi chia sẻ kiến thức và kết nối cộng đồng, thực sự đem lại rất nhiều lợi ích thiết
thực. ngày càng khẳng định được tính hữu dụng và sức mạnh trong mọi phương diện,
mọi ngành nghề của cuộc sống, nhất là trong thời đại kinh tế thị trường hiện như bây giờ.
Đặc biệt là trong lĩnh vực giải trí thư giãn và cập nhật thông tin, tin tức của con người.
Hiện nay có rất nhiều người thường xuyên truy cập các trang web tin tức để đọc báo, đọc
tạp chí, đê thư giãn thay vì mua các tờ báo ở ngoài hiệu sách báo! Đã có rất nhiều website
tin tức trực tuyến từ Việt Nam như: 24h.com, vnexpress.net, tintuc.com được xây
dựng để nhằm thỏa mãn nhu cầu tra cứu tin tức hàng ngày của người Việt Nam. Từ
những hiệu quả mà một website mang lại, em muốn tìm hiểu về cách xây dựng và thiết
kế website.Có nhiều phần mềm,công cụ hỗ trợ thực hiện thiết kế một website, Joomla! là
hệ thống quản trị nội dung mã nguồn mở số 1 thế giới hiện nay được viết bằng ngôn ngữ
PHP và kết nối đến cơ sở dữ liệu SQL. Linh hoạt, đơn giản, tính tuỳ biến rất cao và cực
kỳ mạnh mẽ, đó là những gì có thể nói về Joomla!, được sử dụng trên toàn thế giới từ
những trang web đơn giản cho đến những ứng dụng phức tạp. Việc cài đặt dễ dàng, quản
lý đơn giản, đáng tin cậy. Đó là các lý do em chọn Joomla là công cụ để thực hiên đề tài
Xây dựng website tin tức bằng joomla
Sau một thời gian học tập và tìm hiểu, em tiến hành xây dựng một website tin tức nhằm
mục đích là đáp ứng thêm nhu cầu truy cập tin tức ngày càng nhiều của mọi người.
Trong quá trình tiến hành dự án, việc cập nhật thông tin mới nhất còn hạn chế, kiến thức
học hỏi còn hạn hẹp. Do đó trang Web chưa thật sự đầy đủ về nhiều mặt. em sẽ điều
chỉnh trong thời gian sắp tới!
Dưới đây là bản báo cáo tóm tắt quá trình thực hiện dự án của em. Trong quá trình làm
báo cáo, cũng như thực hiện dự án, không thể tránh khỏi những thiếu sót, rất mong được
sự đóng góp ý kiến của thầy giáo và bạn đọc! Xin cảm ơn!
Nguyễn Vũ Thanh Phong
Nguyễn Vũ Thanh Phong
Giảng Viên Hướng dẫn:Văn Phú Hội Đề tài:Thiết kế web tin tức joomla
CHƯƠNG 1
TỔNG QUAN VỀ PHẦN MỀM MÃ NGUỒN MỞ
Open Source: phần mềm có mã nguồn mở
Free software: phần mềm miễn phí, đôi khi free software được dùng với ý nghĩa bao
gồm cả open-source software và free software
Phần mềm nguồn mở (PMNM) là những phần mềm được cung cấp dưới cả dạng mã
và nguồn, không chỉ là miễn phí về giá mua mà chủ yếu là miễn phí về bản quyền:
người dùng có quyền sửa đổi, cải tiến, phát triển, nâng cấp theo một số nguyên tắc
chung qui định trong giấy phép PMNM (ví dụ General Public Licence – GPL) mà
không cần xin phép ai, điều mà họ không được phép làm đối với các phần mềm nguồn
đóng (tức là phần mềm thương mại) Nhìn chung, thuật ngữ “Open source” được dùng
để lôi cuốn các nhà kinh doanh, một điều thuận lợi chính là sự miễn phí và cho phép
người dùng có quyền “sở hữu hệ thống”.
Nhà cung cấp phần mềm nguồn mở có quyền yêu cầu người dùng trả một số chi phí
về các dịch vụ bảo hành, huấn luyện, nâng cấp, tư vấn, vv… tức là những dịch vụ thực
sự đã thực hiện để phục vụ người dùng, nhưng không được bán các sản phẩm nguồn
mở vì nó là tài sản của trí tuệ chung, không phải là tài sản riêng của một nhà cung cấp
nào.
Tiện ích mà Open Source mang lại chính là quyền tự do sử dụng chương trình cho
mọi mục đích, quyền tự do để nghiên cứu cấu trúc của chương trình, chỉnh sữa phù hợp
với nhu cầu, truy cập vào mã nguồn, quyền tự do phân phối lại các phiên bản cho nhiều
người, quyền tự do cải tiến chương trình và phát hành những bản cải tiến vì mục đích
công cộng.
• Lợi ích của phần mềm mã nguồn mở-miễn phí?
Phần mềm có thể được sao chép hoàn toàn miễn phí, bạn hoàn toàn an tâm khi chia
sẽ một chương trình tuyệt vời với bạn bè.
Các định dạng file không hoàn toàn bị kiểm soát bởi một vài nhà cung cấp. Điều gì
sẽ xảy ra khi dữ liệu nằm trong một phần mềm độc quyền? Việc sử dụng một định
dạng file bí ẩn sẽ khiến bạn chỉ dùng chương trình của một công ty. Do yêu cầu công
việc, bạn muốn sử dụng dữ liệu trên cho một ứng dụng khác nhưng ương trình bản
quyền không cho phép ! Còn nếu như nhà cung cấp chấm dứt hổ trợ và ngưng việc
nâng cấp sản phẩm, chắc chắn rằng dữ liệu của bạn sẽ phải vứt xó. Với phần mềm bản
quyền, chỉ có duy nhất nhà cung cấp có thể giải quyết vấn đề của bạn. Nhưng! với
OpenSource bạn có thể gặp hàng tá nhà cung cấp làm vừa lòng mình.
Hầu hết các sản phẩm Open Source đều có khả năng bảo mật tuyệt vời, khi một vết
nứt được tìm thấy, nó thường được trám nhanh hơn phần mềm có bản quyền.
Nguyễn Vũ Thanh Phong Trang 5
Giảng Viên Hướng dẫn:Văn Phú Hội Đề tài:Thiết kế web tin tức joomla
Các hệ thống Open Source, nhất là các hệ thống dựa trên UNIX, thường linh hoạt
đến khó tin nổi. Bởi vì chúng được xây dựng từ nhiều khối thống nhất và được miêu tả
cặn kẽ, rất dễ để bạn thay thế nhiều phần của hệ thống với phần có giao diện tương tự.
Có một cộng đồng hỗ trợ lớn. Không bị phụ thuộc vào một công ty nào.
• Cơ hội kinh doanh?
Open source đã được chấp nhận trong các công ty lớn. Nhiều hợp đồng lớn đã chấp
nhận phần mềm Open Source, chẳng hạn như tại IBM, Oracle và Sun. Thậm chí
Microsoft đã phải lưu tâm đến Open Source như đối thủ to lớn.
Với Open Source, việc phân phối và phát triển là một phương pháp lâu dài để tạo ra
phần mềm, người mua được cung cấp cả giải pháp phần mềm lẫn những dòng mã có
giấy phép Open Source. Hơn nữa, các doanh nghiệp vừa và nhỏ cũng sẽ ưa chuộng
phần mềm Open Source hơn.
Hiện nay đã có một số tổ chức dự định sử dụng Open Source để xây dựng nhân tố
cốt lõi của hệ thống-từ hệ điều hành, cơ sở dữ liệu, ứng dụng và Web server… đến các
hệ thống quản trị nội dung và nhiều phần mềm kinh doanh thông minh.
Mặc dù con đường để free software khẳng định vị trí vẫn còn dài, nhưng đáng chú ý
là Open Source đã giành được khoảng 70% thị trường ứng dụng Web, và dường như
con số này vẫn tiếp tục tăng lên hàng năm.
Bằng cách này, cả công ty lẫn khách hàng đều có lợi. Về phía khách hàng, họ được
dùng phần mềm chất lượng tốt, hỗ trợ khách hàng đầy đủ với giá rẻ. Về phía nhà cung
cấp, dựa trên Open Source, tiết kiệm đáng kể các chi phí về phát triển, kiểm lỗi, quản
lý dự án. Đồng thời, nhân lực của họ lại nhanh chóng nâng cao trình độ, giảm bớt thời
gian làm việc “chân tay” khi tiếp nhận source code có “giá trị” và “chất lượng” từ
những Open Source được xây dựng chuyên nghiệp, cấu trúc phần mềm, lập trình,… tốt
ngay từ đầu.
• Trên thị trường phần mềm, có nhiều loại giấy phép. Có thể chia các giấy phép
này đại khái như sau
▪ Phần mềm thương mại (Commercial Software)
Là phần mềm thuộc bản quyền của tác giả hoặc nhà sản xuất, chỉ được cung cấp ở dạng
mã nhị phân, người dùng phải mua và không có quyền phân phối lại.
▪ Phần mềm thử nghiệm giới hạn (Limited Trial Software)
Là những phiên bản giới hạn của các phần mềm thương mại được cung cấp miễn phí
nhằm mục đích thử nghiệm, giới thiệu sản phẩm và kích thích người dùng quyết định
Nguyễn Vũ Thanh Phong Trang 6
Giảng Viên Hướng dẫn:Văn Phú Hội Đề tài:Thiết kế web tin tức joomla
mua. Loại sản phấm này không chỉ giới hạn về tính năng mà còn giới hạn về thời gian
dùng thử (thường là 60 ngày).
▪ Phần mềm “chia sẻ” (Shareware)
Loại phần mềm này có đủ các tính năng và được phân phối tự do, nhưng có một giấy
phép khuyến cáo các cá nhân hoặc tổ chức mua, tùy tình hình cụ thể. Nhiều tiện ích
Internet (như “WinZip” dùng các thuận lợi của Shareware như một hệ thống phân
phối).
▪ Phần mềm sử dụng phi thương mại (Non-commercial Use)
Loại phần mềm này được sử dụng tự do và có thể phân phối lại bởi các tổ chức phi lợi
nhuận. Nhưng các tổ chức kinh tế, thí dụ các doanh nghiệp, … muốn dùng phải mua.
Netscape Navigator là một thí dụ của loại phần mềm này.
▪ Phần mềm không phải trả phần trăm cho nhà sản xuất (Royalties Free Binaries
Software)
Phần mềm được cung cấp dưới dạng nhị phân và được dùng tự do. Thí dụ: bản nhị
phân của các phần mềm Internet Explorer và NetMeeting.
▪ Thư viện phần mềm không phải trả phần trăm (Royalties Free Software Libraries)
Là những phần mềm mà mã nhị phân cũng như mã nguồn được dùng và phân phối tự
do, nhưng người dùng không được phép sửa đổi. Thí dụ: các thư viện lớp học, các tệp
“header”, vv …
▪ Phần mềm mã nguồn mở kiểu BSD – (Open Source BSD-style)
Một nhóm nhỏ khép kín (closed team) đã phát triển các PMNM theo giấy phép phân
phối Berkely (BSD – Berkely Software Distribution) cho phép sử dụng và phân phối
lại các phần mềm này dưới dạng mã nhị phân và mã nguồn. Tuy người dùng có quyền
sửa đổi mã, nhưng về nguyên tắc nhóm phát triển không cho phép người dùng tự do
lấy mã nguồn từ kho mã ra sửa (gọi là check-out) và đưa mã đã sửa vào lại kho mã mà
không được họ kiểm tra trước (gọi là các “check-in”).
▪ PMNM kiểu Apache (Open Source Apache-style)
Chấp nhận nguồn mở kiểu BSD nhưng cho phép những người ngoài nhóm phát triển
xâm nhập vào lõi của mã nền (core codebase), tức là được phép thực hiện các “check-
in”.
▪ PMNM kiểu CopyLeft hay kiểu Linux (Open Source CopyLeft, Linux-style)
PMNM kiểu CopyLeft (trò chơi chữ của Free Software Foundation – FSF – và GNU –
Gnu’s Not Unix, để đối nghịch hoàn toàn với CopyRight !) hay còn gọi là giấy phép
GPL (General Public Licence) là một bước tiến quan trọng theo hướng tự do hóa của
các giấy phép phần mềm. Giấy phép GPL yêu cầu không những mã nguồn gốc phải
Nguyễn Vũ Thanh Phong Trang 7
Giảng Viên Hướng dẫn:Văn Phú Hội Đề tài:Thiết kế web tin tức joomla
được phân phối theo các qui định của GPL mà mọi sản phẩm dẫn xuất cũng phải tuân
thủ GPL.
GPL cho người dùng tối đa quyền hạn và tự do đối với các PMNM theo GPL, cụ thể
người dùng có quyền không những sao chép, sửa đổi, mua bán các PMNM dưới
CopyLeft mà còn được quyền tự do như vậy đối với các phần mềm dẫn xuất. Tóm lại
nếu PMNM gốc đã theo CopyLeft thì mọi PMNM dẫn xuất của nó cũng đương nhiên
theo CopyLeft.
Nguyễn Vũ Thanh Phong Trang 8
Giảng Viên Hướng dẫn:Văn Phú Hội Đề tài:Thiết kế web tin tức joomla
CHƯƠNG 2
GIỚI THIỆU VÀ CÀI ĐẶT JOOMLA
2.1 Cài Đặt
Appsever Để Tạo Localhost
2.1.1 Giới thiệu chung về Appsever
Để xây dựng website Joomla! trên localhost, cần phải có một server ảo trên máy
tính, Appsever là một software và cũng là một công cụ giả lập sever, hosting ngay trên
PC, ngoài Appsever hiện nay còn nhiều trình giả lập khác như EasyPHP, Xampp,
Wamp, VertrigoServ
Appsever tích hợp sẵn các tính năng của Apache, MySQL, PHP và phpMyadmin. Ưu
điểm của Appsever là chương trình này hoàn toàn miễn phí, dễ sử dụng và rất nhẹ, phù
hợp với các máy cấu hình trung bình, tương thích cao và đầy đủ chức năng để chạy
PHP.
!"!#$%#
2.1.2 Cài đặt Appsever để tạo localhost
a. Các bước cài đặt
&'(%: Chạy tập tin chương trình
&'(%: Xuất hiện giao diện chương trình. Nhấn NEXT
Nguyễn Vũ Thanh Phong Trang 9
Giảng Viên Hướng dẫn:Văn Phú Hội Đề tài:Thiết kế web tin tức joomla
Hình 1.1
&'(%): Xuất hiện bản License, chọn I argee. Nhấn NEXT
Hình 1.2
Nguyễn Vũ Thanh Phong Trang 10
Giảng Viên Hướng dẫn:Văn Phú Hội Đề tài:Thiết kế web tin tức joomla
&'(%*: Chọn đường dẫn cài đặt (mặc định là C:\AppSev). Nhấn NEXT
Hình 1.3
&'(%+: Chọn các Components, Ở Appsever đã tổ hợp cài đặt Apache, MySQL,
PhpMyadmin. Nhấn NEXT
Nguyễn Vũ Thanh Phong Trang 11
Giảng Viên Hướng dẫn:Văn Phú Hội Đề tài:Thiết kế web tin tức joomla
Hình 1.4
&'(%,: Điền thông tin sever.
Nguyễn Vũ Thanh Phong Trang 12
Giảng Viên Hướng dẫn:Văn Phú Hội Đề tài:Thiết kế web tin tức joomla
Hình 1.5
SeverName : localhost
Email: Email quản trị viên
Apache HTTP Port: 80
Nhấn NEXT
&'(%-: Tên và mật khẩu của MySQL
Name: Root (mức ưu tiên cao nhất)
Nhập password và confirm password
Nhấn NEXT
Hình 1.6
Nguyễn Vũ Thanh Phong Trang 13
Giảng Viên Hướng dẫn:Văn Phú Hội Đề tài:Thiết kế web tin tức joomla
&'(%.: Chương trình tiến hành cài đặt
Hình 1.7
&'(%/: Hoàn tất cài đặt.
Chọn Start Apache và Start MySQL để chương trình khởi động.
Nhấn FINISH.
Với cài đặt mặc định:
C:\AppServ\www là địa chỉ webroot, nơi copy các file php vào đây
C:\AppServ\mysql\data\ chứa CSDL MySQL, mỗi CSDL sẽ là 1 folder, để sao lưu dữ
liệu MySQL, copy folder này thành nhiều bản sao.
Nguyễn Vũ Thanh Phong Trang 14
Giảng Viên Hướng dẫn:Văn Phú Hội Đề tài:Thiết kế web tin tức joomla
!
Mở trình duyệt web, gõ địa chỉ: "http://localhost/ "(hoặc "http://127.0.0.1")
Trình duyệt sẽ hiện ra như sau:
Hình 2.1
Để xem đầy đủ thông tin về sever vừa cài đặt, ta có thể truy cập trang
"http://localhost/phpinfo.php".
" #$%&'()*+, /0)-,+0+0'1&&!)!.2&0
3-4,5-6-%&7'8!8/9'':0);7'8!8/9'':0)%&
<#=>&&'8/8.!=#?7'8!8+00@
AB-
Nguyễn Vũ Thanh Phong Trang 15
Giảng Viên Hướng dẫn:Văn Phú Hội Đề tài:Thiết kế web tin tức joomla
Hình 2.2
2.2.Cài Đặt Joomla Trên Localhost
#?Cwww.joomla.org
a. Tiến hành cài đặt
Giải nén file zip ra một thư mục (tạm đặt tên thư mục là joomla) và chép thư mục
joomla vào thư mục của Appsev (mặc định là C:\Appsev\www).
Mở trình duyệt web, gõ 0#%0# 12##0 (nếu thư mục chứa mã nguồn Joomla! trong
thư mục www của Appsev là joomla, như đã nói ở trên). Trang web Joomla! Web
Installer xuất hiện
NEXT để qua bước tiếp theo và PREVIOUSđể trở lại bước trước.
Nguyễn Vũ Thanh Phong Trang 16
Giảng Viên Hướng dẫn:Văn Phú Hội Đề tài:Thiết kế web tin tức joomla
DEF00'8G-8: chọn ngôn ngữ.
Chọn English (United Kingdom) (thường để default) và nhấn HI
DEJ98K'++08<: Kiểm tra cài đặt
Hình 3.1
Nguyễn Vũ Thanh Phong Trang 17
Giảng Viên Hướng dẫn:Văn Phú Hội Đề tài:Thiết kế web tin tức joomla
kiểm tra xem hệ thống có thể cài được Joomla! không, phần 3!%#!4!4
5! gồm 2 cột (bên phải là yêu cầu 3!%#!4!4, bên phải là hệ thống
Hình 3.2
của 6%70). Actual tương xứng sẽ có màu đỏ ở phần nào thì tức là phần đó chưa đáp
ứng được yêu cầu Joomla! đặt ra, nếu là phần 3! !80#90 thì khắc phục bằng
cách liên hệ với nhà cung cấp hosting để tắt đi.
Nhấn HI
DELG8'8: quy định sử dụng chương trình
Nguyễn Vũ Thanh Phong Trang 18
Giảng Viên Hướng dẫn:Văn Phú Hội Đề tài:Thiết kế web tin tức joomla
Hình 3.3
Nhấn HI
Nguyễn Vũ Thanh Phong Trang 19
Giảng Viên Hướng dẫn:Văn Phú Hội Đề tài:Thiết kế web tin tức joomla
DEMN'80O-0: Thiết lập cơ sở dữ liệu
Hình 3.4
- N'8&8: Hiện MySQL hỗ trợ 2 chuẩn là mysql và mysqli ( mới hơn ),
thường chọn mysql
- 0'!8: nếu sử dụng MySQL trên chính máy cài Joomla! thì điền vào là
localhost, còn trong trường hợp khác, nếu sử dụng MySQL và truy xuất database
thông qua 1 máy khác, thì chúng ta điền tên host đó hoặc IP của host đó tại đây
Nguyễn Vũ Thanh Phong Trang 20
Giảng Viên Hướng dẫn:Văn Phú Hội Đề tài:Thiết kế web tin tức joomla
- 7'8!8: tài khoản MySQL khi cài AppSever, nếu dùng trên localhost thì tài
khoản này nên đặt là root ( tài khoản có mức ưu tiên cao nhất ), trong trường hợp
dùng các host shared thì tài khoản này chỉ có tác dụng trong host và bị giới hạn 1 vài
tính năng,
- 9'':0): mật khẩu tài khoản MySQL, Khi cài AppSever.
- N'8!8: Chọn tên cho database
- >)/8)8': Các thiết lập nâng cao, ở đây mục prefix nghĩa là tiền tố, nó sẽ
đứng trước tên của các table trong CSDL và dùng để phân biệt với các table khác
Nhấn HI
DEP Q9 0O-0: thiết lập FTP, có thể mở hoặc không.
NhấnHI
DERS0O-0: thiết lập cho website như tên web, email và password
của admin
Nguyễn Vũ Thanh Phong Trang 21
Giảng Viên Hướng dẫn:Văn Phú Hội Đề tài:Thiết kế web tin tức joomla
Hình 3.5
- Site Name: đặt tên website
- Confirm the admin email and password. Password này sẽ là password của admin
sau này đăng nhập vào trang quản trị của website.
- Install default sample data: Cài đặt mặc định dữ liệu cho Joomla!
- Load local Joomla! 1.5 SQL script : Export dữ liệu từ bản 1.5 cũ và load tại đây.
- Load migration script : dùng để nâng cấp các trang từ phiên bản 1.0.x lên 1.5
Nhấn NEXT
Bước 7: Finish: Cài đặt hoàn tất.
Nguyễn Vũ Thanh Phong Trang 22
Giảng Viên Hướng dẫn:Văn Phú Hội Đề tài:Thiết kế web tin tức joomla
b. Kiểm tra
" :8'80#2.63T0=8!8!U'++00!U
>&&'8/V:::VW00!+X 8 # 38!Y'8;#?C-%&/0'8T
)&11+0+0'1Z00!+@
[0V>&&8/V:::V:8V# 'Y+\]^/A/0'-)_F
0O-0)_`'8;a!8!0`+!b.aLcSb@d
AB--#e
Hình 3.6
2.3.Dùng Quyền Quản Trị Để Quản Lý Thành Viên Xây Dựng
Việc xây dựng một website trên thực tế luôn là một vấn đề phức tạp, do nhu
cầu biến đổi mà website có thể thay đổi các mục đích, bố cục nên sự đóng góp phát
triển website của các thành viên khác chiếm một vai trò quan trọng.
f-?
Mở trình duyệt web, nhập địa chỉ: "http://localhost/administrator"
Nguyễn Vũ Thanh Phong Trang 23
Giảng Viên Hướng dẫn:Văn Phú Hội Đề tài:Thiết kế web tin tức joomla
Xuất hiện trang quản trị, nhập :
Username : admin
Password: là password ở bước 6 khi cài đặt Joomla!
Xuất hiện trang quản trị website:
Hình 3.7
Các nội dung chính trong báo cáo được thực hiện tại trang quản trị này.
Giới Hạn Thành Viên
Tại trang quản trị, sử dụng tab: Site/ User Manager
Thêm thành viên: chọn New User
Hình 3.8
Nguyễn Vũ Thanh Phong Trang 24
Giảng Viên Hướng dẫn:Văn Phú Hội Đề tài:Thiết kế web tin tức joomla
Name5/5
UserName5'Y)U<#$%&:8'8
EmailH!+/5
New Password%&!%<g-/5
Verify Password%&+!%<g-
Group0B-hB-?/5
Public Front-end/5TB-h#$%&:8'8
Public Back-End/5TB-h#$%&B-?:8'8
Xóa thành viên</05/5/4'
Hạn chế thành viênX/5/#i0-&;T!+!/,@&je&
AB--#e: )'^/5/T!+!/,:8'8
Hình 3.9
Nguyễn Vũ Thanh Phong Trang 25