Ciao a tutti
in questi giorni sto personalizzando le pagine di un content-type che chiamo scheda_prodotto.
Non che mi serva stravolgere il layout di queste schede; in fondo già adesso posso decidere
cosa omettere-inserire in determinate pagine.
Quello che mi fa rabbia è che ho un solo tag "h1.title" che è chiamiamolo " for all" (è il titolo che esige
CCK e che non puoi in nessun modo omettere) che non riesco a personalizzare in nessun modo. Ho anche
applicato una classe personalizzata al content-type, che funziona su tutti i tag tranne che su quello.
Allora mi sono lanciato, preso dall'entusiasmo, a tentare la strada del "node-scheda_prodotto.tpl.php", ci ho
passato una giornata intera, ma non mi funziona in nessun modo.
Non so se perchè il mio tema è basato su Skinr e quindi ha una struttura diversa, ma non c'è nessun "template.php"
nella cartella del tema , la trovo solo nella cartella 'st_core'. Qui la struttura:
themes->stthme->nagara->themplates->(node.tpl.php/page-tpl.php)
->st-core ->(template.php/node.tpl.php/page.tpl.php)
Ho provato il modulo "node-page" che mi fa creare un particolare node.tpl e poi me lo carica. Funziona....solo che
mi carica contemporaneamente anche la page.tpl.php ..quindi ho una pagina sotto l'altra :-))))
Ho provato un modulo "css-injection" ...ma questo benedetto "h1.title" non si riesce a modificare in nessun modo.
Rimarrebbe la strada del "cambio tema" su content-type. Praticabile , ma sarebbe una "soluzione barbina" oltre ad appesantire
il caricamento delle pagine .
Non c'è nessuno che si è trovato in questa situazione ?
Ho decisamente bisogno di aiuto..non ne vengo fuori
Grazie mille a tutti
Ed
non ho capito bene, ma sembra che il titolo nel tuo caso sia in page.tpl.php pittosto che il node-contenttype.tpl.php.
se è questo il caso credo ti serva un template di questo tipo: page-node-contenttype.tpl.php
detto ciò, aiuterebbe sapere che tema usi, fusion?
il fatto che non riesci a modificare h1 anche con un selettore contenttype-specifico è strano: in genere tutti i temi (se non drupal core) implementano classi specifiche per il body e quindi un selttore del tipo
.contenttype h1.title{} dovrebbe andare...
Certified to Rock
Ciao bohz
provo a spiegarmi meglio.
Innanzitutto il mio tema, originariamente, si chiama Nagara . Lo trovi (demo) sul sito di symphonythemesdotcom. Mi serviva un tema-base che avesse uno style newspaper e l'ho trovato li.
Da li ho cominciato a personalizzare, capire, sviluppare.
E' un tema GBD basato su Skinr : quindi mi trovo due cartelle sotto la cartella themes:
1) nagara
2) st_core
Infatti se voglio avere l'impostazione "a griglia" , in "impostazioni-appearance" devo abilitare entrambi. Nagara come template di default e st_core attivato.
Quello che mi manda in confusione è questo:
In entrambe le cartelle ho entrambi i file : page.tpl.php e node.tpl.php (???)
Mentre i riferimenti css ad h1/h1.title sono così strutturati:
Nella cartella "nagara" nel css principale "nagara-style.css":
/* Page and full node titles */
h1.title {
padding:10px;
margin: 0;
text-transform: uppercase;
font-size: 14px;
color: #2F2323;
}
Nella cartella "st_core" :
Nel file "style.css" :
/* HTML Elements
-------------------------------------------------------------- */
h1, h2, h3, h4, h5, h6 {
margin: 10px 0;
line-height: 1.2;
}
Nel file "typografy.css":
/* HTML Elements
-------------------------------------------------------------- */
h1 {
font-size: 180%;
}
Come vedi, l'unico riferimento al tag h1 con la classe "title" è solo nel css principale.
Nei node.tpl.php e page.tpl.php , in entrambe le cartelle , non c'è nessun riferimento a h1.title.
Ovviamente ho fatto una marea di personalizzazioni (inserendole in un custom.css) in base alle classi dei fields e via discorrendo
ma h1 pare blindato.
Tra l'altro il tema permette (non so se è per tutti così o è una cosa che ha personalizzato chi ha realizzato questo tema) di impostare
una classe supplementare ai vari content-type. Quindi se io assegno al content-type "scheda_prodotti" la classe supplementare "prodotti"
mi è sufficiente, ad esempio per un campo field_image, inserire nel custom.css:
.prodotti .field_image {}
per personalizzare solo per quel content-type il campo immagine.
E' solo quell' h1.title che mi sta facendo impazzire
Spero di aver spiegato meglio stavolta
Cosa ne pensi ?
Buona giornata
Ed
Prova ad aggiungere !important alla tua definizione di h1.title
Come dice bohz è molto probabile che il titolo sia in page.tpl.php e vada spostato in node.tpl.php. Non potendo vedere il codice del tema che usi ti faccio un esempio con il tema che di solito uso per i siti che faccio ovvero Framework.
Prima
page.tpl.php
node.tpl.php
Dopo
page.tpl.php
node.tpl.php
In questo modo puoi personalizzare il titolo per ogni tipo di contenuto.
Ciao ragazzi
innanzitutto mille grazie e a tutti!! Stavo per arrendermi (prima o poi capirò perchè non riesco a caricare un
nuovo page-node-contenttype.tpl.php, nè node-contenttype.tpl.php.....boh...come se non li vedesse....
Nel frattempo ho messo in atto il suggerimento di Krima e Bohz. ( Anche !important non è male!!)
Prima
page.tpl.php:
<div id="st-content-region" class="st-content-region row nested">
<div id="st-content-region-inner" class="st-content-region-inner">
<a name="st-main-content-area" id="st-main-content-area"></a>
<?php print theme('grid_block', $tabs, 'content-tabs'); ?>
<div id="st-content-inner" class="st-content-inner block">
<div id="st-content-inner-inner" class="st-content-inner-inner inner">
<!-- Breadcrumb -->
<?php print theme('grid_block', $breadcrumb, 'breadcrumbs'); ?>
<?php if ($title): ?>
<div class="block-title-left"><div class="block-title-right"><h1 class="title"><?php print $title; ?></h1></div></div>
<?php endif; ?>
<?php if ($content): ?>
<div id="st-content-content" class="st-content-content">
<?php print $content; ?>
<?php print $feed_icons; ?>
</div><!-- /st-content-content -->
<?php endif; ?>
Questo è l'unico riferimento esistente di "title" su
node.tpl.php:
<?php if ($page == 0): ?>
<h2 class="title"><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
<?php endif; ?>
Quindi su suggerimento di Krima ho commentato in page.tpò.php e inserito in node.tpl.php:
Dopo:
<?php if ($title): ?>
<div class="block-title-left"><div class="block-title-right">
<?php if ($page == 0): ?><h2 class="title"><?php print $title; endif; ?></h2></div></div>
<?php endif; ?>
<?php if ($title): ?>
<div class="block-title-left"><div class="block-title-right">
<?php if ($page == 1): ?><h1 class="node_title"><?php print $title; endif; ?></h2></div></div>
<?php endif; ?>
Wow, funziona alla grande. Solo che non risolveva fino in fondo il mio problema in quanto in TUTTE le pagine
veniva cambiata la formattazione del titolo , come da nuova classe.
Curiosando qua e la , sono incocciato nel thread di un utente drupalitalia che aveva la necessità di cambiare formattazione
di una tabella per ogni categoria di contenuto. Ho notato che usava la variabile $type.
Ho deciso di testare così:
node.tpl.php:
<?php if ($title): ?>
<div class="block-title-left"><div class="block-title-right">
<?php if ($type == "article"): ?><h1 class="title"><?php print $title; endif; ?></h2></div></div>
<?php endif; ?>
<?php if ($title): ?>
<div class="block-title-left"><div class="block-title-right">
<?php if ($type == "scheda_vini"): ?><h1 class="node_title"><?php print $title; endif; ?></h2></div></div>
<?php endif; ?>
Alla grande: adesso solo la categoria "scheda_vini" eredita la classe " h1.node_title" . A questo punto intravedo possibilità ulteriori...
Un chiarimento : suppongo che "$page == 0" sia l' HP e "$page == 1" tutto il resto (così almeno si comporta a me al momento) . Ho provato a cercare ulteriore documentazione al riguardo ma non ne trovo.
Questa variabile potrebbe usarsi anche anche il altri modi tipo sottopagina (scheda di un articolo, etc ) ..qualcosa del tipo "$page == 1(2)" ?
Grazie a tutti del vs aiuto e buona serata
Ed
Le tue intuizioni sono buone :-) ora basta che cambi la classe del titolo nei node-contenuto.tpl.php e la personalizzi dal CSS e puoi avere tutti i titoli formattati in modo diverso per ogni tipo di nodo.
Grazie ....:-)
Spero di trovare qualcosa a riguardo...ho in mente delle ideuzze per il web che se riuscissi a concretizzarle ....;-)
Una cosa; perchè mi parli di node-contenuto.tpl.php quando ho modificato solo node.tpl.php?
Al momento non riesco a caricare ( e non capisco come si faccia , è la prima volta per me ) un node diverso dal node.tpl.php. Dove ( a cosa ) lo devo "dire" ?
Ciao
Ed
Sopra hai scritto:
Se ora provi a fare una copia del node.tpl.php, lo rinomini node-scheda_prodotto.tpl.php, cambi la classe del titolo ecc. vedrai che quello che prima non funzionava ora funziona.
Per altre personalizzazioni relative a node-contenuto.tpl.php (potrebbe essere node-story.tpl.php o node-page.tpl.php o qualsiasi altro contenuto) se fai una ricerca nel forum troverai diversi spunti.
$page == 0 corrisponde alle pagine che non sono nodi (per esempio, elenchi, viste, ecc.).
Se vuoi rilevare la home page, c'è la funzione drupal_is_front_page() o la variabile (bool) $is_front.
Thanks pinolo!!
Pensavo fosse possibile una categorizzazione...sorry..mi devo dimenticare del tutto
del mio passato in ambiente windows!!
Inutile...hai sempre ragione :-)
Saluto
Ed