Aggiungere una classe in base al content type

3 contenuti / 0 new
Ultimo contenuto
Aggiungere una classe in base al content type

Come posso fare per aggiungere una classe in base al content type, in modo da poter personalizzare le pagine dal css, cosa che il mio tema non fa di suo?
Ho cercato a lungo nel forum e provato le varie soluzioni proposte: modifica del template.php e aggiunta di un node-mioContentType.tpl.php oppure (nel mio caso) di un page-node-mioContentType.tpl.php, ma (a meno di aver saltato qualche altro passaggio) creando il nuovo contenuto non mi carica il nuovo node-mioContentType.tpl.php.
Nel template.php ho aggiunto:

<?php
 
function mioTema_preprocess_node(&$vars, $hook) {
 
$node = $vars['node'];
 
$vars['template_file'] = 'node-'. $node->nid;
  if (!empty(
$node)) {
    
//drupal_add_js(path_to_theme() . "/js/script-node-".$node->nid.".js", "theme");
    
drupal_add_css(path_to_theme(). "/css/style-node-".$node->nid.".css", "theme");
  }
}
function
mioTema_preprocess_page(&$vars) {
    if (
$vars['node']->type != "" && arg(2)!='edit' && arg(1) !='add' && arg(2) !='delete') {
     
$vars['template_files'][] = "page-node-" . $vars['node']->type;
    }
    if (
arg(0) == 'admin'){ $vars['template_file'] = 'page-admin'; }
    if (
drupal_is_front_page()) { $vars['template_file'] = 'page-front'; }
}
 
?>

Il preprocess_node mi serve per personalizzare le singole pagine create da me, ma per le pagine create dagli utenti con un content type specifico sarebbe sufficiente aggiungere una classe al contenuto inserito da loro.
Come/dove posso aggiungere la classe al template?

Grazie 1000.

Ciao,
se stai usando Drupal 6 puoi utilizzare dei template appositi per ogni tipologia di contenuto. Ad esempio, se il tuo tipo di contenuto è news, il template ad esso associato sarà node-news.tpl.php. Attenzione a non confonderti con il nome del contenuto: il tipo è quello che Drupal chiama machine name, e lo puoi vedere, ad esempio, quando crei un nuovo contenuto, che l'url sarà del tipo node/add/news. Un'altra cosa che puoi fare è inserire
<body class="<?php print $body_classes; ?>">
nel body. In questo modo avrai una serie di classi inserite da Drupal, tra cui, nel momento che visiti un nodo, avari anche node-type-myContent.
;)

Colpito e affondato al primo colpo!!
Avevo confuso il nome assegnato da me al tipo contenuto con quello di Drupal: rinominato il file node-news.tpl.php ora funziona bene.

Interessante anche la soluzione con le classi nel body: me ne ricorderò. ;)
Grazie gioppy.