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

Một phần của tài liệu Phát triển website với drupal 7 luận văn tốt nghiệp đại học (Trang 27 - 32)

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

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

Hệ thống menu của drupal khá là phức tạp tuy nhiên rất mạnh mẽ. Hệ thống menu này gồm 3 nhiệm vụ chính: callback mapping, điều khiển quyền truy cập và cung cấp hệ thống menu tùy biến.

Callback mapping

Khi trình duyệt web gửi một yêu cầu đến Drupal, nó cung cấp cho Drupal 1url. Từ thông tin này, Drupal phải tìm ra đoạn mã nào sẽ được thực thi và sẽ xử lý yêu cầu đó như thế nào. Điều này thường được hiểu là định tuyến (routing).

Mapping URL đến các hàm (function)

Cách tiếp cận chung cho vấn đề này như sau: Drupal sẽ xem xét các mô-đun đang được bật cung cấp một mảng các thành phần menu. Một menu là một mảng có khóa là path và cung cấp thêm một số thông tin về path đó, bao gồm cả thông tin về gọi trang callback. Callback ở đây được hiểu đơn giản là gọi đến một hàm (function) khi một yêu cầu được gửi đến theo một path xác định. Drupal sẽ qua các bước xử lý sau khi có một yêu cầu:

1. Thiết lập đường dẫn path. Nếu path được gửi đến là một alias path thì Drupal sẽ tìm path thực của nó và thay bằng path thực. Ví dụ, nếu một alias path là example.com/?q=about được tạo bởi example.com/?q=node/3 thì Drupal sẽ sử dụng node/3 là path.

2. Drupal sẽ xem xét path nào được sử dụng với hàm callback nào trong bảng menu_router và thành phần menu nào được liên kết trong bảng menu_links 3. Chỉ ra mục trong menu_router tương ứng với path và khởi tạo menu_router

5. Kiểm tra quyền truy cập của người dùng với hàm callback. Nếu không đủ quyền thì trả về trang “Cấm truy cập”.

6. Địa phương hóa thành phần tiêu đề và nội dung của menu với ngôn ngữ hiện tại.

7. Tải các tệp tin cần thiết cho callback. 8. Gọi hàm callback và trả về kết quả.

Hình 15 Quá trình xử lý router và xây dựng link Xây dựng menu cho mô-đun thời tiết

Cung cấp cho người quản trị khả năng cấu hình việc lấy thông tin và các hiệu ứng của mô-đun tại url: example.com/admin/config/drupal/weather

Để làm được điều này, chúng ta phải tùy chỉnh thêm menu sử dụng hook_menu()

/*

* Implements of hook_menu() */

function drupal_weather_menu() {

$items['admin/config/drupal/weather'] = array( 'title' => 'Weather',

'description' => 'Change weather configuration.', 'page callback' => 'drupal_get_form',

'page arguments' => array('_drupal_weather_admin'), 'access arguments' => array('administer site configuration'),

'file' => 'drupal_weather.admin.inc' );

return $items; }

Một phần của tài liệu Phát triển website với drupal 7 luận văn tốt nghiệp đại học (Trang 27 - 32)

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

(48 trang)
w