Estou tentando usar o Drupal 8, com um tema personalizado, devido a grandes diferenças de estrutura para os meus requisitos. Tenho uma página - front.twig.html e uma página.twig.html, gostaria de criar partes do modelo, conforme usado em phrozn oder em um projeto normal do Symfony2, por exemplo, footer.html.twig e header.html.twig. Esses modelos são salvos em um subdiretório / parts /.
Mas quando chamo esses modelos normalmente, recebo apenas uma string com o nome do modelo.
Por exemplo:
{# in page.html.twig or page--front.html.twig #}
{% include 'parts/footer.html.twig' %}
Retorna o nome do arquivo como string:
parts/footer.html.twig
É possível fazer isso com o Drupal 8?
include
e passar valores? Suponha que eu gostaria de incluirimage-formatter
e passar ourl
nulo para evitar criar imagens vinculadas.@mytheme
resolve o caminho damytheme
+ string/templates
. Em outras palavras,@mytheme
resolve para omytheme/templates
diretório@mytheme
resolvido para 'themes / custom / mytheme / templates' . Incluindo um modelo localizado no@mytheme/fragments/footer.html.twig
meio que vai resolver a 'themes / custom / mytheme / templates / fragmentos / footer.html.twig'Use um caminho completo para o diretório do tema. Se você usar o espaço para nome, precisará alterá-lo se trouxer o código para outro site ou tema.
Isso deve funcionar:
fonte
Também é possível usar o uso de um array pelo Twig para criar um fallback quando o arquivo não existe.
Por exemplo. Se footer.html.twig não estiver disponível, defaultfooter.html.twig seria usado.
Combine isso com o uso de variáveis nos nomes de arquivos e você pode incluir arquivos diferentes, dependendo de algum tipo de contexto.Nota: ainda estou tentando descobrir se essa é a melhor prática ou não.
fonte
Observe que você pode passar variáveis após a
with
palavra-chave:Consulte a documentação do Twig http://twig.sensiolabs.org/doc/tags/include.html
fonte
Agora que a herança do modelo Add Twig com base no registro do tema, foi permitido confirmar a adição de carregadores Twig , você também pode usar a seguinte linha.
fonte
Para Drupal 8
A inclusão de um arquivo galho no tema quando você faz um
{% include 'FILE_NAME.html.twig' %}
Drupal espera que seu ARQUIVO esteja localizado no seu Diretório de Temas atual. Basta colocá-lo lá e vai funcionar.Incluindo um arquivo galho no seu módulo
Se você quiser adicioná-lo em um MÓDULO, precisará declará-lo na Função TEMA. No seu arquivo .module, adicione o seguinte:
Em seguida, coloque seu arquivo Twig em YOUR_MODULE / template / FILE_NAME.html.twig
fonte