cách xây dựng module cho Drupal và các vấn đề liên quan

57 1.3K 7
cách xây dựng module cho Drupal và các vấn đề liên quan

Đ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

luận văn về cách xây dựng module cho Drupal và các vấn đề liên quan

i Lời cảm ơn Trước tiên, tôi muốn gửi lời cảm ơn sâu sắc đến TS Nguyễn Hải Châu, người đã hết lòng hướng dẫn tôi trong suốt quá trình thực hiện khóa luận tốt nghiệp. Tôi xin chân thành cảm ơn các thầy, các cô của trường đại học Công Nghệ đã cung cấp cho tôi nền tảng kiến thức quý báu sự giúp đỡ tận tình để tôi có thể hoàn thành khóa luận của mình. Tôi cũng muốn cảm ơn các bạn tôi, nhữ ng người đã giúp đỡ tôi đưa ra giải pháp lập trình hiệu quả khi thực hiện các thử nghiệm liên quan đến khóa luận này. Cuối cùng, tôi xin gửi lời cảm ơn đến gia đình người thân của tôi, những người đã luôn động viên giúp đỡ tôi trong suốt quá trình học tập thực hiện khóa luận. Hà Nội, ngày 20 tháng 5 năm 2010 Sinh viên Đặng Vĩnh Thiêm ii Tóm tắt khóa luận Drupal là một hệ quản trị nội dung được sử dụng khá phổ biến trên Internet trong thời gian gần đây. Với thiết kế mang tính module, Drupal cho phép mở rộng các tính năng một cách linh hoạt thông qua các module được thêm vào mà không phải thay đổi mã nguồn của hệ thống. Trong khoá luận này, chúng tôi tập trung tìm hiểu các kiến thức liên quan đến việc xây dựng module cho Drupal bao gồm triển khai các hook, làm việc với cơ sở dữ liệu, thực thi mã JavaScript, xử lý form v v. Đ i vào thực nghiệm, chúng tôi đã thiết kế cài đặt thành công một module có chức năng tích hợp bản đồ số Google Maps vào trang web bằng cách sử dụng API do Google cung cấp. Module này hướng tới các đối tượng website liên quan đến địa danh, địa điểm như website du lịch, tra cứu địa điểm trên bản đồ . iii Mục lục Lời cảm ơn .i   Tóm tắt khóa luận .ii   Mục lục . iii   Bảng từ viết tắt vi   Mở đầu 1   Chương 1: Tổng quan về Drupal 2   1.1 Giới thiệu về Drupal .2   1.2 Kiến trúc của Drupal 2   1.2.1 Kiến trúc module .3   1.2.2 Các module lõi .4   1.2.3 Hook 5   1.2.4 Giao diện .6   1.3 Các khái niệm cơ bản trong Drupal 6   1.3.1 Node 6   1.3.2 Người dùng (User) .8   1.3.3 Khối cách thể hiện trang .9   1.3.4 Thực đơn – Menu 10   1.3.5 Form 11   1.3.6 API cơ sở dữ liệu lược đồ .11   1.4 Hệ thống tệp tin thư mục của Drupal .11   1.5. Drupal xử lý yêu cầu như thế nào? 13   1.5.1 Vai trò của Web server 13   1.5.2 Quá trình khởi động .13   1.5.3 Xử lý yêu cầu .15   1.5.4 Giao diện hoá nội dung 15   1.6 Công cụ dành cho người phát triển .15   1.6.1 Module Devel 15   iv 1.6.2 Module Coder 16   Chương 2 - Xây dựng module cho Drupal .17   2.1 File .info .module .17   2.1.1 File .info 17   2.1.2 File .module .19   2.2 Chú thích trong mã nguồn 19   2.3 Một số hook cơ bản 20   2.4 Định nghĩa một hook mới .24   2.4.1 Cách tạo một hook .25   2.4.2 Sử dụng hook vào các module khác 26   2.5 Một số hàm quan trọng trong thư viện hàm của Drupal .26   2.6 Sử dụng Javascript AJAX/JSON .28   2.6.1 Giới thiệu về jQuery 28   2.6.2 jQuery hoạt động như thế nào .29   2.6.2.1 Sử dụng bộ lọc ID của CSS 29   2.6.2.2 Sử dụng XPath 29   2.6.3 jQuery trong Drupal 30   2.7 Form API 31   2.7.1 Quá trình thao tác với form .31   2.7.2 Một số thao tác cơ bản .34   2.7.2.1 Tạo form .34   2.7.2.2 Giao diện hoá form .35   2.7.2.3 Kiểm tra dữ liệu 35   2.7.2.4 Gửi form lên trang web 36   2.8 Làm việc với cơ sở dữ liệu .36   2.8.1 Định nghĩa các tham số trong CSDL .36   2.8.2 Một số truy vấn đơn giản .37   2.8.3 Lấy kết quả truy vấn 38   Chương 3: Xây dựng module tích hợp .40   v Google Maps vào Drupal 40   3.1 Giới thiệu về Google Maps 40   3.2 Nhúng bản đồ vào trang web 40   3.2.1 Tạo một bản đồ đơn giản .41   3.2.2 Dịch vụ Geocoder - Chuyển đổi giữa địa chỉ toạ độ 42   3.3 Xây dựng module Google Maps cho Drupal 42   3.3.1 Module Google Maps 42   3.3.1.1 File .info .42   3.3.1.2 File .module 43   3.3.1.3 Tạo thêm trường thông tin cho bài viết 43   Kết luận 46   Phụ lục A 47   A.1 Cài đặt module Google Maps 48   A.2 Chạy thử chương trình .50   Tài liệu tham khảo 47   vi Bảng từ viết tắt Từ viết tắt Cụm từ đầy đủ URI Uniform Resource Identifier CVS Concurrent Version System API Application Programming Interface CSDL Cơ sở dữ liệu CMS Content Management System 1 Mở đầu Trong thời đại Công nghệ thông tin ngày nay, các dịch vụ ứng dụng web ngày càng phát triển. Việc một cá nhân hay tổ chức sở hữu một website, một cổng thông tin là điều dễ thấy trên Internet. Để thiết kế một trang web phục vụ mục đích riêng, người dùng có nhiều lựa chọn. Một trong số đó là sử dụng hệ quản trị nội dung sẵn có để tổ chức xây dựng các trang thông tin. Vớ i mục đích đó, chúng tôi đã chọn Drupal, một trong các CMS phổ biến nhất, để thực hiện nghiên cứu. Sở dĩ chúng tôi chọn CMS này vì đây là một hệ mã nguồn mở miễn phí, được sử dụng rộng rãi được cộng đồng mạng phát triển ngày càng hoàn thiện. Drupal có thể được sử dụng trong nhiều mục đích như xây dựng cổng thông tin trực tuyến, website cá nhân, tổ chức, website thương mại, báo điện tử, thư viện hình ảnh . Hệ thống Drupal được thiết kế để có thể tuỳ biến theo mong muốn của người dùng việc tuỳ biến chỉ được thực hiện bằng cách thêm các module để làm tăng khả năng của hệ thống mà không thay đổi bộ nhân. Do đó, trong khoá luận này chúng tôi chú trọng tìm hiểu cách xây dựng module cho Drupalcác vấn đề liên quan. Chúng tôi hi vọng phần kiến thức tìm hiểu được trong khóa lu ận sẽ mạng lại những ý nghĩa tích cực trong thực tiễn. Ngoài phần mở đầu, bố cục của khóa luận gồm 3 chương sau: • Chương 1: Trình bày các kiến thức cơ bản về hệ thống Drupal cách hoạt động. • Chương 2: Tìm hiểu cách viết một module trong Drupal. • Chương 3: Đưa lý thuyết đã trình bày vào thực tế để thiết kế một module cụ thể. • Cuối cùng là phần kết luận hướng phát triển trong tương lai. 2 Chương 1: Tổng quan về Drupal 1.1 Giới thiệu về Drupal Drupal là một framework dùng cho phát triển phần mềm hướng module, một hệ thống quản trị nội dung miễn phí 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 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 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à "Framework cho ứng dụng Web" vì kiến trúc thông minh 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 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 các thiết lập. Hình 1.1. Các dịch vụ được sử dụng trong Drupal. 1.2 Kiến trúc của Drupal Nói một cách ngắn gọn thì Drupal là một hệ quản trị nội dung được viết bằng ngôn ngữ PHP sử dụng cơ sở dữ liệu quan hệ để lưu trữ (thông thường là MySQL). Mặc dù Drupal được viết bằng PHP nhưng lại không sử dụng hướng đối tượng mà sử dụng kiểu lập trình thủ tục truyền thống. Một trong số lý do đó là khi Drupal ra đời thì PHP chưa hỗ trợ mạnh về hướng đối tượng. Tuy nhiên, nhìn một cách tổng quát thì 3 Drupal vẫn áp dụng những nguyên lý trong lập trình hướng đối tượng: tính đóng gói, kế thừa, đa hình . Kiến trúc của Drupal có thể mô tả như biểu đồ dưới đây: Hình 1.2. Kiến trúc Drupal Ở trung tâm của kiến trúc là phần nhân gồm một tập các file chứa các đoạn mã nạp chương trình các thư viện quan trọng. Thư viện nhân Drupal đóng vai trò như lớp kết nối các modules. Phần này cung cấp các dịch vụ như kết nối quản lý cơ sở dữ liệu, quản lý bộ khung hook, thư viện trừu tượng phục vụ mail hình ảnh, hỗ trợ Unicode . Mặc dù nh ững thư viện này cung cấp các tính năng quan trọng nhưng sức mạnh thực sự của Drupal nằm ở kiến trúc kiểu module. 1.2.1 Kiến trúc module Module là một bộ gồm mã PHP các file hỗ trợ sử dụng API kiến trúc của Drupal tích hợp các thành phần mới vào trong framework của Drupal. Cơ chế module của Drupal được thiết kế để cung cấp một cách thức đồng nhất giúp người phát triển mở rộng khả năng của hệ thống. Những file tạo nên module được gộp vào một ví trí nhất định trong cấu trúc thư mục của Drupal. Khi Drupal cần thông tin về module nào đ ó, nó sẽ tìm trong những thư mục này. Mỗi module nằm ở một thư mục riêng có ít nhất là 2 file - một file 4 cung cấp thông tin về module một hay nhiều file khác chứa mã PHP thực hiện chức năng của module đó. Để một module sử dụng được thì nó phải được bật bởi người quản trị trang web. Drupal sẽ chuyển các yêu cầu của người dùng đến module đó nếu cần thiết. 1.2.2 Các module lõi Một số module có vai trò rất quan trọng trong hệ thống Drupal. Nếu gỡ bỏ hoặc vô hiệu hóa các module này sẽ dẫn đến Drupal mất đi các chức năng thiết yếu. Những module này được gọi là module lõi, được mặc định phân phối theo mã nguồn Drupal. Danh sách module lõi nằm ở Administer | Site building | Modules. Trong số này có 5 module quan trọng nhất là Block, Filter, Node, System User. Những module này không thể gỡ bỏ hoặc vô hiệu hóa. Hình 1.2.2. Danh sách các module lõi Một nét đặc biệt trong kiến trúc của Drupalcác module có thể tác động với nhau một cách dễ dàng. Bằng cách sử dụng cơ chế hook, dịch vụ mà các module khác nhau cung cấp có thể kết hợp với nhau để tạo nên các tính năng mạnh hơn mà không cần phải viết lại một lượng lớn mã nguồn. [...]... sao cho có thể được cải tiến mở rộng bằng cách sử dụng cơ chế hook Giao diện bao gồm một bộ tài nguyên bao gồm các mẫu PHP, CSS, Javascript hình ảnh, tạo nên bố cục cách trình bày cho nội dung trong Drupal Một giao diện đơn giản có thể được tạo ra bởi một vài file - một file định nghĩa cách trình bày, một file thông tin về giao diện một vài hình ảnh Bằng cách sử dụng mẫu có sẵn của Drupal, ... tìm hiểu cách viết một module cho Drupal 2.1 File info module Cấu trúc của một module có thể gồm nhiều tập tin khác nhau nhưng phải có ít nhất một tập tin .info một tập tin .module trong đó là tên của thư mục chứa module được tạo, tên này không được trùng với các module đã tồn tại trong hệ thống 2.1.1 File info Trước khi thực sự đi vào viết mã cho một module, ... đưa vào bản tin cách hiển thị chúng 24 2.4.1 Cách tạo một hook Việc định nghĩa một hook mới rất đơn giản, thậm chí chỉ cần một dòng mã Nhưng để thuận tiện hơn cho những người phát triển sử dụng sau này, hook nên được định nghĩa một cách chi tiết Có một số cách để làm cho hook trở nên dễ sử dụng triển khai Cách thứ nhất là thêm các thông tin chi tiết về hook vào trong khối tài liệu của đoạn mã Cách. .. niệm rất quan trọng trong việc phát triển module cho Drupal Cơ chế này giúp Drupal biết được phải gọi module nào khi xử lý các yêu cầu khác nhau từ người dùng Một yêu cầu của người dùng sẽ được Drupal xử lý qua một chuỗi các bước khác nhau Đầu tiên, phần lõi khởi động ứng dụng, định nghĩa các các biến và các hàm thường dùng Tiếp theo, hệ thống sẽ nạp các thư viện, giao diện module cần thiết ánh... cầu chuyển kết quả HTML cho trình duyệt để hiển thị tới người dùng 1.6 Công cụ dành cho người phát triển Drupal đưa ra một số công cụ đặc thù dành cho người phát triển module Drupal Những công cụ này được cung cấp bởi 2 module chủ yếu, có thể lấy từ trang web của Drupal, là module Devel module Coder 1.6.1 Module Devel Module này cung cấp một số công cụ đặc biệt hữu dụng cho việc phát triển Drupal, ... như thế Ví dụ, trong khi tạo nội dung cho một trang dạng View, Drupal có thể quét qua các module để tìm những hàm có tên _block() _view() với modulename được thay bằng tên của module cụ thể khi kiểm tra Những module chứa các hàm trên bổ sung cho các hook hook_block() hook_view() Khi Drupal tìm thấy những hàm đó thì sẽ thực thi chúng sử dụng dữ liệu lấy được để trả lời... mã cho module trong file module 18 2.1.2 File module File module là file quan trọng nhất trong một module, chứa các đoạn mã PHP thực hiện chức năng của module đó File này thông thường sẽ mở rộng một số hàm hook mà Drupal gọi tại các thời điểm nhất định đối với một yêu cầu Cũng giống như file info, file module được đặt tên theo quy tắc .module, trong đó là tên thư mục chứa module. .. ngôn ngữ shell Perl Thư mục Drupal themes cron Những tập lệnh tiện ích này được viết chứa các công cụ tạo khuôn mẫu giao diện mặc định cho Thư mục sites chứa các thay đổi đối với Drupal dưới dạng thiết lập, module giao diện Các module được thêm vào sẽ nằm trong mục sites có thư mục được đặt tên là default sites/all/modules Trong thư chứa các thiết lập mặc định cho hệ thống Drupal, được ghi... giao diện, người phát triển module có thể chọn những hook nào sẽ sử dụng những hook nào được bỏ qua Drupal không yêu cầu tất cả các hook đã định nghĩa phải được triển khai sử dụng Module có thể định nghĩa các hook riêng module khác có thể dùng chung các hook đó Theo cách này, cơ chế hook được mở rộng để cung cấp các chức năng phức 5 tạp Sử dụng hook thực chất là cách để người phát triển tương... về module này có ở: http:/ /drupal. org/project/devel 15 Các công cụ trên được hiển thị dưới dạng các mục trong một Khối Vì thế, sau khi cài đặt module Devel, người quản trị phải vào Administer | Site building | Modules để bật module vào mục Blocks để xác định ví trí hiện thị nội dung trên trang chủ Module này còn bao gồm các công cụ để xây dựng giao diện, bộ sinh mã macro để giả lập dữ liệu dành cho . trong khoá luận này chúng tôi chú trọng tìm hiểu cách xây dựng module cho Drupal và các vấn đề liên quan. Chúng tôi hi vọng phần kiến thức tìm hiểu. và giao diện mặc định cho Drupal. Thư mục sites chứa các thay đổi đối với Drupal dưới dạng thiết lập, module và giao diện. Các module được thêm vào

