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

Xây dựng website bán điện thoại di động

54 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Xây dựng website bán điện thoại di động
Tác giả Trần Ngọc Tuấn
Người hướng dẫn PGS.TS. Mai Văn Trinh
Trường học Trường Đại học Vinh
Chuyên ngành Kỹ thuật phần mềm
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2010
Thành phố Vinh
Định dạng
Số trang 54
Dung lượng 2,11 MB

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

Nội dung

Trong đó, hệ quản trị nội dung Content Management System – CMS là xu hướng để xây dựng các web site có các chức năng khác nhau với các nghiệp vụ xử lý khác nhau, như ứng dụng mạng xã hội

Trang 1

=== ===

Đồ án tốt nghiệp

Xây dựng website bán điện thoại di động

Giáo viên h-ớng dẫn : PGS.TS Mai Văn Trinh

Trang 2

Giới thiệu chung

I Lí do chọn đề tài 4

II Tổng quát về hệ thống 4

Chương 1 Phát triển ứng dụng trên nền tảng Drupal I Tổng quan về Drupal 5

II Cài đặt và phát triển Drupal 12

III Phát triển, xây dựng module trên nền drupal 25

IV Xử lý dữ liệu 28

V Làm việc với đối tượng người dùng 29

VI Xử lý form với các hàm Form API 32

Chương 2 Xây dựng Website trên nền tảng Drupal I Các Module được sử dụng 36

II Các kiểu nội dung (Content Type) 37

III Các Views 41

IV Các Block 46

V Phân quyền và quản lý người dùng 50

Kết luận I Đánh giá 51

II Hướng phát triển 52

III Kết luận 52

Tài liệu tham khảo

Trang 3

khổng lồ của nó trên internet, từ các ứng dụng cỡ lớn như Portal, thương mại điện

tử, mạng xã hội, diễn đàn, giải trí Với các hệ thống có lượng truy cập khổng lồ như Yahoo, Facebook, Wikipedia…Các ứng dụng web ngày nay đa dạng về chức năng cũng như yêu cầu khắt khe về hệ thống, đặc biệt sự xuất hiện và phát triển của các hệ thống mã nguồn mỡ tạo xu hướng phát triển web Trong đó, hệ quản trị nội dung (Content Management System – CMS) là xu hướng để xây dựng các web site có các chức năng khác nhau với các nghiệp vụ xử lý khác nhau, như ứng dụng mạng xã hội, quản lý tài nguyên, blog…

Với số lượng rất lớn các hệ thống như vậy, việc chọn nền tảng để phát triển ứng dụng đòi hỏi rất kỹ lưỡng, đặt ra nhiều tiêu chí: khả năng thực thi của hệ thống, khả năng phát triển, mở rộng, bảo mật v.v… Trên nền web, các hệ thống CMS phổ biến nhất được đánh giá cao trên nhiều tiêu chí đó là Drupal ( www.drupal.org ), Joomla! ( www.joomla.org ), DotNetNuke

( www.dotnetnuke.com ),…Các framework như Zend ( www.zend.com/framework ), Symfony ( www.symfony-project.com )

Drupal là CMS được đánh giá cao trên nhiều tiêu chí và nhiều năm dẫn đầu trong bình chọn Opensouce CMS xuất sắc nhất, với số lượng người phát triển và một cộng đồng lớn với hàng ngàn lập trình viên và công ty phát triển ứng dụng Với tính năng mạnh mẻ, linh hoạt và cấu trúc thông minh, Drupal là nền tảng tốt để xây dựng các website hiện nay

Đề tài “Drupal trong xây dựng Website bán điện thoại di động” , trên cơ sở

nghiên cứu, trao dồi hiểu biết cùng với sự hướng dẫn, giúp đỡ hết sức tận tình của thầy cô trong tổ Phương Pháp giảng dạy đặc biệt của

Trang 4

website bán điện thoại di động này

