personalizzazione corpo di tipo di contenuto.

18 contenuti / 0 new
Ultimo contenuto
personalizzazione corpo di tipo di contenuto.

Vorrei personalizzare solo una parte del tipo di contenuto, e cioè il corpo.

Direttamente via css non trovo nulla su cui applicare la classe. Con firebug vedo che tutti i campi hanno una classe tranne il corpo, dove c'è solo il tag p.

Modificando il template, applicando la classe al content mi si modifica ovviamente tutto il contenuto e non solo la classe che mi interessa.

Ho provato ad installare contemplate ma, a parte che non mi è del tutto chiaro come intervenire, mi si mostrano tutti i div con le relative classi, ma del corpo del nodo non vedo traccia.

ciao e grazie

semantic views o modifica il template della vista.

ci sono molte opzioni (d6).
una è contemplate.
puoi creare un template per il content type, ma devi destrutturare e ricostruire tutto il contenuto.
puoi costruirti un mini-modulo con questo semplice codice (vedi http://capellic.com/blog/theming-the-node-body-field):

<?php
 
function MIOMODULO_nodeapi(&$node, $op, $teaser, $page) {
    if (
$op == 'view' ) {
       
$node->content[body]['#value'] = '<div class="node-body">' . $node->content[body]['#value'] . '</div>';
    }
}
?>

puoi usare questo modulo: http://drupal.org/project/body-wrap-filter (nota: il nome della classe lo devi modificare nel codice)

@ealmuno
è il nodo che devo modificare, non la vista. Semantic view è comunque molto interessante.

@bohz
Il modulo body wrap filter funziona, ma applica le modifiche a tutti i corpi del sito e non solo dove mi serve.
Contemplate non mi mostra la sezione del corpo, neanche dopo aver installato body wrap.

ciao e grazie

se il tuo tema fornisce, come spero, una body class per il tipo di nodo puoi specificarlo nel selettore CSS.
il filtro ti fornisce .body-field-content; se ad esempio hai un content type "pagina" e la rispettiva body class, puoi fare

.content-type-pagina .body-field-content{
...
}

Ma come aggiungo
.content-type-pagina?

Al momento la visualizzazione è questa:

http://iismarchesi.it/content/documento-1-2011

ciao e grazie

purtroppo il tuo tema non ha una classe per content type.
dovresti aggiungerla in template.php. però bisogna vedere se il tuo tema usa la variabile $classes o $body_classes o altro.
che tema(base) utilizzi?

Scusa se mi intrometto.
Non è che tu abbia già inserito in sito il modulo Panels?
Panels è un modulo che con la funzione Node template permette di fare molto.
E' un po' pesante, ma io lo uso spesso e l'ho uasato anche ora con Drupal 7 per Albo.
Ossia la tabella Albo documenti in fase di pubblicazione e Albo storico sono molto simili a quanto anch'io ho fatto.
Però la visualizzazione del singolo nodo-atto l'ho realizata con Panels usando Node template

@bohz
che tema(base) utilizzi?

uso simply_modern 1.5 per tutti i siti che ho fatto.

@luisasasi

Panels lo uso già in alcune pagine del sito, ma stavo studiando una maniera per eliminarlo. Al limite provo con quello.

ciao e grazie

ahimè, simply modern è un tema, diciamo sui generis, e un po' attempato.
si può senz'altro inserire una classe per content type, ma bisogna vedere..
se ho tempo provo.

Il tema è attempato come me.

Ho risolto comunque sfruttando la classe degli altri campi e mi pare che il risultato sia complessivamente soddisfacente.

ti ringrazio

ciao

non volevo mica offendere.
ho provato con simply_modern:
se vuoi una classe per content type puoi inserire questo codice nella funzione di preprocess_node del tuo template.php:

<?php
 
function simply_modern_preprocess_node(&$vars){
  
$node = $vars['node'];
  
$vars['nodeclass'] = ' ' . $node->type;
   }
?>

poi, in node tpl.php inserisci <?php print $nodeclass; ?> nella div node, tipo:
<div class="node<?php if ($sticky) { print " sticky"; } ?><?php if (!$status) { print " node-unpublished"; } ?><?php print $nodeclass;?>">
poi potrai creare regole CSS specifiche del tipo:
.pagina .body-field-content{
...
}

Perché mi dovrei sentire offeso? e di che cosa? Sei sempre molto gentile e disponibile e la mia era solo una battuta.

Ti ringrazio per tutto il lavoro. Ho altri due siti dove poter sfruttare i tuoi suggerimenti.

ciao e grazie ancora

Quote:

bgiody wrote:
Vorrei personalizzare solo una parte del tipo di contenuto, e cioè il corpo.

ma scusate, non si fa prima ad aggiungere la classe o ID a style.css (oppure ad un custom.css) del tema e inserire nel body (con filtro PHP abilitato...) una cosa del genere?

<div class="mia_classe_custom_per_il_body_01">
contenuto...
</div>

...eventualmente "annidare" altri DIV per un Body + complesso???

io uso spesso questa "tattica" e mi ci trovo benone... o che abbia capito male... ma mi sembra abbastanza chiara l'esigenza...

Questa modalità va bene quando crei un nodo e vuoi formattarlo a tuo piacere. Qui invece c'è un tipo di contenuto che deve essere uniformemente formattato.

L'operatore che deve creare il contenuto, deve già trovare la classe preimpostata e non può, per ogni nodo, scrivere il codice (a parte che non ne sarebbe assolutamente capace).

ciao

ah... ok!

ciao

ci sarebbe un piano B...

cambi in node-my_ctype_01.tpl.php da così:

  <div class="content clear-block">
    <?php print $content ?>
  </div>

a così:

<div class="content clear-block">
<div id="stampa_body">
<?php print $node->content['body']['#value']; ?>
</div>
<div id="stampa_campo_cck_01">
<?php print $node->field_cck_01[0]['view'] ?>
</div>
<div id="stampa_campo_cck_02">
<?php print $node->field_cck_02[0]['view'] ?>
</div>
</div>

e così via...

certo che sei una miniera di idee.

Per adesso mi accontento di dove sono arrivato.

ciao e grazie a tutti