Ngày đăng: 13/04/2013, 10:00

Hình ảnh liên quan

Bảng từ viết tắt - cách xây dựng module cho Drupal và các vấn đề liên quan

Bảng t.

ừ viết tắt Xem tại trang 6 của tài liệu.
Hình 1.1. Các dịch vụ được sử dụng trong Drupal. - cách xây dựng module cho Drupal và các vấn đề liên quan

Hình 1.1..

Các dịch vụ được sử dụng trong Drupal Xem tại trang 8 của tài liệu.
Hình 1.2. Kiến trúc Drupal - cách xây dựng module cho Drupal và các vấn đề liên quan

Hình 1.2..

Kiến trúc Drupal Xem tại trang 9 của tài liệu.
Hình 1.2.2. Danh sách các module lõi - cách xây dựng module cho Drupal và các vấn đề liên quan

Hình 1.2.2..

Danh sách các module lõi Xem tại trang 10 của tài liệu.
Hình 1.3.1.a. Giao diện chọn nội dung cần tạo - cách xây dựng module cho Drupal và các vấn đề liên quan

Hình 1.3.1.a..

Giao diện chọn nội dung cần tạo Xem tại trang 13 của tài liệu.
Hình 1.3.1.b. Thêm chú thích vào bài viết - cách xây dựng module cho Drupal và các vấn đề liên quan

