ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Thị Thanh Tâm
WEBSITE TRƯỜNG ĐH CÔNG NGHỆ PHIÊN BẢN
TIẾNG ANH TRÊN THIẾT BỊ DI ĐỘNG
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin HÀ NỘI - 2010 ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Thị Thanh Tâm
MỤC LỤC
Chương 1. Tổng quan về Drupal 2
1.1. Giới thiệu chung 2
1.1.1. Drupal là gì? 2
1.1.2. Lịch sử 2
1.1.3. Các tầng kỹ thuật 3
1.1.4. Chức năng 4
1.1.5. Nguyên tắc 7
1.2. Các khái niệm cơ bản 7
1.2.1. Nhân 7
1.2.2. Block 8
1.2.3. Hook 9
1.2.4. Node 9
1.2.5. Taxonomy 12
1.2.6. Path 14
1.2.7. User 16
1.2.8. Hệ thống file 17
1.3. Hệ thống module 20
1.3.1. Các module hệ thống 21
1.3.2. Các module đóng gói quan trọng 22
1.4. Hệ thống giao diện 24
1.4.1. Tổng quan về phát triển giao diện 24
1.4.2. Regions 25
1.4.3. Hệ thống file trong giao diện 26
1.4.4. Các file template 27
1.4.5. Các file CSS 35
1.5. Kết luận 36 Chương 2. Phiên bản website dùng Drupal trên thiết bị di động 37
phải có một phiên bản dành riêng cho thiết bị di động. Chính vì vậy em đã lựa chọn và
nghiên cứu đề tài “Website trường ĐH Công nghệ phiên bản tiếng Anh trên thiết
bị di động”. Website được xây dựng dựa trên phiên bản đầy đủ dành cho desktop, sử
dụng hệ quản trị nội dung Drupal. Khoá luận của em sẽ trình bày gồm 3 chương:
Chương 1: Tổng quan về Drupal
Chương 2: Phiên bản website dùng Drupal trên thiết bị di động
Chương 3: Website trường ĐH Công nghệ phiên bản tiếng Anh trên thiết bị di
động
Em xin chân thành cảm ơn sự giúp đỡ tận tình của ThS.Phùng Chí Dũng trong
quá trình thực hiện đề tài.
2
Chương 1. Tổng quan về Drupal
1.1. Giới thiệu chung
1.1.1. Drupal là gì?
Drupal là một khung sườn phát triển phần mềm hướng module, một hệ quản trị
nội dung miễn phí và mã nguồn mở.
Cũng giống như các hệ quản trị nội dung hiện đại khác, Drupal cho phép người
quản trị hệ thống tạo và tổ chức dữ liệu, tùy chỉnh cách trình bày, tự động hóa các tác
vụ điều hành và quản lý hệ thống những. Drupal có cấu trúc lập trình rất tinh vi, dựa
trên đó, hầu hết các tác vụ phức tạp có thể được giải quyết với rất ít đoạn mã được
viết, thậm chí không cần. Đôi khi, Drupal cũng được gọi là "khung sườn phát triển ứng
dụng web", vì kiến trúc thông minh và uyển chuyển của nó.
Drupal được chạy trên rất nhiều môi trường khác nhau, bao gồm Windows, Mac
OS X, Linux, FreeBSD, OpenBSD và các môi trường hỗ trợ máy chủ
web Apache (phiên bản 1.3+) hoặc IIS (phiên bản 5+) có hỗ trợ ngôn ngữ PHP (phiên
bản 4.3.3+). Drupal kết nối với cơ sở dữ liệu MySQL hoặc PostgreSQL để lưu nội
dung và các thiết lập.
1.1.2. Lịch sử
web hosting giá rẻ và có thể mở rộng tới các trang web phân phối lớn. Mục tiêu ban
đầu là sử dụng công nghệ phổ biến nhất, và sau này là coding cẩn thận, chặt chẽ. Các
tầng kỹ thuật của Drupal được minh họa trong hình 1-1.
Hình 1-1. Các tầng kỹ thuật của Drupal
4
Hệ điều hành nằm ở mức thấp trong tầng mà Drupal không quan tâm nhiều.
Drupal chạy tốt trên bất kỳ hệ điều hành nào có hỗ trợ PHP.
Máy chủ web được sử dụng rộng rãi nhất với Drupal là Apache, mặc dù các máy
chủ web khác (bao gồm cả Microsoft IIS) cũng có thể được sử dụng. Bởi vì lịch sử lâu
dài của Drupal với Apache, Drupal với file .htaccess được bảo mật khi cài đặt
Drupal. Clean URLs-có nghĩa là loại bỏ những dấu hỏi, dấu và, hoặc ký tự đặc biệt
khác bằng cách sử dụng thành phần mod_rewrite của Apache. Điều này đặc biệt quan
trọng bởi vì khi di chuyển từ một hệ thống quản lý nội dung hoặc từ các tập tin tĩnh,
các URL của nội dung không cần phải thay đổi. Clean URL có sẵn trên các máy chủ
web khác bằng cách sử dụng khả năng ghi lại URL của web server.
Giao diện Drupal với các lớp tiếp theo của stack (cơ sở dữ liệu) thông qua một
lớp cơ sở dữ liệu nhỏ. Lớp này xử lý các truy vấn SQL để có thể sử dụng cơ sở dữ liệu
các nhà cung cấp khác nhau mà không cần viết lại code. Các cơ sở dữ liệu thử nghiệm
rộng rãi nhất là MySQL và PostgreSQL, mặc dù hỗ trợ cho Microsoft SQL Server và
Oracle đang tăng lên.
Drupal được viết bằng PHP. Vì PHP là một ngôn ngữ dễ học, có rất nhiều
chương trình PHP được viết bởi người mới bắt đầu. Chất lượng code của người mới
bắt đầu đã khiến cho PHP mất uy tín. Hơn nữa, PHP cũng có thể được sử dụng để viết
code. Tất cả code của nhân Drupal đều tuân thủ nghiêm ngặt các tiêu chuẩn code và
được xem xét kỹ lưỡng qua quá trình mã nguồn mở. Đối với Drupal, rất dễ dàng học
PHP vì có một cộng đồng luôn sẵn sàng giúp đỡ những người mới bắt đầu. Và những
người mới bắt đầu nhận được thông tin phản hồi từ cộng đồng giúp nâng cao kỹ năng
của họ.
Bình luận theo luồng - Mô hình bình luận theo luồng mạnh mẽ của Drupal cho
phép bình luận bất cứ nội dung nào. Các bình luận có chia cấp như ở một nhóm
tin (newsgroup) hoặc diễn đàn.
Điều khiển phiên bản - Hệ thống điều khiển phiên bản của Drupal cho phép lưu
giữ thông tin của các lần cập nhật (ai, cái gì, khi nào). Có thể dễ dàng quay lại
(roll-back) một phiên bản trước đó.
1.1.4.4. Blogging
Hệ thống blog đa người dùng - Mỗi người dùng đã ghi danh trong hệ thống đều
có thể viết blog.
Hỗ trợ Blog API - Cho phép cập nhật nội dung bằng nhiều công cụ khác nhau,
thậm chí không cần dùng đến trình duyệt web.
Content syndication - Xuất nội dung theo dạng RDF/RSS.
6
News aggregator - Giúp đọc thông tin từ các website khác.
Permalink - Tất cả các nội dung trong Drupal đều có một URL cố định, giúp
người dùng có thể dễ dàng liên kết đến mà không sợ nó thay đổi về sau.
1.1.4.5. Nền tảng
Apache hoặc IIS, Unix/Linux/BSD/Solaris/Windows/Mac OS X đều được hỗ
trợ - Drupal ngay từ đầu đã được xây dựng để tương thích nhiều nền tảng.
Độc lập với cơ sở dữ liệu - Mặc dù đa số dùng MySQL, nhưng không phải tất
cả. Drupal được xây dựng trên lớp CSDL trừu tượng (database abstraction layer
- DAL), hỗ trợ cả MySQL lẫn PostgreSQL. Để hỗ trợ các CSDL riêng của
mình, người dùng chỉ việc viết phần back-end hiện thực hóa 14 hàm của DAL.
Đa ngôn ngữ - Nền tảng Drupal sẵn sàng cho việc xây dựng một website đa
ngôn ngữ.
1.1.4.6. Quản trị và phân tích
Phân tích, Theo dõi và Thống kê
Ghi nhật kí và báo cáo - Các hoạt động quan trọng trên hệ thống đều được ghi
lại, giúp người quản trị có thể xem lại sau đó.
Dễ dùng. Dễ dùng đối với nhà phát triển, nhà quản lí và người dùng.
Cộng tác. Hỗ trợ các hệ thống chia sẻ thông tin.
1.2. Các khái niệm cơ bản
1.2.1. Nhân
Một framework đơn giản tạo nên nhân Drupal. Đây là những gì nhận được khi tải
Drupal về từ drupal.org. Nhân chịu trách nhiệm cung cấp các chức năng cơ bản sẽ
được sử dụng để hỗ trợ các bộ phận khác của hệ thống.
Nhân bao gồm code cho phép hệ thống Drupal khởi động khi nó nhận được một
yêu cầu, một thư viện các chức năng phổ biến thường xuyên được sử dụng với Drupal,
và các module cung cấp chức năng cơ bản như quản lý người dùng, phân loại, và
templating như thể hiện trong Hình 1-2.
8 Hình 1-2. Tổng quan về nhân Drupal
1.2.2. Block
Block là đoạn văn bản hoặc các chức năng thường nằm ngoài khu vực nội dung
chính của một trang web, chẳng hạn như trong các sidebar trái hoặc phảis, trong
header, footer, vv. Chặn quyền truy cập và vị trí được kiểm soát trong giao diện
admin, đơn giản hóa công việc của các nhà phát triển khi tạo block. Các trang chặn cấu
hình được đặt ở Administer > Site building > Blocks
(
Block có một tiêu đề và mô tả và được sử dụng chủ yếu cho việc quảng cáo, code
snippet, và các chỉ số trạng thái, không phải cho phần chính thức của nội dung, do đó,
khối không phải là node và không tuân theo các quy tắc của node. Các node có quyền
kiểm soát sửa đổi, có thể comment cho nó, RSS feed, và các taxonomy term; chúng
thường được dành riêng cho các phần nội dung beefier của một trang web.
Regions là các phần của trang web nơi các block được đặt. Region được tạo ra và
cài đặt bởi giao diện (trong file .info của giao diện) và không được xác định bởi các
block API. Block không được gán vào region nào thì không được hiển thị.
1.2.4. Node
Mọi thứ đều là node, đó là triết lý của Drupal. Node là kiểu dữ liệu nhỏ nhất với
hai trường dữ liệu cơ bản nhất đó là title và body để lưu thông tin. Ngoài ra còn có các
trường thông tin khác như: ngày tháng tạo bài, ngày cập nhật, …. Hãy tưởng tượng
node là một cái chung nhất trong việc lưu nội dung, với hai cái này cơ bản đã lưu đủ
thông tin rồi. Node giống như là dàn bài cho một bài viết vậy.
10 Hình 1-3. Mô hình dữ liệu của node
Các kiểu nội dung trong Drupal đều có nguồn gốc từ một loại cơ sở duy nhất
được gọi là node. Cho dù đó là một entry blog, một công thức, hoặc thậm chí một
nhiệm vụ dự án, các cấu trúc dữ liệu cơ bản là như nhau. Cái hay đằng sau phương
pháp này chính là khả năng mở rộng của nó. Những người phát triển module có thể
thêm các tính năng giống như xếp hạng, comment, tập tin đính kèm, thông tin định vị,
v.v. cho các nút nói chung mà không cần lo lắng về việc liệu các loại nút là blog, công
thức, v.v. Người quản trị trang web sau đó có thể trộn và kết hợp các chức năng theo
loại nội dung. Ví dụ, các quản trị viên có thể chọn để cho phép các ý kiến trên blog
nhưng không phải công thức nấu ăn hoặc chỉ cho phép tải lên tập tin cho các công việc
dự án.
Các node cũng chứa một cơ sở tập hợp các thuộc tính hành vi mà tất cả các loại
nội dung khác kế thừa. Bất kỳ node nào cũng có thể đặt ở trang chủ của trang web,
publish hoặc chưa được publish. Và vì cấu trúc đồng bộ này, các giao diện quản trị có
thể cung cấp một màn hình chỉnh sửa hàng loạt để làm việc với các node.
Một trang web có thể chứa nhiều loại nội dung, chẳng hạn như các trang thông
tin, các mục tin tức, các cuộc thăm dò, bài đăng trên blog, danh sách bất động sản, vv
Trong Drupal, mỗi hạng mục của nội dung được gọi là một node, và mỗi node thuộc
về một kiểu nội dung duy nhất, trong đó xác định các thiết lập mặc định khác nhau cho
các node của kiểu, như liệu được công bố node tự động và ở đâu cho phép
11
phải) được liên kết vào thanh menu chính.
12
Thăm dò ý kiến
Một cuộc thăm dò là nơi mà một câu hỏi nhiều lựa chọn được hỏi, và người dùng
có thể trả lời và xem câu trả lời của người khác cho các câu hỏi.
Story
Kiểu nội dung Story được kích hoạt trong Drupal trong cấu hình cài đặt mặc
định. Các Story thường được sử dụng cho thông tin có liên quan giảm như thời gian
qua (như các mục tin tức), từ đó các Story mới hơn thường sẽ được đặt cao hơn các
Story cũ trong trang.
Ngoài các loại cơ bản, các loại nội dung tuỳ chỉnh cũng có thể được tạo ra bằng
cách vào Administer > Content > Content types > Add content type. Có thể làm điều
này như một cách để tổ chức nội dung - ví dụ, có thể có "Articles" và "News flash"
như hai kiểu nội dung đơn giản trên trang web, thay vì chỉ sử dụng “Story" cho cả hai.
Nếu muốn thêm các lĩnh vực cho các kiểu nội dung tuỳ chỉnh, cài đặt module
đóng gói Content Construction Kit (CCK). Tuỳ chỉnh lĩnh vực được sử dụng để lưu trữ
thông tin bổ sung vượt quá giá trị mặc định Drupal (tiêu đề, body, thông tin tác giả,
thời gian tạo/cập nhật, và tình trạng xuất bản), ví dụ, trên một trang web bất động sản,
một kiểu nội dung bất động sản niêm yết có thể có các lĩnh vực cho thông tin bổ sung
loại tài sản, diện tích đất, vv.
Cuối cùng, một số module đóng gói định nghĩa kiểu nội dung riêng của nó.
1.2.5. Taxonomy
Taxonomy là cách phân loại của sự vật. Drupal đi kèm với một module taxonomy
cho phép phân loại các nút. Taxonomy phân loại mọi thứ vào category. Sự chính xác
khi sử dụng các từ có liên quan đến hệ thống taxonomy của Drupal là rất quan trọng.
13
thể thêm term mới) nó được gọi là một vocabulary được kiểm soát. Trong một
vocabulary được kiểm soát, term thường được trình bày cho người sử dụng bên trong
một vùng lựa chọn thả xuống. Tất nhiên, người quản trị hoặc người dùng đã được phân
loại quản lý có thể cho phép thêm, xóa, hoặc sửa đổi các term.
Một tag là một thứ giống như term. Tuy nhiên, từ "tagging" thường ngụ ý rằng
người dùng của trang web tạo ra các thẻ. Trái ngược với một vocabulary được kiểm
soát. Thay vào đó, người dùng có thể nhập các term riêng của họ khi submit một
node.Nếu một term chưa nằm trong vocabulary, nó sẽ được thêm vào. Khi check box
Tags trên giao diện chỉnh sửa vocabulary được check, giao diện người dùng cho
vocabulary được trình bày như là một trường văn bản (với JavaScript tự động hoàn
chỉnh được kích hoạt), chứ không phải là vùng lựa chọn thả xuống của một vocabulary
được kiểm soát.
1.2.6. Path
Trong Drupal, một đường dẫn là phần cuối của URL duy nhất cho một chức năng
cụ thể hoặc một phần của nội dung. Ví dụ, một trang có đầy đủ URL là
đường dẫn là node/7. Nếu trang web sử dụng Clean
URL, URL đầy đủ trong ví dụ này sẽ là đường dẫn vẫn là
node/7. Vì bí danh URL hoàn toàn có thể thay thế những gì mà người dùng nhìn thấy
như là URL, các đường dẫn được thảo luận tại đây (vẫn là cách mà Drupal quyết định
nội dung nào để hiển thị) đôi khi được gọi là đường dẫn nội bộ.
15
Đường dẫn trong Drupal quan trọng vì nhiều màn hình configure trong khu vực
admin sử dụng chúng. Ví dụ, khi đang thêm một mục mới cho một menu, cho Drupal
biết trang nào mục menu phải trỏ đến bằng cách nhập đường dẫn đến trang.
Đây là một số ví dụ về đường dẫn có thể tìm thấy trong một trang web Drupal:
node/7
taxonomy/term/6
admin/content/comment
user/login
1.2.7.1. Computer User
Người cài đặt Drupal phải có quyền truy cập vào máy tính, nơi đặt bộ cài. Nếu
cài đặt Drupal cục bộ trên máy tính của riêng mình, thì “computer user” là chính
mình. Nếu cài đặt Drupal tại một máy chủ từ xa như một máy chủ web công ty, thì các
tài khoản computer user có thể được gọi là một trong những cái sau đây (không phải là
một danh sách đầy đủ):
Tài khoản đăng nhập web hosting
Đăng nhập FTP
Đăng nhập Cpanel
Đăng nhập Secure shell (SSH)
Những người có liên quan đến computer user là ai? Trong một số trường hợp,
như máy tính của riêng mình hay một số lần đăng nhập FTP, những “người dùng” này
là những cá nhân. Trong trường hợp khác, chẳng hạn như một tài khoản đăng nhập
web hosting hoặc Cpanel, một “người dùng” (hoặc “tài khoản”) tên/mật khẩu được sử
dụng để đăng nhập vào để kiểm soát tài khoản và có thể được chia sẻ bởi nhiều người.
1.2.7.2. Database User
Một cài đặt Drupal yêu cầu một cơ sở dữ liệu để chạy. (MySQL và PostgreSQL
là các chương trình cơ sở dữ liệu tốt nhất hỗ trợ tương thích với Drupal). Các cơ sở dữ
liệu thường có cơ chế kiểm soát truy cập và yêu cầu "người dùng" với các cho phép có
quyền thay đổi cơ sở dữ liệu (thêm/xóa/sửa dữ liệu, tạo bảng biểu, vv.) Một cài đặt
Drupal cần phải có toàn quyền kiểm soát cơ sở dữ liệu, do đó, khi bạn thiết lập một
trang web mới của Drupal, bạn (hoặc công ty web hosting) tạo ra một database user
với các đặc quyền đầy đủ và sau đó cho tên người dùng và mật khẩu để cài đặt Drupal
để Drupal sẽ có toàn quyền kiểm soát cơ sở dữ liệu. Các thông tin database user được
lưu trữ trong tập tin settings.php hoặc trong sites/default hoặc thư mục con khác nhau
của các trang web trong trình cài đặt Drupal.
17
Database user là ai? “database user” không phải là người. Đây là một tài khoản
tạo ra với các phần mềm cơ sở dữ liệu để cung cấp cho Drupal quyền kiểm soát cơ sở
Hình 1-5. Cấu trúc thư mục mặc định của một bộ cài Drupal
Thông tin chi tiết về mỗi thành phần trong cấu trúc thư mục như sau:
Thư mục includes chứa các thư viện cho các hàm phổ biến mà Drupal sử
dụng.
Thư mục misc lưu JavaScript và các icon, hình ảnh cần thiết cho quá trình cài
đặt Drupal.
19
Thư mục modules chứa các module nhân, với mỗi module trong thư mục của
nó. Tốt nhất không nên đụng đến bất cứ thứ gì trong các thư mục này (hoặc bất
kỳ thư mục nào khác ngoại trừ profiles và sites). Thêm module trong thư
mục sites.
Thư mục profiles chứa những cấu hình cài đặt khác nhau cho một trang web.
Nếu có những cấu hình khác ngoài cấu hình mặc định trong thư mục con này,
Drupal sẽ hỏi muốn cài đặt theo cấu hình nào khi lần đầu cài đặt Drupal. Mục
đính chính của một cấu hình cài đặt là bật các nhân mặc định và các module liên
quan một cách tự động. Ví dụ một cấu hình e-commerce sẽ tự động cài đặt
Drupal như một nền tảng e-commerce.
Thư mục scripts chứa những script cho việc kiểm tra cú pháp, tối ưu code,
chạy Drupal từ dòng lệnh, và điều khiển các trường hợp đặc biệt với cron.
Thư mục sites chứa những sửa đổi Drupal trong cài đặt, module và giao diện.
Khi thêm những module cho Drupal từ nguồn các module đóng gói hoặc tự viết,
chúng sẽ được đặt trong sites/all/modules. Nó giữ tất cả những thay đổi
của Drupal trong một thư mục đơn. Trong thư mục sites sẽ có một thư mục con
có tên là default lưu những cài đặt mặc định cho trang Drupal –
default.settings.php. Bộ cài Drupal sẽ sửa những cài đặt ban đầu này
dựa trên thông tin cung cấp và viết trong file settings.php. Thư mục mặc
định thường được sao chép và đổi tên thành URL của trang web bởi người quản
trị, do đó những file cài đặt cuối cùng sẽ nằm ở
định có thể chạy, trong khi những cái cần nhiều hơn có thể thêm nhiều tính năng như
mong muốn. Điều này thể hiện trong hình 1-3.
Sự bổ sung các loại nội dung mới như công thức nấu ăn, blog post, hoặc các file,
và thêm các hành vi mới như e-mail thông báo, peer-to-peer publishing, tập hợp và
được xử lý thông qua các module. Drupal làm cho việc sử dụng đảo ngược của mẫu
thiết kế điều khiển, trong đó chức năng module được gọi bởi framework tại thời điểm
thích hợp.