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.
quelle
Der beste und einfachste Weg, benutzerdefinierte Inhalte zu Bedienfeldern hinzuzufügen und nach Ihren Wünschen zu gestalten, besteht darin, benutzerdefinierte Inhaltsfenster zu erstellen, Ihren Code im Filtermodus als PHP-Filter hinzuzufügen und Ihre benutzerdefinierten PHP / HTML-Inhalte in benutzerdefinierte Div-Tags zu kapseln.
Um diesen benutzerdefinierten Inhaltsbereich zu thematisieren, müssen Sie lediglich Ihre benutzerdefinierten CSS-Regeln für dieses div-Tag in Ihre local.css einfügen
Wenn Sie spezielle Anforderungen haben, geben Sie diese bitte hier an.
quelle