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

Xây dựng website bằng drupal

40 4 0

Đ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 Bằng Drupal
Tác giả Lê Đức Trí
Trường học Trường Đại Học
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đề Tài
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 40
Dung lượng 1,37 MB

Cấu trúc

  • 1.1 Khái niệm (4)
    • 1.1.1 Những ai sử dụng Drupal (5)
    • 1.1.2 Tư tưởng của Drupal (5)
    • 1.1.3 Nguyên tắc hoạt động của Drupal (8)
    • 1.1.4 Sơ đồ cấu trúc của Drupal (9)
    • 1.1.5 Sử dụng Drupal khi nào (10)
    • 1.1.6 Những đặc tính của Drupal (12)
  • 1.2 Cách làm việc của Drupal (13)
    • 1.2.1 Nền tảng công nghệ (13)
    • 1.2.2 Phần nhân (core) (14)
    • 1.2.3 Giao diện quản trị (15)
    • 1.2.4 Mô-đun (15)
    • 1.2.5 Hooks (16)
    • 1.2.6 Giao diện (theme) (18)
    • 1.2.7 Node (20)
    • 1.2.8 Block (20)
    • 1.2.9 Cấu trúc thư mục (22)
  • 1.3 Xử lý một yêu cầu (request) (23)
    • 1.3.1 Vai trò của web server (23)
    • 1.3.2 Quá trình khởi động (0)
    • 1.3.3 Xử lý yêu cầu (26)
    • 1.3.4 Tạo giao diện cho dữ liệu (28)
  • 2.1 Xây dựng website với Drupal (29)
    • 2.1.1 Phân loại nội dung sử dụng Taxonomy (31)
    • 2.1.2 Tạo menu dropdown cho trang web (32)
    • 2.1.3 Tạo các khối hiển thị dữ liệu (33)
  • 2.2 Thiết kế website (34)
    • 2.2.1 Giao diện trang chủ (34)
    • 2.2.2 Giao diện trang chi sản phẩm (35)
    • 2.2.3 Giao diện trang quản trị (36)
    • 2.2.4 Trang quản trị nội dung (37)
  • KẾT LUẬN (38)
  • TÀI LIỆU THAM KHẢO (40)

Nội dung

Khái niệm

Những ai sử dụng Drupal

Trong những năm gần đây, Drupal đã phát triển mạnh mẽ và thu hút sự chú ý của nhiều công ty lớn, đặc biệt trong lĩnh vực đa phương tiện như MTV UK, Lifetime và Sony BMG Records, để xây dựng cộng đồng cho sản phẩm của họ Các nhà xuất bản nổi tiếng như New York Observer, The Onion, Popular Science và Fast Company cũng áp dụng Drupal cho các trang báo điện tử Nhiều tổ chức quốc tế như Amnesty International, Liên Hợp Quốc và Electronic Frontier Foundation đã sử dụng Drupal để tạo ra các cổng thông tin Ngoài ra, các dự án mã nguồn mở như Ubuntu Linux, Eclipse, Firefox và jQuery cũng tận dụng Drupal để phát triển cộng đồng Nhiều blogger nổi tiếng như Tim Berners-Lee, Heather B.Armstrong (Dooce), mạng xã hội BlogHer và Merlin Mann cũng chọn Drupal cho trang web của họ.

Tư tưởng của Drupal

LÊ ĐỨC TRÍ 49K - CNTT TRANG 6

Một website hiệu quả cần đạt được sự cân bằng giữa tính đơn giản và tính linh hoạt Hệ thống quá đơn giản chỉ phục vụ một mục đích duy nhất, trong khi hệ thống quá linh hoạt có thể gây khó khăn cho người mới tiếp cận.

Drupal nỗ lực hòa giải các mục tiêu khác nhau bằng cách cung cấp cho người dùng các công cụ cần thiết để xây dựng giải pháp quản trị nội dung hiệu quả Nó không chỉ cung cấp các thành phần dựng sẵn mà còn giúp người dùng có thể bắt đầu nhanh chóng trong quá trình phát triển nội dung.

