Jawaban:
Perbedaannya adalah tujuan mereka.
hook_page_build () dan hook_page_alter () digunakan untuk menghapus, mengubah, atau menambahkan elemen di tingkat halaman.
Array $ page yang diteruskan hook_page_alter()
berisi elemen tingkat atas untuk setiap wilayah blok. Secara default mereka adalah yang berikut:
Contoh implementasi dapat berupa yang berikut:
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.'),
);
}
Fungsi preprocess dipanggil untuk mengubah variabel yang diteruskan ke file templat. Mereka tidak dapat mengubah struktur halaman, tetapi mereka dapat mengubah konten dari beberapa elemen halaman yang mengubah konten variabel-variabel tersebut.
Misalnya, modul Overlay menghapus tab utama saat halaman yang divisualisasikan adalah overlay.
function overlay_preprocess_page(&$variables) {
if (overlay_get_mode() == 'child') {
unset($variables['tabs']['#primary']);
}
}