Hình 1.3.1.b..

Thêm chú thích vào bài viết Xem tại trang 14 của tài liệu.
Hình 1.3.3. Các vị trí đặt Blocks - cách xây dựng module cho Drupal và các vấn đề liên quan

Hình 1.3.3..

Các vị trí đặt Blocks Xem tại trang 16 của tài liệu.
Hình 1.4.a. Hệ thống tệp tin và thư mục của Drupal - cách xây dựng module cho Drupal và các vấn đề liên quan

Hình 1.4.a..

Hệ thống tệp tin và thư mục của Drupal Xem tại trang 17 của tài liệu.
Hình 1.4.b. Cây thư mục con của thư mục sites - cách xây dựng module cho Drupal và các vấn đề liên quan

Hình 1.4.b..

Cây thư mục con của thư mục sites Xem tại trang 19 của tài liệu.
Hình 2.1.1. Minh họa giao diện hiển thị tên module - cách xây dựng module cho Drupal và các vấn đề liên quan

Hình 2.1.1..

Minh họa giao diện hiển thị tên module Xem tại trang 24 của tài liệu.
Hình 2.3.a. Minh họa nội dung sử dụng hook_help(). - cách xây dựng module cho Drupal và các vấn đề liên quan

Hình 2.3.a..

Minh họa nội dung sử dụng hook_help() Xem tại trang 28 của tài liệu.
Hình 2.7.1. Quá trình xử lý form - cách xây dựng module cho Drupal và các vấn đề liên quan

