Tải bản đầy đủ (.pdf) (126 trang)

xây dựng diễn đàn nông nghiệp và phát triển module bằng cms joomla 2 5

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.53 MB, 126 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
NGÀNH KỸ THUẬT PHẦN MỀM

Đề tài

XÂY DỰNG DIỄN ĐÀN NÔNG NGHIỆP VÀ
PHÁT TRIỂN MODULE BẰNG
CMS JOOMLA 2.5

Sinh viên:Phạm Thanh Tân
MSSV: 1111338
Khóa: 37

Cần Thơ, 05/2015


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
BỘ MÔN CÔNG NGHỆ PHẦN MỀM

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
NGÀNH KỸ THUẬT PHẦN MỀM

Đề tài

XÂY DỰNG DIỄN ĐÀN NÔNG NGHIỆP VÀ


PHÁT TRIỂN MODULE BẰNG
CMS JOOMLA 2.5

Người hướng dẫn
PGS.TS.Huỳnh Xuân Hiệp

Cần Thơ, 05/2015

Sinh viên thực hiện
Phạm Thanh Tân
Mã số: 1111338
Khóa : K37


LỜI CẢM ƠN
Trong suốt quá trình thực hiện đề tài luận văn này, em đã nhận được rất
nhiều sự giúp đỡ nhiệt tình của các thầy cô, cũng như sự hỗ trợ của gia đình, bạn
bè.
Xin gửi lời cảm ơn đến các thầy cô khoa Công Nghệ Thông Tin và Truyền
Thông thời gian qua đã hướng dẫn, giảng dạy các học phần cơ bản, cung cấp kiến
thức nền tảng có vai trò quan trọng trong việc hoàn thành đề tài này
Xin chân thành cảm ơn gia đình, bạn bè đã giúp đỡ, hỗ trợ động viên tinh
thần rất nhiều những lúc gặp khó khăn
Đặt biệt, xin được gửi lời cảm ơn chân thành đến cán bộ hướng dẫn đề tài
luận văn này, thầy Huỳnh Xuân Hiệp đã tận tình hướng dẫn và chỉ bảo, góp ý trong
quá trình thực hiện luận văn.
Trong suốt thời gian, em đã cố gắng, nổ lực rất nhiều để hoàn thành đề tài
này một cách tốt nhất, nhưng sai sót là điều khó tránh khỏi. Vì vậy, rất mong nhận
được những ý kiến đóng góp của quí thầy cô và các bạn để đề tài này hoàn thiện
hơn.

Cuối cùng, xin chúc quí thành cô và các bạn dồi dào sức khỏe và thành đạt.

Cần thơ ngày 22 tháng 04 năm 2015
Sinh viên thực hiện
Phạm Thanh Tân


TÓM TẮT
Website ngày nay đã trở thành một dịch vụ không thể thiếu trong cuộc sống.
Với mỗi lứa tuổi mỗi tầng lớp Website lại mang một giá trị riêng. Khi nhu cầu của
con người ngày càng cao thì việc thiết kế một Website đặt ra cho lập trình viên rất
nhiều khó khăn và thách thức trong việc tìm hiểu và đáp ứng nhu cầu của từng
nhóm người dùng. Website không những phải thực hiện tốt về mặt chức năng mà
các thao tác với người dùng còn phải bắt mắt và dễ sử dụng. Chính vì thế việc cải
thiện và nâng cấp các ngôn ngữ lập trình web đang phát triển nhanh chóng trong
thời gian gần đây.
Joomla là hệ thống quản trị nội dung (CMS) được ưa chuộng nhất hiện nay.
Được phát hành dưới giấy phép phần mềm nguồn mở GNU/GPL. Với nền tảng
công nghệ mới, được lập trình bằng ngôn ngữ PHP có tính mềm dẻo cao. Sử dụng
cơ sở dữ liệu MySQL có tính mở, gọn nhẹ, dễ dàng quản trị. Ngoài ra Joomla là
mã nguồn mở có thể tương thích với hầu hết các máy chủ hiện nay bao gồm các
máy chủ sử dụng công nghệ Apache Webserver / Linux OS và máy chủ IIS/
Microsoft Window.
Kết quả đạt được khi thực hiện đề tài là cung cấp cho người đọc những kiến
thức cần thiết, những cái nhìn tổng quan về Joomla 2.5 . Sự kết hợp giữa joomla
2.5 và phần mở rộng chuyên hỗ trợ về diễn đàn Kunena. Đây là thành phần mở
rộng mã nguồn mở và miễn phí và bạn có thể xem và tải về tại
/>

ABSTRACT

Today, website becomes an indispensable services in our morden life. For
each the age group, each the section, Website brings an individual value . The more
increasing human needs, the more difficult and challenge Wwebsite programers
gotten for designed in order to understand and meet the needs of each user group.
Website is not only excute its function well but also eye-catching and easy to use.
Therefore, the mending and enhancing program language is strong developing in
recently.
Joomla is a content management system (CMS) is currently the most
popular. Released under open source software license GNU / GPL. With new
technology platform, programming language PHP has high flexibility. Using
MySQL database openness, lightweight, easy administration. Also Joomla is open
source can be compatible with most current server includes server technology uses
Apache Webserver / Linux OS and IIS Server / Microsoft Windows.
The thesis’s results obtained when performing the subject is to provide
readers with the necessary knowledge, the overview of Joomla 2.5. The
combination of 2.5 and joomla extension that supports the Kunena forum. This
extension is open source and free, and you can view and download at



