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

Xây dựng framework tạo website đám cưới cá nhân khóa luận hệ thống thông tin (CN08A)

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 (3.03 MB, 75 trang )

Trường ĐH Giao Thông Vận Tải Tp.HCM
KHOA CÔNG NGHỆ THÔNG TIN

LUẬN VĂN TỐT NGHIỆP
Đề tài: XÂY DỰNG FRAMWORK TẠO WEBSITE ĐÁM CƯỚI
CÁ NHÂN

Ngành
:
Chuyên ngành :

HỆ THỐNG THÔNG TIN

GVHD : THS. NGUYỄN LƯƠNG ANH TUẤN
SVTH : TRẦN MINH NGHĨA
Lớp : CN08A

Thành phố Hồ Chí Minh, tháng 12 năm 2013


LỜI CẢM ƠN
Luận văn tốt nghiệp là quá trình sinh viên thể hiện năng lực, kỹ năng làm việc,
nghiên cứu thực tế của mình trƣớc khi rời khỏi giảng đƣờng đại học. Bằng sự nỗ lực
của bản thân cùng với sự giúp đỡ của thầy cô, bạn bè, em đã thực hiện đề tài “Xây
dƣng Framework tạo website đám cƣới cá nhân” hoàn thành
Để có đƣợc kết quả này, em xin gửi lời cảm ơn chân thành đến thầy Nguyễn
Lƣơng Anh Tuấn. Cảm ơn Thầy đã dành thời gian và nhiệt huyết tận tình hƣớng dẫn
em trong suốt thời gian thực hiện đề tài luận văn này.
Em cũng xin gửi lời cảm ơn đến các thầy cô trong khoa Công Nghệ Thông Tin,
trƣờng Đại Học Giao Thông Vận Tải thành phố Hồ Chí Minh đã truyền dạy cho sinh
viên khoa Công Nghệ Thông tin và em những kiến thức, kinh nghiệm quý báu, niềm


say mê với những nền tảng công nghệ hiện đại trong suốt những năm trên giảng đƣờng
đại học.
Xin chúc thầy cô, các bạn lời chúc sức khỏe, luôn đạt đƣợc thành công trong sự
nghiệp, trong gia đình và ngoài xã hội.
Mặc dù em đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho phép
nhƣng chắc chắn sẽ không tránh khỏi những thiếu sót. Em rất mong nhận đƣợc sự
thông cảm, góp ý và tận tình chỉ bảo của quý Thầy Cô và các bạn.
Một lần nữa em xin chân thành cảm ơn!
Sinh viên thực hiện
Trần Minh Nghĩa


LỜI CAM ĐOAN
Em xin cam đoan:
-

Những nội dung trong luận văn này là do em thực hiện dƣới sự hƣớng dẫn trực tiếp
của thầy Nguyễn Lƣơng Anh Tuấn.

-

Mọi tham khảo dùng trong báo cáo này đều đƣợc trích dẫn rõ ràng tên tác giả, tên
công trình, thời gian, địa điểm công bố.

-

Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, em xin hoàn
toàn chịu trách nhiệm.



MỤC LỤC
LỜI MỞ ĐẦU .............................................................................................................. 1
1.

Tính cấp thiết của đề tài................................................................................... 1

2.

Tình hình nghiêm cứu ..................................................................................... 1

3.

Mục đích nghiêm cứu ...................................................................................... 2

4.

Nhiệm vụ của đề tài ......................................................................................... 2

5.

Phƣơng pháp thực hiện đề tài .......................................................................... 2

6.

Các kết quả đạt đƣợc của đề tài ....................................................................... 3

7.

Kết cấu của luận văn tốt nghiệp ....................................................................... 3


