Risposte:
La differenza è il loro scopo.
hook_page_build () e hook_page_alter () sono usati per rimuovere, alterare o aggiungere elementi a livello di pagina.
L'array $ page passato hook_page_alter()
contiene gli elementi di livello superiore per ciascuna regione di blocco. Di default sono i seguenti:
Un esempio di implementazione potrebbe essere il seguente:
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.'),
);
}
Le funzioni di preelaborazione vengono chiamate per modificare le variabili che vengono passate al file modello. Non possono cambiare la struttura della pagina, ma possono alterare il contenuto di alcuni elementi della pagina cambiando il contenuto di quelle variabili.
Ad esempio, il modulo Overlay rimuove le schede primarie quando la pagina visualizzata è l'overlay.
function overlay_preprocess_page(&$variables) {
if (overlay_get_mode() == 'child') {
unset($variables['tabs']['#primary']);
}
}