MỤC LỤC
CHƯƠNG I : TỔNG QUAN ................................................................................ 1
I.1.

Đặt vấn đề ................................................................................................. 1

I.2.

Lịch sử giải quyết vấn đề ........................................................................ 2


I.3.

Phạm vi vấn đề ......................................................................................... 2

I.4.

PHƯƠNG PHÁP NGHIÊN CỨU ........................................................... 3

CHƯƠNG II : CƠ SỞ LÝ THUYẾT .................................................................. 6
II.1.

Tổng quan về CSS ................................................................................ 6

II.1.1. Ngôn ngữ định dạng CSS ................................................................... 6
II.2.

Tổng quan về PHP ................................................................................ 8

II.3.

Khái quát về MySQL.......................................................................... 20

II.4.

Tổng quan về về joomla ..................................................................... 22

II.4.1. Giới thiệu Joomla ............................................................................. 22
II.4.2. Vài nét về lịch sử của Joomla ........................................................... 24
II.4.3. Tại sao phải chọn Joomla ................................................................. 25
II.4.4. Kiến trúc Joomla ............................................................................. 25

II.4.5 Thiết kế Component cho Joomla theo mô hình MVC .................. 31
CHƯƠNG III: KHẢO SÁT VÀ PHÁT TRIỂN MODULE JOOMLA VÀ
COMPONENT KUNENA TRONG JOOMLA ............................................... 34
III. 1

Giới thiệu sơ lược về Component Kunena ....................................... 34

III. 2

Download và cài đặt Kunena ............................................................. 35

III. 3

Tạo module liên hệ với người quản lý diễn đàn ............................... 36

III.3.1

Đóng gói quickstart cho toàn bộ hệ thống diễn đàn vừa thực hiện42

CHƯƠNG IV : NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU ......................... 45
IV.1

NGHIÊN CỨU HỆ THỐNG .............................................................. 45

IV.2

Phân tích hệ thống và thiết kế mô hình ............................................. 50

IV.2.1


NHỮNG THÔNG TIN CẦN QUẢN LÝ TRÊN CSDL ........... 50

IV.2.2

PHÂN TÍCH VÀ THIẾT KẾ ...................................................... 50

IV.3
TÀI LIỆU KIỂM THỬ, TRƯỜNG HỢP KIỂM THỬ (IEEE983 –
1986)......................................................................................................... 74
IV.3.1

Giới thiệu ...................................................................................... 74


IV.3.2

Chi tiết kế hoạch kiểm thử .......................................................... 75

IV.3.3

Quản lý kiểm thử ......................................................................... 76

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN......................................................... 89


Kết quả đạt được: ................................................................................... 89



Hạn chế: .................................................................................................. 90




Hướng phát triển: ................................................................................... 90

TÀI LIỆU THAM KHẢO .................................................................................. 91
PHỤ LỤC............................................................................................................. 92


DANH MỤC HÌNH
Hình 1. Cấu Trúc Joomla .................................................................................. 25
Hình 2. Sơ đồ hoạt động của MVC ................................................................... 31
Hình 3. Công thức trang diễn đàn trực tuyến ................................................. 34
Hình 4. Bước 1 cài đặt Kunena......................................................................... 35
Hình 5. Bước 2 cài đặt Kunena......................................................................... 36
Hình 6. Giao diện sau khi cài đặt Kunena thành công ................................... 36
Hình 7. Extensions hiện đang có của Kunena ................................................. 36
Hình 8. Thành phần đầy đủ của một Module ................................................. 38
Hình 9. Nội dung của file mod_mycontact.xml ............................................... 39
Hình 10. Nội dung của file mod_mycontact.php .............................................. 39
Hình 11. Nội dung file helper.php ..................................................................... 40
Hình 12. Khung của một mail khi admin tiếp nhận ....................................... 40
Hình 13. Nội dung của file default.php ............................................................ 41
Hình 14. Giao diện Fontend (người dùng) của module ................................... 41
Hình 15. Giao diện Backend (admin) của module ........................................... 42
Hình 16. Các bước export CSDL MySQL ....................................................... 43
Hình 17. Tiền tố mặc định trong CSDL ........................................................... 43
Hình 18. Các bước thay đổi tiền tố ................................................................... 44
Hình 20 : Use case người quản trị ..................................................................... 55
Hình 21. Usecase người sử dụng ........................................................................ 56

Hình 22. Mô hình CDM ...................................................................................... 57
Hình 23. Mô hình vật lý ...................................................................................... 63
Hình 24. DFD cấp 0............................................................................................ 64
Hình 25. DFD mức 1 của xem cái bài đã được gửi ........................................ 65
Hình 26. DFD mức 1 của đăng ký .................................................................... 65
Hình 27. DFD mức 1 của phân tích các bài đã được gửi lên diễn đàn ......... 66
Hình 28. DFD mức 2 của tìm kiếm ................................................................... 66
Hình 29. DFD mức 1 của login.......................................................................... 67
Hình 30. DFD mức 1 xử lý các yêu cầu của User đã đăng kí ......................... 67
Hình 31. DFD cấp 1 của quá trình xử lý yêu cầu admin ................................ 68
Hình 32. Giao diện đăng kí ................................................................................ 69


Hình 33. Giao diện đăng nhập ........................................................................... 70
Hình 34. Giao diện đăng chủ đề, bài viết mới .................................................. 71
Hình 35. Giao diện tìm kiếm bài viết ................................................................ 72
Hình 36. Giao diện xóa chủ đề, bài viết ............................................................ 73


DANH MỤC BẢNG

