Crea file modello per blocco visualizzazioni


19

C'è molto sul tema dei blocchi personalizzati, ma per quanto riguarda i blocchi creati dalle viste?

Il mio blocco visualizzazioni ha ID: block-views-posts-listing-block,

Provo molti modi per assegnare un nome al file modello, ad esempio: block - block - views-posts-listing-block.tpl.php, ma non riesco a trovare il nome file corretto.


1
Il modulo sviluppatore tema può dirti il ​​nome del file modello.
Oswald,

Grazie, ma rilevo che a volte Themer per D7 non funziona correttamente.
Codium,

Risposte:


18

Modifica la tua vista. e Sotto le impostazioni "Avanzate" dei dettagli del tuo blocco, fai clic su "Theme: Information". Verrà visualizzato un elenco di opzioni di file modello.

ad esempio, se il blocco ha un nome "elenco di messaggi", vedere i possibili nomi elencati dall'opzione "Informazioni sul 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 

per esempio : il tuo blocco ha un elenco di post di nomi e ha uno stile non formattato , quindi "Informazioni sul tema" suggerisce il nome views-view-unformatted--posts-listing--block.tpl.php(questo è solo uno dei numerosi nomi). è possibile copiare l'originale views-view-unformatted.tpl.phpfile di modello (che si trova in / modules / views / a tema) nella directory tema corrente, e rinominare il file con il nome suggerito: views-view-unformatted--posts-listing--block.tpl.php. quindi apporta le modifiche all'interno del tuo file modello. Se questo modello non consente di apportare le modifiche desiderate, cercare altri modelli in base alle proprie esigenze.

Alla fine, se aggiungi un nuovo modello, esegui nuovamente la scansione dell'elenco dei file modello:

Importante! Quando si aggiungono, si rimuovono o si rinominano i file modello, è necessario rendere Drupal consapevole delle modifiche apportando una nuova scansione dei file sul proprio sistema. Facendo clic sul pulsante "Rescan template Files" si cancella il registro dei temi di Drupal e quindi si avvia questo processo di riscansione. I modelli evidenziati (nell'elenco dei modelli sopra il pulsante "Ripeti scansione file modello") rispecchieranno quindi il nuovo stato del sistema.

Anche il modulo per sviluppatori di temi http://drupal.org/project/devel_themer suggerito da Oswald potrebbe essere utile per rilevare possibili template / s per modificare elementi specifici in base ai tuoi criteri. Non consiglio questo modulo abilitato negli ambienti di produzione (nel mio caso, anche io ho disabilitato il modulo negli ambienti di test, perché sembra avere conflitti con le viste, ma quando è stato necessario, è stato molto utile)


No, non aiuta con le visualizzazioni dei temi a bloccare l'output. È solo per il contenuto della vista a tema, ma voglio bloccare il tema che avvolge la mia vista
Codium,

Ciao, ti preghiamo di rivedere l'elenco dei modelli indicati da "Informazioni sul tema" in Visualizza-> Impostazioni blocco, ci sono diversi modelli che terminano con il --blocksuo nome. Ricorda di ripetere la scansione dei modelli e ricorda di inserire il modello nella directory del tuo tema corrente (copia il modello selezionato da moduli / viste / tema). il modello deve avere il nome suggerito dall'elenco "Informazioni sul tema". Funziona.
cigotete,

@drupality, ho aggiunto un esempio con i passaggi per rivedere il processo, si prega di rivedere nel paragrafo " ad esempio ", nella risposta.
cigotete,

Grazie, ma non riesco a rimuovere anche il wrapper predefinito div class = "content". Posso solo modificare l'html creato dalle visualizzazioni
Codium,

2
@ moon.watcher Penso che tu fraintenda. La fine del file modello con "blocco" non influisce sul tema del blocco stesso. Rende quel file modello specifico per il blocco che la vista sta emettendo (poiché una vista può produrre più blocchi dalla stessa vista). Il contenuto a tema dalla vista viene inviato al motore del tema del blocco ed è racchiuso nel markup fornito da block.tpl.php. Ciò che la drupalità sta cercando di fare (così come lo sono io) è cambiare il tema del blocco stesso.

18

Per coloro che cercano la risposta in D7, secondo Theme Developer (aka devel_themer), è possibile creare una sostituzione tpl per il blocco di una vista utilizzando la convenzione:

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

Pertanto, nell'esempio dare si otterrà

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

Senza gli spazi (non potrei modificarlo correttamente per consentire a tutto di essere in linea.


Confermo che noTxt è corretto, vai alla sezione del blocco e modifica il blocco, l'URL dovrebbe mostrarti il ​​nome del blocco della vista con trattino basso, my_view_name-block. sostituisci i caratteri di sottolineatura così my-view-name e usa questo formato: "block - views - my-view-name = block.tpl.php"
Nevos

2
Sì, questa è la risposta più corretta, quindi: block - views - VIEWNAME-MACHINENAMEOFDISPLAY.tpl.php Attenzione al trattino singolo prima del nome della macchina! Nome macchina = per impostazione predefinita è denominato blocco, blocco 1 e così via, ma è possibile rinominarlo nell'interfaccia utente delle viste.
Nikit,

7

Alla fine di mezz'ora cambiando i nomi di tpl, ecco la mia conclusione finale:

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

[view-name] - la parte [display-name] può essere trovata come noTxt detto o unendosi con un '-' il nome id della vista e il nome id della visualizzazione della vista, il blocco alla fine non è corretto .


5

In Drupal 8

inserisci qui la descrizione dell'immagine

Il modello dei campi sarebbe:

Visto-view-campi - [Visualizza-name] - block-1.html.twig


Questa domanda riguardava D7 ... Perché Drupal 8 nella tua risposta?
Pierre.Vriens,

@ Pierre.Vriens poiché la domanda è popolare nelle viste (non nel modulo), ho pensato che avrei dovuto aggiungere una risposta alla versione D8 qui.
No Sssweat,

Questa è un'idea interessante ... Che ne dici di fare lo stesso anche per queste domande + 21K ?
Pierre.Vriens,

@ Pierre.Vriens molti di questi non sono popolari.
No Sssweat,

1
8 tag aggiunti, bello;)
Codium

1

block--views--[view-name]-[display-name].tpl.phpdovrebbe essere cambiato in block--views--[view-name]-[machinename].tpl.php.

Troverai il nome della macchina nella sezione avanzata delle tue viste in cui è scritto altro


1

I modelli di nomi di file descritti sopra funzionano A MENO che il nome della vista + il nome visualizzato sia più lungo di un certo numero di caratteri !! Sono stato colto da questo e non sono riuscito a trovare il motivo per cui un file modello che terminava in ... block.tpl.phpfunzionava e il seguente display ... block-1.tpl.phpnon funzionava.

Si scopre che Views sostituisce il nome della macchina con un hash MD5 se il nome è troppo lungo. Se vuoi essere sicuro del nome del modello che dovresti usare, aggiungi il $conf['theme_debug'] = TRUE;tuo settings.php e guarda l'origine della pagina. se trovi qualcosa del genere block--views--d131dd02c5e6eec4... è meglio abbreviare il nome della macchina della vista (se riesci a farlo ... Non è il nome leggibile dall'uomo). Altrimenti devi usare un file modello con quel nome sciocco.

Guarda anche

Il nome della macchina di Views Block viene "cancellato" (?)

e

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


0

Controlla questa pagina https://www.drupal.org/node/1089656 e informazioni sui caratteri di sottolineatura che le visualizzazioni utilizzano:

Anche un altro esempio con Views, se hai un blocco creato da viste con un nome di vista "front_news" e visualizza l'id "block_1", il suggerimento di hook del tema sarebbe: block - views - front-news-block-1. tpl.php (nota, quando hai caratteri di sottolineatura in un ID di visualizzazione o in un nome di vista, devi trasformarli in un singolo trattino)


0

Per i blocchi all'interno dei pannelli, la soluzione fornita da noTxt e altri non funziona. La sintassi sarebbe quindi (nessun carattere di sottolineatura!):

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

Grazie a user3074436 per aver fornito l'impostazione $ conf ['theme_debug'] al fine di capire questo eccezionale caso di sostituzione del tema


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.