CHƢƠNG 1: CƠ SỞ LÝ THUYẾT ............................................................................. 5
1.1: Tổng Quan Về Database Server ......................................................................... 5
1.1.1 Database Server là gì? .................................................................................. 5
1.1.2 Hệ quản trị cơ sở dữ liệu MySQL ................................................................ 5
1.1.3 Sơ lƣợc MySQL ........................................................................................... 6
1.2: Giới thiệu PHP .................................................................................................. 7
1.3 Lý Do Lựa Chọn Ngôn Ngữ PHP và MySQL ..................................................... 8
1.4 Công nghệ template ............................................................................................ 9
1.4.1 PHP Template là gì ...................................................................................... 9
1.4.2 Tại sao nên dùng PHP Template ................................................................ 10
1.4.3 Giới thiệu Xtemplate .................................................................................. 11
1.5 Twitter Bootstrap Framework ........................................................................... 20
1.5.1 Giới thiệu Twitter Bootstrap Framework .................................................... 20


1.5.2 Các thành phần của Twitter Bootstrap Framework ..................................... 21
1.5.3 Cách sử dụng Twitter Bootstrap Framework cơ bản ................................... 22
CHƢƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG .................................................. 24
2.1 Giới thiệu.......................................................................................................... 24
2.2 Thiết lập yêu cầu chức năng.............................................................................. 25
2.2.1 Chức năng hiện thị cho ngƣời truy cập web xem ........................................ 25
2.2.2 Chức năng quản trị cho cô dâu chú rể......................................................... 26
2.3 Sơ đồ chức năng ............................................................................................... 28
2.3.1 Sơ đồ chức năng quyền khách .................................................................... 28
2.3.2 Sơ đồ chức năng quyền user ....................................................................... 29
2.3.3 Quyền quản trị cấp cao............................................................................... 36
2.4 Xây dựng Activity Diagram .............................................................................. 37
2.4.1 Đăng nhập .................................................................................................. 37
2.4.2 Quản lý các chức năng khác ....................................................................... 38
2.5 Phân tích thiết kế cơ sở dữ liệu ......................................................................... 38

2.5.1 Giới thiệu thực thể ..................................................................................... 38
2.5.2 Thiết kế cơ sở dữ liệu ................................................................................. 41
2.6. Một số thiết kế mô hình chức năng quan trọng ................................................. 48
CHƢƠNG 3: XÂY DỰNG FRAMEWORK .............................................................. 50
3.1 Cấu trúc thƣ mục của framework ...................................................................... 50
3.2 Cấu hình và cài đặt hệ thống website trên sever ................................................ 51
3.3 Xây dựng giao diện cho framework .................................................................. 52


CHƢƠNG 4: TỔNG KẾT .......................................................................................... 66
4.1: Kết luận ........................................................................................................... 66
4.2: Hƣớng phát triển .............................................................................................. 66
TÀI LIỆU THAM KHẢO .......................................................................................... 68


Bảng các từ viết tắt:
PHP

Hypertext Preprocessor

HTML

Hypertext Markup

Ngôn ngữ siêu văn bản

Language
CSDL

Cơ Sở Dữ Liệu


MySql

Hệ quản trị cơ sở dữ
liệu cho IBM cung
cấp.
Hệ điều hành

HĐH
URL

Uniform Resource
Locator

Hosting

Nơi lƣu trữ website


LỜI MỞ ĐẦU
1. Tính cấp thiết của đề tài
Đám cƣới là một sự kiện trọng đại của mỗi ngƣời. Chính vì vậy ai cũng
muốn chia sẻ niềm vui này với bạn bè và ngƣời thân của họ. Hiện nay internet
phát triển với tốc độ nhanh chóng. Số lƣợng ngƣời sử dụng internet tại Việt
Nam rất nhiều. đặc biệt là các bạn trẻ. Không phải ai cũng có đủ tình độ chuyên
môn để tạo ra đƣợc một website để chia sẻ những khoảng khắc. những sự kiện
trọng đại của đám cƣới. Nhu cầu có một nền tảng dễ dàng sử dụng. dễ dàng tùy
biến mang đậm tính chất cá nhân để một ngƣời không rành về website cũng có
thể tạo đƣợc một website đám cƣới cho chính họ. Mang đậm tính chất cá nhân
của họ là rất lớn. Trên thế giới thì đã có khá nhiều nhà cung cấp dịch vụ tạo