Bảng bài gửi ......................................................................................................... 58
Bảng bài viết ........................................................................................................ 58
Bảng bài viết thích .............................................................................................. 59
Bảng chỉ mục ....................................................................................................... 59
Bảng chủ đề ......................................................................................................... 60
Bảng dạng bài gửi ............................................................................................... 60
Bảng dạng người ................................................................................................. 60
Bảng liên hệ ......................................................................................................... 61
Bảng từ khóa ....................................................................................................... 61

Bảng người sử dụng ............................................................................................ 61
Bảng quyền truy cập ........................................................................................... 62
Bảng sửa bài viết ................................................................................................. 62


XÂY DỰNG DIỄN ĐÀN NÔNG NGHIỆP VÀ PHÁT TRIỂN MODULE BẰNG CMS JOOMLA 2.5

CHƯƠNG I : TỔNG QUAN
I.1.

Đặt vấn đề

Trong những năm trở lại đây, cụm từ Công nghệ thông tin đã không còn xa
lạ với mọi người. Công nghệ thông tin tham gia vào hầu hết các hoạt động của xã
hội, từ những công việc mang tính chất chuyên môn cao như những công trình
nghiên cứu khoa học hay những chương trình quản lý, duy trì hoạt của một hệ thống
lớn đến những ứng dụng nhỏ giúp người dùng có thể giải trí, học hỏi kiến thức từ
nhiều nguồn khác nhau.
Nhắc tới Công nghệ thông tin người ta không thể không nhắc đến Internet.
Internet là một lĩnh vực rất mạnh hiện nay khi nhu cầu giải trí, làm việc không phụ
thuộc và khoảng cách địa lý, nguồn thông tin đa dạng và phong phú, giao diện sinh
động dễ sử dụng đang được người dùng đặt lên hàng đầu, chính vì sự phát triển
ngày càng tiến bộ và rộng rãi của internet đã hình thành nên những diễn đàn những
forum trao đổi thông tin về công nghệ, xe cộ, nhà cửa, và một lĩnh vực cũng không
thể thiếu đó là nông nghiệp. Việc tạo ra một diễn đàn nông nghiệp có thể cho người
nuôi trồng có thêm nhiều kinh nghiệm để canh tác và tạo cầu nối gần hơn giữa
người kỹ sư và người nông dân.
Đáp ứng những nhu cầu đó việc tạo ra một diễn đàn là vô cùng cần thiết,
nhưng để đáp ứng đầy đủ các nhu cầu trên người lập trình viên đòi hỏi phải mất
khá nhiều thời gian, việc này đã được khắc phục chúng ta có thể đỡ tốn thời gian

đồng thời có những giao diện linh động và dễ quản lý và cũng khá bảo mật nhờ vào
sử dụng CMS Joomla 2.5 kết hợp với một phần mở rộng của nó đã giúp chúng ta
tạo ra một diễn đàn như ý muốn. Tuy Joomla chỉ mới xuất hiện cách đây khoảng
vài năm nhưng nó đã đem cho người sử dụng một cái nhìn mới về lập trình web,
lập trình không còn phải gõ từng dòng code như xưa thay vào đó là một CMS làm
việc đỡ tốn thời gian và ít xảy ra lỗi.
Do những sự linh động và những khắc phục đáng kể về việc lập trình xưa
cũ và những giao diện sinh động, dễ quản lý và dễ chỉnh sửa. Chính vì thế em chọn
đề tài luận văn “Xây dựng diễn đàn nông nghiệp và phát triển module bằng CMS
Joomla2.5” giúp cung cấp cho người đọc những kiến thức cơ bản, những tiếp cận
ban đầu về Joomla2.5 đồng thời thiết kế một website diễn đàn nông nghiệp như là
một ví dụ demo giúp người dùng nhận thức trực quan hơn về những chức năng nổi
trội của Joomla 2.5

1


XÂY DỰNG DIỄN ĐÀN NÔNG NGHIỆP VÀ PHÁT TRIỂN MODULE BẰNG CMS JOOMLA 2.5

I.2.

Lịch sử giải quyết vấn đề

Cho tới thời điểm hiện tại, trên internet đã xuất hiện cũng khá nhiều những
forum những diễn đàn nông nghiệp. Một điều quan trọng là hầu hết là các Website
chưa khai thác nhiều hoặc không sử dụng CMS Joomla mà sử dụng các ngôn ngữ
thuần về lập trình web như HTML, CSS làm cho việc lập trình mất thời gian và
hay xuất hiện lỗi…..các website này còn dùng các công nghệ như Adobe Flash,
Microsoft Silverlight… hỗ trợ chức năng. Chính vì thế hiệu suất làm việc giảm do
việc tải về của các Browser, tính rủi ro cao do sự thay đổi của các phiên bản phần

mềm hỗ trợ.
Đối mặt với vấn đề trên thì sự thay đổi ngôn ngữ để đáp ứng nhu cầu là cần
thiết. Đề tài “Xây dựng website diễn đàn nông nghiệp bằng CMS Joomla2.5” sử
dụng một số Chức năng nổi trội của Joomla2.5 kết hợp với phần mở rộng Kunena
để giải quyết vấn đề giúp người dùng có thể thực hiện các chức năng một cách độc
lập, không phụ thuộc vào môi trường vận hành, thực hiện mọi thao tác trở nên mượt
mà và nhanh chóng. Ngoài ra với những cải tiến của Joomla2.5, bố cục giao diện
cũng được thiết kế gọn gàng và tiện lợi, bắt mắt tạo sự hứng thú cho người dùng.
I.3.

