1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

126 237 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 126
Dung lượng 4,53 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

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

Trang 2

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

PGS.TS.Huỳnh Xuân Hiệp

Trang 3

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

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

Trang 4

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 http://www.kunena.org/

Trang 5

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 http://www.kunena.org

Trang 6

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

Trang 7

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

Trang 8

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

Trang 9

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

Trang 10

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

Trang 11

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

Trang 12

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

- 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 để

Trang 13

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

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

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

2 2 08.01.2015 15.01.2015

- Tìm hiểu framwork Joomla2.5,

- Cài đặt và chạy thử joomla trên xampp

3 3 16.01.2015 23.01.2015

- 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ả

Trang 14

- Thiết kế cấu trúc

6 6 8.02.2015 15.2.2015 - Thiết kế giao diện

7 7-8 16.02.2015 28.2.2015

- 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

8 10-11 01.03.2015 14.03.2015

- 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

- Kiểm thử

10 14 30.03.2015 04.04.2015

- 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

11 15-16 07.04.2015 18.04.2015

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

- Hoàn thành Mẫu trường hợp kiểm thử

12 17 21/04/2015 25/04/2015 - Dự kiến Bảo vệ thử Luận

văn Tốt nghiệp

Trang 15

13 18 28/04/2015 02/05/2015 - Hoàn thành báo cáo và nộp

 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

Trang 16

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

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ụ:

<p style= ”color=#fff000”>Nội dung văn bản</p>

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>

Trang 17

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

Đối tượng {

thuộc tính:giá trị;

}

Trang 18

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

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:

Trang 19

-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 (cross-platform) Đâ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

Trang 20

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

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ụ:

Trang 21

*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

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ì

Trang 22

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

Trang 23

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”>

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:

<?php define('sv', 'localhost');

define('dbname', 'vtc');

define('username', 'root');

define('pass', '');

?>

Trang 24

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

Trang 25

&& AND Logic $x && $y

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

d Vòng lặp do while

Trang 26

Do { expression } while(condition)

expression;

}

Trong đó: Biểu thức điều kiện, biến

Expression: Khối lệnh bên trong vòng lặp while

f Exit:Thoát khỏi các vòng lặp hay phát biểu điều khiển nào đó

}

b Tham biến:

Function add_some_extra (&$string)

{$string =’and somthing extra’; }

c Tham số có giá trị mặc định

Function makecoffee($type = “cappucino”)

{ Return “Making a cup of $type \n”; } Chú ý: Khi sử dụng hàm có đối số có giá trị mặc định, các biến này sẽ phải nằm về phía phải nhất trong danh sách đối số

Function makeyogurt($type=”acidophilus”, $flavour) {

Trang 27

Return “Making a bowl of $type $flavour \n”;

} Đúng:

Function makeyogurt($flavour, $type=”acidophilus”) {

Return “Making a bowl of $type $flavour \n”;

}

d Giá trị trả lại của hàm:

Có thể là bất kỳ giá trị nào Tuy vậy, không thể trả lại nhiều giá trị riêng lẻ nhưng có thể trả lại một mảng các giá trị

Toán tử điều khiển lỗi: @ - khi đứng trước 1 biểu thức thì các lỗi của biểu

thức sẽ bị bỏ qua và lưu trong $PHP_errormsg

<?php

$link=mysql_connect(sv, username, pass);

if(!$link) die("khong ket noi duoc mysql");

II.2.13 Lớp và đối tượng

Class: là tập hợp các biến và hàm làm việc với các biến này Một lớp có

định dạng như sau:

Trang 28

