1 CHƯƠNG 1 GIỚI THIỆU DRUPAL 1.1 Khái niệmDrupal là một hệ quản trị nội dung CMS mã nguồn mở được sử dụng phổ biến nhất trênthế giới để xây dựng trang web.. Ngoài việc cung cấp chonhững
Trang 1LỜI NÓI ĐẦU
Hiện nay, xu hướng hội nhập và hợp tác quốc tế là một nhu cầu tất yếu đối với mọi doanhnghiệp, tổ chức và cá nhân có tham vọng phát triển thị trường, tìm kiếm đối tác mới, mởrộng sản xuất Bằng hình thức quảng cáo doanh nghiệp sẽ quảng bá thương hiệu, giớithiệu sản phẩm dịch vụ của mình tới các Doanh nghiệp khách hàng, đối tác và người tiêudùng Doanh nghiệp có thể quảng cáo theo các hình thức truyền thống như:
- Xây dựng đoạn phim quảng cáo truyền hình: hiệu quả nhưng chi phí cao
- Quảng cáo báo chí: chi phí không quá cao nhưng không thật sự hiệu quả
- Quảng cáo thông qua tờ rơi: giới hạn về địa lý
- Xây dựng các chương trình quảng cáo tại các tụ điểm trung tâm: hiệu quả caonhưng chi phí bỏ ra quá lớn không phù hợp với nhiều doanh nghiệp…
Cùng với sự phát triển mạnh mẽ của hạ tầng về viễn thông – thông tin liên lạc, doanhnghiệp còn có thể dùng website làm công cụ quản lí, quảng bá thương hiệu, phát triểnkinh doanh
Đề tài “Phát triển website bằng Drupal” nghiên cứu cách phát triển website bằng bộ mãnguồn mở mạnh mẽ Drupal nhằm cung câp thêm một công cụ phát triển website cho cácDoanh nghiệp
Đề tài gồm 2 phần chính:
- Phần 1: Giới thiệu về các ưu điểm, tính năng, cách xử lý của hệ thống Drupal.
- Phần 2: Mô tả cách xây dựng website cho công ty TNHH Đại Long
Trang 2MỤC LỤC
1 CHƯƠNG 1 GIỚI THIỆU DRUPAL 4
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 11
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 17
1.2.6 Giao diện (theme) 18
1.2.7 Node 21
1.2.8 Block 21
1.2.9 Cấu trúc thư mục 23
1.3 Xử lý một yêu cầu (request) 24
1.3.1 Vai trò của web server 25
Trang 31.3.2 Quá trình khởi động 25
1.3.3 Xử lý yêu cầu 27
1.3.4 Tạo giao diện cho dữ liệu 30
2 CHƯƠNG 2: XÂY DỰNG WEBSITE CÔNG TY TNHH ĐẠI LONG 31
2.1 Xây dựng website với Drupal 31
2.1.1 Phân loại nội dung sử dụng Taxonomy 32
2.1.2 Tạo menu dropdown cho trang web 34
2.1.3 Tạo các khối hiển thị dữ liệu 35
2.2 Thiết kế website 36
2.2.1 Giao diện trang chủ 36
2.2.2 Giao diện trang chi sản phẩm 37
2.2.3 Giao diện trang quản trị 38
2.2.4 Trang quản trị nội dung 38
KẾT LUẬN 40
TÀI LIỆU THAM KHẢO 42
Trang 41 CHƯƠNG 1 GIỚI THIỆU DRUPAL 1.1 Khái niệm
Drupal là một hệ quản trị nội dung (CMS) mã nguồn mở được sử dụng phổ biến nhất trênthế giới để xây dựng trang web Xây dựng trang web với Drupal thì vấn đề cốt lõi là kếthợp nhiều “khối nội dung” (building block) với nhau để tùy biến website của theo cácchức năng yêu cầu Website xây dựng bởi Drupal có thể được bảo trì, phát triển bằngnhững khung nhập nội dung trực tiếp (online form) mà không phải thay đổi mã nguồn(code) bằng tay Drupal hoàn toàn miễn phí, ngay tại trang chủ của Drupal (drupal.org)
có hàng ngàn thư viện để phục vụ cho các nhu cầu đa dạng trong việc xây dựng website Nhờ những tính năng mạnh mẽ của mình, Drupal còn được coi là một khung sườn pháttriển phần mềm (Content Management Framework – CMF) Ngoài việc cung cấp chonhững người quản trị trang web (webmasters) một công cụ xây dựng website, nó còngiúp cho các lập trình viên và nhà phát triển nhiều cách để tùy biến Drupal sử dụng cácmô-đun (plug-in module) Tất cả mọi thành phần của Drupal đề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ành cô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 700thà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ìnhviê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àiliệu, hỗ trợ người dùng, dịch thuật và các công đoạn quan trọng khác của dự án
Ngày 5 tháng 1 năm 2011, cộng đồng Drupal trên toàn thế giới cùng với Hiệp hội Drupalđón chào việc công bố chính thức ra mắt Drupal 7, nền tảng web được đánh giá là mạnhnhất hiện nay
Dự án phát triển Drupal 7 kết hợp giữa các chỉ dẫn của các chuyên gia công nghệ, cùngvớ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ệc cải tiếncá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, truy xuất và tạonộ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ơn nửatriệu 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
Trang 51.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ềunà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 đa phương tiệnnhư 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 York Observer, 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ệp hội công nghiệp điện tử (the ElectronicFrontier Foundation) cũng sử dụng Drupal để xây dựng cổng thông tin (portal) UbuntuLinux, Eclipse, Firefox và jQuery là những dự án mã nguồn mở hiện đang sử dụngDrupal để xây dựng trang cộng đồng phát triển cho dự án Ngoài ra còn có các trang webcủa các blogger nổi tiếng như Tim Berners-Lee, Heather B.Armstrong (Dooce), mạng xãhội BlogHer, và Merlin Mann cũng sử dụng Drupal để phát triển
1.1.2 Tư tưởng của Drupal
Trang 6Một giải pháp xây dựng website hiệu quả cần có sự cân bằng giữa sự đơn giản và sự linhhoạt Nếu một hệ thống quá đơn giản, nó chỉ có thể sử dụng được cho một mục đích duynhất, nhưng nếu nó quá linh hoạt, nó sẽ khó tiếp cận đối với những người mới.
Drupal cố gắng để dung hòa được sự mâu thuẫn của các mục tiêu đó bằng cách cung cấpcho người dùng với các công cụ cần thiết để xây dựng một giải pháp Quản trị nội dungthông tin , Một mặt cung cấp một số thành phần dựng sẵn để giúp họ có thể bắt đầu ngay
Vì vậy, nó có thể được hiểu như là một hệ thống quản lý nội dung (CMS) và là mộtframework quản lý nội dung (CMF) - một hệ thống cố chứa những thế mạnh của cả hai,
và loại bỏ các nhược điểm của nó
Hầu hết các CMS giống như một chiếc thuyền đồ chơi hoặc chiếc xe tải đồ chơi – Cácchức năng cụ thể đã được triển khai về cách sử dụng của nó, và nó sẽ khó khăn khi bạncần thay đổi cho phù hợp với mục đích sử dụng của mình Framework cung cấp cho bạnnhững khối nguyên vật liệu và bạn cần biết một ngôn ngữ lập trình và có một tầm nhìnthiết kế rõ ràng, để đặt chúng lại với nhau
Trang 7đóng thành các khối xây dựng (ở dạng module) mà bạn cần để tạo ra một trang web phùhợp với nhu cầu của bạn, cho dù đó là một trang web tin tức, cửa hàng trực tuyến, mộtmạng xã hội, blog, wiki, hay cái gì khác hoàn toàn.
Để làm rõ hơn sự khác nhau giữa Drupal và các CMS khác, ta lấy ví dụ một trang báođiện tử Bạn muốn có khả năng viết bài mới trên site và bạn muốn ở ngoài trang chủ cómột mục hiện thị 5 bài mới nhất mà bạn viết Tiếp theo bạn muốn có một plugin để theodõi những bài viết mới nhất trong blog và đưa ra một danh sách trên trang chủ
Nếu bạn đang sử dụng một CMS thông thường, đầu tiên bạn sẽ cài đặt một plugin xử lýtin bài và có thể đặt blurbs ngắn trên trang chủ Tiếp theo, bạn cài đặt một plugin mà cóthể theo dõi các bài viết blog mới nhất và đặt một danh sách của nó lên trang chủ Mỗiplugin sẽ chỉ có trách nhiệm theo dõi và quản lý một loại nội dung cụ thể, và sẽ vẫn còntương đối cô lập với cái khác
Nhưng, điều gì xả ra khi trong đầu bạn xuất hiện ý tưởng muốn kết hợp 2 chức năng nàybằng cách hiện thị một danh sách các bài viết mới nhất trong blog về các bài viết tin tức
và những bài viết nào được xem nhiều hiển thị lên đầu tiên? Nếu bạn đang sử dụng một
xe “toy truck” CMS, bạn có thể giải quyết được nếu nhờ may mắn hoặc bạn phải thuêmột nhà phát triển để tùy biến các plugin ngay từ đầu Nhưng với sức mạnh về tư tưởngtiếp cận của Drupal, với cách thức trừu tượng khả năng quản lý, bạn có thể thực hiện nó
Trang 8với một bộ công cụ đầy đủ và tích hợp môtk cách nhanh chóng (Gợi ý: Chỉ cần sử dụngViews Module) Các modules của Drupal làm việc trong một chuẩn thống nhất và vớimột giao diện chung của hệ thống, khả năng xây dựng các loại nội dung thông minh vàkhả năng tùy biến cao nên vấn đề còn lại là kết hợp các module với nhau.
Tất nhiên, sự linh hoạt này có với một chi phí nhất định Trong khi với một xe “toytruck” bạn có thể hiểu biết ngay và sẵn sàng sử dụng mà không cần phải suy nghĩ nhiều,một bộ công cụ các khối xây dựng sẽ yêu câu bạn đọc sách hướng dẫn sử dụng trước tiên.Các khối xây dựng này có thể giải quyết được vấn đề nhưng bạn sẽ phải tìm hiểu làm thếnào chúng phù hợp được với nhau trước khi bạn thiết kế và xây dựng một website đầy đủcác tính năng
Với core là Drupal và hàng ngàn module được xây dựng trên nó đòi hỏi phải có sự đầu tưban đầu để tìm hiểu, nhưng nếu làm chủ được Drupal sẽ vô cùng bổ ích Cộng đồng đam
mê Drupal là một minh chứng cho sức mạnh của nó để giải phóng các nhà phát triển webtrong việc xây dựng các website từ đơn giản đến phức tạp
1.1.3 Nguyên tắc hoạt động của Drupal
Mọi người thường nghĩ một website là một tập hợp các trang tĩnh, với một số tính năng(như blog, or a news engine) được tách ra riêng biệt Khi họ quản lý website thì họ lạinghĩ chúng như thành phần của một cấu trúc hình cây kế thừa các trang mà họ muốn gọiđến và sửa
Với Drupal thì khác, xử lý các loại nội dung như là các biến thể trên một khái niệm giốngnhau: Node Static pages, blog posts, and news items (một số loại node có thể) đều đượclưu trữ cùng một cách là tất cả được lưu trữ trong cùng một cách, và cho phép trình bàykhác nhau bới các menu chỉnh sửa, views và các blocks
Nó giống như việc bạn xem một file code html, các thẻ html cung cấp thông tin, còn cácthẻ css trình bày nó Trong Drupal, các Node giữ các thông tin có cấu trúc liên quan đếnmột bài viết trên blog (chẳng hạn như tiêu đề, nội dung, ngày viết, tác giả) hoặc một bàitin tức (Tiêu đề, nội dung, ngày xuất bản, ngày hết hạn), trong khi hệ thống menu, nhưcũng như Taxonomy (gắn thẻ phân loại nội dung) và các view, tạo ra các kiến trúcthông tin Cuối cùng, hệ thống với các module giống như Panels, điều khiển tất cả những
gì mà người duyệt web nhìn thấy
Trang 9Với các lớp được lưu giữ riêng biệt, bạn có thể cung cấp một hướng hoàn toàn khác nhau
và trình bày nội dung của bạn với các người dùng khác nhau dựa trên nhu cầu cụ thể vàvai trò của họ Các trang có thể được nhóm khác nhau, ưu tiên theo thứ tự khác, và cácchức năng khác nhau và nội dung có thể được hiển thị hoặc ẩn khi cần thiết
1.1.4 Sơ đồ cấu trúc của Drupal
Sơ đồ cấu trúc Drupal có năm lớp chính:
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ệnbấ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
Trang 102 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ópbởi các thành viên trong công đồng Drupal Các Module xây dựng dựa trên chứcnăng core của Drupal, cho phép bạn tùy biến data items (fields) trên các loại Nodecủ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ùychỉ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óngcủ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 cungcấ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ườidù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ấuhì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ườidù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ủaXHTML và CSS, với một số biến PHP trộn lẫn
1.1.5 Sử dụng Drupal khi nào
Drupal là một framework mạnh mẽ và linh hoạt để xây dựng bất kỳ loại trang web nào.Dưới đây là một số trường hợp,mà Drupal là một lựa chọn đặc biệt thích hợp
Bạn cần một trang web đó là đủ linh hoạt để phát triển theo hướng nào Ví dụ, bạn
có thể bắt đầu với một blog, nhưng muốn tùy chọn thêm tính năng khác như mộtwiki, thương mại điện tử, diễn đàn vv
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 trangweb khác hoặc với các công nghệ khác
Trang 11 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ìnhcô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ảithê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 yêu cầu duy nhất của bạn là viết một blog cá nhân, bạn cũng có thể muốnđánh giá một trong những chuyên biệt hơn như nền tảng blog WordPress hoặc mộtgiải pháp lưu trữ blog như Blogger Mặc dù Drupal có thể phục vụ như là một nềntảng blog out-of-the-box, blog phần mềm cụ thể có thể có một giao diện quản trịđơn giản
Tương tự, nếu yêu cầu duy nhất của bạn là tạo ra một wiki, bạn có lẽ nên xem xét
sử dụng phần mềm chuyên dụng wiki như MediaWiki hoặc một giải pháp lưu trữtrên máy wiki Bạn chắc chắn có thể cấu hình Drupal để bất cứ ai có thể chỉnh sửanội dung (và thậm chí cho phép tính năng nâng cao wiki với sự giúp đỡ của một sốModuel như wikitools và Diff)), nhưng nó có thể đơn giản để bạn sử dụng mộtgiải pháp chuyên biệt hơn
Nếu yêu cầu duy nhất của bạn là chủ diễn đàn thảo luận, bạn sẽ muốn xem xét một
hệ thống như SimpleMachines hoặc phpBB với tập hợp nhiều tính năng hay củadiễn đàn, hoặc Vanilla có nhiều plug-ins Nếu bạn cần một diễn đàn riêng, tuynhiê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
Với mỗi bản phát hành, Drupal đang trở nên dễ dàng hơn để sử dụng, nhưng giốngnhư hầu hết các công cụ mạnh mẽ, nó sẽ luôn luôn cần có một quá trình tìm hiểu.Nếu bạn hay tổ chức của bạn không được chuẩn bị để dành thời gian tìm hiểu vềDrupal (hoặc nếu bạn không thể thuê chuyên gia Drupal), nó có thể không đượclựa chọn tốt nhất của bạn
Trang 12để 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àngthay đổ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, bảntin…) mà không cần phải lập trình Các mô-đun của Drupal có thể làm các điều này vàchấp nhận cho người quản trị tạo ra các trường tùy biến trong các loại nội dung mới đượctạo
Tối ưu hóa công cụ tìm kiếm
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âydự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ể đượcphân cho các vai trò khác nhau hoặc phân quyền đến tận các mô-đun Các mô-đun đều cóthể định nghĩa được quyền hạn và phân quyền theo các quyền hạn này
1.2 Cách làm việc của Drupal
1.2.1 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ínhkhác trên mạng
Trang 13 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ụ.
Cơ sở dữ liệu - Drupal sử dụng một cơ sở dữ liệu để lưu trữ nội dung và thiết lậpcấu hình cho trang web của bạn, một số nội dung như các tập tin media thôngthườ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 ranội dung động và tương tác với cơ sở dữ liệu
Drupal – Một Framework cho việc xây dựng các trang web động cung cấp mộtloạt các tính năng và dịch vụ bao gồm quản trị người dùng, luồng xuất bản, khảnăng thảo luận, tập hợp tin tức, các chức năng điều khiển siêu dữ liệu bằng cách sửdụng từ vựng và xuất bản XML cho các mục đích chia sẻ nội dung Một cài đặtDrupal thường bao gồm một kết hợp của core và các Module
1.2.2 Phần nhân (core)
Phần nhân của Drupal là một khung sườn theo hướng tối giản (lightweight framework).Đây chính là phần mã mà chúng ta tải về từ drupal.org Phần lõi cung cấp những chứcnăng cơ bản nhất và được sử dụng để hỗ trợ các thành phần khác của hệ thống
Trang 14Phần lõi bao gồm mã nguồn giúp cho hệ thống Drupal khởi động (bootstrap) khi nhận 1yê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 trong hình sau:
Hình 1 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 Giaodiệ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 trangweb
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óitrong các mô-đun Khi cần, bạn có thể bật hoặc tắt các mô-đun tùy ý Khi cần một tínhnăng mới thì có thể bật các mô-đun có sẵn, cài đặt các mô-đun được viết và chia sẻ trêntrang chủ Drupal hoặc viết một mô-đun mới theo yêu cầu
Trang 15Hình 2 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ẽ được gọ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
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
Trang 16Giả sử một người dùng đăng nhập vào website Drupal Vào thời điểm người dùng đăngnhậ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ực thithông qua hệ thống hooks trong mô-đun
Hình 3 Hệ thống hook
Trang 171.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ện phổ biến như
là Smarty, PHPTal, hoặc PHPTemplate
Trang 18Hình 5 Quá trình xử lý 1 theme
Trang 191.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ều nà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ực tuyến, quản lý dự án…
Hình 6 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 trong giaodiện website Ví dụ, block hiển thị số người đang online trên website, block chứa đườngdẫ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 đặtvà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ủ hay bất kỳ điều kiện nào
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