Erstellen Sie eine Vorlagendatei für den Ansichtsblock

19

Das Theming von benutzerdefinierten Blöcken hat viel zu tun, aber was ist mit Blöcken, die von Ansichten erstellt wurden?

Mein Ansichtenblock hat die ID: block-views-posts-listing-block,

Ich habe viele Möglichkeiten, um eine Vorlagendatei zu benennen, zum Beispiel: block - block - views-posts-listing-block.tpl.php, aber ich kann den korrekten Dateinamen nicht finden.

Codium
quelle
1
Das Theme-Entwicklermodul kann Ihnen den Namen der Vorlagendatei mitteilen.
Oswald
Danke, aber ich stelle fest, dass Themer für D7 manchmal nicht richtig funktioniert.
Codium

Antworten:

18

Bearbeiten Sie Ihre Ansicht. und Klicken Sie in den "Erweitert" -Einstellungen Ihrer Blockdetails auf "Theme: Information". Eine Liste mit Optionen für Vorlagendateien wird angezeigt.

Wenn Ihr Block beispielsweise einen Namen "posts listing" hat, sehen Sie sich die möglichen Namen an, die nach der Option "Theme Information" aufgelistet sind:

* Display output: views-view.tpl.php, views-view--posts-listing.tpl.php, views-view--default.tpl.php, views-view--block.tpl.php, views-view--posts-listing--block.tpl.php
* Style output: views-view-unformatted.tpl.php, views-view-unformatted--posts-listing.tpl.php, views-view-unformatted--default.tpl.php, views-view-unformatted--block.tpl.php, views-view-unformatted--posts-listing--block.tpl.php
* Row style output: views-view-fields.tpl.php, views-view-fields--posts-listing.tpl.php, views-view-fields--default.tpl.php, views-view-fields--block.tpl.php, views-view-fields--posts-listing--block.tpl.php
* Field Content: Title (ID: title): views-view-field.tpl.php, views-view-field--title.tpl.php, views-view-field--posts-listing.tpl.php, views-view-field--posts-listing--title.tpl.php, views-view-field--block.tpl.php, views-view-field--block--title.tpl.php, views-view-field--posts-listing--block.tpl.php, views-view-field--posts-listing--block--title.tpl.php 

Zum Beispiel : Ihr Block hat eine Liste mit Namensbeiträgen und einen unformatierten Stil . Dann schlagen "Themeninformationen" den Namen vor views-view-unformatted--posts-listing--block.tpl.php(dies ist nur einer von mehreren Namen). Sie können die Original kopieren views-view-unformatted.tpl.php: zu Ihrem aktuellen Themenverzeichnis und benennen Sie diese Datei mit dem Namen vorgeschlagen Vorlagendatei (in / modules / Ansichten / Thema gelegen) views-view-unformatted--posts-listing--block.tpl.php. Nehmen Sie dann die Änderungen in Ihrer Vorlagendatei vor. Wenn diese Vorlage keine gewünschten Änderungen zulässt, suchen Sie nach anderen Vorlagen, die Ihren Anforderungen entsprechen.

Wenn Sie am Ende eine neue Vorlage hinzufügen, durchsuchen Sie die Liste der Vorlagendateien erneut:

Wichtig! Wenn Sie Vorlagendateien hinzufügen, entfernen oder umbenennen, müssen Sie Drupal auf die Änderungen aufmerksam machen, indem Sie die Dateien auf Ihrem System erneut scannen. Durch Klicken auf die Schaltfläche "Rescan template Files" (Vorlagendateien erneut scannen) löschen Sie die Themenregistrierung von Drupal und lösen damit diesen erneuten Scanvorgang aus. Die markierten Vorlagen (in Ihrer Vorlagenliste über der Schaltfläche "Vorlagendateien erneut scannen") geben dann den neuen Status Ihres Systems wieder.

Auch das von Oswald vorgeschlagene Theme Developer Module http://drupal.org/project/devel_themer kann hilfreich sein, um mögliche Vorlagen zu ermitteln und bestimmte Elemente gemäß Ihren Kriterien zu ändern. Ich empfehle nicht, dieses Modul in Produktionsumgebungen zu aktivieren (in meinem Fall habe ich das Modul sogar in Testumgebungen deaktiviert, weil es Konflikte mit Ansichten zu haben scheint, aber wenn es notwendig war, war es sehr nützlich).

Zigotete
quelle
Nein, es hilft nicht, wenn Themenansichten die Ausgabe blockieren. Es ist nur für Inhalte der Themenansicht, aber ich möchte Themenblöcke, die meine Ansicht
einschließen
Hallo, bitte überprüfen Sie noch einmal die Liste der Vorlagen, die unter "Themeninformationen" unter Ansicht-> Blockeinstellungen angezeigt werden. Es gibt mehrere Vorlagen, die mit --blockseinem Namen enden . Erinnern Sie sich an Reescan-Vorlagen, und speichern Sie die Vorlage im Verzeichnis Ihres aktuellen Themas (kopieren Sie die ausgewählte Vorlage aus modules / views / theme). Die Vorlage muss den in der Liste "Themeninformationen" angegebenen Namen haben. Es klappt.
Cigotete
@drupality, ich habe ein Beispiel mit Schritten zur Überprüfung des Prozesses hinzugefügt. Lesen Sie in der Antwort den Abschnitt " Zum Beispiel ".
Cigotete
Danke, aber ich kann den standardmäßigen Wrapper div class = "content" damit nicht entfernen. Ich kann nur HTML-
Code
2
@ moon.watcher Ich glaube du verstehst das falsch. Das Beenden der Vorlagendatei mit "Block" hat keinen Einfluss auf das Design des Blocks. Dadurch wird diese Vorlagendatei spezifisch für den Block, den die Ansicht ausgibt (da eine Ansicht mehrere Blöcke von derselben Ansicht ausgeben kann). Der thematische Inhalt aus der Ansicht wird an die Block-Theming-Engine ausgegeben und in das von block.tpl.php bereitgestellte Markup eingeschlossen. Was Drupality versucht (so wie ich), ist das Theming des Blocks selbst zu ändern.
18

