Một số hàm quan trọng trong thư viện hàm của Drupal 26

Một phần của tài liệu cách xây dựng module cho Drupal và các vấn đề liên quan (Trang 32 - 34)

- Hàm chuyển đổi ngôn ngữ t():

Đây là hàm chuyển đổi ngôn ngữ trong Drupal, được sử dụng để hỗ trợ chức năng đa ngôn ngữ, đồng thời cung cấp một cách thức chuẩn trong việc thay thế văn bản. Khi hàm t() được gọi, Drupal sẽ kiểm tra xem ngôn ngữ mà người dùng lựa chọn

27

có khác với ngôn ngữ mặc định (Anh-Mỹ) hay không. Nếu có thì Drupal sẽ cố gắng dịch xâu đầu vào sang ngôn ngữ người dùng chỉ định.

Để Drupal hỗ trợ đa ngôn ngữ, module Content translation phải được bật. Trong những trường hợp đơn giản, hàm t() nhận chỉ một tham số vào là xâu chứa thông điệp cần chuyển đổi. Khi đó, toàn bộ xâu sẽ được dịch nghĩa. Nhưng trong một số trường hợp khác, hàm sẽ nhận các dữ liệu thêm vào. Ví dụ, khi cần thêm một địa chỉ URL vào trong một xâu:

‘Trying to access !url.’

và muốn hàm t() dịch nghĩa xâu này, đồng thời thay thế URL tương ứng vào vị trí của !url. Lúc đó, hàm t() được sử dụng như sau:

t(‘Trying to access !url.’, array(‘!url’=>’http:///example.com’)); Trong ví dụ trên, t() nhận 2 tham số: xâu cần dịch nghĩa, và một mảng liên hợp ánh xạ cờ giữ chỗ và giá trị thay thế. Nếu ngôn ngữ lựa chọn là tiếng Anh, hàm trên sẽ cho ra kết quả:

Trying to access http://example.com.

- Hàm watchdog():

Một hàm khác nằm trong bộ nhân của Drupal là hàm watchdog(), cung cấp cơ chế ghi biên bản cho Drupal.

Hàm watchdog() nhận 4 tham số. Tham số đầu tiên xác định danh mục của bản ghi. Thông thường, các module sẽ sử dụng tên của module làm danh mục để có thể dễ dàng tìm kiếm các bản ghi sau này.

Tham số thứ hai và thứ ba gồm có thông điệp dưới dạng văn bản, và một mảng liên hợp có giá trị khoá sẽ được thay thế vào thông báo.

Tham số cuối cùng là một hàng số, xác định quyền ưu tiên dành cho bản ghi đó. Tham số này lấy 1 trong 8 giá trị sau:

WATCHDOG_EMERG: Hệ thống lúc này đang trong tình trạng không ổn định.

WATCHDOG_ALERT: Nhắc nhở người dùng cần thực hiện một việc nào đó ngay lập tức.

WATCHDOG_CITICAL: Thông báo tình trạng nguy cấp. WATCHDOG_ERROR: Xảy ra lỗi.

28

WATCHDOG_WARNING: Cảnh báo xảy ra sự cố không mong đợi nhưng không gây ra vấn đề nghiêm trọng.

WATCHDOG_NOTICE: Một sự kiện quan trọng (nhưng không ảnh hưởng xấu) xảy ra. WATCHDOG_INFO: Cho biết thông tin có thể được ghi lại.

WATCHDOG_DEBUG: Thông tin về việc gỡ lỗi sẽ được ghi lại.

Mức độ ERROR và WARNING thường được sử dụng bởi các nhà phát triển module để ghi lại lỗi. Hầu hết các module không chứa các đoạn mã đủ để gây ra vấn đề nghiêm trọng cho Drupal, vì thế 3 mức độ trên cùng (ALERT, CRITICAL và EMERG) không nên sử dụng trừ khi hệ thống đang trong tình trạng xấu.

Đồng thời với việc ghi lại biên bản trong hệ thống, trang web nên hiển thị thông báo tới người dùng. Điều này được thực hiện bằng cách trả về một chuỗi chứa thông báo:

return t(“This page is not accessible”);

Bên cạnh việc ghi biên bản các sự kiện, người phát triển có thể thực hiện các thao tác liên quan bằng cách triển khai hook_watchdog() mà Drupal cung cấp. Mặc định, các bản ghi được lưu vào trong cơ sở dữ liệu. Người quản trị có thể xem lại bằng cách truy cập vào mục Administer | Logs.

Một phần của tài liệu cách xây dựng module cho Drupal và các vấn đề liên quan (Trang 32 - 34)