Hệ thống này có thể được xem như một hệ thống quản lý nội dung (CMS) kết hợp với framework quản lý nội dung (CMF), tích hợp những ưu điểm của cả hai và khắc phục những nhược điểm tồn tại.

Hầu hết các CMS giống như đồ chơi, với các chức năng đã được định sẵn, khiến việc tùy chỉnh cho mục đích riêng trở nên khó khăn Ngược lại, framework cung cấp các thành phần cơ bản, yêu cầu người dùng có kiến thức về ngôn ngữ lập trình và một tầm nhìn thiết kế rõ ràng để kết hợp chúng lại với nhau.

LÊ ĐỨC TRÍ 49K - CNTT TRANG 7

Drupal là một hệ thống quản lý nội dung (CMS) linh hoạt, tương tự như bộ xếp hình Lego, nơi các kỹ năng của nhà phát triển được tổ chức thành các module, cho phép bạn xây dựng một trang web tùy chỉnh theo nhu cầu Dù bạn cần một trang web tin tức, cửa hàng trực tuyến, mạng xã hội, blog hay wiki, Drupal đều có thể đáp ứng Chẳng hạn, nếu bạn muốn tạo một trang báo điện tử, bạn có thể dễ dàng thêm chức năng viết bài mới và hiển thị 5 bài viết gần đây trên trang chủ, cũng như tích hợp plugin để theo dõi và liệt kê các bài viết mới nhất từ blog.

Khi sử dụng một CMS thông thường, bạn cần cài đặt plugin để xử lý tin bài và hiển thị các blurbs ngắn trên trang chủ Tiếp theo, hãy cài đặt một plugin khác để theo dõi các bài viết blog mới nhất và tạo danh sách cho trang chủ Mỗi plugin sẽ chỉ đảm nhiệm việc quản lý một loại nội dung cụ thể và vẫn giữ tính độc lập với các plugin khác.

Khi bạn có ý tưởng kết hợp hai chức năng trong blog, hãy xem xét việc hiển thị danh sách các bài viết mới nhất về tin tức cùng với những bài viết được xem nhiều nhất ở vị trí đầu tiên Điều này không chỉ giúp người đọc dễ dàng tiếp cận thông tin mới mà còn tăng cường khả năng tương tác với các nội dung phổ biến.

Với sức mạnh của Drupal, bạn có thể tùy biến các plugin một cách nhanh chóng mà không cần thuê nhà phát triển, chỉ cần sử dụng Views Module Các module của Drupal hoạt động theo một chuẩn thống nhất và giao diện chung, cho phép xây dựng nội dung thông minh và tùy biến cao, giúp bạn dễ dàng kết hợp các module với nhau để đạt được kết quả mong muốn.

Sự linh hoạt trong việc xây dựng website đi kèm với chi phí nhất định Trong khi một chiếc xe "toy truck" dễ dàng sử dụng ngay mà không cần suy nghĩ nhiều, thì bộ công cụ các khối xây dựng yêu cầu bạn phải đọc hướng dẫn sử dụng trước Những khối xây dựng này có khả năng giải quyết vấn đề, nhưng bạn cần tìm hiểu cách chúng kết hợp với nhau trước khi thiết kế và xây dựng một website hoàn chỉnh với đầy đủ tính năng.

Drupal là một nền tảng mạnh mẽ với hàng ngàn module hỗ trợ, tuy nhiên, việc làm quen với nó đòi hỏi một khoản đầu tư thời gian ban đầu Khi đã thành thạo, người dùng sẽ nhận thấy những lợi ích to lớn mà Drupal mang lại Cộng đồng nhiệt huyết xung quanh Drupal chứng minh sức mạnh của nền tảng này trong việc giúp các nhà phát triển web tạo ra các trang web từ đơn giản đến phức tạp.

Nguyên tắc hoạt động của Drupal

Nhiều người thường quan niệm rằng website chỉ là một tập hợp các trang tĩnh, kèm theo một số tính năng riêng như blog hoặc hệ thống tin tức Khi quản lý website, họ lại nhìn nhận chúng như các thành phần trong một cấu trúc hình cây, nơi mà các trang cần gọi đến và chỉnh sửa được tổ chức một cách kế thừa.

