Créer un fichier modèle pour le bloc de vues

19

Il y a beaucoup de choses sur le thème des blocs personnalisés, mais qu'en est-il des blocs créés par des vues?

Mon bloc de vues a l'identifiant: block-views-posts-listing-block,

J'essaie de nombreuses façons de nommer le fichier de modèle, ex: block - block - views-posts-listing-block.tpl.php, mais je ne trouve pas le nom de fichier correct.

Codium
la source
1
Le module développeur de thème peut vous indiquer le nom du fichier de modèle.
Oswald
Merci, mais je détecte que Themer pour D7 ne fonctionne parfois pas correctement.
Codium

Réponses:

18

Modifiez votre vue. Sous les paramètres "avancés" de vos détails de blocage, cliquez sur "Theme: Information". Une liste d'options de fichiers modèles s'affiche.

par exemple, si votre bloc a un nom "liste de publications", voir les noms possibles répertoriés par l'option "Informations sur le thème":

* 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 

par exemple : votre bloc a la liste des publications de nom et a un style non formaté , puis "Informations sur le thème" suggère le nom views-view-unformatted--posts-listing--block.tpl.php(ce n'est qu'un parmi plusieurs noms). vous pouvez copier l'original views-view-unformatted.tpl.phpfichier de modèle (situé dans / modules / vues / thème) dans votre répertoire thème actuel, et renommer ce fichier avec le nom proposé: views-view-unformatted--posts-listing--block.tpl.php. puis apportez les modifications à l'intérieur de votre fichier modèle. Si ce modèle ne permet pas d'apporter les modifications souhaitées, recherchez d'autres modèles en fonction de vos besoins.

Au final, si vous ajoutez un nouveau modèle, réanalysez la liste des fichiers de modèle:

Important! Lors de l'ajout, de la suppression ou du renommage de fichiers modèles, il est nécessaire d'informer Drupal des modifications en lui faisant analyser les fichiers sur votre système. En cliquant sur le bouton "Réanalyser les fichiers du modèle", vous effacez le registre des thèmes de Drupal et déclenchez ainsi ce processus de nouvelle analyse. Les modèles en surbrillance (dans votre liste de modèles au-dessus du bouton "Réanalyser les fichiers de modèles") refléteront alors le nouvel état de votre système.

Le module de développement de thème http://drupal.org/project/devel_themer suggéré par Oswald pourrait également être utile pour détecter des modèles possibles pour modifier des éléments spécifiques en fonction de vos critères. Je ne recommande pas ce module activé dans les environnements de production (dans mon cas, même j'ai désactivé le module dans les environnements de test, car il semble y avoir des conflits avec les vues, mais quand cela a été nécessaire, cela a été très utile)

cigotete
la source
Non, cela n'aide pas avec la sortie du bloc des vues de thème. C'est seulement pour le contenu de la vue du thème, mais je veux un bloc de thème qui enveloppe ma vue
Codium
Bonjour, veuillez revoir la liste des modèles indiqués par "Informations sur le thème" dans Affichage-> Paramètres de blocage, il existe plusieurs modèles qui se terminent par --blockson nom. N'oubliez pas de réanalyser les modèles et n'oubliez pas de placer le modèle dans le répertoire de votre thème actuel (copiez le modèle sélectionné à partir des modules / vues / thème). le modèle doit avoir le nom suggéré par la liste "Informations sur le thème". Ça marche.
cigotete
@drupality, j'ai ajouté un exemple avec des étapes pour revoir le processus, veuillez le lire dans le paragraphe " par exemple ", dans la réponse.
cigotete
Merci mais je ne peux pas supprimer le wrapper par défaut div class = "content" avec cela aussi. Je ne peux que modifier le html créé par les vues
Codium
2
@ moon.watcher Je pense que vous vous méprenez. La fin du fichier modèle avec "bloc" n'affecte pas le thème du bloc lui-même. Il rend ce fichier de modèle spécifique au bloc que la vue génère (car une vue peut générer plusieurs blocs à partir de la même vue). Le contenu thématique de la vue est sorti dans le moteur de thématisation de bloc et est encapsulé dans le balisage fourni par block.tpl.php. Ce que la drupalité essaie de faire (aussi bien que moi) est de changer le thème du bloc lui-même.
18

