Ich verstehe nicht ganz, wann ich hook_page_alter (& $ page) oder template_preprocess_page (& $ vars, $ hook) in Drupal 7 verwenden soll.
Was sind die Best Practices dafür in template.php?
Vielen Dank
Der Unterschied ist ihr Zweck.
hook_page_build () und hook_page_alter () werden verwendet, um Elemente auf Seitenebene zu entfernen, zu ändern oder hinzuzufügen.
Das übergebene $ page-Array hook_page_alter()
enthält die Elemente der obersten Ebene für jeden Blockbereich. Standardmäßig sind dies die folgenden:
Ein Beispiel für die Implementierung könnte das folgende sein:
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.'),
);
}
Die Vorverarbeitungsfunktionen werden aufgerufen, um die Variablen zu ändern, die an die Vorlagendatei übergeben werden. Sie können die Struktur der Seite nicht ändern, aber sie können den Inhalt einiger Elemente der Seite ändern, indem sie den Inhalt dieser Variablen ändern.
Das Überlagerungsmodul entfernt beispielsweise die primären Registerkarten, wenn die zu visualisierende Seite die Überlagerung ist.
function overlay_preprocess_page(&$variables) {
if (overlay_get_mode() == 'child') {
unset($variables['tabs']['#primary']);
}
}