<php Class Cart{

Var $items;

Function add_item($a) Lớp Cart ở đây là một kiểu dữ liệu

II.2.14 Tham chiếu:

Tham chiếu trong PHP có nghĩa là lấy cùng giá trị bằng nhiều tên biến khác nhau Khác với con trỏ C, tham chiếu là một bảng các bí danh Chú ý: Trong PHP, tên biến và nội dung của các biến khác nhau Vì vậy, cùng một nội dung có thể có nhiều tên khác nhau

Tham chiếu PHP cho phép bạn tạo 2 biến có cùng nội dung

Ví dụ:

$a=&$b; ==> $a, $b trỏ tới cùng một giá trị

Tham chiếu truyền giá trị bằng tham chiếu Thực hiện việc này bằng cách tạo một hàm cục bộ và truyền giá trị được tham chiếu

Ví dụ:

function f(&$var) {$var++; } $a=5;

VD:

<?php define('sv', 'localhost');

Trang 29

mysql_select_db("vtc", $link)or die("khong chon duoc co so du lieu)" mysql_error());

?>

Để thực hiện một câu lệnh truy vấn, dùng hàm mysql_query(query, link) Giá trị trả lại của hàm là kết quả của câu truy vấn Nếu bỏ qua link thì kết nối cuối cùng tới MySQL server sẽ được thực hiện

VD:

<?php mysql_query("insert into hang value('$mahang', '$tenhang')", $link)or die("khong chen duoc co so du lieu" mysql_error());

?>

Để lấy kết quả thực hiện, ta có thể dùng hàm mysql_result(), mysql_fetch_row(), mysql_fetch_array(), mysql_fetch_object()

* mysql_fetch_row():Trả về một mảng các dữ liệu lấy từ 1 dòng trong

CSDL Nếu đã ở cuối CSDL, giá trị trả về là false Bạn phải dùng chỉ số của các trường trong CSDL nếu muốn lấy dữ liệu

echo"số hãng nhập vào hiện nay là:$sohang <p>";

echo"<table width=\"100%\" boder=1>";

Trang 30

echo "</table>";

mysql_close($link);

?>

*mysql_fetch_array(int result[, int result_type]): Trả về một mảng chứa dữ liệu

lấy từ một dòng trong CSDL Tương tự như mysql_fetch_row() nhưng bạn có thể lấy thêm trường để lấy dữ liệu

*mysql_fetch_object:Chuyển kết quả thành một đối tượng với các trường là các

trường trong cơ sở dữ liệu

II.3.1 Giới thiệu cơ sở dữ liệu:

MySQL là ứng dụng cơ sở dữ liệu mã nguồn mở phổ biến nhất hiện nay (theo www mysql com) và được sử dụng phối hợp với PHP Trước khi làm việc với MySQL cần xác định các nhu cầu cho ứng dụng

MySQL là cơ sở dữ có trình giao diện trên Windows hay Linux, cho phép

người sử dụng có thể thao tác các hành động liên quan đến nó Việc tìm hiểu từng

công nghệ trước khi bắt tay vào việc viết mã kịch bản PHP, việc tích hợp hai công nghệ PHP và MySQL là một công việc cần thiết và rất quan trọng

II.3.2 Mục đích sử dụng cơ sở dữ liệu:

Mục đích sử dụng cơ sở dữ liệu bao gồm các chức năng như: lưu trữ (storage), truy cập (accessibility), tổ chức (organization) và xử lí (manipulation)

 Lưu trữ: Lưu trữ trên đĩa và có thể chuyển đổi dữ liệu từ cơ sở dữ liệu này sang cơ sở dữ liệu khác, nếu bạn sử dụng cho quy mô nhỏ, bạn có thể chọn cơ sở dữ liệu nhỏ như:Microsoft Exel, Microsoft Access, MySQL, Microsoft Visual FoxPro, Nếu ứng dụng có quy

mô lớn, bạn có thể chọn cơ sở dữ liệu có quy mô lớn như :Oracle, SQL Server,

 Truy cập:Truy cập dữ liệu phụ thuộc vào mục đích và yêu cầu của người sử dụng, ở mức độ mang tính cục bộ, truy cập cơ sỏ dữ liệu ngay trong cơ sở dữ liệu với nhau, nhằm trao đổi hay xử lí dữ liệu ngay bên trong chính nó, nhưng do mục đích và yêu cầu người dùng vượt ra ngoài cơ sở dữ liệu, nên bạn cần có các phương thức truy cập dữ liệu giữa các cơ sở dử liệu với nhau như:Microsoft Access với SQL Server, hay SQL Server và cơ sở dữ liệu Oracle

 Tổ chức:Tổ chức cơ sở dữ liệu phụ thuộc vào mo hình cơ sở dữ liệu, phân tích và thiết kế cơ sở dữ liệu tức là tổ chức cơ sở dữ liệu

Trang 31

phụ thuộc vào đặc điểm riêng của từng ứng dụng Tuy nhiên khi tổ chức cơ sở dữ liệu cần phải tuân theo một số tiêu chuẩn của hệ thống cơ sở dữ liệu nnhằm tăng tính tối ưu khi truy cập và xử lí

 Xử lí:Tùy vào nhu cầu tính toán và truy vấn cơ sở dữ liệu với các mục đích khác nhau, cần phải sử dụng các phát biểu truy vấn cùng các phép toán, phát biểu của cơ sở dữ liệu để xuất ra kết quả như yêu cầu Để thao tác hay xử lí dữ liệu bên trong chính cơ sở dữ liệu

ta sử dụng các ngôn ngữ lập trình như:PHP, C++, Java, Visual Basic,

II.3.3 Các thao tác cập nhật dữ liệu:

 SELECT (Truy vấn mẫu tin):Select dùng để truy vấn từ một hay nhiều bảng khác nhau, kết quả trả về là một tập mẫu tin thỏa mãn các điều kiện

cho trước nếu có, cú pháp của phát biểu SQL dạng SELECT như sau:

SELECT<danh sách các cột>

[FROM<danh sách bảng>]

[WHERE<các điều kiện ràng buộc>]

[GROUP BY<tên cột/biểu thức trong SELECT>]

[HAVING<điều kiện bắt buộc của GROUP BY>]

[ORDER BY<danh sách các cột>]

[LIMIT FromNumber |ToNumber]

INSERT(Thêm mẫu tin):

Cú pháp:INSERT INTO Tên_bảng VALUES(Bộ_giá_trị)

UPDATE(Cập nhật dữ liệu):

Cú pháp:UPDATE TABLE Tên_bảng SET Tên_cột=Biểu_thức,

[WHERE Điều_kiện]

DELETE(Xóa mẫu tin):

Cú pháp:DELETE FROM Tên_bảng

[WHERE Điều_kiện]

Trang 32

II.4 Tổng quan về về joomla

II.4.1 Giới thiệu Joomla

Joomla là một hệ thống quản trị nội dung (CMS – Content Management

System) giúp bạn thực hiện các webside động một cách nhanh chống dễ dàng Là

hệ thống mã nguồn mở số 1 thế giới hiện nay Linh hoạt, trang nhã, tính tùy biến rất cao và cực kì manh 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 Joomla! Rất dễ dàng, đơn giản trong việc quản lý và đáng tin cậy

Ứng dụng trong Joomla trong nhiều lĩnh vực như

- Trang web các tổ chức hay các cổng thông tin (Portal)

- Thương mại điện tử

- Trang web cho các công ty cỡ nhỏ

- Ứng dụng cho các cơ quan hành chính

- Trang web cho các gia đình

- Và nhiều ứng dụng khác……

Ngoài các vấn đề là mã nguồn mở miễn phí, khả năng bảo mật cao, dễ dàng

sử dụng, còn điều gì tuyệt vời hơn đằng sau khiến cho Joomla phát triển mạnh

và được nhiều người yêu thích như vậy ? với Joomla việc xây dựng (lập trình) thêm các thành phần, module, các chức năng cho nó là một việc rất dễ dàng đối với các lập trình viên, do đó Joomla có rất rất nhiều các chức năng mở rộng được viết bởi các nhà lập trình trên khắp thế giới, và hầu hết tất cả các ứng dụng, thành phần này đều được chia sẻ miễn phí, đó chính là điều tuyệt vời nhất Hiện nay Joomla phát triển theo 3 dòng phiên bản chính:

 Dòng phiên bản 1.0.X

Phiên bản đầu tiên của Joomla! là phiên bản Joomla! 1.0 (hay còn gọi là Joomla! 1.0.0 được phát hành vào ngày 15 tháng 09 năm 2005) có nguồn gốc từ Mambo 4.5.2.3 (đã bao gồm thêm nhiều bản vá bảo mật và sửa lỗi) Các phiên bản tiếp theo có dạng 1.0.x

Điểm mạnh của Joomla! 1.0.x: Có một số lượng rất lớn các thành phần mở

rộng (module/component); thành phần nhúng (mambot); giao diện (template)

Phiên bản cuối cùng của dòng này là: Joomla 1.0.15 (phát hành vào ngày 21 tháng 02 năm 2008)

Đến nay, Joomla đã ngừng hỗ trợ và phát triển dòng phiên bản 1.0.X này

Trang 33

 Dòng phiên bản 1.5.X

Phiên bản đầu tiên của dòng này (thế hệ thứ 2) là Joomla! 1.5.0 được phát hành vào ngày 21 tháng 1 năm 2008 Phiên bản này bắt đầu hỗ trợ bộ ký tự UTF8 Các phiên bản tiếp theo có dạng 1.5.X

Phiên bản Joomla! 1.5[6] là phiên bản cải tiến từ Joomla! 1.0.x (phần mã được viết lại hoàn toàn, tuy nhiên vẫn giữ cách hành xử như cũ) được coi như Mambo 4.6 Joomla! 1.5 tiếp tục duy trì một giao diện người sử dụng đơn giản (nhìn và cảm nhận

- look and feel)

Cả Joomla! 1.5 và Mambo 4.6 đều hỗ trợ đa ngôn ngữ Joomla! thì sử dụng file định dạng ".ini" để lưu các thông tin chuyển đổi ngôn ngữ, còn Mambo thì sử dụng file định dạng ".gettext" Joomla 1.5 hỗ trợ tất cả các ngôn ngữ có tập ký tự được biểu diễn bằng bảng mã UTF-8

Joomla! 1.5 cũng bao gồm các đặc tính mới như các mô hình chứng thực (LDAP, Gmail ), hỗ trợ mô hình khách-chủ xml-rpc Nó cũng hỗ trợ các trình điều khiển cơ sở dữ liệu dành cho MySQL 4.1+ (trên nền PHP 5) và tăng cường hỗ trợ cho MySQL 5, cũng như hỗ trợ các loại cơ sở dữ liệu khác

Điểm mạnh của Joomla! 1.5: Phần quản trị Website có sử dụng công nghệ Web 2.0, một số tính năng được cải tiến hơn so với Joomla 1.0.x

Phiên bản mới nhất của dòng này là: Joomla 1.5.26[8] (phát hành vào ngày

27 tháng 03 năm 2012) đã ngừng phát triển và chỉ đang được hỗ trợ cập nhật các bản vá bảo mật Bản cài đặt nhanh đã tích hợp tiếng Việt: Joomla! Việt

 Dòng phiên bản 2.5.x

Phiên bản đầu tiên của dòng này lại bắt đầu từ phiên bản Joomla 1.6.0 phát hành vào ngày 10 tháng 01 năm 2011 Nhưng chỉ trong vòng 6 tháng với 4 bản cập nhật liên tục tới phiên bản 1.6.4 vào ngày 27 tháng 06 năm 2011

Phiên bản 1.6.6 phát hành vào ngày 26 tháng 07 năm 2011 đã đánh dấu sự kết thúc của dòng 1.6 và chỉ cập nhật vì lý do bảo mật dành cho các trang web không thể cập nhật lên phiên bản 1.7 vì lý do khách quan

 Theo đó, phiên bản 1.7.0 nhanh chóng được phát hành vào ngày 19 tháng 07 năm 2011 Đến lượt phiên bản 1.7 lại kết thúc chu kỳ sống ngắn ngủi vào ngày

Trang 34

24 tháng 02 năm 2012 tại phiên bản 1.7.5 và nhường chỗ cho dòng phiên bản 2.5

 Dòng phiên bản 2.5.0 được phát hành vào ngày 24 tháng 01 năm 2012 hứa hẹn một kỷ nguyên mới của Joomla với các tính năng cực kỳ vượt trội như: tự động cập nhật qua nút bấm trong phần quản trị, hỗ trợ seo mạnh hơn và đặc biệt phân quyền sâu hơn với từng nhóm thành viên

Phiên bản dòng này là 2.5.6 được phát hành vào ngày 19 tháng 06 năm 2012

Hiện nay dòng này đã được nâng cấp đến 2.5.28 và đã được ngưng hỗ trợ vào ngày 31 tháng 12 năm 2014

 Dòng phiên bản 3.0.x

• Đang ở giai đoạn Joomla 3.0 Alpha - 1 được phát hành vào ngày 12 tháng 07 năm 2012

• Phiên bản Joomla 3.3.0 được phát hành vào ngày 30 tháng 04 năm 2014

• Hiện nay phiên bản mới nhất cho dòng này là Joomla 3.4 beta vào ngày 27 tháng 01 năm 2015

II.4.2 Vài nét về lịch sử của Joomla

Joomla là "sản phẩm anh em" với Mambo của tập đoàn Miro Software Solutions - Úc (hãng đang nắm giữ Mambo) với những người phát triển nòng cốt Ban đầu công ty Miro đã phát triển Mambo theo dạng ứng dụng mã nguồn đóng Đến tháng 4 năm 2001, công ty đã thông qua một chính sách bản quyền kép, nghĩa là phát hành Mambo theo cả giấy phép GPL

Đến ngày 17 tháng 8 năm 2005, do sự tranh chấp về mặt pháp lý cũng như mong muốn vào sự phát triển của Mambo dựa trên quỹ tài trợ và sự hỗ trợ của cộng đồng nên toàn bộ đội phát triển nòng cốt của Mambo đã rời khỏi dự án trong khi đang làm việc với phiên bản 4.5.3

Nhờ sự trợ giúp của Trung tâm Luật Tự do Phần mềm (Software Freedom Law Center - SFLC), 20 thành viên nòng cốt cũ của Mambo đã thành lập một

tổ chức phi lợi nhuận khác lấy tên là Open Source Matters, để hỗ trợ về mặt tổ chức, pháp lý và kinh phí cho dự án mã nguồn mở còn chưa được đặt tên của

Trang 35

họ Ngay ngày hôm sau, 1000 người đã gia nhập diễn đàn OpenSourceMatters, hầu hết các bài viết cho diễn đàn đều khuyến khích và đồng tình với hành động của Nhóm Phát triển Tin trên đã nhanh chóng được đăng tải trên các tạp chí newsforge.com, eweek.com và ZDnet.com

Trong một thông báo của Eddie (người đứng đầu dự án) 2 tuần sau đó, các nhóm đã được tổ chức lại và cộng đồng Joomla tiếp tục tăng trưởng Tới ngày

1 tháng 9 năm 2005 tên mới của dự án đã được thông báo cho khoảng 3000 người theo dõi đội Phát triển và đến ngày 16 tháng 9 thì họ cho ra đời Joomla 1.0

II.4.3 Tại sao phải chọn Joomla

Tại sao lại chọn Joomla CMS ? liệu có thể tin tưởng được, Joomla có đủ mạnh ? nếu chưa đọc bạn hãy đọc bài viết giới thiệu về Joomla bạn sẽ biết

Joomla tuyệt vời như thế nào

Joomla là một hệ thống quản trị nội dung (CMS – Content Management System) mã nguồn mở dùng ngôn ngữ PHP và cơ sở dữ liệu MySQL

Joomla là một sân chơi, giao lưu học tập hoàn toàn miễn phí, tồn tại dựa

trên sự hỗ trợ, tham gia phát triển của tất cả mọi người, những người yêu thích

Joomla và những người muốn góp phần nhỏ kiến thức của mình thúc đẩy sự

phát triển CNTT Việt Nam

* Tuy nhiên Joomla không thể quản trị cho các site có cơ sở dữ liệu lớn

II.4.4 Kiến trúc Joomla

Joomla được phát triển theo kiến trúc 3 tầng hệ thống:

Hình 1 Cấu Trúc Joomla

Trang 36

 Tầng dưới cùng là mức nền tảng, chứa các thư viện và các plugin (còn được biết với tên gọi mambot)

Tầng thứ hai là mức ứng dụng và chứa lớp JApplication Hiện tại tầng này gồm 3 lớp con: JInstallation, JAdministrator và JSite

 Tầng thứ ba là mức mở rộng Tại tầng này có các thành phần

(component), mô đun (module) và giao diện (template) được thực thi và

thể hiện

JApplication: Lớp này đại diện cho ứng dụng Joomla và được thực hiện như

một nhà máy qui định mọi ứng dụng giữ những đối tượng Lớp này bao gồm

các lớp con như: JInstallation, JAdministrator và JSite

Mambot (Plug-in): Là các chức năng được bổ sung thêm cho Com, các

Mambot này sẽ can thiệp, bổ sung vào nội dung của trang Web trước hoặc sau khi nó được hiển thị Mambot có thể được cài đặt thêm vào Web Site Hay nói cách khác Mambot là phương tiện giao tiếp với component

II.4.4.1 Cấu trúc của gói cài đặt Component

Component (Com): Là thành phần chính của trang Web, nó quyết định đến

chức năng, hình thức, nội dung chính của mỗi trang Web Com có thể có thêm Mod để hỗ trợ cho việc hiển thị các chức năng và nội dung của Com Com có thể được cài đặt thêm vào Web Site Thông thường sau khi cài đặt Joomla! có sẵn các Component: Banners (quản lý các bảng quảng cáo), Contacts (quản lý việc liên hệ giữa người dùng với Ban quản trị Web Site), Search (quản lý việc tìm kiếm), News Feeds (quản lý các tin tức), Polls (quản lý việc bình chọn, ý kiến của người dùng), Web Links (quản lý các liên kết ngoài Web Site) và các Com quản lý nội dung của trang Web

II.4.4.2 Cấu trúc của một Component

Backend thông thường sẽ gồm những file cơ bản sau: 1 file admin.yourcom.php, 1 file admin.yourcom.html.php, 1 file toolbar.yourcom.php, 1 file toolbar.yourcom.html.php

Frontend sẽ gồm 2 file cơ bản (thông thường): 1 file yourcom.php, 1 file yourcom.html.php

Trang 37

Chú ý: không nhất thiết một component của bạn phải hoặc chỉ bao gồm các file

trên, các file bắt buộc là admin.yourcom.php và yourcom.php (folder chứa com

cả trong frontend và backend sẽ là com_yourcom) Ngoài ra bạn có thể có các file khác (vd yourcom.class.php chẳng hạn), các folder, các file js, file ảnh tùy thuộc vào mức độ bạn cần ở com này và mức độ bạn hiểu

Một file XML để phục vụ cho việc cài đặt khi bạn đóng gói File XML này

sẽ mang tất cả các thông số về Tên com; tên tác giả, địa chỉ email, license (optional) Mục đích chính của file này là khai báo các file trong frontend và backend (đường dãn đầy đủ của các file này) để upload khi cài đặt, khai báo các query tạo và insert database (nếu bạn phải thêm database) và các query uninstall Một điểm quan trọng là phải hiểu các object, class, function cơ bản trong joomla thì mới sử dụng được chúng để viết (ví dụ như object về database )

Khi đóng gói thì nhớ ở dạng zip, tar nếu ở dạng zar thì joomla ko hiểu đc Nếu chưa đóng gói được thì làm manual bằng cách insert trong database và copy các file vào các folder tương úng (không khuyến cáo sd cách này)

II.4.4.3 Cấu trúc của gói cài đặt Module

Module (Mod) Là bộ phận mở rộng thêm chức năng cho Web Site, các Mod

này có các chức năng khác nhau, được hiển thị trên trang Web tại các vị trí qui định và có thể thay đổi được Một trang Web có thể hiển thị nhiều Mod giống

và khác nhau, Mod có thể được cài đặt thêm vào Web Site.Thông thường sau khi cài đặt Joomla! có sẵn các Module: Main Menu (menu chính), Top Menu (menu phụ, nằm ngang), Search (hiển thị công cụ tìm kiếm), Poll (hiển thị bảng bình chọn, lấy ý kiến), Newsflash (hiển thị các bản tin nổi bật), Hit Counter (hiển thị số lượng truy cập Web Site), Banners (hiển thị các bảng quảng cáo)

Thông thường một Mod sẽ gồm có 2 file chính là php (chương trình) và file xml (thông số cài đặt), ngoài ra có thể có thêm thư mục ảnh, Java Script

hỗ trợ thêm cho Module

Trang 38

File.xml (Chứa thông số cài đặt)

Trang 39

II.4.4.4 Cấu trúc của gói cài đặt Template (Temp)

Template : Là giao diện, khuông dạng, kiểu mẫu, hình thức được thiết kế

để trình bày nội dung của trang Web và có các vị trí định sẵn để tích hợp các bộ phận, thành phần của trang Web Joomla! cho phép cài đặt và thay đổi Temp cho Web Site hay cho từng trang Web khác nhau một cách dễ dàng

Một gói cài đặt template Joomla gồm các file bắt buộc sau:

 index.php

 templateDetails.xml

 template_css.css hoặc template.css

Trang 40

 template_thumbnail.png

 các thư mục và file khác

File "index.php"

File này gồm các mã lệnh PHP, thẻ <head>, thẻ <body> và các bảng

<table> hoặc các thẻ <div>để định vị các module và tạo nên bố cục của

template

File "templateDetails.xml"

Được sử dụng trong quá trình cài đặt File này chứa các thông số về template và giúp Joomla! biết được trong quá trình cài đặt cần tạo các thư mục và truyền các file css, php, ảnh nào lên thư mục templates

File "template_css.css" hoặc "template.css"

Joomla 1.0.x sử dụng file template_css.css còn Joomla 1.5 sử dụng file

template.css Đây chính là CSS chính của Joomla File này kết hợp với

index.php để tạo nên template

File "template_thumbnail.png"

File này chính là ảnh chụp minh họa của template Nó giúp bạn dễ hình dung khi lựa chọn template hoặc trong phần quản trị hoặc ở mặt tiền của Website (nếu bạn cho phép mọi người có thể tùy chọn template)

Các thư mục và file khác

Ngoài các file chính nói trên trong gói cài đặt template có thể có thêm thư

mục CSS để chứa các file CSS bổ sung, thư mục ảnh để chứa các ảnh

được sử dụng cho template, thư mục javascript để chứa các javascript

(nếu có)

II.4.4.5 Cách đưa Component, Module và Template tích hợp vào Joomla

Để có thể tích hợp component, module và template vào Joomla ngoài việc

dựa vào chuẩn cấu trúc của từng phần, kiến trúc của Joomla mà còn theo một

số phương pháp sau:

Các com, mod, template được tạo ra phải nén dưới dạng file.zip khi đó mới

được cài đặt vào

Các com, mod, temp phải phù hợp với từng phiên bản của Joomla

Dùng lệnh Installation tương ứng với com, mod, temp để cài đặt

Ngày đăng: 12/01/2016, 19:43

HÌNH ẢNH LIÊN QUAN

Hình 9.  Nội dung của file mod_mycontact.xml - xây dựng diễn đàn nông nghiệp và phát triển module bằng cms joomla 2 5
Hình 9. Nội dung của file mod_mycontact.xml (Trang 49)
Hình 14. Giao diện Fontend (người dùng) của module - xây dựng diễn đàn nông nghiệp và phát triển module bằng cms joomla 2 5
Hình 14. Giao diện Fontend (người dùng) của module (Trang 51)
Hình 15. Giao diện Backend (admin) của module  III.3.1  Đóng gói Quickstart cho toàn bộ hệ thống diễn đàn vừa thực - xây dựng diễn đàn nông nghiệp và phát triển module bằng cms joomla 2 5
Hình 15. Giao diện Backend (admin) của module III.3.1 Đóng gói Quickstart cho toàn bộ hệ thống diễn đàn vừa thực (Trang 52)
Hình 19.  Qui trình hoạt động của các trang - xây dựng diễn đàn nông nghiệp và phát triển module bằng cms joomla 2 5
Hình 19. Qui trình hoạt động của các trang (Trang 59)
Hình 20 : Use case người quản trị - xây dựng diễn đàn nông nghiệp và phát triển module bằng cms joomla 2 5
Hình 20 Use case người quản trị (Trang 65)
Hình 22. Mô hình CDM - xây dựng diễn đàn nông nghiệp và phát triển module bằng cms joomla 2 5
Hình 22. Mô hình CDM (Trang 67)
Hình 23. Mô hình vật lý - xây dựng diễn đàn nông nghiệp và phát triển module bằng cms joomla 2 5
Hình 23. Mô hình vật lý (Trang 73)
Hình 24.  DFD cấp 0 - xây dựng diễn đàn nông nghiệp và phát triển module bằng cms joomla 2 5
Hình 24. DFD cấp 0 (Trang 74)
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 - xây dựng diễn đàn nông nghiệp và phát triển module bằng cms joomla 2 5
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 (Trang 76)
Hình 31.  DFD cấp 1 của quá trình xử lý yêu cầu admin - xây dựng diễn đàn nông nghiệp và phát triển module bằng cms joomla 2 5
Hình 31. DFD cấp 1 của quá trình xử lý yêu cầu admin (Trang 78)
Hình 35. Giao diện tìm kiếm bài viết - xây dựng diễn đàn nông nghiệp và phát triển module bằng cms joomla 2 5
Hình 35. Giao diện tìm kiếm bài viết (Trang 82)
Hình 2- 4 Cài đặt Xampp bước 3 - xây dựng diễn đàn nông nghiệp và phát triển module bằng cms joomla 2 5
Hình 2 4 Cài đặt Xampp bước 3 (Trang 105)
Hình 38.  Giao diện front-end của Joomla - xây dựng diễn đàn nông nghiệp và phát triển module bằng cms joomla 2 5
Hình 38. Giao diện front-end của Joomla (Trang 114)
Hình 2 -18 Giao diện Login quản trị của Joomla - xây dựng diễn đàn nông nghiệp và phát triển module bằng cms joomla 2 5
Hình 2 18 Giao diện Login quản trị của Joomla (Trang 115)
Hình  38.  Giao diện quản trị của Joomla - xây dựng diễn đàn nông nghiệp và phát triển module bằng cms joomla 2 5
nh 38. Giao diện quản trị của Joomla (Trang 115)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w