Cuối cùng một lần nữa, tôi xin chân thành cảm ơn sự hướng dẫn tận tình của thầy PGS.TS Mai Văn Trinh - khoa Công Nghệ Thông Tin cùng sự giúp đỡ, góp ý của các Thầy, các Cô trong Tổ Mặc dù đã hết sực cố gắng những vẫn có nhiều thiếu sót mong có sự đóng góp ý kiến của các Thầy, Cô giáo và các bạn để hệ thống ngày càng hoàn thiện hơn

Xin chân thành cảm ơn!

Vinh, tháng 5 năm 2010

Sinh viên thực hiên: Trần Ngọc Tuấn

Trang 5

GIỚI THIỆU CHUNG

I do ch n ề t i

Drupal là nền tảng được xậy dựng trên ngôn ngữ lập trình PHP, một “khung sườn phát triển ứng dụng web” hướng mô-đun, một hệ thống quản trị nội dung miễn phí và mã nguồn mở (Opensouce CMS)

Hai năm liên tục 2008, 2009 Drupal được đánh giá là hệ quản trị nội dung

mã nguồn mở xuất sắc nhất để xây dựng Website hiện nay, với tính bảo mật, linh hoạt và sẵn sàng cao Với số lượng người và một cộng đồng lớn với hàng ngàn lập trình viên và công ty phát triển ứng dụng

“Cần gì Drupal có”, 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 hay nói cách khác chỉ cần đạt mức “Sử dựng Drupal” mà vẫn xây dựng được những website mạnh mẽ và nhanh chóng

Thấy được sức mạnh của Drupal và trước nhu cầu thực tế của thời đại “điện thoại”: Khách hàng có quyền lưa chọn các điện thoại tốt nhất và nhanh nhất, các phương thức kinh doanh truyền thống (bán trực tiếp tại cửa hàng) không đáp ứng được.Các Website bán điện thoại trực tuyến (thương mại điện tử) lần lượt được ra đời như http://thegioididong.com.vn , http:// www.muabandtdd.com/

Đem lại doanh thu rất lớn cho các doanh nghiệp.Khách hàng chỉ cần lướt web, đặt mua thế là có điện thoại mình ưng ý nhất

“Website bán điện thoại di động” được xậy dựng từ yêu cầu cầu đó

II Tổng quát về hệ thống.

Website có đầy đủ các chức năng của một website thương mai điện tử:

- Cho khách hàng duyệt, tìm kiếm các sản phẩm và đặt mua

- Đăng kí làm khách hàng dài lâu

Trang 6

CHƯƠNG 1 HỆ THỐNG QUẢN TRỊ NỘI DUNG DRUPA

I Tổng quan về Drupal

1 Khái niện hệ quản trị nội dung (Content management system - CMS)

Trước khi tìm hiểu về drupal, chúng ta nói sơ lược về hệ quản trị nội dung Hệ quản trị nội dung hay CMS là phần mềm để tổ chức và tạo môi trường cộng tác thuận lợi nhằm mục đích xây dựng một hệ thống tài liệu và các loại nội dung khác một cách thống nhất Trên nền web gọi là web content management Hệ quản trị nội dung trở thành một xu hướng phổ biến trong việc xây dựng các ứng dụng web

đa dạng hiện nay

Một số Opensource CMS phổ biến:

 Drupal (PHP) – Được đánh giá cao nhất hiện nay trên các tiêu chí ổn định (stable), bảo mật (security), khả năng thực thi (performent), linh hoạt (flexible development), tối ưu hóa bộ máy tìm kiếm (Search Engine Optimizer - SEO) …

 Joomla! (PHP)

 Liferay (Jsp,Servlet)

2 Giới thiệu về Drupal

Drupal là một nền tảng phát triển ứng dụng web (web platform), một hệ quản trị nội dung (Content Management System) mã nguồn mở và miễn phí được phân phối theo giấy phép của GNU (General Public License) 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 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 ứng dụng phát

Trang 7

triển các hệ thống website khác nhau, từ đơn giản đến các website có nghiệp vụ phức tạp

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

