Ich erstelle einen benutzerdefinierten Inhaltstyp. Standardmäßig unterstützen Knoten nur zwei Ansichtsmodi ( full
und teaser
):
function mymodule_view($node, $view_mode)
{
if ($view_mode == 'full') {
$node->content['#theme']= 'my_full_node_view_theme';
}
if ($view_mode == 'teaser') {
$node->content['#theme']= 'my_teaser_node_view_theme';
}
return $node;
}
Ich möchte einige andere Anzeigemodi für diesen Knotentyp hinzufügen, z.
small_box
small_box_with_user_pic
big_box
und wollen den Knoten mit folgendem Code rendern:
$node = node_load($my_nid);
$output = drupal_render(node_view($node, 'big_box'));
Irgendwelche Vorschläge?
Antworten:
Zuerst müssen wir mit hook_entity_info_alter zusätzliche Anzeigemodi hinzufügen
// Wir können zusätzliche Theme-Funktionen oder Templates anhängen und Variablen mit hook_view hinzufügen
// in unserem Hakenthema
quelle
Wenn alle Sie benutzerdefinierte Ansicht wollen Modi ist, dann Entity Ansichtsmodus kann helfen. Mit der Display Suite ist es auch einfach, benutzerdefinierte Ansichtsmodi zu erstellen, neue Pseudofelder zu erstellen und eine schöne Drag & Drop-Oberfläche zum Anordnen verschiedener Elemente in den verschiedenen Ansichtsmodi zu haben.
Wenn Sie dies alles im Code tun möchten, hat entity_example aus dem Beispielmodul einen Ansichtsmodus IIRC. Drupal Commerce verfügt auch über eine Reihe von benutzerdefinierten Entitäten mit benutzerdefinierten Ansichtsmodi.
quelle
Wenn Sie Display Suite verwenden, stellen Sie sicher, dass das Modul ds_ui aktiviert ist, und rufen Sie unter admin / structure / ds / view_modes eine Liste der vorhandenen und neuen Ansichtsmodi auf.
quelle
Ich weiß, dass dies ein älteres Thema ist, aber ich habe festgestellt, dass die folgende Methode für die meisten Anwendungsfälle gut funktioniert.
Diese einfachen Schritte führen Sie durch die Erstellung Ihres eigenen Moduls mit dem neuen Ansichtsmodus. Es ist ziemlich einfach. Ich würde gerne eine Zuschreibung machen, aber ich kann mich nicht erinnern, wo ich die Grundlage dafür gefunden habe. Es folgt jedoch der gleichen Logik wie die Antwort von werqious.
Datei 1: my_module_view_modes.module
Datei 2: my_module_view_modes.info
Speichern Sie diese beiden Dateien in Ihrem Ordner my_module_view_mode in Ihrem Modulordner und aktivieren Sie. Leeren Sie Ihren Cache und sehen Sie nun die neuen Ansichtsmodi in ihren jeweiligen Entitäten.
quelle