drupal 7 – Eliminando divs agregados por render y node.tpl.php

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.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım