Criar arquivo de modelo para o bloco de visualizações


19

Há muito sobre blocos personalizados de temas, mas e os blocos criados pelas visualizações?

O bloco Minhas visualizações possui o ID: block-views-posts-Listing-block,

Eu tento várias maneiras de nomear arquivo de modelo, ex: block - block - views-posts-Listing-block.tpl.php, mas não consigo encontrar o nome correto do arquivo.


1
O módulo desenvolvedor do tema pode informar o nome do arquivo de modelo.
Oswald

Obrigado, mas detecto que o Themer for D7 às vezes não funciona adequadamente.
Codium

Respostas:


18

Edite sua visualização. e Nas configurações "Avançadas" dos detalhes do seu bloco, clique em "Theme: Information". Uma lista de opções de arquivos de modelo será exibida.

por exemplo, se o seu bloco tiver o nome "lista de postagens", consulte os possíveis nomes listados na opção "Informações do tema":

* 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 

por exemplo : seu bloco tem a lista de mensagens de nome e o estilo não está formatado ; "Informações do tema" sugere o nome views-view-unformatted--posts-listing--block.tpl.php(esse é apenas um dos vários nomes). você pode copiar o original views-view-unformatted.tpl.phparquivo de modelo (localizado em / modules / views / tema) para o seu diretório do tema atual e renomear este arquivo com o nome sugerido: views-view-unformatted--posts-listing--block.tpl.php. faça as alterações dentro do seu arquivo de modelo. Se este modelo não permitir as alterações desejadas, procure outros modelos de acordo com suas necessidades.

No final, se você adicionar um novo modelo, verifique novamente a lista de arquivos de modelo:

Importante! Ao adicionar, remover ou renomear arquivos de modelo, é necessário tornar o Drupal ciente das alterações, fazendo com que ele verifique novamente os arquivos em seu sistema. Ao clicar no botão "Verificar novamente os arquivos de modelo", você limpa o registro do tema do Drupal e, assim, aciona esse processo de verificação novamente. Os modelos destacados (na lista de modelos acima, no botão "Examinar novamente os arquivos de modelo") refletirão o novo estado do seu sistema.

O Theme Developer Module http://drupal.org/project/devel_themer sugerido por Oswald pode ser útil para detectar possíveis modelos para alterar elementos específicos de acordo com seus critérios. Eu não recomendo este módulo habilitado em ambientes de produção (no meu caso, até desabilitei o módulo em ambientes de teste, porque parece haver conflitos com as visualizações, mas quando necessário, tem sido muito útil)


Não, isso não ajuda com a exibição de temas bloqueando a saída. É só para Ver o conteúdo do tema, mas eu quero bloco tema que envolva meu ponto de vista
Codium

Olá, revise novamente a lista de modelos indicados por "Informações sobre o tema" em Exibir-> Configurações do bloco. Existem vários modelos que terminam com --blocko nome dele. Lembre-se de reescanear modelos e lembre-se de colocar o modelo dentro do diretório do seu tema atual (copie o modelo selecionado de módulos / visualizações / tema). o modelo deve ter o nome sugerido na lista "Informações do tema". Funciona.
cigotete

@drupality, adicionei um exemplo com as etapas para revisar o processo, por favor, revise no parágrafo " por exemplo ", na resposta.
cigotete

Obrigado, mas também não consigo remover o invólucro padrão div class = "content". Só posso alterar o html criado por views #
Codium

2
@ moon.watcher Acho que você não entendeu. Terminar o arquivo de modelo com "bloco" não afeta o tema do próprio bloco. Torna esse arquivo de modelo específico para o bloco que a exibição está sendo exibida (como uma exibição pode gerar vários blocos da mesma exibição). O conteúdo temático da visualização é enviado para o mecanismo de tema do bloco e é agrupado na marcação fornecida pelo block.tpl.php. O que a drupalidade está tentando fazer (assim como eu) é mudar o tema do próprio bloco.

18