Für diejenigen, die die Antwort in D7 suchen, können Sie laut Theme Developer (aka devel_themer) eine tpl-Überschreibung für einen Ansichtsblock erstellen, indem Sie die folgende Konvention anwenden:

blockieren - views-- {Ansicht der machine_name} -Block

Deshalb wirst du im Beispiel give bekommen

block - views-- post-listing -block.tpl.php

Ohne die Leerzeichen (ich konnte dies nicht richtig bearbeiten, damit alles inline ist).

noTxt
quelle
Ich bestätige, dass noTxt korrekt ist, gehe zum Blockabschnitt und bearbeite den Block. Die URL sollte den Blocknamen der Ansicht mit dem Unterstrich my_view_name-block anzeigen. Ersetzen Sie die Unterstriche so mein-Ansichtsname, und verwenden Sie dieses Format: "block - views - mein-Ansichtsname = block.tpl.php"
Nevos
2
Ja, das ist eine richtigere Antwort. Also: block - views - VIEWNAME-MACHINENAMEOFDISPLAY.tpl.php Achtung auf einen einzelnen Gedankenstrich vor dem Computernamen! Computername = Standardmäßig heißt er "Block", "Block-1" usw. Sie können ihn jedoch in der Ansichts-Benutzeroberfläche umbenennen.
Nikit
7

Nach einer halben Stunde, in der ich die Namen ändere, ist hier meine endgültige Schlussfolgerung:

block--views--[view-name]-[display-name].tpl.php

[view-name] - [display-name] -Teil kann gefunden werden, wie noTxt sagte oder zusammen mit einem '-' der ID-Name der Ansicht und der ID-Name der Ansicht angezeigt wird, der -Block am Ende ist nicht korrekt .

TourTools
quelle
5

In Drupal 8

Bildbeschreibung hier eingeben

Die Feldvorlage wäre:

Ansichten-Ansichtsfelder - [Ansichtsname] - block-1.html.twig

Kein Sssweat
quelle
Diese Frage war über D7 ... Warum das Drupal 8 in Ihrer Antwort?
Pierre.Vriens
@ Pierre.Vriens Da Frage in Ansichten beliebt ist (nicht im Modul), habe ich mir gedacht, ich sollte hier eine Antwort in der D8-Version hinzufügen.
Kein Sssweat
Nun, das ist eine interessante Idee ... Wie wäre es dann auch mit dem gleichen Vorgehen für diese + 21K-Fragen ?
Pierre.Vriens
@ Pierre.Vriens die meisten davon sind nicht beliebt.
Kein Sssweat
1
8-Tag hinzugefügt, schön;)
Codium
1

block--views--[view-name]-[display-name].tpl.phpsollte geändert werden in block--views--[view-name]-[machinename].tpl.php.

Sie finden den Computernamen in Ihrem erweiterten Ansichtsbereich, in dem er anders geschrieben ist

Arindam
quelle
1

Die oben beschriebenen Dateinamenmuster funktionieren, WENN Ihr Ansichtsname + Anzeigename nicht länger als eine bestimmte Anzahl von Zeichen ist !! Ich war davon überrascht und konnte nicht feststellen, warum eine Vorlagendatei mit der Endung ... block.tpl.phpfunktionierte und die folgende Anzeige ... block-1.tpl.phpnicht funktionierte.

Es stellt sich heraus, dass Views den Computernamen durch einen MD5-Hash ersetzt, wenn der Name zu lang ist. Wenn Sie sicher sein möchten, welchen Vorlagennamen Sie verwenden sollten, fügen Sie $conf['theme_debug'] = TRUE;Ihre settings.php hinzu und sehen Sie sich dann die Seitenquelle an. Wenn Sie etwas wie block--views--d131dd02c5e6eec4... finden, sollten Sie den Computernamen der Ansicht kürzen (wenn Sie das tun ... Es ist nicht der von Menschen lesbare Name). Oder Sie müssen eine Vorlagendatei mit diesem albernen Namen verwenden.

siehe auch

Views Blocks Rechnername wird "gehasht" (?)

und

https://www.drupal.org/node/346602

user3074436
quelle
0

Überprüfen Sie diese Seite https://www.drupal.org/node/1089656 , und informieren Sie sich darüber, welche Ansichten verwendet werden:

Ein weiteres Beispiel für Views: Wenn Sie einen Block aus Views mit dem View-Namen "front_news" und der Display-ID "block_1" erstellt haben, lautet der Vorschlag für den Theme-Hook: block - views - front-news-block-1. tpl.php (Beachten Sie, dass Sie Unterstriche in einer Anzeige-ID oder in einem Ansichtsnamen in einen einzelnen Bindestrich umwandeln müssen.)

Егор Малыгин
quelle
0

Für Blöcke in Bedienfeldern funktioniert die von noTxt und anderen bereitgestellte Lösung nicht. Die Syntax wäre dann (keine Unterstriche!):

panels-pane-block--views-[view-name]-[display-machine-name].tpl.php

Vielen Dank an user3074436 für die Angabe der Einstellung $ conf ['theme_debug'], um diesen außergewöhnlichen Fall herauszufinden

rawdesk.be
quelle