Crear archivo de plantilla para el bloque de vistas


19

Hay mucho acerca de crear bloques personalizados, pero ¿qué pasa con los bloques creados por las vistas?

Mi bloque de vistas tiene id: block-views-posts-listing-block,

Intento muchas formas de nombrar el archivo de plantilla, por ejemplo: block - block - views-posts-listing-block.tpl.php, pero no puedo encontrar el nombre de archivo correcto.


1
El módulo desarrollador de temas puede indicarle el nombre del archivo de plantilla.
Oswald

Gracias, pero detecto que Themer para D7 a veces no funciona correctamente.
Codium

Respuestas:


18

Edita tu vista. y En la configuración "Avanzada" de los detalles de su Bloque, haga clic en "Theme: Information". Se mostrará una lista de opciones de archivos de plantilla.

por ejemplo, si su bloque tiene un nombre "listado de publicaciones", vea los posibles nombres enumerados por la opción "Información del 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 ejemplo : su bloque tiene la lista de publicaciones de nombre y tiene un estilo sin formato , luego "Información del tema" sugiere el nombre views-view-unformatted--posts-listing--block.tpl.php(este es solo uno de varios nombres). puede copiar el original views-view-unformatted.tpl.phparchivo de plantilla (que se encuentra en / modules / views / tema) a su directorio de tema actual, y cambiar el nombre de este archivo con el nombre sugerido: views-view-unformatted--posts-listing--block.tpl.php. luego realice los cambios dentro de su archivo de plantilla. Si esta plantilla no permite realizar los cambios deseados, busque otras plantillas según sus necesidades.

Al final, si agrega una nueva plantilla, vuelva a escanear la lista de archivos de plantilla:

¡Importante! Al agregar, eliminar o renombrar archivos de plantilla, es necesario informar a Drupal de los cambios haciendo que vuelva a escanear los archivos en su sistema. Al hacer clic en el botón "Volver a analizar archivos de plantilla", borra el registro de temas de Drupal y, por lo tanto, activa este proceso de nuevo análisis. Las plantillas resaltadas (en su lista de plantillas arriba del botón "Volver a analizar archivos de plantilla") reflejarán el nuevo estado de su sistema.

También el Módulo de desarrollador de temas http://drupal.org/project/devel_themer sugerido por Oswald podría ser útil para detectar posibles plantillas / s para cambiar elementos específicos según sus criterios. No recomiendo este módulo habilitado en entornos de producción (en mi caso, incluso he desactivado el módulo en entornos de prueba, porque parece tener conflictos con las vistas, pero cuando ha sido necesario, ha sido muy útil)


No, no ayuda con las vistas de tema que bloquean la salida. Es solo para el contenido de la vista de tema, pero quiero bloquear el tema que envuelva mi vista
Codium

Hola, revise nuevamente la lista de plantillas indicadas por "Información del tema" en Ver-> Configuración de bloque, hay varias plantillas que terminan --blocken su nombre. Recuerde volver a escanear plantillas y recuerde poner la plantilla dentro del directorio de su tema actual (copie la plantilla seleccionada de los módulos / vistas / tema). la plantilla debe tener el nombre sugerido en la lista "Información del tema". Funciona.
cigotete

@drupality, he agregado un ejemplo con pasos para revisar el proceso, por favor revise en el párrafo " por ejemplo ", en la respuesta.
cigotete

Gracias pero tampoco puedo eliminar el contenedor predeterminado div class = "content". Solo puedo alterar el html creado por las vistas
Codium

2
@ moon.watcher Creo que lo malinterpretas. Terminar el archivo de plantilla con "bloque" no afecta la temática del bloque en sí. Hace que el archivo de plantilla sea específico para el bloque que está generando la vista (ya que una vista puede generar múltiples bloques desde la misma vista). El contenido temático de la vista se emite al motor de bloqueo de temas y se envuelve en el marcado proporcionado por block.tpl.php. Lo que drupality está tratando de hacer (al igual que yo) es cambiar la temática del bloque en sí.

18

Para aquellos que buscan la respuesta en D7, de acuerdo con Theme Developer (también conocido como devel_themer), puede crear una anulación de tpl para el bloque de una vista utilizando la convención:

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

Por lo tanto, en el ejemplo, le dará

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

Sin los espacios (no podría editar esto correctamente para permitir que todo esté en línea.


Confirmo que noTxt es correcto, vaya a la sección de bloque y edite el bloque, la url debería mostrarle el nombre del bloque de la vista con guión bajo, my_view_name-block. reemplace los guiones bajos de modo que my-view-name, y use este formato: "block - views - my-view-name = block.tpl.php"
Nevos

2
Sí, esta es la respuesta más correcta, así que: bloque - vistas - VIEWNAME-MACHINENAMEOFDISPLAY.tpl.php ¡Atención al guión único antes del nombre de la máquina! Nombre de la máquina = por defecto se llama bloque, bloque-1, etc., pero puede cambiarle el nombre en la interfaz de usuario de las vistas.
Nikit

7

Al final de media hora cambiando los nombres de tpl, aquí está mi conclusión final:

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

[view-name] - La parte [display-name] se puede encontrar como noTxt dijo o uniéndose con un '-' el nombre de identificación de la vista y el nombre de identificación de la vista de visualización, el bloque al final no es correcto .


5

En Drupal 8

ingrese la descripción de la imagen aquí

La plantilla de campos sería:

views-view-fields - [nombre-vista] - bloque-1.html.twig


Esta pregunta fue sobre D7 ... ¿Por qué el Drupal 8 en su respuesta?
Pierre.Vriens

@ Pierre.Vriens ya que la pregunta es popular en las vistas (no en el módulo), pensé que debería agregar una respuesta de la versión D8 aquí.
No Sssweat

Ahora que es una idea interesante ... ¿Qué tal hacer lo mismo para estas preguntas + 21K también entonces?
Pierre.Vriens

@ Pierre.Vriens, la mayoría de ellos no son populares.
No Sssweat

1
8 etiquetas agregadas, agradable;)
Codium

1

block--views--[view-name]-[display-name].tpl.phpdebe cambiarse a block--views--[view-name]-[machinename].tpl.php.

Encontrará el nombre de la máquina en la sección avanzada de vistas donde está escrito otro


1

¡Los patrones de nombre de archivo descritos anteriormente funcionan A MENOS QUE su nombre de vista + nombre para mostrar sea más largo que una cierta cantidad de caracteres! Me sorprendió esto y no pude encontrar por qué un archivo de plantilla que terminaba en ... block.tpl.phpfuncionaba y la siguiente pantalla ... block-1.tpl.phpno funcionaba.

Resulta que Vistas reemplaza el nombre de la máquina con un hash MD5 si el nombre es demasiado largo. Si desea estar seguro del nombre de la plantilla que debe usar, agregue $conf['theme_debug'] = TRUE;su settings.php y luego mire la fuente de la página. si encuentra algo como block--views--d131dd02c5e6eec4... será mejor que acorte el nombre de la máquina de la vista (si logra hacer eso ... No es el nombre legible por humanos). O bien, debe usar un archivo de plantilla con ese nombre tonto.

ver también

El nombre de la máquina de Views Block está siendo "hash" (?)

y

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


0

Consulte esta página https://www.drupal.org/node/1089656 , e información sobre guiones bajos que utilizan las vistas:

También un ejemplo más con Vistas, si tiene un bloque creado por vistas con un nombre de vista "front_news" y muestra la identificación "block_1", entonces la sugerencia de enlace de tema sería: block - views - front-news-block-1. tpl.php (aviso, cuando tiene guiones bajos en una identificación de pantalla o en un nombre de vista, debe transformarlos en un solo guión)


0

Para los bloques dentro de los paneles, la solución proporcionada por noTxt y otros no funciona. La sintaxis sería entonces (¡sin guiones bajos!):

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

Gracias a user3074436 por proporcionar la configuración $ conf ['theme_debug'] para descubrir este caso excepcional de anulación de tema


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.