it-swarm.it

Rimozione dei div aggiunti da render e node.tpl.php

Sto cercando di creare un modello HTML5 per Drupal 7, e sono abbastanza particolare riguardo al codice pulito. Voglio il pieno controllo su HTML e CSS che per la maggior parte ottengo usando il mio proprio tema personalizzato. In altre parole, ho un set HTML5 e CSS che voglio usare esattamente come in Drupal. Non sono troppo indizi su come funzioni l'intera funzione pre-processo.

Quando uso "print render ($ page ['content']) 'nel mio file page.tpl.php, viene aggiunto

<div class="region region-content"> 
    <div id="block-system-main" class="block block-system"> 
        <div class="content">

E poi quando aggiungo 'print render ($ content)' nel nodo - custom.tpl.php aggiunge

<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">

Non voglio nessuno di questi div. Come posso liberarmene?

15
Jack McKenzie

Gli ID div e le classi che vedi all'interno di $ page ['content'] provengono da region.tpl.php> block.tpl.php> node.tpl.php Drupal passa attraverso questi file modello , ogni passaggio aggiunge alcuni div.

  • Step One

il file region.tpl.php contiene il codice come segue

       <?php if ($content): ?>
  <div class="<?php print $classes; ?>">
    <?php print $content; ?>
  </div>
<?php endif; ?>

ora se apporti modifiche in questo file, avrà effetto su tutte le aree della tua pagina. Se vuoi controllare solo l'area del contenuto, crea un nuovo nome file nella regione - content.tpl.php solo in quel file incolla

<?php if ($content): ?>

    <?php print $content; ?>

<?php endif; ?>

Questo eliminerà il div creato solo per la regione di contenuto.

  • Fase due

Crea una copia (se effettuiamo modifiche in block.tpl.php verranno effettuati tutti i blocchi) di block.tpl.php e chiamalo block - content.tpl.php e rimuovi o modifica i div. Senza i div il file conterrà il seguente codice per l'output del contenuto.

<?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; ?>

Questo eliminerà il div creato da bock.tpl.php

  • Fase tre

Ora modifica il file node.tpl.php per rimuovere o cambiare i div. Senza i div il file conterrà il seguente codice per l'output del contenuto. > ">

    <?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']); ?>

Questo eliminerà tutti i div e le classi. Ora puoi avvolgere il contenuto con i tuoi div. Per favore fatemi sapere se funziona per voi.

17
15dk51