Phạm vi vấn đề

1.3.1 Về người dùng
Website diễn đàn nông nghiệp cung cấp các chức năng sau:
-

Đăng ký thành viên.
Đăng nhập vào hệ thống
Cập nhật thông tin cá nhân.
Đăng bài viết mới.
Có thể liên hệ quản trị qua bằng hình thức gửi mail
Thảo luận các vấn đề liên quan đến nông nghiệp.
Đánh giá bài viết.
Quản lý giao diện front end và back end của Joomla
Tìm kiếm bài viết.
Quản lý người dùng.
1.3.2 Về lý thuyết

Nghiên cứu các Chức năng của Joomla 2.5 cung cấp cho người đọc
những kiến thức cơ bản về mặt kỹ thuật, cách sử dụng và khai thác những ưu điểm,

đặc tính của Joomla 2.5. Sự kết hợp của Joomla 2.5 và phần mở rộng Kunena để
2


XÂY DỰNG DIỄN ĐÀN NÔNG NGHIỆP VÀ PHÁT TRIỂN MODULE BẰNG CMS JOOMLA 2.5

tạo một diễn đàn hoàn chỉnh. Qua đó cung cấp thêm nguồn tài liệu giúp Joomla
đến gần với mọi người hơn.
Kết hợp những kiến thức về các ngôn ngữ cũng như các kỹ năng khác để hỗ
trợ đề tài xây dựng website diễn đàn nông nghiệp như là một ví dụ điển hình để
giới thiệu đến mọi người những Chức năng nổi trội của Joomla đồng thời cũng là
một Website mang lại lợi ích cho người sử dụng.
1.3.3 Về kỹ thuật
Phần mềm chạy tốt trên các trình duyệt Google Chrome 20.0 trở lên, Firefox
, 15.0 trở lên, IE 11 và các trình duyệt khác như Safari, Opera…
Sử dụng ngôn ngữ lập trình PHP, hệ quản trị cơ sở dữ liệu MySQL cùng
một số các kỹ thuật lập trình khác như Ajax, Jquery… để giúp hoàn thành tốt hơn
các chức năng của đề tài.
PHƯƠNG PHÁP NGHIÊN CỨU

I.4.

Tham khảo các nguồn thông tin trên Internet, tài liệu sưu tầm qua
sách báo trong thư viện khoa Công nghệ Thông tin và Truyền thông - Đại học Cần
Thơ.
Thường xuyên báo cáo tiến độ với giáo viên hướng dẫn.
 Kế hoạch thực hiện
STT Tuần

1


1

Bắt đầu

Kết thúc

30.12.2014

7.01.2015

Nội Dung

Viết đề cương Luận văn tốt nghiệp
-

2

2

08.01.2015 15.01.2015

-

3

3

16.01.2015 23.01.2015
-


Tìm hiểu framwork
Joomla2.5,
Cài đặt và chạy thử joomla
trên xampp
Tìm hiểu các extensions như
kenuna, các plugin như
phpbb3 để nhúng vào joomla
tạo một forums
Cài đặt các extensions vào
joomla 2.5 và xem kết quả
3


XÂY DỰNG DIỄN ĐÀN NÔNG NGHIỆP VÀ PHÁT TRIỂN MODULE BẰNG CMS JOOMLA 2.5

4

5
6

7

8

9

10

11


12

4

5
6

7-8

24.01.2014

01.02.2015
8.02.2015

16.02.2015

-

Demo dựa trên các kiến thức
đã tìm hiểu

-

Báo cáo tiến độ lần thứ nhất

-

Tìm hiểu và tự thiết kế một
modum để nhúng vào joomla

Thiết kế cấu trúc

-

Thiết kế giao diện

-

Nghĩ tết âm lịch

-

Tìm các tư liệu về nuôi trồng
và các khoa học kỹ thuật mới
để tạo ra các bài viết trên diễn
đàn

-

Xây dựng hoàn chỉnh chức
năng cập nhật, đăng bài viết,
quản trị …….

-

Báo cáo tiến độ lần 2

-

Tạo các liên hệ trực tuyến như

yahoo, skype...... trên diễn đàn

-

Tạo chức năng cho người
dùng chia sẽ các bài viết lên
facebook, google……..

-

Kiểm thử

-

Thiết kế lại câu trúc, giao
diện, cập nhật tài liệu (nếu
cần)

-

Cơ bản hoàn thành tài liệu,
slide báo cáo luận văn

-

Báo cáo tiến độ lần 3

-

Hoàn thành Mẫu trường hợp

kiểm thử

-

Dự kiến Bảo vệ thử Luận
văn Tốt nghiệp.

31.1.2014

7.2.2015
15.2.2015

28.2.2015

10-11 01.03.2015 14.03.2015

12-13 15.03.2015 29.03.2015

14

30.03.2015 04.04.2015

15-16 07.04.2015 18.04.2015

17

21/04/2015 25/04/2015

4



XÂY DỰNG DIỄN ĐÀN NÔNG NGHIỆP VÀ PHÁT TRIỂN MODULE BẰNG CMS JOOMLA 2.5

13

18

28/04/2015 02/05/2015

14

19

19/05/2015 20/05/2015

-

Hoàn thành báo cáo và nộp
phản biện.

-

Bảo vệ chính thức Luận văn
Tốt nghiệp.

 Thu thập dữ liệu