website đám cƣới cá nhân và đƣợc khá nhiều sử dụng. Tuy nhiên hiện nay tại
Việt Nam vẫn còn quá ít đơn vị cung cấp dịch vụ này. Và độ chuyên nghiệp
cũng nhƣ tính năng của các dịch vụ còn quá sơ sài. Đó chính là yêu cầu cấp thiết
để em thực hiện đề tài này.
2. Tình hình nghiêm cứu
Theo khảo sát của em thì hiện tại dịch vụ cung cấp nền tảng để tạo
website đám cƣới cá nhân tại Việt Nam mới chỉ có trang web traucau.vn thực
hiện. Tuy nhiên độ tùy biến giao diện và các tính năng của trang web này cung
cấp còn quá sơ sài. Ngƣời dùng không thể tự tùy biến đƣợc nhiều trong giao
diện thiết kế web. Họ chỉ chọn đƣợc 1 mẫu layout cố định và cập nhật nội dung.
Nội dung cập nhật lên web còn khá cơ bản. Không có tính cá nhân và quyền
chia sẻ riêng tƣ với 1 nhóm ngƣời của chủ website.
Hiện nay số lƣợng ngƣời dùng điện thoại thông minh để truy cập web là
khá nhiều. Tuy nhiên dịch vụ cung cấp của traucau.vn lại chƣa đáp ứng đƣợc

1


hiện thị tốt nhất trên điện thoại thông minh và máy tính bảng. Đó cũng là một
hạn chế rất lớn.
3. Mục đích nghiêm cứu
Đề tài mà em nghiêm cứu thực hiện sẽ giải quyết đƣợc nhu cầu của khá
nhiều bạn trẻ muốn có đƣợc một nền tảng tạo website đám cƣới cá nhân miễn
phí. Có độ tùy biến và tính riêng tƣ cao. Đồng thời đề tài cũng hƣớng tới việc
tạo một cộng đồng chia sẻ các kinh nghiệm hay về việc chuẩn bị đám cƣới. Tạo
ra một nơi sinh hoạt lành mạnh cho các bạn trẻ.
4. Nhiệm vụ của đề tài
Xây dựng Framework đáp ứng đƣợc các yêu cầu sau:
 Kho giao diện đẹp. với các chủ đều và bố cục đa dạng.
 Giao diện dễ tùy biến để mang màu sắc cá nhân của mỗi website.

 Giao diện của website tạo ra phải tƣơng thích với các thiết bị mobile.
 Tính năng viết bài tin tức cập nhật lên website.
 Hiện thị album ảnh cƣới.
 Đáp ứng đƣợc yêu cầu chia sẻ riêng tƣ của từng chuyên mục, từng bài
viết hoặc từng album ảnh của cô dâu chú rể.
 Framework phải dễ dàng sử dụng cho tất cả mọi ngƣời.
 Có sự tƣơng tác giữa những ngƣời sử dụng trong cùng hệ thống.
 Mỗi website cá nhân đều đƣợc thiết kế để tối ƣu cho SEO. Nhằm nâng
lƣợng visit cho hệ thống.
 Tính năng liên kết với các mạng xã hội.
5. Phƣơng pháp thực hiện đề tài
Đề tài đƣợc em thực hiện bằng ngôn ngữ lập trình PHP và cơ sở dữ liệu
MySQL. Phần mềm dùng để thiết kế layout là Adobe PhotoShop CS5

2