Thông tin phát hành

Phát hành: 01/2001 Phiên bản hiện tại: 6.14 Website: www.drupal.org

Sáng lập bởi: Dries Buytaert

Ngôn ngữ lập trình (Language)

Cơ sở dữ liệu (Database)

Máy chủ web (Web server)

Hệ điều hành (Operating System)

Trang 8

Drupal ƣợc ứng dụng tốt trên hầu hết các hoạt ộng tác vụ:

 Website thảo luận (Discussion sites)

 Website công ty (Corporate web sites)

 Ứng dụng nội bộ ( Intranet applications)

 Personal web sites or blogs

 Ứng dụng thương mại điện tử (E-commerce applications)

 Quản lý tài nguyên (Resource directories)

Một số website tiêu biểu:

Drupal đã được sử dụng xây dựng hàng ngàn website trên thế giới, đa chức năng, đa ngôn ngữ

- BBC Magazines ( www.bbcmagazines.com )

- Chương trình lương thực liên hợp quốc (United Nations World Food

- …

Kiến trúc của Dupal

Drupal được kiến trúc tuân theo mô hình MVC (Model–view–controller) - MVC là một mẫu kiến trúc phần mềm trong kỹ thuật kỹ sư phần mềm Khi sử đúng cách, mẫu MVC giúp cho người phát triển phần mềm cô lập các nguyên tắc nghề nghiệp và giao diện người dùng một cách rõ ràng hơn Phần mềm phát triển theo mẫu MVC tạo nhiều thuận lợi cho việc bảo trì vì các nguyên tắc nghề nghiệp

và giao diện ít liên quan với nhau

Trang 9

Trong mẫu Model-View-Controller, mô hình (model) tượng trưng cho dữ liệu của chương trình phần mềm Tầm nhìn hay khung nhìn (view) bao gồm các thành phần của giao diện người dùng Bộ kiểm tra hay bộ điều chỉnh (controller) quản lý sự trao đổi giữa dữ liệu và các nguyên tắc nghề nghiệp trong các thao tác liên quan đến mô hình

Bộ lõi của Drupal (core)

Trang 10

Drupal core bao gồm các phần mã xử lý hệ thống khởi động từ khi nhận yêu cầu (request), gọi các thư viện, gọi các module cung cấp các chức năng xữ lý và xuất bản nội dung

 Quản lý nội dung cơ bản

 Quản lý người dùng

 Quản lý phiên

 Định danh URL (Uniform Resouce Locator)

 Địa phương hóa (Xữ lý website đa ngôn ngữ)

3 Các thuật ngữ cơ bản của Drupal

3.2 Content Type 3.3 Các Node được mở rộng từ Node cơ bản được gọi là kiểu nội

dung.Tức là ngoài các trường ngầm định của Node cơ bản thì kiểu nội

dung còn được thêm các trường khác

3.4 Ví dụ: kiểu nổi dung có tên là “Điện thoại” ngoài các trường ngầm

định, còn có thêm các trường: Giá bán, Hãng,Model, Thông số

3.5 Content

Content là nội dung của Content Type Một Content giống như 1 bản

ghi trong bảng quan hệ, bảng quan hệ lại giống như Content Type

Trang 11

3.6 Block

- Block là những khối văn bản nhỏ, thường được đặt ở bên ngoài

vùng nội dung chính của website

3.7 - Mỗi Block có các trường title và description, thường được sử dụng

để viết các đoạn code nhỏ và thông báo các trạng thái, không phải là những đoạn nội dung đầy đủ, vì vậy Block không phải là Node và không phải theo những nguyên tắc làm việc của Node Node thường

dùng để lưu trữ các phần nội dung của website

3.8 - Block có các tùy chọn để điều khiển ai là người được quyền xem

nó và những trang mà nó sẽ xuất hiện

trình bày ở trang điều hành module

+ Version: mã số phiên bản của module

+ Dependencies: tên của module mà module đang thiết kế yêu cầu tới

(trong trường hợp sử dụng hàm từ module khác), nếu có nhiều module thì các module này cách nhau bởi dấu phẩy Module không thể được kích hoạt nếu các module được yêu cầu không tồn tại hoặc chưa được kích hoạt

+ Package: phân nhóm chức năng chứa đựng module

Trang 12

cho mình Module có thể tự động ngưng hoạt động tạm thời để giảm tải cho máy chủ khi có quá nhiều truy cập bằng cách bật module throttle (quản lý

cơ chế tự động điều chế sự tắt nghẽn hệ thống) và chọn sử dụng chức năng điều tiết lưu lượng Chức năng tự động điều tiết có thể được bật thông qua trang cấu hình throttle sau khi đã bật module throttle

Mỗi module phải xử lý được các sự kiện hoặc định nghĩa các sự kiện riêng của nó Mỗi thao tác cần được phân quyền rõ ràng Việc phân quyền này thuộc về người điều hành Mỗi thao tác cần có một internal path (hay drupal path) nhất định

Thông tin được khai báo rõ ràng qua tập tin info, điều đó sẽ làm cho người điều hành dễ quản lý Không cần quan tâm nhiều đến quyền hạn truy cập Module được tách ra một thư mục cụ thể để quản lý một cách dễ dàng Phát triển module không cần thay đổi phần nhân của mã nguồn, khi nhân có lỗi bảo mật, việc cập nhật trở nên dễ dàng Việc gán các quyền truy cập với các vai trò thuộc về người điều hành, người điều hành không bị ràng buộc bởi quyền truy cập nào Mỗi module có thể định nghĩa cho riêng nó những quyền hạn truy cập khác nhau

lý sau khi một node được xử lý thành công

3.12 Taxonomy

Taxonomy là cách để phân nhóm nội dung các node trong drupal

Trang 13

ví dụ, kiểu nội dung tin_tuc có thể được phân theo nhiều nhóm (taxonomy): Tin thị trường, tin thể thao, tin thế giới … Trong drupal mỗi taxonomy có thể sử dụng cho nhiều kiểu nội dung khác nhau; có thể phân nhiều cấp; có các kiểu chọn: đơn, nhiều, hoặc theo thẻ…

II.C i ặt v phát triển Drupal

Trang 14

"Lưu các thiết lập"

( Kích hoạt Module hiện có)

Việc uninstall một module chỉ có thể được thực hiện nếu như: người phát triển viết hàm uninstall cho module của họ + module có lưu dữ liệu trong database Các module không sử dụng nên xóa bỏ khỏi thư mục cài đặt drupal site

Trang 15

/admin/build/themes) để kích hoạt các themes (check vào cột “bật”) và thiết lập giao diện mặc định cho website (check vào cột “mặc định”)

2 Module Views và CCK

a) Module CCK: Dùng để tạo kiểu nội dung mà không cần phải code

Để tạo kiểu nội dung, vào admin/content/types/add.Module CCK cung cấp

1 giao diện trực quan để thêm, sửa, xóa, định dạng và sắp xếp thứ tự xuất hiện các trường.Không thể xóa các trường ngầm định

Trang 16

(Form khai báo tạo kiểu nội dung)

Trang 17

(Giao diện quản lý các trường của kiểu nội dung “Điện thoại”) Chú ý:

- “Type of data to store” là kiểu dữ liệu của trường trong cơ sở dữ liệu

Trang 18

-“ Form elements to edit the data “ là kiểu hiển thị trường trong form thêm, sửa nội dung của kiểu nội dung này

- CCK chỉ cung cấp 1 số trường, muốn thêm các trường thì cần phải cài và kích hoạt các trường khác (các trường cũng là Module nhưng là module phụ thuộc vào module CCK)

CCK cung cấp form cấu hình sự hiển thị các trường của kiểu nội dung

“Điện thoại” trong 2 trường hợp nội dung (Node) theo kiểu tóm tắt (Teaser) hoặc đầy đủ (Full Node).Các trường không muốn hiển thị chỉ cần check Exclude

b) ModuleViews (phiên bản 2.0- g i tắt l views 2):cung cấp 1 giao diện trực

