Một số hook cơ bản

Một phần của tài liệu phát triển ứng dụng dịch vụ hướng vị trí trên nền drupal (Trang 27 - 31)

- Hook block:

Hook này được sử dụng để tạo một block hiển thị thông tin. Khi hook_block được gọi, Drupal sẽ truyền 3 tham số vào hàm: $op, $delta và $edit.

Tham số $op chứa thông tin về loại thao tác mà module sẽ thực hiện. Tham số này có thể nhận một trong 4 giá trị sau:

list: Giá trị này được dùng khi module cung cấp thông tin về chính nó. Ví dụ, ở danh sách các module hiển thị trong khu vực quản trị, tham số $op sẽ được đặt là list.

view: Giá trị này được truyền vào khi Drupal muốn hook block cung cấp thông tin để hiển thị cho người dùng.

configure: Dùng để điều chỉnh các thiết lập cho block.

save: Giá trị này được dùng khi thông tin về thiết lập của block lấy từ form dữ liệu sinh ra bởi configure cần được lưu lại.

Tham số $delta được đặt phụ thuộc vào các thao tác nhất định của module. Khi

$op có giá trị là view thì $delta sẽ được đặt. Tham số này chứa các thông tin thêm về nội dung sẽ hiển thị trong block. Bằng cách sử dụng $delta, một hàm hook_block()

có thể hiển thị nhiều block khác nhau. Nội dung nào trong block sẽ được sử dụng tuỳ thuộc vào giá trị của $delta được truyền vào.

Cuối cùng là tham số $edit, được sử dụng trong quá trình điều chỉnh các thiết lập của block (khi thao tác save được gọi). $edit thực chất là một mảng chứa các thay đổi mà người quản trị thực hiện lên các thiết lập của block.

Giá trị trả về của hàm này phụ thuộc vào thao tác mà nó thực hiện. Thông thường, hàm sẽ trả về một mảng chứa thông tin của block (info), tiêu đề (subject) và nội dung (content).

- Hook help:

Hook này được dùng để cung cấp các thông tin trợ giúp cho người sử dụng. Hàm

hook_help() nhận hai tham số: $path chứa một đoạn URI cho biết trang trợ giúp nào được gọi, và tham số $arg chứa một số thông tin thêm.

Với các trường hợp phức tạp, lập trình viên có thể sử dụng phát biểu switch đối với giá trị của $path để trả về các văn bản trợ giúp khác nhau đối với mỗi đường dẫn. Giá trị này tuân theo định dạng admin/help#<module name> , trong đó <module name>

được thay bằng tên của module tương ứng. Kết quả của hàm này được hiển thị tại mục

Hình 2.3.a. Minh họa nội dung sử dụng hook_help().

- Hook user:

Mặc định, mỗi người dùng đã đăng ký đều có thể truy cập trang My account để xem thông tin tài khoản của họ. Địa chỉ URL của trang này có dạng:

http://example.com/drupal/?q=user/3. Người dùng sẽ thấy những thông tin sau:

Hình 2.3.b. Giao diện thông tin tài khoản người dùng

Trang thông tin người dùng cũng có thể được truy cập bởi một người quản trị có quyền tương ứng. Phần lớn nội dung của trang này được tạo ra bởi hook_user(). Bằng cách triển khai hook này trong module, người phát triển có thể liên kết với giao diện quản lý người dùng.

Thực ra, hook người dùng làm được nhiều việc hơn là hiển thị trang tài khoản người dùng. Trong Drupal 6 có 13 thao tác mà hook này thực thi, bao gồm việc thêm, sửa chữa hoặc xoá bộ ghi nhớ đăng nhập.

Một bản triển khai của hook_user() sẽ nhận 4 tham số sau:

$op: Tên của thao tác mà người dùng thực hiện. Tham số này nhận 1 trong 13 giá trị tương ứng với 13 thao tác (view, login, delete...).

$edit: Một mảng chứa các giá trị được gửi lên từ một form. Giá trị này được truyền vào qua tham chiếu &$edit và được sử dụng bởi các thao tác xử lý dữ liệu như insert.

