Ich verwende Page Manager und Panels und versorge benutzerdefinierte Knoten-Panels mit Auswahlregeln nach Typ (z. B. eine Panel-Variante für Artikel-, eine Panel-Variante für Blog-Inhaltstyp). Dies funktioniert bisher reibungslos, das Styling ist auch ordentlich. Aber wie kann ich mehr Macht über das Rendern von Elementen bekommen?
Es gibt mehrere Möglichkeiten, bestimmte Elemente zu rendern: Hinzufügen von Feldern mithilfe eines Tokens, Verwenden einer benutzerdefinierten Ansicht, nur Rendern bestimmter Felder, Verwenden einer gerenderten Knotenentität mit Ansichtsmodus. Verwenden von benutzerdefinierten Bedienfeldinhalten mit Platzhaltern usw.
Was ist hier der beste Ansatz? Es wäre großartig, die Möglichkeit zu haben, ein benutzerdefiniertes (etwas) Fensterelement hinzuzufügen, das in einer * .tpl.php gestaltet werden kann.
Mein aktueller Ansatz wäre die Verwendung der Anzeigesuite, das Erstellen von Ansichtsmodi für verschiedene Teile / Bedienfeldbereiche und das Verwenden von Themen-Hook-Vorschlägen zum Hinzufügen einer benutzerdefinierten node.tpl.php für jeden Ansichtsmodus. Es müsste keine Ansichten aufrufen, was so ziemlich ein Overkill ist?! Rendern, zusätzliche Abfragen ...) und können bereits zwischengespeicherte Entitäten verwenden.
function mytheme_preprocess_node(&$vars) {
if ($vars['node']->type == 'my_content_type' && $vars['view_mode'] == 'panel_region_left') {
$vars['theme_hook_suggestions'][] = 'node__my_content_type__panel_region_left';
}
if ($vars['node']->type == 'my_content_type' && $vars['view_mode'] == 'panel_region_right') {
$vars['theme_hook_suggestions'][] = 'node__my_content_type__panel_region_right';
}
}
Ich bin nicht sicher, wie gut dies zwischengespeichert wird und wie viel Ressourcen es verbrauchen wird. Jeder Rat wäre dankbar.