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

Phát triển website với drupal 7 luận văn tốt nghiệp đại học

48 698 6
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 đề Phát triển website với drupal 7
Tác giả Đồng Quang Trọng
Người hướng dẫn ThS. Nguyễn Minh Tâm
Trường học Trường Đại Học Vinh
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2011
Thành phố Vinh
Định dạng
Số trang 48
Dung lượng 3,74 MB

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

Nội dung

Ngoài việc cungcấp cho những người quản trị trang web webmasters một công cụ xây dựngwebsite, nó còn giúp cho các lập trình viên và nhà phát triển nhiều cách để tùybiến Drupal sử dụng cá

Trang 1

TRƯỜNG ĐẠI HỌC VINH

ĐỒ ÁN TỐT NGHIỆP

Đ

Ề TÀI : PHÁT TRIỂN WEBSTIE VỚI DRUPAL7

Giảng viên hướng dẫn : THS.NGUYỄN MINH TÂM

Sinh viên thực hiện : ĐỒNG QUANG TRỌNG

Lớp : 47K - CNTT

VINH, 2011

Trang 2

Lời nói đầu

Sinh viên CNTT có hai mối quan tâm chính, đó là kiến thức trong quá trình học vàviệc làm sau khi ra trường Về cả hai mặt này, mã nguồn mở là một lựa chọn rấtxứng đáng

So với việc tự học và xây dựng sản phẩm, việc học và nghiên cứu một cáchnghiêm túc một mã nguồn mở nào đó mang lại hiểu quả và nhiều ưu điểm hơnnhư:

- Nắm bắt và hiểu được các mô hình, kiến trúc để xây dựng một sản phẩmphần mềm

- Học hỏi được kinh nghiệm, kiến thức, cách viết mã lệnh từ các lập trình viênkinh nghiệm lâu năm đang xây dựng dự án mã nguồn mở

- Có thể tham gia các dự án phát triển của phần mềm mã nguồn mở như làmột kinh nghiệm làm việc thực tế và tích lũy được kỹ năng làm việc từ đó Ngày nay, với sự phát triển của mạng Internet, việc phát triển các web application,website đang có một nhu cầu rất lớn

Đối với các doanh nghiệp thì yêu cầu một website phải đáp ứng các vấn đề:

- Giao diện đơn giản, thân thiện, dễ sử dụng

- Việc quản lý dễ dàng, không đòi hỏi cao về chuyên môn

- Website có tính khả chuyển, phù hợp cho nhiều loại hàng hóa, chức năng

Trang 3

các vấn đề trên

Đề tài gồm 3 phần chính:

- Phần 1 giới thiệu, mô tả về các ưu điểm, tính năng, cách xử lý của hệ thống

Drupal 7

- Phần 2 cách phát triển mô-đun với Drupal 7 bằng ví dụ minh họa cụ thể là

mô-đun lấy thông tin thời tiết tự động

- Phần 3 mô tả cách xây dựng website cho bệnh viện 115

Em xin chân thành cảm ơn sự giúp đỡ nhiệt tình của cô giáo Ths.Nguyễn Minh Tâm đã đóng góp những ý kiến quý báu giúp em có thể hoàn thành để tài của mình Một lần nữa em xin chân thành cảm ơn !

Sinh viên thực hiệnĐồng Quang Trọng

Trang 4

Mục lục

1 Giới thiệu Drupal 5

1.1 Drupal là gì? 5

1.1.1 Những ai sử dụng Drupal 6

1.1.2 Những đặc tính của Drupal 7

1.2 Drupal làm việc như thế nào 8

1.2.1 Nền tảng công nghệ 8

1.2.2 Phần nhân (core) 10

1.2.3 Giao diện quản trị 11

1.2.4 Mô-đun 11

1.2.5 Hooks 13

1.2.6 Giao diện (theme) 14

1.2.7 Node 17

1.2.8 Block 17

1.2.9 Cấu trúc thư mục 18

1.3 Xử lý một yêu cầu (request) 20

1.3.1 Vai trò của web server 21

Trang 5

2.1 Phân tích yêu cầu 28

2.2 Làm việc với hệ thống menu 29

2.3 Làm việc với Blocks 33

2.4 Làm việc với Form API 34

2.5 Lấy thông tin thời tiết từ tuoitre.vn 40

3 Xây dựng website bệnh viện 115 43