Phần mềm lập trình code là Adobe Dreamweaver CS5 và Notepad ++.
Ngoài ra còn có thêm một số phần mềm hỗ trợ khác nữa trong quá trình
thực hiện đề tài.
6. Các kết quả đạt đƣợc của đề tài
Xây dựng đƣợc một số giao diện mẫu để ngƣời dùng có thể lựa chọn.
Các giao diện đều đƣợc thiết kế tƣơng thích với các thiết bị di động.
Tính năng của Framework tƣơng đối rõ ràng và dễ sử dụng.
Ngƣời dùng có thể tự tùy chỉnh đƣợc một số phần trên giao diện mẫu để website
mang nhiều màu sắc cá nhân của họ hơn.
Tính năng cập nhật album ảnh khá linh hoạt và dễ sử dụng.
Các chuyên muc, bài viết và album ảnh ngƣời dùng đều có thể đặt mật khẩu để
chia sẻ với 1 số ngƣời. đảm bảo đƣợc tính riêng tƣ của website đám cƣới cá
nhân.

Các website tạo ra đều đƣợc tùy biến để tối ƣu cho SEO.
7. Kết cấu của luận văn tốt nghiệp
Luận văn tốt nghiệp gồm có 4 chƣơng:
Chƣơng 1: Cơ sở lý thuyết
Phần này sẽ đƣa ra những lý thuyết quan trọng sẽ đƣợc sử dụng trong xây
dựng hệ thống.
Chƣơng 2: Phân tích thiết kế hệ thống
Đây là chƣơng quan trọng nhất. Tại đây, các vấn đề xảy ra trên thực tế sẽ
đƣợc đƣa vào phân tích, đƣa ra giải pháp và thể hiện cụ thể trên các sơ đồ hệ
thống và các biểu mẫu. Kết quả của chƣơng này ta sẽ có đƣợc toàn bộ chức
năng cần thiết của hệ thống.

3


Chƣơng 3: Xây dựng hệ thống
Chƣơng này sẽ nêu các vấn đề cần đƣợc cấu hình và chuẩn bị khi đƣa ra
vào thực tiễn sử dụng. Xây dựng cách thành phần của hệ thống .Phần này cũng
sẽ trình bày các phần về cách thức quản lý hệ thống website và các ƣu nhƣợc
điểm của hệ thống.
Chƣơng 4: Tổng kết
Chƣơng này sẽ đƣa ra các hƣớng đi trong tƣơng lai để hệ thống phát triển
hoàn thiện hơn.

4


CHƢƠNG 1: CƠ SỞ LÝ THUYẾT
1.1: Tổng Quan Về Database Server
1.1.1 Database Server là gì?

Database server (máy phục vụ Cơ sở dữ liệu): Máy tính mà trên đó có cài đặt
phần mềm Hệ quản trị Cơ sở dữ liệu. Chúng ta có một số hệ quản trị cơ sở dữ liệu
chẳng hạn nhƣ: SQL Server, MySQL, Oracle...
1.1.2 Hệ quản trị cơ sở dữ liệu MySQL
MySQL là một database server, là hệ thống quản lý cơ sở dữ liệu quan hệ.
Trong việc lƣu trữ, tìm kiếm, sắp xếp và truy vấn dữ liệu, nó tỏ ra rất nhanh và mạnh
mẽ, vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển,
hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất
mạnh. Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy
cập CSDL trên internet. MySQL server điều khiển truy cập dữ liệu đa ngƣời dùng cùng
một thời điểm, bảo đảm cho ngƣời sử dụng đƣợc cấp quyền truy cập dữ liệu của hệ
thống. Do vậy, MySQL là đa ngừơi dùng, đa luồng. Nó sử dụng các câu lệnh truy vấn
SQL (ngôn ngữ truy vấn có cấu trúc), là một chuẩn ngôn ngữ truy vấn cơ sở dữ liệu
hiện nay trên Web. MySQL đƣợc chính thức sử dụng rộng rãi năm 1996 nhƣng nó đã
hình thành từ năm 1979. MySQL có mã nguồn mở và sử dụng miễn phí, nhƣng với
những mục đích thƣơng mại khác thì nó cũng có các bản quyền thƣơng mại nếu đƣợc
yêu cầu cung cấp bản quyền. Một khó khăn cho ngƣời lập trình không chuyên là khi sử
dụng MySQL, việc tạo cơ sở dữ liệu hoàn toàn bằng lệnh, do đó đòi hỏi ngƣời sử dụng
phải có tính cẩn thận và sắp xếp quy trình làm việc hợp lý. MySQL miễn phí hoàn toàn
cho nên bạn có thể tải về MySQL từ trang chủ.
MySQL có thể quản lý tới hàng Terabyte dữ liệu, hàng triệu bản ghi, chạy trên
nhiều môi trƣờng khác nhau, có giao diện tƣơng đối dễ sử dụng, có thể truy vấn dữ liệu
thông qua câu lệnh SQL.
5