Tìm đọc những tài liệu viết về Joomla trên mạng cũng như trong thư viện
khoa, trường.
Truy cập và dùng thử các website diễn đàn nông nghiệp để rút ra những kinh
nghiệm cũng như tìm kiếm hướng đi, giải pháp cho đề tài của mình.

 Phân tích yêu cầu, xây dựng mô hình hệ thống
Sau khi thu thập được các yêu cầu bắt đầu sàng lọc và phân tích yêu cầu để
phù hợp với phạm vi và nội dung đề tài.
Cài đặt và chạy thử Joomla trên Xampp
Cài đặt thêm phần mở rộng Kunena cho Joomla
 Chọn công nghệ, ngôn ngữ lập trình
Sử dụng CMS joomla 2.5 để thực hiện đề tài.
Trong quá trình lập trình sử dụng máy chủ localhost Xampp để hỗ trợ giả
lập webserver.
Dùng hệ quản trị cơ sở dữ liệu MySQL để quản lý cơ sở dữ liệu của hệ
thống.

5


XÂY DỰNG DIỄN ĐÀN NÔNG NGHIỆP VÀ PHÁT TRIỂN MODULE BẰNG CMS JOOMLA 2.5

CHƯƠNG II : CƠ SỞ LÝ THUYẾT
II.1.

Tổng quan về CSS

II.1.1.

Ngôn ngữ định dạng CSS

II.1.1.1. Khái niệm
CSS viết tắt từ Cascading Style Sheets, tạm dịch là các tập tin định kiểu theo
tầng. Là kiểu thiết kế sử dụng nhiều lớp định dạng chồng lên nhau. Được dùng để
miêu tả cách trình bày các tài liệu viết bằng ngôn ngữ HTML và XHTML. CSS

được tổ chức World Wide Web (W3C) giới thiệu vào năm 1996. Cách đơn giản
nhất để hiểu CSS là hãy coi nó như một phần mở rộng của HTML để giúp đơn giản
hóa và cải tiến việc thiết kế cho các trang web.
II.1.2.

Thế mạnh của CSS

CSS giúp tách riêng phần định dạng trang ra khỏi nội dung trang web.
Người thiết kế có thể quản lý, kiểm soát toàn bộ trang trang một cách nhanh
nhất và hiệu quả nhất, giúp tiết kiệm thời gian trong việc lập trình.
CSS giúp các mã HTML gọn gàng hơn, giúp bạn dễ dàng trong việc chỉnh
sửa, thay đổi giao diện. Kích thước các file HTML mà nguời dùng tải phải tải về
Browser cũng vì thế giảm đi đáng kể giúp người dùng duyệt web nhanh hơn.
Có 3 cách để khai báo CSS trong tài liệu HTML là CSS cục bộ, CSS nội
tuyến và CSS ngoại tuyến.
CSS cục bộ: Mã CSS được viết ngay trực tiếp trong thẻ HTML trong thuộc
tính style. CSS cục bộ chỉ có tác dụng trong cặp thẻ HTML được khai báo.
Ví dụ:

Nội dung văn bản



