Estou tentando criar um modelo HTML5 para o Drupal 7 e sou bastante específico sobre código limpo. Eu quero controle total sobre o HTML e CSS que, na maioria das vezes, consigo usando meu próprio tema personalizado. Em outras palavras, tenho um conjunto HTML5 e CSS que quero usar exatamente como está no Drupal. Não estou muito preocupado com o funcionamento de toda a função de pré-processo.
Quando eu uso 'print render ($ page [' content ']))' no meu arquivo page.tpl.php, ele adiciona
<div class="region region-content">
<div id="block-system-main" class="block block-system">
<div class="content">
E então quando eu adiciono 'print render ($ content)' no nó - custom.tpl.php, ele adiciona
<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-items">
<div class="field-item even" property="content:encoded">
Eu não quero nenhum desses divs. Como faço para me livrar deles?
Respostas:
Os IDs e classes div que você vê dentro de $ page ['content'] vêm de region.tpl.php> block.tpl.php> node.tpl.php O conteúdo do Drupal passa por esses arquivos de modelo, cada etapa adiciona algumas divs.
O arquivo region.tpl.php contém o código da seguinte maneira
agora, se você fizer alterações nesse arquivo, afetará todas as regiões da sua página. Se você deseja controlar apenas a área de conteúdo, crie um novo nome de arquivo para região - content.tpl.php nesse arquivo, cole apenas
Isso eliminará a div criada apenas para a região de conteúdo.
Faça uma cópia (se fizermos alterações no block.tpl.php, todos os blocos serão afetados) do block.tpl.php e nomeie-o como block - content.tpl.php e remova ou altere as divs. Sem as divs, o arquivo conterá o seguinte código para gerar o conteúdo.
Isso vai se livrar do div criado por bock.tpl.php
Agora edite o arquivo node.tpl.php para remover ou alterar as divs. Sem as divs, o arquivo conterá o seguinte código para gerar o conteúdo. > ">
Isso irá se livrar de todas as div e classes. Agora você pode agrupar o conteúdo com seus próprios divs. Por favor, deixe-me saber se isso funciona para você.
fonte
print render($content);
mas os três segundos divs permanecem. Eu sei que ele está escolhendo o arquivo do nó certo, como quando adiciono algum texto ao arquivo, ele é processado corretamente.foreach ($items as $delta => $item) { print render($item); }
. Qualquer outra pessoa pode querer começar com um field.tpl.php completo, no entanto, porque eu peguei algumas linhas que podem ser importantes, dependendo do que você está tentando fazer. As três divs finais foram adicionadas por esse arquivo - embora eu esteja um pouco confuso, pois a documentação diz que esse arquivo não é usado e é fornecido apenas para um ponto de partida de personalização.O que funciona perfeitamente para mim é:
strip_tags(render($var));
fonte