답변:
차이점은 그들의 목적입니다.
hook_page_build () 및 hook_page_alter () 는 페이지 레벨에서 요소를 제거, 변경 또는 추가하는 데 사용됩니다.
전달 된 $ page 배열 hook_page_alter()
에는 각 블록 영역의 최상위 요소 가 포함됩니다. 기본적으로 다음과 같습니다.
구현 예는 다음과 같습니다.
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.'),
);
}
템플릿 파일에 전달 된 변수를 변경하기 위해 사전 처리 함수가 호출됩니다. 페이지의 구조를 변경할 수는 없지만 페이지의 일부 요소의 내용을 변경하여 해당 변수의 내용을 변경할 수 있습니다.
예를 들어, 오버레이 모듈은 시각화중인 페이지가 오버레이 인 경우 기본 탭을 제거합니다.
function overlay_preprocess_page(&$variables) {
if (overlay_get_mode() == 'child') {
unset($variables['tabs']['#primary']);
}
}