Tải bản đầy đủ (.doc) (18 trang)

Môn Phát Triển Web Ứng Dụng với PhP Đề tài Drupal

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 (394.73 KB, 18 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA HỆ THỐNG THÔNG TIN

Seminar Môn Phát Triển Web Ứng Dụng với PhP
Đề Tài: Drupal
Giáo Viên Hướng Dẫn:
Mai Xuân Hùng
Sinh viên thực hiện đồ án:
Ngô Tự Đăng Quang 09520618
Trần Tấn Sang 09520628
Thành phố Hồ Chí Minh, 27 tháng 11 năm 2012
Drupal November 27, 2012
Mục Lục
Mục Lục 2
1.CMS 4
1.1.CMS là gì? 4
1.2.Sự khác nhau giữa CMS và 1 website tĩnh: 4
2.Sự khác biệt giữa Joomla, Drupal, Wordpress: 5
2.1.Tiêu chí BẢO MẬT:
5
2.2.Tiêu chí SEO:
5
2.3.Tiêu chí Tải: 5
2.4.Kết luận: 5
3.Drupal 6
3.1.Drupal là gì: 6
3.2.Ưu điểm của Drupal 6
3.3.Nhược điểm của Drupal 6
3.4 Cấu trúc Drupal: 7
3.4.1. Cấu trúc thư mục Drupal: 7


3.4.2. Cấu trúc website và thành phần modun drupal: 8
3.4.3.Cấu trúc quản lý nội dung Drupal 8
3.4.4.Cài đặt Drupal 12
Tài liệu tham khảo: 18
2
Drupal November 27, 2012
Lời Mở Đầu
Cùng với sự phát triển mạnh mẽ của web, Drupal là một trong những lựa
chọn không thể thiếu về mã nguồn mở của doanh nghiệp, trong thời gian cho phép,
nhóm nghiên cứu một số khái niệm cơ bản, cách hướng dẫn cài đặt … giúp cho
bạn có thể hiểu một số thông tin cơ bản về Drupal.
3
Drupal November 27, 2012
1.CMS
1.1.CMS là gì?
CMS là Content Management System dịch sang tiếng việt là hệ thống
quản trị nội dung.
CMS xây dựng một nền tảng truyền thông tương tác và cởi mở trong phát
triển web.
Để giữ cho trang web được cập nhật và cung cấp thông tin, các quy tắc
chung là để có sự giúp đỡ của một công ty giải pháp web để sửa đổi và chỉnh sửa
các trang web của bạn sau khi khoảng thời gian nhất định. Nhưng với CMS, mang
đến một giải pháp một bước đơn giản, nơi chúng ta có thể sửa đổi, thêm, xóa hoặc
chỉnh sửa hoàn toàn theo ý của mình. Tải lên và thêm các liên kết cũng có thể
trong Hệ thống Quản lý nội dung thân thiện với người sử dụng
Một số CMS tiêu biểu: Drupal, WordPress, Joomla, …
1.2.Sự khác nhau giữa CMS và 1 website tĩnh:
Website tĩnh CMS
Việc tạo trang web dễ dàng Chứa nhiều đoạn mã phức tạp hơn,
phải cài đặt database và tạo template

riêng.
Nội dung tĩnh, muốn thay đổi phải cần
đến kỹ thuật viên gây phiền toái đến
khách hàng.
Nội dung động, người cập nhật nội
dung không cần kiến thức kỹ thuật,
mang lại sự tiện dụng cho khách hàng.
Khó bổ sung chức năng, cũng như tùy
biến mã nguồn (code).
Được phát triển có hệ thống nên dễ
thêm chức năng và tùy biến.
4
Drupal November 27, 2012
2.Sự khác biệt giữa Joomla, Drupal, Wordpress:
2.1.Tiêu chí BẢO MẬT:
• Drupal bảo mật nhất theo như cộng đồng mạng đánh giá, để hack được
Drupal là cả một vấn đề, ngoài ra core của nó không cho phép conflick-
nghĩa là core nâng cấp lên phiên bản mới phải nâng cấp cả module.
• Joomla : Dễ dàng bị hack do code lủng củng , chạy xen kẽ linh tinh quá
nhiều plugin và module với component, ngoài ra do các webmaster hay sử
dụng template hack hoặc template miễn phí nên càng có nguy cơ cao
• Wordpress: Tương đối - tổng hòa của hai cái trên.
2.2.Tiêu chí SEO:
• Wordpress là mạnh nhất, post 1 bài trong 5 giây lên google là index
luôn.
• Tiếp theo là Drupal, mạnh về SEO nhưng index chậm hơn.
• Joomla là chậm nhất, thường 1 tuần trở lên sau khi post bài.
2.3.Tiêu chí Tải:
• Joomla: load chậm nhất với các plugin và module lẫn component.
• Drupal: Load không nhanh nhưng lại rất chịu tải, nghĩa là một trang luôn

bận rộn thì Drupal cũng không bị DIE , không nổ server
• Wordpress: Load nhanh, do cơ cấu đơn giản về core và chỉ load các plugin
chứ không nhiều thứ như Joomla . Nhưng wordpress không chịu tải tốt, nếu
một site lớn khủng thì wordpress còn phải can thiệp nhiều vào core mới chạy
được.
2.4.Kết luận:
Wordpress dễ dùng hơn cả, ngoài ra trong thời đại bùng nổ thông tin , SEO
là yếu tố quyết định thì các bạn nên bắt đầu từ Wordpress, còn không cần độ bảo
mật cao cũng như SEO thì các bạn dùng Joomla . Ngoài ra, sự lựa chọn cho các
nhà phát triển thì Drupal là không thể bỏ qua.
5
Drupal November 27, 2012
3.Drupal
3.1.Drupal là gì:
Drupal là một khung sườn phát triển phần mềm hướng mô-đun,
một hệ thống quản trị nội dung miễn phí và mã nguồn mở. Cũng
giống như các hệ thống 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 phục vụ
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.
Bản mới nhất : Drupal 7.16
3.2.Ưu điểm của Drupal

- Nền tảng mạnh mẽ, ổn định, mã nguồn được tối ưu nâng cao hiệu suất hoạt
động giúp tiết kiệm nguyên của hệ thống . Là nền tảng vững chắc cho các website
có lượng truy cập lớn như BBC England, MTV …Một trang báo công nghệ sử
dụng Drupal khá thành công là trang Thông Tin Công Nghệ .
- Cấu trúc linh hoạt giúp các lập trình viên mở rộng chức năng không hạn
chế theo nhu cầu sử dụng .
- Drupal cực kỳ thân thiện với công cụ tìm kiếm, đó là một lợi thế rất lớn khi
SEO luôn là một vấn đề được quan tâm đối với bất kỳ trang web nào .
- Tính năng Multiple giúp bạn có nhiều website với một lần cài đặt Drupal .
Giúp bạn điều khiển và quản lý dễ dàng hơn.
- Drupal chạy được cả trên server Linux và Windows trong khi Jooma chỉ
chạy tốt trên server Linux .
3.3.Nhược điểm của Drupal
6
Drupal November 27, 2012
- Drupal được đánh giá là khó sử dụng với người dùng mới .
- Drupal có ít các thành phần mở rộng (extensions) hơn Joomla, do được
kiểm đinh và chỉ cung cấp chính thức tại website của cộng đồng Drupal. Mỗi khi
có phiên bản Drupal mới ta phải chờ các nhà cung cấp, cộng đồng phát triển nâng
cấp extensions của họ để tương thích.
- Cách bố trí của website Drupal khiến người mới sử dụng khó tìm kiếm và
đánh giá nên dùng extensions nào .
- Cùng một chức năng nghiệp vụ, nhưng phải dung rất nhiều modun.
3.4 Cấu trúc Drupal:
Drupal phát triên theo cơ chế hook, tức là phát triển móc nối vào hệ thống
3.4.1. Cấu trúc thư mục Drupal:

Core
Extend: Nằm ở thư mục Site/All/
7

Drupal November 27, 2012
3.4.2. Cấu trúc website và thành phần modun drupal:
Core: Phần lõi, có thể nâng cấp, cập nhật
Distribution, liên quan đến gói cài đặt Profile giúp đóng gói ứng dụng
Modules: Các gói mở rộng
Themes: Các gói cài đặt giao diện
Translations: Các gói bản dịch ngôn ngữ
3.4.3.Cấu trúc quản lý nội dung Drupal.
Content, node
Content type
Field
Block
Regon
Comment
Taxanomy
Menu
Role, User, Access
Trang
Giao diện, Hook Themes Sugestion
Modun
Ngôn ngữ, vùng, chế độ cài đặt
View, Panel, Page manager
Node:
Mỗi khi bạn tạo một đơn vị dữ liệu mới trong Drupal, bạn đang tạo một cái node
mới. Một cái node có thể là một trang đơn giản với text và image, nhưng cũng có
thể là một content type đã bị thay đổi hoàn toàn mà bạn tạo ra để chứa một bộ sưu
tập hình ảnh nào đó. Một node được hiểu như một single instance của content,
8
Drupal November 27, 2012
ngược lại một content type (đôi khi được gọi là một “node type”) được hiểu là một

cấu trúc data đặc biệt cái được dùng cho một chuỗi các node.
Mặc định, có hai content type được kích hoạt là Page và Story.
Drupal có cung cấp một số cách cơ bản để duyệt (basic ways of navigating) các
node, nhưng với module Views (một trong những modules không thể thiếu của
Drupal), bạn có thể tạo ra các navigation scheme thích hợp với website của bạn.
Blocks và Regions:
Drupal chia một trang thành markup, nội dung của page và các regions của page
đó. Regions có thể không chứa, chứa một hoặc nhiều các blocks, blocks có thể
chứa bất kỳ nội dung nào mà bạn muốn nó hiển thị. Thường thì block được tạo ra
bởi các module, nhưng vẫn có thể tạo “tay”.
Có thể “đặt” block vào bất cứ region nào, và di chuyển block từ bất cứ region nào
đến các region nào còn lại. Mỗi module đều có thể cung cấp block riêng của nó, vì
thế mỗi khi bạn enable một module mới, bạn nên kiểm tra xem có block mới nào
tồn tại hay không? Để chắc chắn block có thể hiển thị cho đúng user, bạn có thể
cần phải điều chỉnh permission được định nghĩa bởi module mới đó.
Categories, Taxonomy, Vocabularies và Terms:
Con người dường như có một yêu cầu không thể thỏa mãn về việc phân loại mọi
thứ. Chúng ta xây dựng thư viện với sách được sắp xếp theo chủ đề, chúng ta dùng
các quy ước đặt tên Latin để phân loại cỏ cây và thú vật thành họ hàng, và chúng ta
dùng các category để sắp xếp các blog post của mình. Khoa học của việc đặt tên và
phân loại mọi thứ gọi là taxonomy. Trong phạm vi Drupal, thuật ngữ taxonomy
được hiểu là bất cứ hình thái tổ chức nào dựa trên các category và sự phân loại.
Một taxonomy thường có một cấu trúc mang tính thứ bậc (hierarchical strucutre),
giống như một cây phả hệ – các term ở các “nhánh” trên cùng của “cây” thường
liên quan đến nhiều thứ, nhưng ở các nhánh nhỏ hơn thì các term sẽ càng cô đọng
và rõ ràng hơn.
Pager:
Pager là một collection của các liên kết cái chia một danh sách dài các nodes hoặc
comments thành các phần nhỏ hơn. Mỗi page chứa một số lượng items giống nhau.
Ví dụ có 100 items, nếu chia 10 items một trang thì ta sẽ có 10 trang. Pager thường

gồm là liên kết đến 10 trang đó và các liên kết “next”, “previous”, first, last.
Hooks và Quy ước đặt tên:
9
Drupal November 27, 2012
Khả năng mở rộng của Drupal được dựa trên quy ước đặt tên sử dụng cho các
functions của nó, các conventions đó được hiểu như là các hooks. Hooks là một cơ
chế để thực thi việc thừa kế, chia sẻ, sử dụng, cho phép sử dụng các functions của
các modules khác nhau trong Drupal, và được sử dụng theo một quy ước đặt tên
của riêng Drupal.
Module
Module là phần mềm (mã) mở rộng các tính năng Drupal và/hoặc các chức năng.
Các module core được tích hợp trong bộ tải về của Drupal, và bạn có thể bật chức
năng của của nó mà không cần cài đặt phần mềm bổ sung. Các module đóng góp
được tải về trong mục download các module của drupal.org, và cài đặt trong thư
mục cài đặt Drupal của bạn. Bạn cũng có thể tạo ra các module riêng của bạn, điều
này đòi hỏi một sự hiểu biết thấu đáo về Drupal, lập trình PHP, và các module của
Drupal API.
Comment
Comment cũng là một loại nội dung bạn có thể có trên trang web của bạn (nếu bạn
đã kích hoạt module comment ). Mỗi comment gắn với một Node cụ thể.
Path
Khi bạn truy cập một địa chỉ URL trong trang web của Drupal của bạn, một phần
của địa chỉ URL sau địa chỉ cơ bản của trang web được gọi là Path.
Database
Drupal lưu trữ thông tin trong cơ sở dữ liệu, mỗi loại thông tin có bảng cơ sở dữ
liệu riêng của mình. Ví dụ, các thông tin cơ bản về các Node trên trang web của
bạn được lưu trữ trong bảng Node, và nếu bạn sử dụng module CCK để thêm các
trường vào các Node của bạn, nó được lưu trữ trong các bảng riêng biệt. Comment
và User cũng có các bảng cơ sở dữ liệu riêng của nó, và Role, Permission, và các
thiết lập khác cũng được lưu trữ trong các bảng cơ sở dữ liệu.

Region, Block, Menu
Các trang trên trang web của Drupal của bạn được đặt ra trong Region, mà có thể
bao gồm các header, footer, sidebars, và phần nội dung chính, theme của bạn có thể
xác định các Region khác. Ngăn chặn được các đoạn rời rạc của thông tin được
hiển thị ở Region của các trang web. Block có thể mang hình thức của menu (trong
đó có liên quan với điều hướng trang web), nội dung từ các module (ví dụ, các chủ
10
Drupal November 27, 2012
đề diễn đàn nóng), hoặc các khối thông tin tĩnh hoặc động mà bạn đã tạo ra cho
mình (ví dụ, một danh sách các sự kiện sắp tới) .
Có 3 loại menu trong Drupal: Primary Links, Navigation và Secondary Links.
Theme
Theme điều khiển cách trang web của bạn được hiển thị, bao gồm giao diện đồ
họa, bố trí, và màu sắc. Theme bao gồm một hay nhiều tập tin PHP để xác định đầu
ra HTML của các trang web của bạn, cùng với một hoặc nhiều file CSS để xác
định bố trí, phông chữ, màu sắc, và phong cách khác.
Phát triển Drupal: không phải là phát triển hệ thống Core cho Drupal, mà chỉ
phát triển Modun và Themes cho Drupal mà thôi.
A: Modun:
Cấu trúc modun
Module system (Drupal hooks)
Database abstraction layer
Menu system
Form generation
File upload system
Search system
Node access system
Constants
Global variables
Field API

Entity API…
Ajax, Jquery được hỗ trợ
B: Themes
Cấu trúc thư mục giao diện
11
Drupal November 27, 2012
Khái niệm: Regon, Block, Page …
Theme system
Hook Theme Sugetion
Hiển thị nội dung, mảng 1 chiều, 2 chiều, mảng 1 chiều các đối tượng với thuộc
tính.
Ứng dụng
* Website thảo luận, website cộng đồng
* Website nội bộ (Intranet), website doanh nghiệp
* Website cá nhân
* Website thương mại điện tử
* Thư mục tài nguyên
* Hệ thống quản lý công trình phát triển phần mềm
* Hệ thống quản lý quan hệ khách hàng
Đặc điểm chính
* Hệ thống quản trị nội dung
* PHP Framework
* Blog
* Môi trường cộng tác
* Diễn đàn
* Thư mục ảnh
3.4.4.Cài đặt Drupal
Drupal là mã nguồn mở quản trị nội dung, nhiều năm liền dành giải thưởng CMS
open source được yêu thích nhất, do đông đảo người sử dụng trên thế giới bình
chọn. So với Joomla, một CMS khá nổi tiếng và thông dụng hiện nay, Drupal được

đánh giá là có tốc độ nhanh hơn đáng kể, và độ bảo mật đáng tin cậy. Sau đây ta
xin hướng dẫn các bước đơn giản để cài đặt 1 website sử dụng Drupal CMS
Trong ví dụ này, ta sẽ hướng dẫn các bạn cài đặt Drupal trên nền Xampp Server
Bước đầu tiên là bạn download bộ cài đặt của Drupal tại website: />Trong ví dụ này, ta dùng phên bản 7.1.6
Sau khi download xong, bạn tiến hành giải nén thư mục của Drupal và trong thư
mục gốc chứa các file chạy website của Xampp. Thông thường là thư mục
12
Drupal November 27, 2012
E:/xampp/htdocs. Tên thư mục tùy chọn. Ta đặt là drupalblog. Lưu ý có thể khi
giải nén, các thư mục và file của Drupal được đặt trong thư mục nén có tên Drupal-
7.1.6.
Bạn hãy move nó ra thư mục chính là Drupalblog.
Bước tiếp theo là tạo Sql database cho Drupalblog
Bạn có thể sử dụng trình quản lý MySQL là Phpmyadmin để tạo SQL. Đường dẫn
của phpmyadmin thường là http://localhost/phpmyadmin/
Trong ô Creat new database, bạn hãy nhập tên bất kỳ SQL database bạn muốn khởi
tạo. Ở đây ta đặt tên là drupalblog

Sau đó nhấn vào nút Creat để khởi tạo Database này.
Bước tiếp theo là bạn vào thư mục E:\xampp\htdocs\drupalblog\sites\default
Copy file default.settings.php ra 1 file có tên là settings.php. File này sẽ ghi lại các
thông số thiết lập trong quá trình cài đặt tiếp theo đây.
Tiếp theo truy cập vào đường dẫn http://localhost/drupalblog để tiến hành các bước
cấu hình cho website Drupal. Màn hình giao diện có dạng như sau:

13
Drupal November 27, 2012
Click chọn Install Drupal in English để sang bước tiếp theo
Màn hình cài đặt có dạng như sau:
14

Drupal November 27, 2012
Bạn điền các thông số như hình trên. Với Database name là tên SQL database bạn
đã tạo ở bước 2, Database username là tên truy cập vào Database Drupalblog. Ở
đây do cài trên localhost, bạn có thể khai báo là root cho tiện, và không cần khai
báo pass. Trong phần Advance option có các ô cho bạn lựa chọn. Nếu sử dụng 1 số
shared host free, phần này là rất cần thiết. Vì Database host: của bạn sẽ không phải
là localhost như mặc định, mà là IP, hoặc domain do shared host đó cung cấp.
VD như có thể là sql.vinazoom.com, hay sql8383.byethost.com v v.
Phần Database port: là cổng cấp cho dịch vụ của Mysql. Mặc định là 3306 có thể
không cần điền vào. Nếu bạn tự cấu hình cho service MySQL ở cổng khác thì điền
số cộng vào. VD 1587 chẳng hạn. Phần Table prefix: là tiếp đầu ngữ các table của
Drupal trong Database Drupalblog. Nếu bạn chỉ cài Drupal trên Database này thì
có thể không cần điền. Nếu như bạn cài chung Database với các CMS hoặc Source
khác như Joomla, VBB, v v để có thể tiện cho việc dùng chung các tài khoản User
cho Bridge sau này thì có thể điền giá trị là dru_. Nhấn Save and Continue để đến
bước tiếp theo
Tiếp theo bạn chờ Script của Drupal ghi các dữ liệu mặc định lên Database(mất
chừng vài giây). Sau đó phần cài đặt sẽ tự động đến với phần cấu hình các thông
tin ban đầu của Site.
15
Drupal November 27, 2012
Ở phần này, bạn chỉ cần chú ý đến phần thông tin Username là tên tài khoản quản
trị chính. Và phần password là mật khẩu của tài khoản quản trị chính. Các phần
thông tin khác có thể điền tùy ý, và thay đổi dễ dàng trong phần quản trị Drupal
sau này. Click vào nút Save and Continue để đến bước tiếp theo
16
Drupal November 27, 2012
Nếu quá trính cài đặt thành công, Drupal sẽ hiện lên dòng thông báo:
Drupal installation complete
Congratulations, Drupal has been successfully installed.

Có thể có lỗi nhỏ xảy ra như:
warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port
25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in
E:\xampp\htdocs\drupalblog\includes\mail.inc on line 193.
Unable to send e-mail. Please contact the site administrator if the problem persists.
Lỗi này là do bạn cài đặt trên localhost, không cấu hình chức năng gửi mail. Nên
Drupal thông báo là không thể gửi mail đến tài khoản email quản trị bạn đã khai
báo ở bước trước.
Phần giới thiệu, demo nâng cao sẽ làm trực tiếp…
17
Drupal November 27, 2012
Tài liệu tham khảo:
Clip hướng dẫn học drupal: /> />%E1%BB%AFa-Wordpress-Drupal-v%C3%A0-Joomla
/> />o/forum/showthread.php/463-huong-dan-su-dung-drupal-li-thuyet-code-
18

×