non voglio che un campo cck appaia nella variabile $body in node.tpl.php

5 contenuti / 0 new
Ultimo contenuto
non voglio che un campo cck appaia nella variabile $body in node.tpl.php

ho un contenuto personalizzato al quale ho aggiunto un campo di testo di nome field_abstract (contiene un breve riassunto del contenuto).

sto creando un template node.tpl.php.

visualizzo correttamente il titolo del contenuto con $title, visualizzo correttamente l'abstract con $field_abstract[0]['value']:

<h2>
   <?php echo $title; ?>
</h2>
<div id="abstract">
   <?php echo $field_abstract[0]['value']; ?>
</div>
<div id="node-body">
   <?php echo $body; ?>
</div>

il problema è che nella variabile $body viene riportato il contenuto di field_abstract, che risulta quindi ripetuto.

se vado a vedere il contenuto di body con devel (dsm($node)) vedo che $body dovrebbe contenere solo il testo "vero" del contenuto, non anche l'abstract.

se invece vado a vedere nel sorgente che ottengo, vedo che dentro il div#node-body (che ho rinominato così per evitare ambiguità con body nei css) c'è ancora l'abstract con tanto di label (che nemmeno voglio visualizzare):


<h2>
[titolo del contenuto]
</h2>
<div id="abstract">
[testo abstract]
</div>
<div id="node-body">
   <div class="field field-type-text field-field-abstract">
      <div class="field-label">Abstract:&nbsp;</div>
         <div class="field-items">
            <div class="field-item odd">
            [testo abstract]
            </div>
        </div>
   </div>
   [testo del contenuto]
...

sono andato a vedere nelle impostazioni del campo, ma non ho trovato niente di interessante.

sembrerebbe che l'unica sia intervenire nel css, mettendo un display: none al selettore dell'abstract.

qualcuno può suggerirmi un metodo meno brutale?

grazie.

Ciao,
la vera variabile che contiene solo il testo del campo body è questa:

<?php
 
print $node->content['body']['#value'];
?>

$body è la risultate di tutti i campi, body e CCK compresi!
In alternativa, spuntando exclude dalle impostazioni di visibilità dei campi, forse con $body riesci a visualizzare solo il campo body (non l'ho mai provato, però)!
;)

Puoi anche discriminare la presenza o meno di un campo da Tipo di Contenuto > Page > Visualizza Campi

Slice2Theme Servizio per la conversione di Design in markup HTML e/o temi.

WeBrain Solution | Pillsofbits Of Bits

gioppy wrote:
Ciao,
la vera variabile che contiene solo il testo del campo body è questa:
<?php
 
print $node->content['body']['#value'];
?>

$body è la risultate di tutti i campi, body e CCK compresi!
;)

ottimo, grazie!

(per curiosità, questa cosa è documentata dove? magari ci trovo altre cose che mi mancano).

lbo wrote:
gioppy wrote:
Ciao,
la vera variabile che contiene solo il testo del campo body è questa:
<?php
 
print $node->content['body']['#value'];
?>

$body è la risultate di tutti i campi, body e CCK compresi!
;)

ottimo, grazie!

(per curiosità, questa cosa è documentata dove? magari ci trovo altre cose che mi mancano).


Figurati! ;)
Al momento non ricordo dove l'ho trovata, ma un semplice
<?php
 print_r
($node);
?>

ti mostra tutte le variabili e l'albero generale!
;)