$account: Dùng để chứa đối tượng tài khoản cho một người dùng nhất định. Tham số này cũng được truyền qua tham chiếu &$account.

$category: Một vài thao tác sử dụng tham số này để xác định phần nào của thông tin người dùng sẽ được trích xuất cho yêu cầu.

Chi tiết về hook này xem tại địa chỉ

http://api.drupal.org/api/function/hook_user/6.

- Hook mail:

Phần lớn các yêu cầu về việc gửi email trong Drupal đều được hỗ trợ bởi các hàm có trong Mail API nên người phát triển không cần phải viết mã cho những thao tác này. Tuy nhiên, tuỳ theo yêu cầu, người phát triển có thể tuỳ chỉnh định dạng của thông điệp, và việc này được thực hiện thông qua hook_mail(). Việc triển khai hook này cho phép thiết lập các phần đầu và thân của thông điệp trước khi gửi đi.

Khi hàm triển khai hook mail được thực thi, nó sẽ truyền 3 tham số sau:

$key: Một khoá dạng chuỗi dùng để xác định thông tin về việc thông điệp sẽ được định dạng như thế nào.

$message: Là cấu trúc dữ liệu thể hiện thông điệp mà Drupal đã khởi tạo trước đó. Tham số này phải được truyền dưới dạng tham chiếu &$message nếu muốn thay đổi giá trị.

$params: Một tập các tham số được truyền vào từ lời gọi hàm drupal_mail() của module.

- Hook view:

Trước khi một node được hiển thị đến người dùng, thông tin của nó có thể được cập nhật bằng cách sử dụng hook_view(). Hook này được gọi khi hệ thông nạp một đối tượng $node, nhưng vào thời điểm trước khi node được hiển thị. Hàm này sẽ cần thiết trong một số trường hợp mà nội dung của node có thêm một số trường thông tin Drupal chưa xử lý được.

Đồng thời, hook này sẽ cung cấp thêm thông tin cho hệ thống giao diện để có thể biểu diễn nội dung như mong muốn của người dùng.

Hàm triển khai của hook này sẽ nhận 3 tham số:

$node chứa đối tượng node cần hiển thị.

tóm tắt. Tham số này nhận giá trị Logic, TRUE hoặc FALSE.

$page cho biết node này sẽ hiển thị ở trang riêng hay không. Nếu $page có giá trị TRUE, tiêu đề của node sẽ không được hiển thị.

Giá trị trả về của hàm khai triển hook_view() chính là $node. Tham số này sẽ được thay đổi nếu cần thiết để có thể được biểu diễn một cách chính xác. Các node được chuẩn bị cho việc hiển thị bằng cách tập hợp một mảng có cấu trúc trong

$node->content, thay cho việc thao tác với từng thành phần riêng $node->body và

$node->teaser.

Chi tiết của hook này xem thêm tại địa chỉ

http://api.drupal.org/api/function/hook_view/6.

- Hook menu:

Chức năng cơ bản của hook_menu() là cho phép người phát triển module đăng ký một URI nhất định (hoặc chi tiết hơn là một đường dẫn URL tương đối) và ánh xạ URI đó với một hàm xử lý. Hook này thường được dùng để tạo các thực đơn cho trang quản lý của module.

Giống như các hook khác, một bản triển khai của hook_menu() trả về một mảng, trong trường hợp này là mảng các mục thực đơn sẽ được đăng ký với nhân của Drupal. Mảng liên kết này sẽ chứa một địa chỉ thực (giá trị) cho mỗi đường dẫn được đăng ký trước (khoá).

Dựa vào những tham số cấu hình này, Drupal sẽ xác định cách chuyển một yêu cầu từ máy khách tới đường dẫn tương ứng để xử lý. Việc này được thực hiện bằng cách ánh xạ các hàm callback.

Một phần của tài liệu phát triển ứng dụng dịch vụ hướng vị trí trên nền drupal (Trang 27 - 31)

Tải bản đầy đủ (PDF)

(58 trang)