Drupal xử lý các loại nội dung như node, bao gồm trang tĩnh, bài viết blog và tin tức, theo một cách thống nhất Tất cả các loại node này được lưu trữ đồng nhất, cho phép trình bày khác nhau thông qua các menu chỉnh sửa, views và blocks.

Trong Drupal, các Node giữ thông tin có cấu trúc liên quan đến bài viết trên blog hoặc bài tin tức, bao gồm tiêu đề, nội dung, ngày viết, tác giả, ngày xuất bản và ngày hết hạn Các thẻ HTML cung cấp thông tin, trong khi thẻ CSS đảm bảo cách trình bày, tương tự như cách mà các Node tổ chức nội dung trong hệ thống menu.

LÊ ĐỨC TRÍ 49K - CNTT TRANG 9 đề cập đến việc sử dụng Taxonomy để gắn thẻ phân loại nội dung và xây dựng kiến trúc thông tin Cuối cùng, hệ thống bao gồm các module như Panels, giúp điều khiển toàn bộ những gì người dùng thấy trên trang web.

Với việc lưu giữ các lớp riêng biệt, bạn có thể tùy chỉnh trải nghiệm người dùng bằng cách trình bày nội dung phù hợp với nhu cầu và vai trò cụ thể của từng đối tượng Các trang có thể được nhóm lại, sắp xếp theo thứ tự ưu tiên khác nhau, và nội dung cũng như chức năng có thể được hiển thị hoặc ẩn tùy theo yêu cầu.

Sơ đồ cấu trúc của Drupal

Sơ đồ cấu trúc Drupal có năm lớp chính:

LÊ ĐỨC TRÍ 49K - CNTT TRANG 10

1 Cơ bản nhất của hệ thống là là tập hợp các Node ( Data pool) Trước thực hiện bất cứ thứ gì có thể được hiện thị trên website nó phải được nhập vào như là dữ liệu

2 Lớp tiếp theo chứa các module Module là các plugin về một tính năng nào đó và nó có thể là một phần của core Drupal (tích hợp trong core) hoặc được đóng góp bởi các thành viên trong công đồng Drupal Các Module xây dựng dựa trên chức năng core của Drupal, cho phép bạn tùy biến data items (fields) trên các loại Node của bạn; thiết lập thương mại điện tử, lập trình phân loại và hiển thị nội dung (tùy chỉnh đầu ra được kiểm soát bởi các bộ lọc bạn xác định); và nhiều hơn nữa Có hàng ngàn modules khác nhau trong các kho lưu trữ đang phát triển nhanh chóng của Drupal Đó là những nỗ lực đổi mới và hợp tác của tất cả mọi người từ cá nhân đến các tập đoàn lớn

3 Lớp tiếp theo, chúng ta tìm thấy các Blocks và các Menus Blocks thường cung cấp các đầu ra từ một module hoặc có thể được tạo ra để hiển thị bất cứ điều gì bạn muốn, và sau đó có thể được đặt tại các điểm khác nhau trong template layout (theme) của bạn Blocks có thể được cấu hình đầu ra theo nhiều cách khác nhau, cũng như chỉ hiển thị trên các trang nhất định được xác định, hoặc chỉ cho người dùng nhất định được xác định

4 Lớp tiếp theo là cấp quyền cho người sử dụng Đây là nơi mà thiết lập được cấu hình để xác định những kiểu khác nhau của người dùng được phép thực hiện và nhìn thấy Các quyền được quy định cho các vai trò khác nhau, và từng người dùng được gán các vai trò này theo đúng quy định

5 Lớp trên cùng là các themes của site (các "Skin") Nó được tạo thành chủ yếu của XHTML và CSS, với một số biến PHP trộn lẫn

Sử dụng Drupal khi nào

Drupal là một framework mạnh mẽ và linh hoạt, lý tưởng cho việc xây dựng mọi loại trang web Dưới đây là một số trường hợp mà Drupal trở thành lựa chọn đặc biệt thích hợp.

LÊ ĐỨC TRÍ 49K - CNTT TRANG 11

