Pregunta:
Estoy tratando de crear una plantilla HTML5 para Drupal 7 y soy bastante exigente con el código limpio. Quiero un control total sobre HTML y CSS, que en su mayor parte obtengo usando mi propio tema personalizado. En otras palabras, tengo un conjunto de 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 'print render ($ content)' 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?
Respuesta:
Los ID de div y las clases que ves dentro de $ page ['content'] 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.
- Paso uno
El archivo region.tpl.php contiene el código de la siguiente manera
<?php if ($content): ?>
<div class="<?php print $classes; ?>">
<?php print $content; ?>
</div>
<?php endif; ?>
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 archivo con el nombre de región: content.tpl.php en ese archivo, pegue solo
<?php if ($content): ?>
<?php print $content; ?>
<?php endif; ?>
Esto eliminará el div creado solo para la región de contenido.
- Segundo paso
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.
<?php print render($title_prefix); ?>
<?php if ($block->subject): ?>
<h2 class="block-title"<?php print $title_attributes; ?>><?php print $block->subject ?></h2>
<?php endif;?>
<?php print render($title_suffix); ?>
<?php print $content; ?>
Esto eliminará el div creado por bock.tpl.php
- Paso tres
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. > ">
<?php print $user_picture; ?>
<?php if ($display_submitted): ?>
<span class="submitted"><?php print $date; ?> — <?php print $name; ?></span>
<?php endif; ?>
<?php
// We hide the comments and links now so that we can render them later.
hide($content['comments']);
hide($content['links']);
print render($content);
?>
<?php if (!empty($content['links']['terms'])): ?>
<?php print render($content['links']['terms']); ?>
<?php endif;?>
<?php if (!empty($content['links'])): ?>
<?php print render($content['links']); ?>
<?php endif; ?>
<?php print render($content['comments']); ?>
Esto eliminará todas las clases y div. Ahora puede envolver el contenido con sus propios divs. Por favor, dígame si le funciona.