Para quem procura a resposta no D7, de acordo com o Theme Developer (também conhecido como devel_themer), é possível criar uma substituição tpl para o bloco de uma visualização usando a convenção:

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

Portanto, no exemplo, você receberá

block - views-- post- Listing -block.tpl.php

Sem os espaços (eu não poderia editar isso corretamente para permitir que tudo ficasse em linha.


Confirmo que o noTxt está correto, vá para a seção do bloco e edite o bloco. O URL deve mostrar o nome do bloco da visualização com sublinhado, my_view_name-block. substituir os sublinhados por isso a minha-view-nome, e use este formato: "bloquear - vistas - meu-view-name = block.tpl.php"
Nevos

2
Sim, esta é a resposta mais correta, portanto: block - views - VIEWNAME-MACHINENAMEOFDISPLAY.tpl.php Atenção ao traço único antes do nome da máquina! Nome da máquina = por padrão, ele é nomeado como bloco, bloco 1 e assim por diante, mas você pode renomeá-lo nas visualizações da interface do usuário.
Nikit 17/04

7

Ao final de meia hora, alterando os nomes tpl, aqui está minha conclusão final:

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

[view-name] - a parte [display-name] pode ser encontrada como noTxt dito ou se juntando a um '-' o nome de id da visualização e o nome de id da visualização, o bloco no final não está correto .


5

No Drupal 8

insira a descrição da imagem aqui

O modelo de campos seria:

views-view-fields - [nome-da-vista] - bloco-1.html.twig


Esta pergunta foi sobre D7 ... Por que o Drupal 8 na sua resposta?
usar o seguinte código

@ Pierre.Vriens, como a pergunta é popular em visualizações (não no módulo), achei que deveria adicionar uma resposta da versão D8 aqui.
precisa saber é o seguinte

Agora, essa é uma ideia interessante ... Que tal fazer o mesmo também com essas perguntas + 21K ?
precisa saber é o seguinte

@ Pierre.Vriens a maioria deles não é popular.
Não Sssweat

1
8 tag added, nice;)
Codium

1

block--views--[view-name]-[display-name].tpl.phpdeve ser alterado para block--views--[view-name]-[machinename].tpl.php.

Você encontrará o nome da máquina na seção avançada de visualizações, onde está escrito outro


1

Os padrões de nome de arquivo descritos acima funcionam, a menos que seu nome de exibição + nome de exibição seja maior que uma certa quantidade de caracteres !! Fui pego por isso e não consegui descobrir por que um arquivo de modelo terminado em ... block.tpl.phpestava funcionando e a seguinte tela ... block-1.tpl.phpnão estava funcionando.

Acontece que o Views substitui o nome da máquina por um hash MD5 se o nome for muito longo. Se você quiser ter certeza do nome do modelo que deve usar, adicione $conf['theme_debug'] = TRUE;seu settings.php e, em seguida, verifique a fonte da página. se você encontrar algo como block--views--d131dd02c5e6eec4... é melhor diminuir o nome da máquina da exibição (se você conseguir fazer isso ... Não é o nome legível por humanos). Ou então você precisa usar um arquivo de modelo com esse nome bobo.

Veja também

Views O nome da máquina do bloco está sendo "hash" (?)

e

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


0

Verifique esta página https://www.drupal.org/node/1089656 e informações sobre sublinhados que visualizações usam:

Além disso, mais um exemplo com Views, se você tiver um bloco criado por views com o nome de visualização "front_news" e o ID de exibição "block_1", a sugestão de gancho de tema seria: block - views - front-news-block-1. tpl.php (observe, quando você tem sublinhados em um ID de exibição ou em um nome de exibição - você precisa transformá-los em um único traço)


0

Para blocos dentro dos painéis, a solução fornecida pelo noTxt e outros não está funcionando. A sintaxe seria então (sem sublinhados!):

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

Agradecemos a user3074436 por fornecer a configuração $ conf ['theme_debug'] para descobrir esse caso excepcional de substituição de tema


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.