Estoy tratando de construir una plantilla HTML5 para Drupal 7, y soy bastante particular sobre el código limpio. Quiero un control total sobre el HTML y CSS, que en su mayor parte obtengo usando mi propio tema personalizado. En otras palabras, tengo un conjunto HTML5 y CSS que quiero usar exactamente como está en Drupal. No estoy muy al tanto de cómo funciona toda la función de preproceso.
Cuando uso 'print render ($ page [' content '])' en mi archivo page.tpl.php agrega
<div class="region region-content">
<div id="block-system-main" class="block block-system">
<div class="content">
Y luego cuando agrego 'render de impresión ($ contenido)' en el nodo - custom.tpl.php agrega
<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">
No quiero ninguno de estos divs. ¿Cómo me deshago de ellos?
Respuestas:
Los identificadores y clases de div que ve dentro de $ page ['contenido'] provienen de region.tpl.php> block.tpl.php> node.tpl.php El contenido de Drupal pasa a través de estos archivos de plantilla, cada paso agrega algunos divs.
El archivo region.tpl.php contiene el código de la siguiente manera
ahora, si realiza cambios en este archivo, afectará a todas las regiones de su página. Si desea controlar solo el área de contenido, cree un nuevo nombre de archivo en la región: content.tpl.php en ese archivo, solo pegue
Esto eliminará el div creado solo para la región de contenido.
Haga una copia (si hacemos cambios en block.tpl.php, todos los bloques se verán afectados) de block.tpl.php y asígnele el nombre block - content.tpl.php y elimine o cambie los divs. Sin los divs, el archivo contendrá el siguiente código para generar contenido.
Esto eliminará el div creado por bock.tpl.php
Ahora edite el archivo node.tpl.php para eliminar o cambiar los divs. Sin los divs, el archivo contendrá el siguiente código para generar contenido. > ">
Esto eliminará todos los div y clases. Ahora puedes envolver el contenido con tus propios divs. Por favor, dígame si le funciona.
fuente
print render($content);
pero quedan los segundos tres divs. Sé que está recogiendo el archivo de nodo correcto, ya que cuando agrego algo de texto en el archivo, sale bien.foreach ($items as $delta => $item) { print render($item); }
. Sin embargo, cualquier otra persona querrá comenzar con un field.tpl.php completo porque eliminé algunas líneas que pueden ser importantes dependiendo de lo que intente hacer. Este archivo agregó los últimos tres divs, aunque estoy un poco confundido porque la documentación dice que este archivo no se usa y solo se proporciona para un punto de partida de personalización.Lo que funciona perfectamente para mí es:
strip_tags(render($var));
fuente