MySQL thƣờng đƣợc sử dụng chung với PHP trong những trang Web cần sử
dụng đến cơ sở dữ liệu.
1.1.3 Sơ lược MySQL
Các cơ sở dữ liệu trong MySQL đƣợc tạo hoàn toàn bằng lệnh.

Các lệnh trong sql đựơc kết thức bởi dấu chấm phẩy (;). (Trừ một số lệnh nhƣ
quit là trƣờng hợp đặc biệt).
Khi thực hiện lệnh, mysql chuyển nó đến server và yêu cầu thực hiện lệnh.
MySQL đƣa ra kết qua dƣới dạng 1 bảng (table) gồm các cột (column) và hàng
(row).
MySQL cũng đƣa ra bao nhiêu hàng đƣợc trả về (row in set) và trong vòng bao
nhiêu giây (sec).
Ngoài ra MySQL cũng thể hiện đƣợc những phép tính đơn giản.
Các lệnh trong MySQl có thể đƣợc viết trên một hàng, hoặc nhiều hàng.
SQL là ngôn ngữ thao tác dữ liệu (DML - Data Manipulation Language)
SQL là cú pháp để thực thi các câu truy vấn. SQL cũng bao gồm cú pháp để cập
nhật - sửa đổi, chèn thêm và xoá các mẩu tin.
Sau đây là danh sách các lệnh và truy vấn dạng DML của SQL:


SELECT - lấy dữ liệu từ một bảng CSDL.



UPDATE - cập nhật/sửa đổi dữ liệu trong bảng.



DELETE - xoá dữ liệu trong bảng.



INSERT INTO - thêm dữ liệu mới vào bảng.
SQL là ngôn ngữ định nghĩa dữ liệu (DDL - Data Definition Language)


Phần DDL của SQL cho phép tạo ra hoặc xoá các bảng. Chúng ta cũng có thể định
nghĩa các khoá (key), chỉ mục (index), chỉ định các liên kết giữa các bảng và thiết lập
các quan hệ ràng buộc giữa các bảng trong CSDL.

6


Các lệnh DDL quan trọng nhất của SQL là:


CREATE TABLE - tạo ra một bảng mới.



ALTER TABLE - thay đổi cấu trúc của bảng.



DROP TABLE - xoá một bảng.



CREATE INDEX - tạo chỉ mục (khoá để tìm kiếm - search key).



DROP INDEX - xoá chỉ mục đã đƣợc tạo.

1.2: Giới thiệu PHP
Cùng với Apache, PHP và MySQL đã trở thành chuẩn trên các máy chủ Web.

Rất nhiều phần mềm Web mạnh sử dụng PHP và MySQL (PHP Nuke, Post Nuke,
vBulletin…).
PHP (Personal Home Page hay PHP Hypertext Preprocessor) đƣợc giới thiệu
năm 1994 bởi R.Lerdoft. PHP là một ngôn ngữ lập trình kiểu script, chạy trên Server
và trả về mã HTML cho trình duyệt. Xu hƣớng sử dụng PHP trong việc thiết kế Web
đang ngày càng phát triển trong giai đọan hiện nay và trong tƣơng lai. Tới năm 1998,
việc công bố phiên bản 3 thì PHP mới chính thức phát triển theo hƣớng tách riêng của
mình. Lúc này nó đã là một ngôn ngữ lập trình có cấu trúc và tính năng đa dạng, chính
vì thế đã khuyến khích các nhà thiết kế Web sử dụng PHP. Nó có thể cung cấp một
lƣợng cơ sở dữ liệu khá đồ sộ gồm cả MySQL, mSQL, dbm, Hyperwave, Informix,
Ocracle, nó cũng có thể làm việc với các hình ảnh, các file dữ liệu, FTP, XML, và host
của các kỹ thuật ứng dụng khác.
Mã PHP đƣợc đặt trong một kiểu tag đặc biệt cho phép ta có thể vào họăc ra
khỏi chế độ PHP, cú pháp của PHP cơ bản cũng giống nhƣ một số ngôn ngữ lập trình
khác, đặc biệt là C và Perl.