Pour ceux qui cherchent la réponse en D7, selon Theme Developer (alias devel_themer), vous pouvez créer un remplacement tpl pour le bloc d'une vue en utilisant la convention:

block - views-- {view's machine_name } -block

Par conséquent, dans l'exemple, vous obtiendrez

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

Sans les espaces (je n'ai pas pu le modifier correctement pour permettre à tout cela d'être en ligne.

noTxt
la source
Je confirme que noTxt est correct, allez dans la section des blocs et modifiez le bloc, l'url devrait vous montrer le nom du bloc de la vue avec un soulignement, my_view_name-block. remplacez les traits de soulignement afin my-view-name, et utilisez ce format: "block - views - my-view-name = block.tpl.php"
Nevos
2
Oui, c'est une réponse plus correcte, donc: bloc - vues - VIEWNAME-MACHINENAMEOFDISPLAY.tpl.php Attention au tiret unique avant le nom de la machine! Nom de l'ordinateur = par défaut, il est nommé bloc, bloc-1, etc., mais vous pouvez le renommer dans l'interface utilisateur des vues.
Nikit
7

Au bout d'une demi-heure de changement de nom de tpl, voici ma conclusion finale:

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

[view-name] - La partie [display-name] peut être trouvée comme l'a dit noTxt ou se joindre à un '-' le nom id de la vue et le nom id de l'affichage de la vue, le -bloc à la fin n'est pas correct .

TourTools
la source
5

Dans Drupal 8

entrez la description de l'image ici

Le modèle de champs serait:

vues-vues-champs - [nom-vue] - block-1.html.twig

Pas de sueur
la source
Cette question concernait le D7 ... Pourquoi le Drupal 8 dans votre réponse?
Pierre.Vriens
@ Pierre.Vriens puisque la question est populaire dans les vues (pas le module), j'ai pensé que je devrais ajouter une réponse de version D8 ici.
No Sssweat
Voilà une idée intéressante ... Et si vous faisiez de même pour ces questions + 21K ?
Pierre.Vriens
@ Pierre.Vriens la plupart d'entre eux ne sont pas populaires.
Pas de Sssweat
1
8 tag ajouté, sympa;)
Codium
1

block--views--[view-name]-[display-name].tpl.phpdoit être remplacé par block--views--[view-name]-[machinename].tpl.php.

Vous trouverez le nom de la machine dans votre section avancée de vues où il est écrit autre

Arindam
la source
1

Les modèles de nom de fichier décrits ci-dessus fonctionnent À MOINS QUE votre nom de vue + nom d'affichage soit plus long qu'une certaine quantité de caractères !! J'ai été surpris par cela et je n'ai pas pu comprendre pourquoi un fichier de modèle se terminant par ... block.tpl.phpfonctionnait et l'affichage suivant ... block-1.tpl.phpne fonctionnait pas.

Il s'avère que Views remplace le nom de la machine par un hachage MD5 si le nom est trop long. Si vous voulez être sûr du nom du modèle que vous devez utiliser, ajoutez $conf['theme_debug'] = TRUE;votre settings.php et regardez la source de la page. si vous trouvez quelque chose comme block--views--d131dd02c5e6eec4... vous feriez mieux de raccourcir le nom de la machine de la vue (si vous parvenez à faire cela ... Ce n'est pas le nom lisible par l'homme). Ou bien vous devez utiliser un fichier modèle avec ce nom idiot.

voir également

Le nom de machine de Views Block est "haché" (?)

et

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

user3074436
la source
0

Consultez cette page https://www.drupal.org/node/1089656 et des informations sur les traits de soulignement utilisés par les vues:

Encore un autre exemple avec les vues, si vous avez un bloc créé par des vues avec un nom de vue "front_news" et l'ID d'affichage "block_1", la suggestion de crochet de thème serait: block - views - front-news-block-1. tpl.php (remarquez, lorsque vous avez des traits de soulignement dans un identifiant d'affichage ou dans un nom de vue - vous devez les transformer en un seul tiret)

Егор Малыгин
la source
0

Pour les blocs à l'intérieur des panneaux, la solution fournie par noTxt et autres ne fonctionne pas. La syntaxe serait alors (pas de soulignement!):

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

Merci à user3074436 d'avoir fourni le paramètre $ conf ['theme_debug'] afin de comprendre ce cas prioritaire de thème exceptionnel

rawdesk.be
la source