quan để người quản trị thêm, sửa và xóa các view.Mỗi View cho phép lọc dữ liệu,

Trang 19

trình bày để hiển thị, mà người phát triển không phải can thiệp trực tiếp vào dữ liệu hoặc viết code cho chương trình

Trong 1 view có thể định nghĩa nhiều view, mỗi view đều có những cấu hình khác nhau tùy thuộc vào người quản trị, để trình những kết quả khác nhau phù hợp với nhu cầu của thực tế

Để thêm 1 view ta vào trang admin/build/views/add Các thuộc tính của một View:

- Type: Views có thể lấy nội dung từ nhiều kiểu nội dung khác nhau Để định nghĩa một view, trước tiên, chúng ta cần xác định, kiểu nội dung chúng ta cần lấy

về là gì

- Display: Views cần biết được thuộc tính Display của mỗi view để xác định vị trí

mà kết quả của view tương ứng được hiển thị Mỗi view có thể có nhiều display, mỗi display lại có thể có những thiết lập riêng để tuỳ chỉnh kết quả trình bày Nói

về Display, mặc định, Views cung cấp một số Display type được liệt kê như sau + Default display:Default display, là display chính của mỗi view, được dùng

để lưu trữ các thiết lập của view Default display không thật sự được sử dụng ở bất

kỳ nơi nào, ngoại trừ bên trong hệ thống Views 2

+ Page display:Mỗi page display có thiết lập path và các tùy chọn thiết lập

về menu Khi trình bày một view ở dạng page display, kết quả của view sẽ được trình bày như nội dung chính của một trang, nghĩa là, kết quả của view sẽ được trình bày ở khu vực trình bày nội dung chính khi bạn truy cập vào URL ứng với path đã thiết lập cho page display

Page display, nếu có các thiết lập về argument, sẽ nạp vào nó các argument từ URL Chúng ta có thể nhúng các argument vào URL bằng cách sử dụng ký hiệu

% Thí dụ thiết lập URL của chúng ta là 'node/%/foo', ứng với trường hợp

Trang 20

sử dụng, khi người dùng truy cập vào URL 'node/1/foo', và tham số đầu tiên sẽ là '1'

+ Block display:Nếu một view có định nghĩa một/nhiều block display, nó đồng thời cũng sẽ định nghĩa các block trong hệ thống Drupal với nội dung tương ứng với các thiết lập của block display

Chú ý: block display không chấp nhận argument như các dạng view display khác Trong trường hợp, chúng ta cần sử dụng argument cho các block display, để

mở rộng khả năng trình bày, chúng ta buộc phải truyền argument vào ở dạng argument mặc định; Cách thực hiện: cấu hình view tương ứng > chọn display tương ứng > xem mục Arguments > nhấp chọn argument tương ứng > xem mục

"Action to take if argument is not present" vừa hiện ra > chọn "Provide default argument" > xem mục "Default argument type" vừa hiện ra Nếu chọn "PHP Code" có thể nhập đoạn PHP code tương tự như sau (không cần cặp thẻ đóng mở PHP):

Trang 21

+ Attachment display: các display có thể được đính kèm vào các display khác

ở cùng view Khi một display được gọi, thì đồng thời các attachment display được kèm theo với display đó cũng được gọi, và kết quả của các attachment display có thể được định vị ở trước hoặc sau hoặc cả trước và sau kết quả của display chính của view Có thể sử dụng attachment display để trình bày bảng danh mục (glossary) cho các view Xem view "glossary" được cung cấp mặc định bởi view như một thí dụ cho việc sử dụng Attachment display

+ Feed display: Feed display cho phép chúng ta đính kèm RSS feed vào một view

- Override:

Như đã biết mỗi view có thể có một default display và có thể định nghĩa thêm một hoặc nhiều các display khác, với các dislay type tùy thích mà view cung cấp Theo mặc định, các display, khác default display, sẽ sử dụng các thiết lập của default display cho việc tạo kết quả trình bày của chúng Do đó, nếu chúng ta chỉnh sửa các thiết lập của một display, thì các display khác ở cùng một view cũng

sẽ bị ảnh hưởng Giải quyết trở ngại này, views 2 có đưa ra khả năng "override", giúp cho các display, ngoài việc sử dụng các thiết lập từ default display, có thể có những thiết lập riêng cho nó, các

thiết lập này, nếu được chỉnh sửa, thì không ảnh hưởng đến các display khác ở cùng view

- Output style (view style) View phát sinh ra kết quả, hệ thống style giúp chúng ta có thể

Trang 22

minh, xử lý kết quả quả của view và xuất kết quả đó ra Tất cả các style trong Views 2 đều có thể được quá tải bằng cách đặt bản các bản sao chép của style tương ứng vào thư mục giao diện mà hệ thống đang sử dụng, sau đó, chỉnh sửa chúng Mỗi display của view có cung cấp một mục "theme: information", nhấp chọn vào mục đó, views 2 sẽ đề xuất cho chúng ta các khuôn mẫu giao diện có thể được sử dụng đê quá tải lên các thành phần kết quả của view

Các output style được views 2 cung cấp sẵn:

 Grid: Trình bày kết quả ở dạng ô

 List: Trình bày kết quả ở dạng danh sách

 Table: Trình kết quả ở dạng bảng

 Unformatted: Trình bày kết quả ở đơn giản, mỗi dòng kết quả chỉ được bao quanh bởi cặp thẻ với một số DOM class, dựa vào các class đơn giản này, quản trị viên có thể sử dụng CSS để định dạng lại kết quả trình bày

Trường hợp các output style được cung cấp sẵn này không đáp ứng đủ nhu cầu thực tế, chúng ta có thể xây dựng module mở rộng views 2 để định nghĩa thêm các output style khác

- Field (trường dữ liệu) Đối với một số output style, thí dụ table, chúng ta cần xác định cụ thể trường dữ liệu nào được trình bày trong kết quả trình bày Tùy thuộc và trường dữ liệu được xác định, chúng ta có thể có những thiết lập riêng cho chúng

- Sort criteria Các dòng kết quả được phát sinh bởi view có thể được sắp xếp thứ tự theo một hoặc nhiều tiêu chí Tuỳ thuộc vào view type (và các relationship), mỗi view

sẽ có những tùy chọn sắp xếp thứ tự kết quả trình khác nhau

Trang 23

- Filter Filter, hay bộ lọc nội dung, là một tính năng chủ chốt của views 2, giúp người điều hành có thể lọc nội dung theo những tiêu chí nhất định Không như các tính năng liệt kê node của nhân Drupal, /node/, chỉ liệt kê được các node được thiết lập thuộc tính "promoted to frontpage" (được quảng bá ở trang chủ) là true, /taxonomy/term/x/, chỉ liệt kê được các node có gán từ liệu là x, views với tính năng filter, cung cấp khả năng trình bày nội dung của hệ thống rất sinh động Với views 2, bây giờ, chúng ta có thể trình bày các node được tạo bởi một người dùng nhất định, ở (các) term nhất định, vào thời khoảng nhất định,

- Argument Tính năng filter của Views 2 mạnh, tuy nhiên nó cũng có mổt trở ngại nhỏ: filter không động theo từng view Thí dụ, chúng ta định nghĩa một view V1 để trình bày các node có node type là NT1, có thể truy cập view này qua URL /content/foo Sau một thời gian, theo nhu cầu phát triển của hệ thống, chúng ta lại cần xây dựng một view V2 rất giống với V1, chỉ khác ở filter node type, thay vì node type là NT1 thì là NT2 Rõ ràng, lúc này, chúng ta phải lặp lại nhiều thao tác

đã thực hiện ở V1 vào lại V2 Giả sử, chúng ta có N view như vậy, khi chỉnh sửa các view này theo nhu cầu thực tế, công sức của chúng ta sẽ xN