7


PHP đƣợc nhận dạng dƣới 4 dạng phiên bản:
a. Ví dụ:
//bắt đầu php


echo”Hello World”;
?>

//Kết thúc php


b. Ví dụ
<script language=”php”>
Echo”Hello,World”;
</script>
c. Ví dụ
Echo”Hello,World”;
?>
d. Ví dụ:
<%
echo “Hello,World”;
%>
Tuy nhiên phiên bản đầu tiên vẫn đƣợc ƣa chuộng và dùng phổ biến hơn.
1.3 Lý Do Lựa Chọn Ngôn Ngữ PHP và MySQL
Thứ nhất: Những chƣơng trình tạo bởi PHP và MySQL có tốc độ truy xuất và
xử lý dữ liệu nhanh và mạnh. Vì nó đƣợc thiết kế đặc biệt cho các ứng dụng Web, nên
nó xây dựng đƣợc rất nhiều tính năng để đáp ứng những nhu cầu chung nhất. PHP là
ngôn ngữ có cú pháp gần giống Perl nhƣng tốc độ dịch của nó đƣợc các chuyên gia
đánh giá là nhanh hơn ASP 5 lần, hỗ trợ kết nối các hệ cơ sở dữ liệu lớn nhƣ MySQL,
ngoài ra nó còn đƣợc Apache hỗ trợ nhƣ là một modul cơ bản.

8


Thứ hai Do có mã nguồn mở nên chúng ta có thể tái sử dụng, cải tiến, phát triển
và khắc phục những lỗi của chƣơng trình.
Thứ ba: Chúng rất ổn định và tƣơng hợp, vận hành ổn định trên các hệ điều
hành gồm cả Windows và Unix…, và kết nối tốt với các máy chủ nhƣ IIS và Apache.
Thứ tƣ: Chúng rất dễ tiếp cận để tìm hiểu và xây dựng các ứng dụng do có cú
pháp và cấu trúc gần giống với những ngôn ngữ truyền thống, cũng nhƣ cấu trúc

module của các ứng dụng.
Thứ năm: PHP hỗ trợ cơ chế kết nối cơ sở dữ liệu ADO, các lệnh của PHP gần
gũi với một số ngôn ngữ lập trình khác nhƣ C và Perl.
Thứ sáu: PHP và MySQL đang đƣợc sự ủng hộ và phát triển mạnh mẽ của
những nhà lập trình Web.
Và cuối cùng là sử dụng PHP và MySQL đều miễn phí.
1.4 Công nghệ template
1.4.1 PHP Template là gì
Với tốc độ tăng trƣởng các ứng dụng website phức tạp, một vấn đề đƣợc đƣa ra
là làm thế nào để tách biệt ngôn ngữ lập trình web (PHP) ra khỏi ngôn ngữ thiết kế
giao diện (HTML), tức là tách biệt lập trình và thiết kế. PHP Template Engine đã đƣợc
ra đời để giải quyết vấn đề này.
Chức năng cơ bản của Tempate Engine đƣợc biết đến nhƣ là một kỹ thuật xử lý giao
diện cuả website bằng cách phân chia công việc giữa thiết kế viên và lập trình viên
nhƣng vẫn có sự liên kết chặt chẽ.
Các designer xây dựng giao diện của website với các hình ảnh, kiểu chữ, bảng… Họ
xây dựng các template làm sao để có thể sắp xếp nội dung trong mỗi trang.
Công việc của các designer chỉ là thiết kế giao diện cho các thành phần của website
nhƣ: tin tức, sản phẩm…