Bạn cần một trang web linh hoạt, có khả năng phát triển theo nhiều hướng khác nhau Chẳng hạn, bạn có thể bắt đầu với một blog và sau đó mở rộng thêm các tính năng như wiki, thương mại điện tử hoặc diễn đàn.

 Bạn cần một trang web có thể dễ dàng được cấu hình để tương tác với các trang web khác hoặc với các công nghệ khác

 Bạn cần một trang web có thể dễ dàng xử lý các hình thức phức tạp và quy trình công việc

 Bạn cần có khả năng tạo ra các loại nội dung của riêng bạn Ví dụ, bạn cần phải thêm một trường tùy biến cho trang web

 Bạn cần có khả năng để nhanh chóng tổ chức và hiển thị danh sách các thông tin

 Một hoặc nhiều địa chỉ module Drupal mà bạn cần

 Bạn cần phải nhanh chóng phát triển các chức năng tùy chỉnh

Tuy nhiên, nếu chỉ dùng cho một bài toán cụ thể nào đó, Drupal có thể không phải là sự lựa chọn tốt nhất:

Nếu bạn chỉ cần viết một blog cá nhân, hãy xem xét các nền tảng chuyên biệt như WordPress hoặc Blogger Mặc dù Drupal có thể được sử dụng như một nền tảng blog, nhưng các phần mềm blog chuyên dụng thường cung cấp giao diện quản trị dễ sử dụng hơn.

Nếu mục tiêu của bạn chỉ là tạo một wiki, bạn nên cân nhắc sử dụng phần mềm chuyên dụng như MediaWiki hoặc một giải pháp lưu trữ wiki trên máy Mặc dù bạn có thể cấu hình Drupal để cho phép mọi người chỉnh sửa nội dung, việc sử dụng một giải pháp chuyên biệt sẽ đơn giản hơn và hiệu quả hơn, đặc biệt khi kết hợp với các module như wikitools và Diff để nâng cao tính năng wiki.

Nếu bạn chỉ cần một hệ thống diễn đàn thảo luận, hãy xem xét SimpleMachines hoặc phpBB với nhiều tính năng hữu ích Nếu bạn muốn một diễn đàn riêng tư, Vanilla cũng là một lựa chọn tốt với nhiều plug-ins hỗ trợ.

LÊ ĐỨC TRÍ 49K - CNTT TRANG 12 nhiên, module forum của Drupal với các tính năng nâng cao như diễn đàn có thể phù hợp hơn để mở rộng

Drupal ngày càng trở nên dễ sử dụng với mỗi bản phát hành mới, nhưng vẫn yêu cầu người dùng dành thời gian để tìm hiểu Nếu bạn hoặc tổ chức của bạn không sẵn sàng đầu tư thời gian để học về Drupal, hoặc không thể thuê chuyên gia, thì đây có thể không phải là lựa chọn tốt nhất cho bạn.

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à các plug-in có khả năng chỉnh sửa và mở rộng tính năng cho các trang web sử dụng Drupal Hầu hết các tính năng cần thiết đều có thể được cung cấp bởi một mô-đun, hoặc thông qua việc kết hợp nhiều mô-đun khác nhau để giải quyết các vấn đề cụ thể.

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

Tất cả các đầu ra trong Drupal có khả năng tùy biến hoàn toàn, cho phép bạn dễ dàng điều chỉnh mọi thành phần giao diện của website theo nhu cầu cụ thể.

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

Drupal cho phép người dùng định nghĩa nhiều loại nội dung mới như blog, sự kiện và bản tin mà không cần lập trình Các mô-đun của Drupal hỗ trợ quản trị viên tạo ra các trường tùy biến cho những loại nội dung này.

Tối ưu hóa công cụ tìm kiếm

Drupal cung cấp hệ thống tạo đường dẫn thân thiện với người dùng, đảm bảo tất cả đầu ra đều đạt tiêu chuẩn Những tính năng này giúp các website được xây dựng trên nền tảng Drupal trở nên thân thiện hơn với công cụ tìm kiếm.

