Câu trả lời:
Sự khác biệt là mục đích của họ.
hook_page_build () và hook_page_alter () được sử dụng để xóa, thay đổi hoặc thêm các thành phần ở cấp độ trang.
Mảng $ page được truyền để hook_page_alter()
chứa các phần tử mức cao nhất cho từng vùng khối. Theo mặc định, chúng là những cái sau:
Một ví dụ về việc thực hiện có thể là một trong những điều sau đây:
function mymodule_page_alter(&$page) {
// Add help text to the user login block.
$page['sidebar_first']['user_login']['help'] = array(
'#weight' => -10,
'#markup' => t('To post comments or add new content, you first have to log in.'),
);
}
Các hàm tiền xử lý được gọi để thay đổi các biến được truyền cho tệp mẫu. Họ không thể thay đổi cấu trúc của trang, nhưng họ có thể thay đổi nội dung của một số thành phần của trang thay đổi nội dung của các biến đó.
Ví dụ: mô-đun Lớp phủ sẽ loại bỏ các tab chính khi trang được hiển thị là lớp phủ.
function overlay_preprocess_page(&$variables) {
if (overlay_get_mode() == 'child') {
unset($variables['tabs']['#primary']);
}
}