9


Mặt khác, các Lập trình viên sử dụng ngôn ngữ lập trình web (PHP) để thao tác
dữ liệu (business logic). Họ không quan tâm đến việc website đƣợc trông nhƣ thế nào
(màu sắc, hình ảnh, phong cách văn bản), hoặc nơi mà nội dung đƣợc trình bày lên
website sẽ nhƣ thế nào. Tất cả những việc họ cần làm là tham chiếu đến nội dung của
Template bằng cách sử dụng các biến mà họ thỏa thuận với Thiết kế viên.
1.4.2 Tại sao nên dùng PHP Template
Chúng ta xét 1 vài lợi ích của php template enginedƣới đây để hiểu thêm về nó:

Mã lập trình và giao diện website sẽ đƣợc tách riêng ra để có thể thiết kế và sửa đổi
một cách độc lập.
Lập trình viên và Thiết kế viên có thể làm việc với nhau mà không phải can
thiệp vào công việc của nhau. Trách nhiệm có thể đƣợc phân chia rõ ràng.
Sau khi sản phẩm đƣợc hoàn tất, giao diện website có thể đƣợc sửa đổi tại một
thời điểm sau này, mà không cần dính líu hay phải sửa đổi mã lập trình.
Ứng dụng vào việc thiết kế website đa ngôn ngữ một cách dễ dàng.
Ƣu điểm:
- Tách việc lập trình ra khỏi thiết kế, lập trình viên có thể viết code độc lập và designer
sau khi đƣa sang lập trình vẫn dễ dàng chỉnh sửa lại bản thiết kế của họ trong các phần
mềm thiết kế web nhƣ Dreamwaver hay Frontpage.
Hạn chế:
- Phải học làm quen với cách dùng engine, các cấu trúc và cú pháp
- Tốc độ xử lý template phụ thuộc vào engine nào bạn sử dụng, nói chung cũng rất
nhanh
Thƣờng thì lợi ích nhận đƣợc khi dùng template lớn hơn nhiều so với hạn chế
của nó, nhất là khi viết ứng dụng web lớn và đòi hỏi việc bảo trì hay thay đổi thiết kế
thƣờng xuyên

10


Một số template engine viết bằng PHP : FastTemplate,PHPLib Template (thƣ
viện hàm PHP với nhiều chức năng khác nhau, trong số đó có template),
Xtemplate,Smarty
1.4.3Giới thiệu Xtemplate
1.4.2.1 Uu điểm của Xtemplate
Xtemplate là 1 PHP template với một số ƣu điểm khá nổi bật
- Cách dùng dể dàng, cấu trúc và cú pháp đơn giản
- Thƣ viện đóng gói chỉ trong 1 file php nhỏ (blackbox)

- Chƣơng trình ngắn và chuẩn, cơ chế tìm thay thế dùng regexp nên tốc độ rất nhanh
- Giải quyết tất cả các trƣờng hợp trong viết code PHP thông thƣờng (nghĩa là nếu cách
viết truyền thống, code PHP và HTML chung với nhau, làm đƣợc gì thì viết bằng
XTemplate cũng sẽ làm đƣợc, còn FastTemplate và PHPLib có hạn chế ở một số chức
năng).
1.4.2.2 Cơ bản về Xtemplate
Xtemplate đƣợc nhận biết bằng các Block. Và block lớn nhất thƣờng đặt là
main. Các block đƣợc bắt đầu và kết thúc bởi các cặp comment.
Template: ( templ.tpl )
<!-- BEGIN: xxxxx -->
<!-- END: xxxxx -->
Trong đó xxxx là biến.

11


VD:
<!-- BEGIN: main -->
<html>
<head><title>Vi du</title></head>
<body>
{vidu}
</body>
</html>
<!-- END: main -->

Code PHP:
Trong PHP Code thì Xtemplate sẽ đƣợc viết nhƣ sau:
include_once('./xtemplate.class.php');