CSS nội tuyến: Mã CSS được viết trong cặp thẻ <style></style> và đặt trong
thẻ head của tài liệu HTML. CSS nội tuyến chỉ có tác dụng lên tài liệu HTML được
khai báo, các tài liệu HTML khác không có khai báo CSS đều không bị ảnh hưởng.
Ví dụ:
<style type=”text/css”>
h1{color:#ff234;}
p{ color:#aca09;} </style>
6



XÂY DỰNG DIỄN ĐÀN NÔNG NGHIỆP VÀ PHÁT TRIỂN MODULE BẰNG CMS JOOMLA 2.5

CSS ngoại tuyến: Đạt được đúng mục đích như phần trên đã nói về CSS thì
đây là cách khai báo tốt nhất và thường được sử dụng rộng rãi hiện nay. Các khai
báo CSS được tách biệt hoàn toàn trong tài liệu HTML. Người thiết kế chỉ cần viết
một file CSS mà được sử dụng nhiều lần trong ứng dụng của họ. CSS ngoại tuyến
có ảnh hưởng đến toàn bộ Website chứ không phải chỉ một tài liệu HTML riêng
biệt. Để khai báo css ngoại tuyến, ta chỉ cần tạo một file style.css chẳng hạn, sau
đó chèn đoạn code sau trong phần <head></head> của trang web:
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />
II.1.3.

Cấu trúc CSS

CSS gồm 3 thành phần chính: Đối tượng, thuộc tính và giá trị.
Đối tượng {
thuộc tính:giá trị;
}

Ví dụ:
h1{color:#ff234;}

Trong đó:
h1 là đối tượng áp dụng.
color là thuộc tính.

#ff234 là giá trị.
CSS viết tắt từ Cascading Style Sheets, tạm dịch là các tập tin định kiểu theo
tầng. Là kiểu thiết kế sử dụng nhiều lớp định dạng chồng lên nhau. Được dùng để
miêu tả cách trình bày các tài liệu viết bằng ngôn ngữ HTML và XHTML. CSS

được tổ chức World Wide Web (W3C) giới thiệu vào năm 1996. Cách đơn giản
nhất để hiểu CSS là hãy coi nó như một phần mở rộng của HTML để giúp đơn giản
hóa và cải tiến việc thiết kế cho các trang web.
II.1.4.

Đặc tính của CSS

Khi có tới 3 cách để khai báo một mã CSS thì vấn đề đặt ra là làm thế nào
để biết được thứ tự ưu tiên cho các khai báo trên cùng 1 tài liệu HTML? Mức độ
ưu tiên được sắp xếp theo thứ tự giảm dần như sau:

7


XÂY DỰNG DIỄN ĐÀN NÔNG NGHIỆP VÀ PHÁT TRIỂN MODULE BẰNG CMS JOOMLA 2.5

CSS cục bộ - Style đặt trong từng thẻ HTML riêng biệt.
CSS nội tuyến - Style đặt bên trong cặp thẻ <Style> … </Style>.
CSS ngoại tuyến - Style đặt trong các file riêng có phần mở rộng ".css".
Style theo mặc định của trình duyệt.
II.1.4.1 Sự thừa kế (Inheritance)
Hầu như tất cả các thẻ HTML điều bị ảnh hưởng bởi các kiểu định dạng
không trực tiếp. Các kiểu này có thể là kiểu mặc định của trình duyệt, hay bị ảnh
hưởng bởi kiểu của các thẻ cha (parent tags). Các kiểu được thừa kế thì dễ dàng
được ghi đè bằng việc dùng các bảng kiểu css.
II.1.4.2 Tính thứ tự (Order)
Có thể ghi đè lên một kiểu của bất kỳ đối tượng nào bằng cách khai báo lại
bộ chọn với các thuộc tính giống nhau nhưng khác về giá trị, các kiểu khai báo sau
cùng sẽ được áp dụng.
Ví dụ:

h1{ color:#000000;}
h1{color:#ffffff;}

Đối tượng h1 sẽ mang giá trị màu #ffffff mà không mang giá trị màu #000000
do tính thứ tự của CSS.
II.1.4.3 Đặc trưng (Specificity)
Xác định thứ tự ảnh hưởng của các kiểu phụ thuộc vào bộ chọn ngữ cảnh
suy ra mức độ đặc trưng của bộ chọn càng cao độ ưu tiên các kiểu của nó được áp
dụng cho một phần tử càng cao (bất kể thứ tự của bộ chọn). Mức độ đặc trưng của
bộ chọn ngữ cảnh phụ thuộc vào các kiểu bộ chọn được sử dụng trong bộ chọn ngữ
cảnh, mỗi bộ chọn có một trọng số ưu tiên riêng:
-

Bộ chọn HTML:1.

-

Bộ chọn Class & Attribute: 10.

-

Bộ chọn IDL 100.

-

Inline style: ∞ .

II.2.
II.2.1.


Tổng quan về PHP
Khái niệm PHP
8


XÂY DỰNG DIỄN ĐÀN NÔNG NGHIỆP VÀ PHÁT TRIỂN MODULE BẰNG CMS JOOMLA 2.5

-PHP là chữ viết tắt của “Personal Home Page” do Rasmus Lerdorf tạo ra
năm 1994. Vì tính hữu dụng của nó và khả năng phát triển, PHP bắt đầu được sử
dụng trong môi trường chuyên nghiệp và nó trở thành ”PHP:Hypertext
Preprocessor”
Thực chất PHP là ngôn ngữ kịch bản nhúng trong HTML, nói một cách đơn
giản đó là một trang HTML có nhúng mã PHP, PHP có thể được đặt rải rác trong
HTML.
PHP là một ngôn ngữ lập trình được kết nối chặt chẽ với máy chủ, là một
công nghệ phía máy chủ (Server-Side) và không phụ thuộc vào môi trường (crossplatform). Đây là hai yếu tố rất quan trọng, thứ nhất khi nói công nghệ phía máy
chủ tức là nói đến mọi thứ trong PHP đều xảy ra trên máy chủ, thứ hai, chính vì
tính chất không phụ thuộc môi trường cho phép PHP chạy trên hầu hết trên các hệ
điều hành như Windows, Unixvà nhiều biến thể của nó... Đặc biệt các mã kịch bản
PHP viết trên máy chủ này sẽ làm việc bình thường trên máy chủ khác mà không
cần phải chỉnh sửa hoặc chỉnh sửa rất ít.
Khi một trang Web muốn được dùng ngôn ngữ PHP thì phải đáp ứng được
tất cả các quá trình xử lý thông tin trong trang Web đó, sau đó đưa ra kết quả ngôn
ngữ HTML.
Khác với ngôn ngữ lập trình, PHP được thiết kế để chỉ thực hiện điều gì đó
sau khi một sự kiện xảy ra (ví dụ, khi người dùng gửi một biểu mẫu hoặc chuyển
tới một URL).
II.2.2.

Tại sao nên dùng PHP:


PHP được sử dụng làm Web động vì nó nhanh, dễ dàng, tốt hơn so với các
giải pháp khác.
PHP có khả năng thực hiện và tích hợp chặt chẽ với hầu hết các cơ sở dữ
liệu có sẵn, tính linh động, bền vững và khả năng phát triển không giới hạn.
Đặc biệt PHP là mã nguồn mở do đó tất cả các đặc tính trên đều miễn phí,
và chính vì mã nguồn mở sẵn có nên cộng đồng các nhà phát triển Web luôn có ý
thức cải tiến nó, nâng cao để khắc phục các lỗi trong các chương trình này
PHP vừa dễ với người mới sử dụng vừa có thể đáp ứng mọi yêu cầu của
các lập trình viên chuyên nghiệp, mọi ý tuởng của các bạn PHP có thể đáp ứng một
cách xuất sắc.
9


XÂY DỰNG DIỄN ĐÀN NÔNG NGHIỆP VÀ PHÁT TRIỂN MODULE BẰNG CMS JOOMLA 2.5

PHP đã có mặt trên 12 triệu Website.
II.2.3.

Hoạt động của PHP

Vì PHP là ngôn ngữ của máy chủ nên mã lệnh của PHP sẽ tập trung trên
máy chủ để phục vụ các trang Web theo yêu cầu của người dùng thông qua trình
duyệt.
Sơ đồ hoạt động:
Máy khách
hàng

Yêu cầu URL


Máy chủ

HTML

Web

HTML

Gọi mã kịch bản

PHP

Khi người dùng truy cập Website viết bằng PHP, máy chủ đọc mã lệnh PHP
và xử lí chúng theo các hướng dẫn được mã hóa. Mã lệnh PHP yêu cầu máy chủ
gửi một dữ liệu thích hợp (mã lệnh HTML) đến trình duyệt Web. Trình duyệt xem
nó như là một trang HTML têu chuẩn. Như ta đã nói, PHP cũng chính là một trang
HTML nhưng có nhúng mã PHP và có phần mở rộng là HTML. Phần mở của PHP
được đặt trong thẻ mở <?php và thẻ đóng ?> .Khi trình duyệt truy cập vào một
trang PHP, Server sẽ đọc nội dung file PHP lên và lọc ra các đoạn mã PHP và thực
thi các đoạn mã đó, lấy kết quả nhận được của đoạn mã PHP thay thế vào chỗ ban
đầu của chúng trong file PHP, cuối cùng Server trả về kết quả cuối cùng là một
trang nội dung HTML về cho trình duyệt.
II.2.4.

Các loại thẻ PHP

Có 4 loại thẻ khác nhau mà bạn có thể sử dụng khi thiết kế trang PHP:
Kiểu Short:Thẻ mặc định mà các nhà lập trình PHP thường sử dụng.
Ví dụ:
<? Echo “Well come to PHP. ” ;?>

Kiều đinh dạng XML: Thẻ này có thể sử dụng với văn bản đinh dạng XML
Ví dụ:
<? Php echo “Well come to PHP with XML”;>?
Kiểu Script: Trong trường hợp bạn sử dụng PHP như một script tương
tự khai báo JavaScipt hay VBScript:
Ví dụ:
10


XÂY DỰNG DIỄN ĐÀN NÔNG NGHIỆP VÀ PHÁT TRIỂN MODULE BẰNG CMS JOOMLA 2.5

<script language= “php”>
echo “Php Script”;
</script>
Kiểu ASP: Trong trường hợp bạn khai báo thẻ PHP như một phần trong
trang ASP.
Ví dụ:
<% echo “PHP – ASP”; %>
*PHP và HTML là các ngôn ngữ không “nhạy cảm “với khoảng trắng,
khoảng trắng có thể được đặt xung quanh để các mã lệnh để rõ ràng hơn. Chỉ có
khoảng trắng đơn có ảnh hưởng đến sự thể hiện của trang Web (nhiều khoảng
trắng liên tiếp sẽ chỉ thể hiện dưới dạng một khoảng trắng đơn).
II.2.5.
Các kiểu dữ liệu
Dữ liệu đến từ Script đều là biến PHP, bạn có thể nhận biết chúng bằng cách sử
dụng dấu $ trước tên biến.
a) Số nguyên:Được khai báo và sử dụng giá trị giống với C.
Ví dụ:
$a=12345;
$a=-456;

b) Số thực:
Ví dụ:
$a=2. 123;
$b=3. 1e3;
c) Xâu: Có hai cách để xác định 1 xâu: Đặt giữa 2 dấu ngoặc kép (“ ”) hoặc
giữa 2 dấu ngoặc (‘ ’).
d) Mảng:
Mảng thực chất gồm 2 bảng: Bảng chỉ số và bảng liên kết.
o Mảng một chiều: Có thể dùng hàm List() hoặc Array(). Có thể dùng
các hàm aort(), ksort(), sort(), uaort(),... để sắp xếp mảng, tùy thuộc
vào việc bạn định sắp xếp theo kiểu gì..
o Mảng 2 chiều:
Ví dụ:
$a[1]=$f;
$a[1][2]=$f;
$a[“abc”][2]=$f;
...
11


XÂY DỰNG DIỄN ĐÀN NÔNG NGHIỆP VÀ PHÁT TRIỂN MODULE BẰNG CMS JOOMLA 2.5

II.2.6.
Biến-giá trị
PHP quy định một biến được biểu diễn bắt đầu bằng dấu $, sau đó là một
chữ cái hoặc dấu gạch dưới.
a) Một số biến đã được khai báo sẵn:
HTTP_GET_VARS: Mảng các giá trị nguyên truyền tới script thông qua
phương thức HTTP GET. Chỉ có tác dụng nếu “track_vars” .Trong cấu hình được
đặt hoặc chỉ dẫn <? Php_track_vars?>.

