Saya mencoba menggunakan Drupal 8, dengan tema khusus, karena perbedaan struktur besar untuk persyaratan saya, saya memiliki halaman - front.twig.html dan page.twig.html, saya ingin membuat bagian templat seperti yang digunakan dalam phrozn oder dalam proyek Symfony2 normal, misalnya footer.html.twig dan header.html.twig. Template ini disimpan di bawah subdirektori / bagian /.
Tetapi ketika saya memanggil template ini seperti biasa saya hanya menerima string dengan nama template.
Sebagai contoh:
{# in page.html.twig or page--front.html.twig #}
{% include 'parts/footer.html.twig' %}
Mengembalikan nama file sebagai string:
parts/footer.html.twig
Apakah mungkin melakukannya dengan Drupal 8?
include
dan memberikan nilai? Misalkan saya ingin memasukkanimage-formatter
dan melewatiurl
nol untuk menghindari membuat gambar yang ditautkan.@mytheme
memutuskan ke jalurmytheme
+ string/templates
. Dengan kata lain,@mytheme
putuskan kemytheme/templates
direktori.@mytheme
memutuskan ke 'themes / custom / mytheme / templates' . Termasuk template yang terletak di@mytheme/fragments/footer.html.twig
berarti akan menyelesaikan ke 'tema / adat / mitos / templat / fragmen / footer.html.twig'Gunakan jalur lengkap ke direktori tema. Jika Anda menggunakan namespace, Anda harus mengubahnya jika membawa kode ke situs atau tema lain.
Ini seharusnya bekerja:
sumber
Dimungkinkan juga untuk menggunakan penggunaan array dari Twig untuk membuat fallback ketika file tidak ada.
Misalnya. Jika footer.html.twig tidak tersedia, defaultfooter.html.twig akan digunakan.
Gabungkan ini dengan penggunaan variabel dalam nama file dan Anda dapat memasukkan file yang berbeda tergantung pada semacam konteks.Nb: Saya masih berusaha mencari tahu apakah ini praktik terbaik atau tidak.
sumber
Perhatikan bahwa Anda dapat meneruskan variabel setelah
with
kata kunci:Lihat dokumentasi Twig http://twig.sensiolabs.org/doc/tags/include.html
sumber
Sekarang, Tambahkan warisan template Twig berdasarkan pada registry tema, aktifkan penambahan Twig loader telah dilakukan, Anda juga dapat menggunakan baris berikut.
sumber
Untuk Drupal 8
Termasuk file ranting dalam tema ketika Anda melakukan
{% include 'FILE_NAME.html.twig' %}
Drupal berharap bahwa Anda FILE akan ditemukan di Direktori Tema Anda saat ini. Taruh saja di sana dan itu akan berhasil.Termasuk file ranting di Modul Anda
Jika Anda ingin menambahkannya dalam MODUL, Anda harus mendeklarasikannya dalam Fungsi TEMA. Dalam file .module Anda, tambahkan saja yang berikut ini:
Kemudian masukkan file Twig Anda ke YOUR_MODULE / template / FILE_NAME.html.twig
sumber