$xtpl = new XTemplate('templ.tpl');
//Gán giá trị
$xtpl->assign('vidu', "Vi du ve Xtemplate");
$xtpl->parse('main');
//In ra
$xtpl->out('main');
?>
Chú ý hàm parse:
Parse phải đƣợc viết theo thứ tự của block và cách nhau bởi dấu chấm.
VD ngoài cùng là main, tiếp theo là block1,block2,block3 thì sẽ viết:

12


...
$xtpl->parse('main.block1.block2.block3');
...
?>
Mảng giá trị trong Xtemplate
File xử lý php
...
$mang = array(
'id'=>"1",
'ten'=>"TK",
'tuoi'=>"21"
);
//Gán giá trị của mảng vào DATA
$xtpl->assign('DATA',$mang);

$xtpl->parse('main. table');
...
?>

13


File template

...
<!-- BEGIN: table#Comment có thể đặt ở đây -->
<table border="1">
<tr>
<td>id</td>
<td>{DATA.id}</td>
</tr>
<tr>
<td>Tên</td>
<td>{DATA.ten#Comment có thể đặt ở đây }</td>
</tr>
<tr>
<td>Tuổi</td>
<td>{DATA.tuoi}</td>
</tr>
</table>
<!-- END: table -->
...
Trong Xtemplate có thể sử dụng Comment bằng cách thêm dấu # sau tên mỗi Block

14



Vòng lặp Trong Xtemplate
...
...
for($i=0;$i<10;$i++){
$xtpl->parse('main.loop');
}
...
?>
Template:
...
...
<b>Ví dụ về lặp 1 block</b>
<!-- BEGIN: loop -->
Nội dung sẽ đƣợc lặp lại

<!-- END: loop -->
...
Ta cũng có thể in lại nhiều lần 1 block bằng cách parse nhiều lần. VD:
...
$xtpl->parse('main.loop');
$xtpl->parse('main.loop');
$xtpl->parse('main.loop');
$xtpl->parse('main.loop');
...
?>
...


15


Hoặc có thể thay đổi biến rồi parse ra.VD:
...
$xtpl->assgin('vd',"hello, i'm TK")
$xtpl->parse('main.loop');
$xtpl->assgin('vd',"Welcome to xtemplate")
$xtpl->parse('main.loop');
$xtpl->assgin('vd',"Xtemplate so easy!")
$xtpl->parse('main.loop');
...
?>
...
Template:
<b>Ví dụ về lặp 1 block</b>
<!-- BEGIN: loop -->
{vd}

<!-- END: loop -->
...
...

16


Đặt giá trị cho toàn bộ block
Ví dụ: Template
...
<!-- BEGIN: form -->

<form action="#">
<input type="text" size="20" name="fullname" value="{FULLNAME}" />/>
<input type="text" size="20" name="email" value="{EMAIL}" />
<input type="text" size="20" name="income" value="{INCOME}" />
</form>
<!-- END: form -->
......
...
PHP code
...
$xtpl->set_null_string('no value..');
$xtpl->set_null_string('no email specified!', 'EMAIL');
$xtpl->parse('main.form');
...
?>
Nhƣ vậy với ví dụ trên thì chỉ có {EMAIL} là đƣợc gán giá trị, còn lại sẽ đƣợc gán
bằng giá trị đã khai báo ở trên. ( trong ví dụ là: no value... )
Hàm set_null_string:
set_null_string(giá trị cần gán,[biến cần gán]);

17


block con và gán giá trị cho block
Trong 1 block ta có thể khai báo các block con.
VD: Template
...
<!-- BEGIN: block -->

Block o day
<!-- BEGIN: subblock1 -->
Noi dung cua subblock1
<!-- END: subblock1 -->

<!-- BEGIN: subblock2 -->
Noi dung cua subblock2
<!-- END: subblock2 -->

<!-- END: block -->
...

Nếu không parse các subblock thì chúng sẽ không đƣợc in ra.
PHP code
...
$xtpl->parse('main.block');
...
?>

18


×