...sto cercando di capire come drupal (ver.6.12) posiziona i blocchi nella page.tpl.php.
Se volessi per esempio posizionare un blocco o immagine in alto a destra nell'intestazione come posso fare "praticamente"? Grazie
Posizionare un blocco o un div
Dom, 21/06/2009 - 00:42
#1
Posizionare un blocco o un div
-------------------------------------
xxxxx
header x x
xxxxx
-------------------------------------
| | |s |
| | |i |
| | |d |
| | content |e |
| | |b |
| | |a |
| | |r |
------------------------------------
footer
------------------------------------
... come potete vedere vorrei posizionare un blocco o un div nell'area segnata con le "X". Il problema è che se utilizzo il modulo block drupal segue la sequenza delle variabili posizionando i blocchi in sequnza a sinistra.
Non so proprio come risolvere.....
Posso creare una nuova regione e posizionarla nell'eader? Non forzerei la cosa?
O dovrei posizionare il blocco tramite il CSS?
Ma in entrambi i casi come faccio?
Thanks
hai diverse possibilità
1) se è per una pagina specifica puoi modificare una copia di
page.tpl.php
e rinominarlapage-node-[node-id].tpl.php
2) puoi creare una nuova regione nel tuo tema
3) in molti casi basta modificare i fogli di stile
per come fare..è un po' lungo da spiegare. mi sembra di aver postato qualche indicazione su come creare nuove regioni, ma non ricordo dove..
ad ogni modo sulla theming guide di drupal c'è tutto
Certified to Rock
Grazie bohz
Penso che seguire la creazione di nuove regioni sia la soluzione più "pulita"..
La theming guide non è proprio chiarissima .....
Penso che un esperimento chiarificatore potrebbe essere sostituire l'header originario con due singoli, uno di fianco all'altro.
Nel file .info sostituisco l'eader
[header] = Header
con due regioni "header" cioè:
regions[header1] = Header1;
regions[header2] = Header2
Fino qui tutto sembra chiaro.
Il problema è quando "printo" nella page.tpl.php
<div>
<?php print $header1 ?>
</div>
<div>
<?php print $header2 ?>
</div>
..perchè le due regioni vengono mostrate in sequenza (una sotto l'altra).
Per metterle una di fianco all'altra dovrei utilizzare il float nel CSS, giusto?..Ma non sembra funzioni... che codice devo utilizzare?
Grazie
Prova a metterli così:
<div id="header">
<?php print $header ?>
<?php if ($header1): ?>
<div id="header1">
<?php print $header1 ?>
</div>
<?php endif; ?>
</div>
Poi dal css stabilisci le proprietà di header e header1, solo header1 sarà un blocco ed andrà dichiarato nel file info
http://www.volalibero.it/drupal_creare_nuove_regioni_un_tema
ho trovato questo link un pò di tempo fa, e a me è stato molot utile!!! nn so se è la risposta che cerchi (anche se vedo son stati tutti molto esaustivi), io che nn ci capisco niente con questo tutorial riesco a rimaneggiare regioni e blocchi quasi sempre, ma devo dire che con certi temi alcuni nuovi blocchi non funzionano.....
Grazie Krima e giozzz,
avevo gia visitato il link da te suggerito .... purtroppo si parla di come creare la nuova regione ma non come posiszionarla in un punto preciso.
Krima, provo subito i tuoi suggerimenti (in effeti dovevo specificare che se c'è la regione allora stampa...)
Avrei proprio bisogno di un tuo favore altrimenti non ne vengo fuori. Potresti farmi un esempio di codice su come posizionare la regione $header1 (in alto a destra nell’header) nel CSS.... Mi sfugge il modo ...devo usare top o left o float ...
Thanks :)
Se la vuoi a destra metti
#header1{
float: right;
margin-top: xxx;
margin-right: xxx;
}
E così via per gli altri attributi che ti interessano, una semplice guida CSS la ho già segnalata qui: http://www.drupalitalia.org/node/7207 ed in altri post.
Grazie Krima,
devo dire ingegnoso hai creato dentro il div header originario un'altro div (header1)....
Provo il tutto in un tema base (es zen). .... ti faccio sapere....