3.1 Xây dựng website với Drupal 43

3.2 Thiết kế website 45

Tài liệu tham khảo 49

Trang 6

1 Giới thiệu Drupal

Nhờ những tính năng mạnh mẽ của mình, Drupal còn được coi là một khung sườnphát triển phần mềm (Content Management Framework – CMF) Ngoài việc cungcấp cho những người quản trị trang web (webmasters) một công cụ xây dựngwebsite, nó còn giúp cho các lập trình viên và nhà phát triển nhiều cách để tùybiến Drupal sử dụng các mô-đun (plug-in module) Tất cả mọi thành phần củaDrupal đều có thể được tùy biến sử dụng những mô-đun này

Điều đáng chú ý nhất là cộng đồng phát triển Drupal, vốn được coi là điều thànhcông và đáng giá nhất của drupal Khi Drupal 6 được phát hành tháng 2 năm 2008,

có hơn 700 thành viên đã cùng nhau xây dựng nên phần lõi (core) của Drupal Cóhơn 2000 lập trình viên cùng nhau xây dựng các modules, tham gia trong các quátrình kiểm thử, viết tài liệu, hỗ trợ người dùng, dịch thuật và các công đoạn quantrọng khác của dự án

Trang 7

cùng với phản hồi của cộng đồng, để làm cho việc sử dụng được dễ dàng hơn Việccải tiến cách thức sử dụng bao gồm quản lý dễ dàng hơn, quản lý các cập nhật, truyxuất và tạo nội dung.

Theo số liệu mới nhất, Drupal là phần mềm mã nguồn mở được sử dụng bởi hơnnửa tỉ người trên 200 quốc gia và 189 ngôn ngữ Gần 1000 thành viên của cộngđồng Drupal đã và đang đóng góp trực tiếp phát triển lõi Drupal 7 và các modulekèm theo

1.1.1 Những ai sử dụng Drupal

Những năm gần đây, Drupal ngày càng phát triển mạnh mẽ và trở nên rất phổ biến,điều này đã làm cho nhiều công ty lớn đặc biệt chú ý Các công ty về lĩnh vực đaphương tiện như MTV UK, Lifetime và Sony BMG Records đang sử dụng Drupal

để xây dựng cộng đồng cho các sản phẩm của họ Các nhà xuất bản như New YorkObserver, The Onion, tạp chí Popular Science và tạp chí Fast Company cũng sửdụng drupal để xây dựng báo điện tử Ngoài ra còn nhiều tổ chức như tổ chức ân

xá quốc tế (Amnesty International), Liên Hợp Quốc (the United Nations) và hiệphội công nghiệp điện tử (the Electronic Frontier Foundation) cũng sử dụng Drupal

để xây dựng cổng thông tin (portal) Ubuntu Linux, Eclipse, Firefox và jQuery lànhững dự án mã nguồn mở hiện đang sử dụng Drupal để xây dựng trang cộng đồngphát triển cho dự án Ngoài ra còn có các trang web của các blogger nổi tiếng nhưTim Berners-Lee, Heather B.Armstrong (Dooce), mạng xã hội BlogHer, và MerlinMann cũng sử dụng Drupal để phát triển

Trang 8

1.1.2 Những đặc tính của Drupal

Drupal cung cấp nhiều tính năng mạnh mẽ, bao gồm:

Hệ thống mô-đun mềm dẻo

Mô-đun là những plug-in có thể được chỉnh sửa và thêm các tính năng cho các site

sử dụng Drupal Hầu hết những tính năng cần có đều có thể được đáp ứng bởi mộtmô-đun để giải quyết bài toán hoặc kết hợp nhiều mô-đun lại với nhau

Hệ thống giao diện tùy biến

Tất cả các đầu ra trong drupal đều hoàn toàn có thể được tùy biến, vì vậy có thể dễdàng thay đổi mọi thành phần giao diện trong website theo yêu cầu

Hệ thống tạo nội dung mở rộng

Drupal có thể được định nghĩa nhiều loại nội dung mới (ví dụ như blog, sự kiện,

Trang 9

Drupal đã được hỗ trợ sẵn hệ thống tạo đường dẫn thân thiện (human-readable), vàtất cả đầu ra của Drupal đều đạt chuẩn, những tính năng này làm cho các websiteđược xây dựng bởi Drupal rất thân thiện với công cụ tìm kiếm

Hệ thống phân quyền

Các vai trò (role) và hệ thống phân quyền của Drupal rất mạnh mẽ Quyền có thểđược phân cho các vai trò khác nhau hoặc phân quyền đến tận các mô-đun Cácmô-đun đều có thể định nghĩa được quyền hạn và phân quyền theo các quyền hạnnày

1.2 Drupal làm việc như thế nào

1.2.1 Nền tảng công nghệ

Mục tiêu thiết kế của Drupal bao gồm cả việc có thể chạy tốt trên những tài khoảnchia sẻ của máy chủ web rẻ tiền và có thể mở rộng trên những website lớn dạngphân tán Mục tiêu trước hết là có thể sử dụng những công nghệ phổ biến nhất, vàsau đó là tính an toàn, bảo mật cao Công nghệ của Drupal được thể hiện theo hình:

Hình 1 Nền tảng công nghệ

Trang 10

Hệ điều hành nằm ở mức thấp nhất và Drupal không cần quan tâm đến điều đó.Drupal có thể chạy thành công trên bất kỳ hệ điều hành nào hỗ trợ PHP

Web server được sử dụng phổ biến nhất với Drupal là Apache, tất nhiên nhữngweb server khác (như là Microsoft IIS) cũng có thể chạy được Bởi vì sự liên kếtchặt chẽ với Apache, Drupal được đóng gói kèm theo tệp tin htaccess giúp bảo

mật bản cài đặt cho Drupal Đồng thời tính năng đường dẫn trong suốt (Clean

Urls) – nhằm loại bỏ các dấu chấm hỏi (?), dấu nháy đơn (‘) và các ký tự nguy

hiểm dẫn đến SQL Injection được sử dụng thành phần mod_rewrite của Apache Drupal làm việc với cơ sở dữ liệu thông qua một lớp cơ sở dữ liệu trừu tượng đượcthiết kế theo hướng tối giản (lightweight database abstraction layer) Lớp này xử lýcác truy vấn SQL và làm cho chúng trở nên khả dụng với các hệ quản trị cơ sở dữliệu khác mà không cần phải code lại Hệ quản trị cơ sở dữ liệu được sử dụng rộngrãi nhất với Drupal là MySQL và PostgreSQL Và sự hỗ trợ cho hệ quản trị cơ sở

dữ liệu Microsoft SQL Server và Oracle đang ngày càng tăng

Drupal được viết bằng ngôn ngữ PHP Vì PHP là một ngôn ngữ rất dễ dàng để học,

vì vậy có rất nhiều chương trình được viết bởi những lập trình viên còn thiếu kinhnghiệm Do đó, chất lượng mã nguồn của các chương trình này thường tạo ra một

ấn tượng xấu cho ngôn ngữ PHP Tuy nhiên, toàn bộ phần mã của Drupal đượcviết theo những tiêu chuẩn viết mã chặt chẽ và các quy trình kiểm thử theo quychuẩn mã nguồn mở Tiếp cận với Drupal giúp cho chúng ta tìm hiểu thêm nhiềukinh nghiệm, kỹ năng trong việc viết mã nguồn, phân tích, thiết kế các hệ thốnglớn

1.2.2 Phần nhân (core)

Trang 11

của hệ thống

Phần lõi bao gồm mã nguồn giúp cho hệ thống Drupal khởi động (bootstrap) khinhận 1 yêu cầu (request), một thư viện những hàm chung nhất thường được sửdụng với Drupal và các mô-đun cung cấp những chức năng cơ bản nhất như làquản trị người dùng, bộ từ tố (taxonomy), và hệ thống template được chỉ ra tronghình sau:

Hình 2 Cấu trúc phần Core

1.2.3 Giao diện quản trị

Không giống như những CMS khác, Drupal không có giao diện quản trị riêng biệt.Giao diện trang web và giao diện trang quản trị theo mặc định là một Người dùngđầu tiên (cài đặt Drupal) được xem như là người dùng có quyền cao nhất và cótoàn quyền với trang web

1.2.4 Mô-đun

Drupal là một khung phát triển hướng mô-đun hoàn toàn Các chức năng đượcđóng gói trong các mô-đun Khi cần, bạn có thể bật hoặc tắt các mô-đun tùy ý Khi

Trang 12

cần một tính năng mới thì có thể bật các mô-đun có sẵn, cài đặt các mô-đun đượcviết và chia sẻ trên trang chủ Drupal hoặc viết một mô-đun mới theo yêu cầu

Hình 3 Mô hình modular

Bất kỳ tính năng hay sự thay đổi nào cũng có thể được thêm vào thông qua

mô-đun Drupal làm được điều này nhờ sử dụng mẫu thiết kế điều khiển ngược

(inversion of control design pattern) Các hàm chức năng trong mô-đun sẽ đượcgọi bởi khung phát triển trong thời gian thực thi Điều này trong hệ thống Drupal

được gọi là các hooks

Trang 13

1.2.5 Hooks

Hooks có thể được hiểu như là các sự kiện bên trong Drupal Chúng cũng có thể

được gọi là callbacks bởi vì các quy ước đặt tên hàm và không cần đăng ký lắng

nghe sự kiện (listener) Hooks cho phép các mô-đun có thể “hook vào” bất kỳ sựkiện nào trong hệ thống Drupal

Giả sử một người dùng đăng nhập vào website Drupal Vào thời điểm người dùngđăng nhập, Drupal tạo nên một hook người dùng (user hook) Điều này có nghĩa là

bất kỳ một hàm nào được đặt tên theo quy tắc tên mô-đun + tên hook sẽ được gọi

Cách phổ biến nhất để chỉnh sửa các chức năng trong phần nhân của Drupal là thựcthi thông qua hệ thống hooks trong mô-đun

Trang 14

Hình 4 Hệ thống hook

1.2.6 Giao diện (theme)

Trong Drupal, lớp giao diện chịu trách nhiệm tạo ra mã HTML (hoặc JSON, XML,.v.v.) và gửi đến cho trình duyệt Drupal có thể sử dụng nhiều hệ thống giao diệnphổ biến như là Smarty, PHPTal, hoặc PHPTemplate

Trang 15

Hình 5 Theme engine

Drupal chấp nhận nhiều cách để tùy biến và viết lại giao diện cho website Từ cáchđơn giản nhất là viết thêm mã CSS để nạp đè các thuộc tính đã được đính nghĩasẵn theo class và ID Tuy nhiên, nếu muốn hoàn toàn làm chủ và tối ưu việc sinh

mã HTML chỉ cần viết lại các tệp tin giao diện theo quy chuẩn đặt tên của Drupal

Trang 16

Hình 6 Quá trình xử lý 1 theme

Trang 17

1.2.7 Node

Tất cả các loại nội dung trong Drupal đều được kế thừa từ một loại đơn giản nhất

được gọi là node Các node có thể là một bài blog, một bản tin, một nhiệm vụ của

dự án hay bất kỳ loại nội dung nào và đều có chung cấu trúc dữ liệu Chính điềunày đã làm nên sự mềm dẻo, linh hoạt cho hệ thống Drupal Dựa vào node, hệthống Drupal hoàn toàn có thể mở rộng thành các giải pháp như cms, bán hàng trựctuyến, quản lý dự án…

Hình 7 Sự kế thừa của node

1.2.8 Block

Block là các phần hiển thị nội dung được bật hoặc tắt dựa theo vị trí xác định tronggiao diện website Ví dụ, block hiển thị số người đang online trên website, blockchứa đường dẫn đến các bản tin mới nhất hay một danh sách các sự kiện đang diễn

ra Block được đặt vào các vùng trên template như sidebar, header, hay footer.Block cũng có thể được thiết đặt để hiển thị theo loại nội dung, trên trang chủ haybất kỳ điều kiện nào

Trang 18

Việc xây dựng website trên Drupal thường xoay quanh việc bố trí các block nhưthế nào, vào các vị trí nào

Hình 8 Mô hình thực thể liên kết của block

1.2.9 Cấu trúc thư mục

Bộ đóng gói Drupal bố trí các tệp tin như sau:

Trang 19

Hình 9 Hệ thống tệp tin của Drupal

Thông tin các thành phần:

- Thư mục includes chứa các hàm thư viện chung nhất mà Drupal sử dụng

- Thư mục misc chứa các tệp tin JavaScript và các biểu tượng, hình ảnh được

đóng gói kèm Drupal

- Thư mục modules chứa các mô-đun đóng gói sẵn, mỗi mô-đun nằm trong

một thư mục con

- Thư mục profiles chứa các cấu hình cài đặt khác nhau cho một trang web.

Nếu như có bất kỳ cấu hình cài đặt nào khác, Drupal sẽ hỏi nên chọn cấuhình cài đặt nào trong lần cài đặt đầu tiên của website Lý do chính của cấuhình cài đặt này hỗ trợ cho nhà phát triển đóng gói drupal thành các cấu hìnhkhác nhau Ví dụ: cấu hình cho thương mại điện tử, cấu hình cho cổng thôngtin… Bộ cấu hình xuất sắc nhất của Drupal là Open Atrium hỗ trợ cho việcphát triển các ứng dụng web

Trang 20

- Thư mục scripts chứa các mã nguồn cho việc kiểm tra cú pháp, làm sạch mã

nguồn (cache), chạy Drupal dạng giao diện dòng lệnh, và các thao tác khácvới cron (php)

- Thư mục sites chứa các thành phần bổ sung cho Drupal như là mô-đun, giao

diện

Hình 10 Cấu trúc thư mục sites

1.3 Xử lý một yêu cầu (request)

Để hiểu tường tận các thao tác xử lý của Drupal khi có một yêu cầu gửi đến có thểcài đặt các trình debug cho php

Trang 21

1.3.1 Vai trò của web server

Drupal chạy trên nền web server, thường là apache Nếu web server này tìm thấytệp tin htaccess, những cấu hình cho php sẽ được khởi tạo Toàn bộ các yêu cầuđến Drupal đều thông qua index.php Ví dụ, khi một yêu cầu có URL là

http://example.com/foo/bar được gọi, sẽ có các thao tác xử lý sau:

1 Các luật của mod_rewrite trong file htaccess của Drupal sẽ xem xét đường

dẫn và chia nó ra gồm phần đường dẫn cơ sở và đường dẫn (path) Như ví dụ

trên thì phần path là foo/bar

2 Path này sẽ được gán cho tham số truyền URL là q.

3 Kết quả URL nhận được sẽ là http://example.com/index.php?q=foo/bar

4 Drupal sẽ coi foo/bar như là đường dẫn nội bộ và quá trình xử lý bắt đầu

trong index.php

Như kết quả xử lý trên thì Drupal sẽ xem http://example.com/index.php?q=foo/

bar và http://example.com/foo/bar là một vì chúng đều có chung một đường

dẫn nội bộ Điều này đã làm nên khả năng trong suốt đường dẫn tuyệt vời ởDrupal

Đối với các web server khác, như Microsoft IIS, vẫn có thể sử dụng trong suốtđường dẫn bằng cách sử dụng mô-đun của Windows Internet ServerApplication Programming Interface (ISAPI) là ISAPI Rewrite IIS phiên bản 7

đã hỗ trợ việc viết lại URL trực tiếp

1.3.2 Quá trình khởi động

Trang 22

Drupal tự khởi động mỗi khi có yêu cầu được gửi đến thông qua 1 loạt các giaiđoạn khởi động Những giai đoạn này được định nghĩa trong bootstrap.inc và quátrình xử lý diễn ra theo các phần như sau.

Thiết đặt cấu hình

Quá trình này sẽ khởi tạo các mảng cấu hình nội bộ và và thiết lập đường dẫn cơ sở($base_url) của site

Bộ đệm đầu cho các trang

Trong những tình huống đòi hỏi khả năng đáp ứng cao của hệ thống, hệ thống bộđệm có thể được gọi trước khi tạo kết nối đến cơ sở dữ liệu Hệ thống này sẽ gọicác tệp tin PHP có chứa hàm page_cache_fastpath() trong đó có chứa nội dung vàtrả về cho trình duyệt Tính năng này sẽ được bật bằng cách thiết đặt biếnpage_cache_fastpath thành TRUE, và tệp tin được nhúng vào sẽ được định nghĩabằng cách thiết đặt biến cache_inc thành đường dẫn đến tệp tin

Khởi tạo cơ sở dữ liệu

Trong quá trình này thì loại cơ sở dữ liệu sẽ được xác định và khởi tạo một kết nối

để sử dụng cho các truy vấn đến cơ sở dữ liệu

Kiểm soát truy cập thông qua Hostname/IP-Based

Drupal chấp nhận việc cấm các máy chủ dựa theo tên host hoặc địa chỉ IP Quátrình điều khiển này sẽ nhanh chóng kiểm tra các yêu cầu được gửi đến có phải từ

1 máy chủ bị cấm hay không? Nếu đúng, yêu cầu này sẽ bị loại bỏ

Khởi tạo phiên xử lý (session handling)

Drupal sử dụng các tính năng ưu điểm của session hỗ trợ sẵn của PHP và bổ sung

Trang 23

toàn bộ thông tin biến này, ta có thể gọi hàm user_load() khi cần.

Bộ đệm cuối cho trang

Quá trình này xác định xem trang có cần tải lại hay vẫn sử dụng cache Nếu pháthiện không cần phải tải lại trang thì cache sẽ được sử dụng và quá trình này kếtthúc

Quá trình này hoàn tất toàn bộ quá trình khởi động Các thư viện sử dụng chung,

hỗ trợ giao diện, hỗ trợ cho gọi các hàm callback, xử lý tệp tin, Unicode, các thưviện xử lý hình ảnh… được nạp

Trang 24

Hình 11 Quá trình khởi động của Drupal

1.3.3 Xử lý yêu cầu

Các hàm callback sẽ xác định cần phải gọi và xử lý hàm nào cho một yêu cầu Ví

dụ, đối với 1 yêu cầu nội dung như http://example.com/q=?node/3, nó sẽ gọi hàm

node_page_view() trong node.module Quá trình này sẽ trả về một dữ liệu củanode từ cơ sở dữ liệu và đặt vào 1 mảng dữ liệu có cấu trúc Sau đó chuyển sang

Ngày đăng: 19/12/2013, 14:02

HÌNH ẢNH LIÊN QUAN

Hình 1 Nền tảng công nghệ - Phát triển website với drupal 7 luận văn tốt nghiệp đại học
Hình 1 Nền tảng công nghệ (Trang 9)
Hình 2 Cấu trúc phần Core - Phát triển website với drupal 7 luận văn tốt nghiệp đại học
Hình 2 Cấu trúc phần Core (Trang 11)
Hình 3 Mô hình  modular - Phát triển website với drupal 7 luận văn tốt nghiệp đại học
Hình 3 Mô hình modular (Trang 12)
Hình 4 Hệ thống hook - Phát triển website với drupal 7 luận văn tốt nghiệp đại học
Hình 4 Hệ thống hook (Trang 14)
Hình 5 Theme engine - Phát triển website với drupal 7 luận văn tốt nghiệp đại học
Hình 5 Theme engine (Trang 15)
Hình 6 Quá trình xử lý 1 theme - Phát triển website với drupal 7 luận văn tốt nghiệp đại học
Hình 6 Quá trình xử lý 1 theme (Trang 16)
Hình 7 Sự kế thừa của node - Phát triển website với drupal 7 luận văn tốt nghiệp đại học
Hình 7 Sự kế thừa của node (Trang 17)
Hình 8 Mô hình thực thể liên kết của block - Phát triển website với drupal 7 luận văn tốt nghiệp đại học
Hình 8 Mô hình thực thể liên kết của block (Trang 18)
Hình 11 Quá trình khởi động của Drupal - Phát triển website với drupal 7 luận văn tốt nghiệp đại học
Hình 11 Quá trình khởi động của Drupal (Trang 24)
Hình 12 Quá trình xử lý khi có yêu cầu - Phát triển website với drupal 7 luận văn tốt nghiệp đại học
Hình 12 Quá trình xử lý khi có yêu cầu (Trang 25)
Hình 13 Quá trình thực thi xử lý giao diện - Phát triển website với drupal 7 luận văn tốt nghiệp đại học
Hình 13 Quá trình thực thi xử lý giao diện (Trang 26)
Hình 14 Quá trình xử lý menu - Phát triển website với drupal 7 luận văn tốt nghiệp đại học
Hình 14 Quá trình xử lý menu (Trang 30)
Hình 15 Quá trình xử lý router và xây dựng link - Phát triển website với drupal 7 luận văn tốt nghiệp đại học
Hình 15 Quá trình xử lý router và xây dựng link (Trang 31)
Hình 18 Form cấu hình mô-đun thời tiết - Phát triển website với drupal 7 luận văn tốt nghiệp đại học
Hình 18 Form cấu hình mô-đun thời tiết (Trang 41)
Hình 20 Giao diện chi tiết bản tin - Phát triển website với drupal 7 luận văn tốt nghiệp đại học
Hình 20 Giao diện chi tiết bản tin (Trang 45)

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

w