Drupal có hệ thống phân quyền và vai trò mạnh mẽ, cho phép phân quyền linh hoạt cho từng vai trò hoặc đến từng mô-đun cụ thể Mỗi mô-đun trong Drupal có khả năng định nghĩa và quản lý quyền hạn riêng, giúp tối ưu hóa việc kiểm soát truy cập và bảo mật cho người dùng.

LÊ ĐỨC TRÍ 49K - CNTT TRANG 13

Cách làm việc của Drupal

Nền tảng công nghệ

Drupal là một phần của technology stack có chứa một số công nghệ quan trọng:

 Server - Máy chủ là một máy tính cung cấp thông tin, dịch vụ cho các máy tính khác trên mạng

 Hệ điều hành - Các phần mềm chạy các máy chủ Unix, Linux, BSD, OS X và Windows là một số ví dụ

Drupal sử dụng cơ sở dữ liệu để lưu trữ nội dung và cấu hình trang web, trong khi các tệp media thường được lưu trữ trong hệ thống file của máy chủ.

 Web server - Các thành phần phần mềm chịu trách nhiệm phục vụ các trang web

Ví dụ như Apache và Microsoft IIS

 PHP - PHP là một ngôn ngữ lập trình cho phép các nhà phát triển web để tạo ra nội dung động và tương tác với cơ sở dữ liệu

Drupal là một framework mạnh mẽ cho việc xây dựng trang web động, cung cấp nhiều tính năng như quản trị người dùng, luồng xuất bản, khả năng thảo luận, và tập hợp tin tức Nó cũng hỗ trợ quản lý siêu dữ liệu thông qua từ vựng và xuất bản XML, phục vụ cho việc chia sẻ nội dung hiệu quả Một cài đặt Drupal thường bao gồm sự kết hợp giữa core và các module mở rộng.

LÊ ĐỨC TRÍ 49K - CNTT TRANG 14

Phần nhân (core)

Phần nhân của Drupal là một khung sườn tối giản, được tải về từ drupal.org, cung cấp các chức năng cơ bản để hỗ trợ các thành phần khác trong hệ thống.

Phần lõi của Drupal bao gồm mã nguồn cần thiết để khởi động hệ thống khi nhận yêu cầu, cùng với một thư viện các hàm thường dùng và các mô-đun cung cấp chức năng cơ bản như quản trị người dùng, bộ từ tố và hệ thống template.

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

LÊ ĐỨC TRÍ 49K - CNTT TRANG 15

Giao diện quản trị

Khác với nhiều hệ thống quản lý nội dung (CMS) khác, Drupal không sở hữu giao diện quản trị tách biệt; giao diện trang web và giao diện quản trị mặc định là một Người dùng đầu tiên cài đặt Drupal sẽ có quyền cao nhất và toàn quyền kiểm soát trang web.

Mô-đun

Drupal là một khung phát triển mô-đun linh hoạt, cho phép người dùng bật hoặc tắt các mô-đun tùy ý Khi cần tính năng mới, bạn có thể kích hoạt các mô-đun có sẵn, cài đặt mô-đun từ trang chủ Drupal hoặc tự viết mô-đun theo yêu cầu.

Hình 2 Mô hình modular

LÊ ĐỨC TRÍ 49K - CNTT TRANG 16

Tính năng và sự thay đổi trong Drupal có thể được thêm vào thông qua các mô-đun, nhờ vào mẫu thiết kế điều khiển ngược Trong quá trình thực thi, khung phát triển sẽ gọi các hàm chức năng trong mô-đun, được biết đến trong hệ thống Drupal với tên gọi là các hooks.

Hooks

Hooks trong Drupal được xem như các sự kiện nội bộ, thường được gọi là callbacks Chúng có quy ước đặt tên hàm riêng và không yêu cầu phải đăng ký để lắng nghe các sự kiện này.