HTTP_POST_VARS: Mảng các giá trị nguyên truyền tới script thông qua
phương thức HTTP POST.
HTTP_COOKIE_VARS: Một mảng các giá trị được truyền tới script hiện
tại bằng HTTP cookie. Chỉ có tác dụng nếu “track_vars” trong cấu hình được đặt
hoặc chỉ dẫn <?php_track_vars?>...
b) Phạm vi giá trị:
PHP coi một biến có một giới hạn. Để xác định một biến toàn cục (global)
có tác dụng trong một hàm ta cần khai báo lại. Nếu không có giá trị của biến sẽ
được coi như là cục bộ trong hàm.
VD:
$a=1;
$b=2;
Function Sum(){
Global $a, $b;
$b=$a+$b;
}
Sum();
Echo $b;
Khi có khai báo global, $a và $b được biết đó là những biến toàn cục. Nếu
không có khai báo global, $a và $b chỉ được coi là các biến bên trong hàm Sum().
c) Tên biến
Một biến có thể gắn với một cái tên
Ví dụ:
$a= “chao”;
$$a= “cacban”;
$Chao= “cacban”
Và echo”$a${chao}”;
Kết quả sẽ là “chaocacban”
12



XÂY DỰNG DIỄN ĐÀN NÔNG NGHIỆP VÀ PHÁT TRIỂN MODULE BẰNG CMS JOOMLA 2.5

II.2.7.

Các giá trị bên ngoài phạm vi PHP:

HTML Form: Khi 1 giá trị gắn với 1 file php qua phương thức POST
Ví dụ:
<form action = “top. php” method= “post”>
Name: < input type = “text” name = “name” ><BR>
<input type = “Submit”>
</form>
PHP sẽ tạo 1 biến $ name bao gồm mọi giá trị trong trường Name của Form.
PHP có thể hiểu được một mảng một chiều gồm các giá trị trong một Form.
Vì vậy, bạn có thể nhóm những giá trị liên quan lại với nhau hoặc sử dụng
đặc tính này để nhận các giá trị từ 1 đầu vào tuỳ chọn.
Khi tính chất track_vars được đặt trong cấu hình hoặc có chỉ dẫn
<?php_track_vars?>. Các giá trị được submit sẽ lấy ra qua phương thức GET và
POST có thể lấy ra từ 2 mảng toàn cục $HTTP_POST_VARS và
$HTTP_GET_VARS
II.2.8.

Hằng : PHP định nghĩa sẳn các hằng số:

_FILE_: Tên của script file đang thực hiện
_LINE_: Số dòng của mã script đang được thực hiện trong script file hiện
tại.
_PHP_VERSION_: version của PHP đang chạy
TRUE

FALSE
E_ERROR: Báo hiệu có lỗi
E_PARSE: Báo lỗi sai khi biên dịch
E_NOTICE: Một vài sự kiện có thể là lỗi hoặc không
Có thể định nghĩa một hằng số bằng hàm define()
VD:
define('sv', 'localhost');
define('dbname', 'vtc');
define('username', 'root');
define('pass', '');
?>

13


XÂY DỰNG DIỄN ĐÀN NÔNG NGHIỆP VÀ PHÁT TRIỂN MODULE BẰNG CMS JOOMLA 2.5

II.2.9.

Biểu thức

Biểu thức là một thành phần quan trọng trong PHP. Một dạng cơ bản nhất
của biểu thức bao gồm các biến và hằng số. PHP hỗ trợ 3 kiểu giá trị cơ bản nhất:
Số nguyên, số thực và xâu. Ngoài ra còn có mảng và đối tượng. Mỗi kiểu giá trị
này có thể gán cho các biến hay làm giá trị ra của các hàm.
II.2.10. Các cấu trúc lệnh
a. Các lệnh điều kiện và toán tử:
Mỗi câu lệnh điều kiện bao gồm một mệnh đề if:
If(điều kiện){

//thực hiện một điều gì đó
}
Điều kiện này có thể được mở rộng thành:
If(điều kiện){
//thực hiện một điều gì đó
} else {
//thực hiện một điều khác
}
Và:
If(điều kiện 1){
//thực hiện một điều gì đó
} elseif(điều kiện 2) {
//thực hiện một điều khác
}else {
//thực hiện một điều khác nữa
}
Các toán tử thường được sử dụng với câu lệnh điều kiện
Kí hiệu
ý nghĩa
Dạng
Ví dụ
=
Được gán giá trị của
Gán
$n=1
==
Bằng
So sánh
$x==$y
!=

Không bằng
So sánh
$x!=$y
<
Nhỏ hơn
So sánh
$x<$y
>
Lớn hơn
So sánh
$x>$y
<=
Nhỏ hơn hoặc bằng
So sánh
$x<=$y
>=
Lớn hơn hoặc bằng
So sánh
$x>=$y
!
Phủ định
Logic
!$x
14


XÂY DỰNG DIỄN ĐÀN NÔNG NGHIỆP VÀ PHÁT TRIỂN MODULE BẰNG CMS JOOMLA 2.5

&&
||


AND
Logic
$x && $y
OR
Logic
$x || $y
PHP còn có một dạng câu lệnh điều kiện nữa là Swich. Câu lệnh này rất phù
hợp cho việc thay thế nếu câu lệnh if-elseif-else quá dài. Cú pháp của câu lệnh
switch như sau:
Switch($variable){
Case ‘giá trị 1’:
//thực hiện lệnh
Break;
Case ‘giá trị 2’:
//thực hiện lệnh
Break;
Default:
//thực hiện lệnh
}
b. Phát biểu vòng lặp While
Phát biểu đơn giản nhất trong PHP là vòng lặp While, cho phép thực
thi khối lệnh trong While cho đến điều kiện của While là True như cú pháp:
While (condition)
{
Expression;
}
*Condition:Biểu thức điều kiện, biến,...
*Expression:Khối lệnh trong vòng lặp while
c. Vòng lặp For:

For(expression1;condition;expression2)
{
expression3;
}
Trong đó:
Condition: điều kiện giới hạn của vòng lặp for
Expression1: Giá trị khởi đầu của vòng lặp for
Expression2: Giá trị lặp của vòng lặp for
Expression3: Khối lệnh bên trong của vòng lặp for
d. Vòng lặp do... while
15


×