Argument được đặt ra như là một mở rộng của filter Thay vì là tĩnh ở mỗi view, argument cung cấp khả năng lọc nôi dung trong view bằng các giá trị có thể thay đổi động Trở lại với thí dụ trên, thay vì định nghĩa một filter clause cho view, chúng ta sẽ định nghĩa một argument: "node type", và ở URL, chúng ta sẽ thay /content/foo thành /content/foo/% Lúc này, khi người dùng truy cập URL /content/foo/NT1, view sẽ lọc nội dung và chỉ trả về những node có node type là NT1,

Trang 24

- Relationships

Là một tính năng mới thêm vào Views 2, cung cấp cho view khả năng truy vấn kết quả khác từ các kết quả đã tìm được Một thí dụ thực tế tương đối dễ hiểu: (1) Hệ thống chúng ta vừa tạo ra một node type là "track" (2) Chúng ta tạo thêm hai node type khác là "album" và "artist" (3) Tạo node reference từ "track" đến

"album", từ "album" đến "artist" (Sử dụng module node reference của CCK) (4) Tạo một vào node ứng với các node type vừa tạo ở trên (5.1) Tạo một view; (5.2) Thiết lập output syle thành "table"; (5.3) Ở mục "relationships", thêm vào 2 node reference đã tạo ở bước 3; (5.4) Ở mục "fields", thêm 3 lần field "Node: Title" và

"Node: Body", ở node thứ nhì, chọn relatioship đến 'albumn', và ở node thử ba, chọn relationship đến 'artist' (6) Xem thử kết quả

- Use pager Thiết lập view có sử dụng bộ phân trang hay không

Trang 25

- Items to display

Số dòng kết quả trình bày ở mỗi lần trình bày của view/output sẽ không vượt quá giá trị thiết lập ở mục này Nên thiết lập để view/output sử dụng bộ phân trang để người dùng có thể xem được nhiều kết quả hơn

- More link Thêm liên kết, vào phía dưới kết quả của view, dẫn đến page view Trường hợp view của chúng ta cung cấp hơn một page display, mục này cần chỉ định rõ page display nào cần được trỏ đến

- Distinct Buộc view chỉ trình bày những kết quả thật sự khác nhau Thuộc tính này có thể làm chậm đi quá trình phát sinh kết quả của view

- Access Giới hạn các vai trò người dùng (role) được truy cập view/output

- Header Bản văn được trình bày ở phía trên của view/output

- Footer Bản văn được trình bày ở phía dưới của view/output

- Empty text Bản văn được trình bày khi view/output không trả về kết quả nào

- Theme information Trình bày các thông tin về giao diện giúp người xây dựng giao diện của hệ thống

Trang 26

III Phát triển xây dựng module trên nền drupal

Viết module trên drupal gồm các bước:

 Tạo hệ thống file, gồm 2 file bắt buộc là <ten_module>.info lưu trữ thông tin module và <ten_module>.module chứa code xữ lý cho module

 Cài đặt các hook, tùy theo chức năng của module mà cài đặt các hook khác nhau

 Cài đặt và lưu giữ các thiết lập cho module

 Tạo phần quản trị (backend) riêng cho module

1 Tạo hệ thống file gồm các file ch nh:

- <ten_module>.info : file dạng ini (PHP INI) lưu các thông tin của module, bao gồm:

; phiên bản PHP hổ trợ php = 5.2

- <ten_module>.module : file php chứa các xữ lý chính của module, các xữ

lý, cài đặt hook được đưa vào file này

Trang 27

- hook_menu: xữ lý khi có một request (yêu cầu) đến hệ thống

Ví dụ, tạo xữ lý khi người dùng truy xuất vào đường dẫn (URL) /mymodule, thì hiển thị ra văn bản „Hello world”

'access arguments' => array('truy cap noi dung'), //đối số xác định phân quyền truy cập

Ngày đăng: 22/08/2023, 00:43

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