(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

Khi người dùng đăng nhập vào website Drupal, hệ thống sẽ tạo ra một hook người dùng, cho phép bất kỳ hàm nào được đặt tên theo quy tắc mô-đun + tên hook được thực thi.

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ực thi thông qua hệ thống hooks trong mô-đun

LÊ ĐỨC TRÍ 49K - CNTT TRANG 17

Hình 3 Hệ thống hook

LÊ ĐỨC TRÍ 49K - CNTT TRANG 18

Giao diện (theme)

Trong Drupal, lớp giao diện đảm nhiệm việc tạo mã HTML (cũng như JSON, XML, v.v.) và truyền tải đến trình duyệt Hệ thống giao diện mà Drupal sử dụng có thể bao gồm các công nghệ phổ biến như Smarty, PHPTal và PHPTemplate.

Drupal cho phép tùy biến và viết lại giao diện website qua nhiều cách, từ việc đơn giản như thêm mã CSS để ghi đè các thuộc tính đã có theo class và ID Để hoàn toàn kiểm soát và tối ưu hóa mã HTML, người dùng 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.

LÊ ĐỨC TRÍ 49K - CNTT TRANG 19

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

LÊ ĐỨC TRÍ 49K - CNTT TRANG 20

Node

Tất cả nội dung trong Drupal đều kế thừa từ loại đơn giản nhất gọi là node, bao gồm bài blog, bản tin, nhiệm vụ dự án hay bất kỳ loại nội dung nào với cấu trúc dữ liệu chung Điều này mang lại sự mềm dẻo và linh hoạt cho hệ thống Drupal, cho phép mở rộng thành các giải pháp như CMS, bán hàng trực tuyến và quản lý dự án.

Block

Block là những phần nội dung trên website có thể được bật hoặc tắt tùy thuộc vào vị trí xác định trong giao diện Chẳng hạn, block có thể hiển thị số người đang trực tuyến, chứa liên kết đến các bản tin mới nhất hoặc danh sách sự kiện đang diễn ra Các block này thường được đặt trong các khu vực như sidebar, header hoặc footer và có thể được cấu hình để hiển thị theo loại nội dung, trên trang chủ hoặc theo các điều kiện cụ thể khác.

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

LÊ ĐỨC TRÍ 49K - CNTT TRANG 21

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

LÊ ĐỨC TRÍ 49K - CNTT TRANG 22

Cấu trúc thư mục

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

Hình 8 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 trong Drupal chứa các cấu hình cài đặt đa dạng cho trang web Khi cài đặt lần đầu, Drupal sẽ yêu cầu người dùng chọn cấu hình phù hợp nếu có nhiều tùy chọn Điều này giúp các nhà phát triển dễ dàng đóng gói Drupal thành các cấu hình khác nhau, chẳng hạn như cho thương mại điện tử hoặc cổng thông tin Một trong những bộ cấu hình nổi bật nhất của Drupal là Open Atrium, hỗ trợ phát triển các ứng dụng web hiệu quả.

LÊ ĐỨC TRÍ 49K - CNTT TRANG 23

Thư mục scripts bao gồm mã nguồn phục vụ cho việc kiểm tra cú pháp, làm sạch mã nguồn (cache), vận hành Drupal qua giao diện dòng lệnh và thực hiện các thao tác khác liên quan đến 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.

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

Vai trò của web server

Drupal hoạt động trên nền tảng máy chủ web, thường là Apache Khi máy chủ web phát hiện tệp tin htaccess, nó sẽ khởi tạo các cấu hình cho PHP Tất cả các yêu cầu đến Drupal đều được xử lý thông qua index.php Chẳng hạn, khi một yêu cầu với URL http://example.com/foo/bar được gửi, sẽ có các bước xử lý tương ứng diễn ra.

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

LÊ ĐỨC TRÍ 49K - CNTT TRANG 24

Drupal coi http://example.com/index.php?q=foo/bar và http://example.com/foo/bar là giống nhau do chúng có chung một đường dẫn nội bộ, tạo nên khả năng trong suốt đường dẫn tuyệt vời Đối với các web server khác như Microsoft IIS, có thể sử dụng mô-đun ISAPI Rewrite để đạt được tính năng này, và 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

Drupal khởi động tự động khi nhận yêu cầu, thông qua một chuỗi các giai đoạn khởi động được xác định trong tệp bootstrap.inc Quá trình này diễn ra theo từng phần cụ thể để đảm bảo hiệu suất và tính ổn định của hệ thống.

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 yêu cầu khả năng đáp ứng cao, hệ thống bộ đệm có thể được kích hoạt trước khi kết nối với cơ sở dữ liệu Hệ thống này sẽ gọi các tệp PHP chứa hàm page_cache_fastpath(), từ đó trả về nội dung cho trình duyệt Để bật tính năng này, cần thiết lập biến page_cache_fastpath thành TRUE và định nghĩa tệp tin được nhúng thông qua biến cache_inc với đường dẫn đến tệp tin.

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

Trong quá trình này, loại cơ sở dữ liệu sẽ được xác định và một kết nối sẽ được khởi tạo để thực hiện 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 cho phép cấm các máy chủ dựa trên tên host hoặc địa chỉ IP, giúp nhanh chóng kiểm tra và loại bỏ các yêu cầu từ máy chủ bị cấm.

LÊ ĐỨC TRÍ 49K - CNTT TRANG 25

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

Drupal tận dụng các tính năng ưu việt của session có sẵn trong PHP và bổ sung thêm nhiều tính năng khác Trong giai đoạn này, session sẽ được khởi động hoặc tái lập, cùng với việc sử dụng biến toàn cục.

Biến $user chứa thông tin của người dùng hiện tại và được khởi tạo tại đây, nhưng không phải tất cả các thuộc tính của nó đều được khởi tạo Để lấy toàn bộ thông tin của biến này, bạn có thể sử dụng hàm user_load() khi cần thiết.

Bộ đệm cuối cho trang

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

Trong giai đoạn này, Drupal sẽ khởi động tính năng hỗ trợ đa ngôn ngữ, giúp xác định ngôn ngữ nào sẽ được áp dụng cho trang web hiện tại.

Trong giai đoạn này, mã xử lý đường dẫn và tên của đường dẫn sẽ được gọi, giúp giải quyết các vấn đề liên quan đến đường dẫn trong Drupal.

Quá trình khởi động hoàn tất khi các thư viện chung được nạp, bao gồm hỗ trợ giao diện, gọi hàm callback, xử lý tệp tin, Unicode, và các thư viện xử lý hình ảnh.

LÊ ĐỨC TRÍ 49K - CNTT TRANG 26

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

Các hàm callback xác định hàm nào cần được gọi để xử lý yêu cầu Chẳng hạn, với yêu cầu nội dung như http://example.com/q=?node/3, hàm node_page_view() trong node.module sẽ được gọi Quá trình này sẽ lấy dữ liệu của node từ cơ sở dữ liệu và đưa vào một mảng dữ liệu có cấu trúc, sau đó tiến hành khởi tạo giao diện (thememing).

LÊ ĐỨC TRÍ 49K - CNTT TRANG 27

Hình 11 Quá trình xử lý khi có yêu cầu

LÊ ĐỨC TRÍ 49K - CNTT TRANG 28

1.3.4 Tạo giao diện cho dữ liệu

Quá trình này nhận và xử lý dữ liệu để tạo mã HTML, XML hoặc định dạng khác Drupal sử dụng theme đã được cài đặt để chuyển đổi dữ liệu, và kết quả cuối cùng sẽ được gửi đến trình duyệt web hoặc các HTTP client khác.

Hình 12 Quá trình thực thi xử lý giao diện

Xử lý yêu cầu

Các hàm callback sẽ xác định hàm cần gọi và xử lý cho từng yêu cầu Chẳng hạn, với yêu cầu nội dung như http://example.com/q=?node/3, hàm node_page_view() trong node.module sẽ được kích hoạt Quá trình này sẽ lấy dữ liệu node từ cơ sở dữ liệu và lưu trữ trong một mảng có cấu trúc, sau đó tiến hành khởi tạo giao diện (thememing).

LÊ ĐỨC TRÍ 49K - CNTT TRANG 27

Hình 11 Quá trình xử lý khi có yêu cầu

LÊ ĐỨC TRÍ 49K - CNTT TRANG 28

Tạo giao diện cho dữ liệu

Quá trình này chuyển đổi dữ liệu nhận được thành mã HTML, XML hoặc định dạng khác, sử dụng theme đã được thiết lập trong Drupal Kết quả cuối cùng được gửi đến trình duyệt web hoặc các HTTP client khác.

Hình 12 Quá trình thực thi xử lý giao diện

LÊ ĐỨC TRÍ 49K - CNTT TRANG 29

2 CHƯƠNG 2: XÂY DỰNG WEBSITE CÔNG TY TNHH ĐẠI LONG

Công ty TNHH Đại Long chuyên cung cấp dịch vụ sơn tĩnh điện, cơ khí và thiết bị phòng cháy chữa cháy Hiện nay, công ty đang có nhu cầu xây dựng một website để nâng cao sự hiện diện trực tuyến và phục vụ khách hàng tốt hơn.

- Quảng bá thông tin, hình ảnh, thương hiệu của công ty

- Giới thiệu sản phẩm, dịch vụ của công ty

Website xây dựng phải đáp ứng một số nhu cầu:

- Giao diện thân thiện, bắt mắt, phù hợp với phong cách công ty

- Sản phẩm được phân theo các mục: o Sơn tĩnh điện o Cơ khí o Thiết bị PCCC

Chức năng liên hệ trên website cho phép khách truy cập đăng câu hỏi và yêu cầu báo giá Tất cả thông tin này sẽ được gửi trực tiếp đến email của quản trị hệ thống.

- Tối ưu hóa với các công cụ tìm kiếm nhằm tăng lượng truy cập cho website

- Chi phí và thời gian phát triển là tối thiểu.

Xây dựng website với Drupal

Phân loại nội dung sử dụng Taxonomy

Hệ thống phân loại Taxonomy trong Drupal 7 rất mạnh mẽ và linh hoạt, cho phép người dùng dễ dàng phân loại tin tức theo các mục Để thực hiện điều này, người dùng cần tạo một Vocabulary có tên “Loại tin” và sau đó thêm các tin vào phân loại đó.

Hình 13 Sử dụng Taxonomy phân loại tin

LÊ ĐỨC TRÍ 49K - CNTT TRANG 32

Tạo menu dropdown cho trang web

Hệ thống menu của Drupal cho phép tạo menu theo yêu cầu

Hình 14 Menu chính của trang web

Hình 15 Menu bên trái

LÊ ĐỨC TRÍ 49K - CNTT TRANG 33

Tạo các khối hiển thị dữ liệu

Để tạo các khối hiển thị dữ liệu như: tin liên quan, tin mới, tin y học thường thức… cách thức chung trong Drupal thường sử dụng mô-đun views

Hình 16 Cấu hình một view

LÊ ĐỨC TRÍ 49K - CNTT TRANG 34

Thiết kế website

Giao diện trang chủ

Giao diện trang chủ đầy đủ các chức năng giúp người truy cập nắm bắt được toàn bộ hoạt động của trang web

- Tin mới: Điểm 1, 2 tin tức mới

- Hotline, báo giá, thư điện tử…

LÊ ĐỨC TRÍ 49K - CNTT TRANG 35

Giao diện trang chi sản phẩm

Liệt kê sản phẩm theo loại sản phẩm:

- Breadcrumb: cho biết thư mục hiện tại người dùng đang theo dõi Tiện lợi trong việc điều hướng và quay về vị trí trước

LÊ ĐỨC TRÍ 49K - CNTT TRANG 36

Giao diện trang quản trị

Trang quản trị được thiết kế đầy đủ chức năng cho người quản trị

- Blocks: cấu hình các khối blocks

- Contact form: quản lý tạo form liên hệ

- Content types: tạo và quản lý các loại nội dung của trang web

- Menus: tạo và quản lý các menu cho trang web

- Taxonomy: tạo và quản lý bộ từ tố

- Views: tạo và quản lý các views hiển thị dữ liệu cho trang web

LÊ ĐỨC TRÍ 49K - CNTT TRANG 37

Trang quản trị nội dung

- Lọc các loại nội dung theo: loại, tình trạng để tiện quản lý

- Chọn một hoặc nhiều nội dung và áp dụng các thao tác lên toàn bộ

LÊ ĐỨC TRÍ 49K - CNTT TRANG 38

Ngày đăng: 16/09/2021, 16:09

w