Hình 2.7.1..

Quá trình xử lý form Xem tại trang 38 của tài liệu.
Hình 2.8.1. Quá trình thao tác với CSDL. - cách xây dựng module cho Drupal và các vấn đề liên quan

Hình 2.8.1..

Quá trình thao tác với CSDL Xem tại trang 43 của tài liệu.
Hình 3.2.1. Minh họa trang web tích hợp bản đồ Google Maps. - cách xây dựng module cho Drupal và các vấn đề liên quan

Hình 3.2.1..

Minh họa trang web tích hợp bản đồ Google Maps Xem tại trang 47 của tài liệu.
Hình 3.3.1.3.a. Giao diện tạo Block entry. - cách xây dựng module cho Drupal và các vấn đề liên quan

Hình 3.3.1.3.a..

Giao diện tạo Block entry Xem tại trang 50 của tài liệu.
Hình 3.3.1.3.b. Giao diện bài viết cùng với Block hiển thị bản đồ. - cách xây dựng module cho Drupal và các vấn đề liên quan

Hình 3.3.1.3.b..

Giao diện bài viết cùng với Block hiển thị bản đồ Xem tại trang 51 của tài liệu.
Hình A.1.a. Bật các module trong trang quản trị. - cách xây dựng module cho Drupal và các vấn đề liên quan

nh.

A.1.a. Bật các module trong trang quản trị Xem tại trang 54 của tài liệu.
Hình A.1.b. Các trường thông tin của Blog entry. - cách xây dựng module cho Drupal và các vấn đề liên quan

nh.

A.1.b. Các trường thông tin của Blog entry Xem tại trang 55 của tài liệu.
Hình A.2.a. Tạo Blog entry mới để chạy thử chương trình. - cách xây dựng module cho Drupal và các vấn đề liên quan

nh.

A.2.a. Tạo Blog entry mới để chạy thử chương trình Xem tại trang 56 của tài liệu.
Hình A.2.b. Kết quả chạy thử chương trình. - cách xây dựng module cho Drupal và các vấn đề liên quan

nh.

A.2.b. Kết quả chạy thử chương trình Xem tại trang 57 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan