Convenzioni sui nomi dei template Twig
Drupal carica i template in base a determinate convenzioni di denominazione. Questo ti consente di sovrascrivere i template aggiungendoli al tuo tema e assegnando loro nomi specifici.
Dopo aver aggiunto un template, è necessario ricostruire la cache affinché Drupal riconosca il nuovo file.
Puoi fare debug dei template Twig per scoprire quali template vengono utilizzati per generare il markup di un elemento. Ulteriori informazioni sul debug Twig qui.
In questa pagina sono elencate le convenzioni usate per la struttura HTML di base, le pagine, le regioni, i blocchi, i nodi, i campi e altri componenti principali. (È utile sapere che puoi creare suggerimenti personalizzati per i nomi dei template tramite hook_theme_suggestions_HOOK_alter.)
HTML (template <head>)
Il template HTML fornisce il markup per la struttura di base della pagina, inclusi i tag <head>, <title> e <body>.
Template base: html.html.twig (posizione: core/modules/system/templates/html.html.twig)
Esempi di sovrascrittura del template base:
- html--[internalviewpath].html.twig
- html--node--[nodeid].html.twig
- html.html.twig
Consulta la documentazione API html.html.twig.
Template Page
Template: page--[front|internal/path].html.twig
Template base: page.html.twig (posizione: core/modules/system/templates/page.html.twig)
I suggerimenti sono numerosi. La home page ha priorità. Gli altri si basano sul percorso interno della pagina corrente. La home page può essere configurata in Amministrazione > Configurazione > Sistema > Informazioni sul sito (http://example.com/admin/config/system/site-information). Il template per la home è page--front.html.twig.
Non confondere il percorso interno con gli alias, che non vengono considerati.
Per esempio, “http://www.example.com/node/1/edit” produrrà i seguenti suggerimenti:
- page--node--edit.html.twig
- page--node--1.html.twig
- page--node.html.twig
- page.html.twig
Consulta la documentazione API page.html.twig. Vedi anche il template pagina di manutenzione.
Regions
Template: region--[region].html.twig
Template base: region.html.twig (posizione: core/modules/system/templates/region.html.twig)
Il template di una regione viene usato quando una sezione della pagina contiene contenuto (blocchi o hook come hook_page_top() o hook_page_bottom()). I nomi delle regioni sono definiti nel file .info.yml del tema.
Consulta la documentazione API region.html.twig.
Blocks
Template: block--[module]--[delta].html.twig
Template base: block.html.twig (posizione: core/modules/block/templates/block.html.twig)
- block--[module]--[delta].html.twig
- block--[module].html.twig
- block.html.twig
“module” è il nome del modulo, mentre “delta” è l’identificatore assegnato al blocco.
Ad esempio: block--block--1.html.twig viene usato per il primo blocco creato con il modulo Block (ID 1).
Con un modulo personalizzato chiamato “custom” e delta “my-block”, il file sarà block--custom--my-block.html.twig.
Con Views: se hai una vista “front_news” con display ID “block_1”, il suggerimento sarà block--views-block--front-news-block-1.html.twig (gli underscore diventano trattini).
I nomi dei moduli sono case-sensitive. Se il modulo si chiama “MyModule”, il template sarà block--MyModule.html.twig.
Consulta la documentazione API block.html.twig.
Nodes
Template: node--[content-type|nodeid]--[viewmode].html.twig
Template base: node.html.twig (posizione: core/modules/node/templates/node.html.twig)
I suggerimenti seguono un ordine dal più specifico al meno specifico:
- node--[nodeid]--[viewmode].html.twig
- node--[nodeid].html.twig
- node--[content-type]--[viewmode].html.twig
- node--[content-type].html.twig
- node--[viewmode].html.twig
- node.html.twig
Nota: gli underscore nei nomi macchina vengono sostituiti da trattini.
Consulta la documentazione API node.html.twig.
Termini di tassonomia
Template: taxonomy-term--[vocabulary-machine-name|tid].html.twig
Template base: taxonomy-term.html.twig (posizione: core/modules/taxonomy/templates/taxonomy-term.html.twig)
- taxonomy-term--[tid].html.twig
- taxonomy-term--[vocabulary-machine-name].html.twig
- taxonomy-term.html.twig
Gli underscore nel nome del vocabolario vengono sostituiti da trattini.
Consulta la documentazione API taxonomy-term.html.twig.
Fields
Template: field--[[type|name]|[entity-type]--[field-name|content-type]].html.twig
Template base: field.html.twig (posizione: core/modules/system/templates/field.html.twig)
- field--node--[field-name]--[content-type].html.twig
- field--node--[field-name].html.twig
- field--node--[content-type].html.twig
- field--[field-name].html.twig
- field--[field-type].html.twig
- field.html.twig
Nota: gli underscore nei nomi macchina dei campi diventano trattini. Ricorda di includere il prefisso “field-”.
Consulta la documentazione API field.html.twig.
Comments
Template: comment--[comment-field-name]--[node-type].html.twig
Template base: comment.html.twig (posizione: core/modules/comment/templates/comment.html.twig)
Esempio: commento su un nodo di tipo articolo → comment--field-comments--article.html.twig.
Consulta la documentazione API comment.html.twig.
Forums
Template: forums--[[container|topic]--forumID].html.twig
Template base: forums.html.twig
Per i container:
- forums--containers--[forumid].html.twig
- forums--[forumid].html.twig
- forums--containers.html.twig
- forums.html.twig
Per i topic:
- forums--topics--[forumid].html.twig
- forums--[forumid].html.twig
- forums--topics.html.twig
- forums.html.twig
Pagina di manutenzione
Template: maintenance-page--[offline].html.twig
Template base: maintenance-page.html.twig
Si applica quando il database non è disponibile. Nota: maintenance-page--offline.html.twig non viene rilevato (vedi issue #2720109).
Risultati di ricerca
Template: search-result--[search-type].html.twig
Template base: search-result.html.twig
Esempi: “/search/node/foo” → search-result--node.html.twig, “/search/user/bob” → search-result--user.html.twig.
Views
Template base: views-view.html.twig (posizione: core/themes/stable/templates/views/views-view.html.twig)
Suggerimenti validi:
- views-view--[viewid]--[view-display-id].html.twig
- views-view--[viewid]--page.html.twig
- views-view--block.html.twig
- views-view--[viewid].html.twig
- views-view.html.twig
Template per i campi di una vista:
- views-view-field--[viewid]--[view-display-id]--[fieldid].html.twig
- views-view-field--[fieldid].html.twig