Ciao ragazzi, sono giorni che non riesco a risolvere un problema con le regioni.
Ora vi spiego cosa voglio ottenere e cosa sto facendo.
Ho creato un template con Artisteer, in questo template ho 6 blocchi configurati per le regioni banner.
Io devo ottenere la stessa identica cosa ma con tre blocchi uno affiancato all'altro nella regione header.
Allora partiamo dai banner già configurati ecco come sono stati fatti da artisteer:
1) nel file tema.info ci sono le regioni configurate così:
regions[banner1] = Banner 1
regions[banner2] = Banner 2
regions[banner3] = Banner 3
regions[banner4] = Banner 4
regions[banner5] = Banner 5
regions[banner6] = Banner 6
2) nel CSS invece le richiama così:
/* begin Box, Block */
.art-Block
{
position:relative;
z-index:0;
margin:0 auto;
min-width:1px;
min-height:1px;
}
.art-Block-body
{
position: relative;
z-index: 1;
padding: 0px;
}
.art-Block
{
margin: 5px;
}
#banner1, #banner2, #banner3, #banner4, #banner5, #banner6
{
margin: 5px;
}
/* end Box, Block */
3) nel page.tpl.php a seconda della posizione che devono prendere sono chiamati con questo tipo di stringa:
<?php if (!empty($banner1)) { echo '<div id="banner1">'.$banner1.'</div>'; } ?>
4) nella cartella del template ci sono questi file:
block.tpl.php block.navigation.tpl.php
block.banner1.tpl.php, block.banner2.tpl.php, block.banner2.tpl.php e così via fino al sesto
Sono tutti uguali e dentro quesi file c'è scritto:
<div id="<?php print $block->region .'-'. $block->module .'-'. $block->delta; ?>">
<?php if (!empty($block->subject)): ?>
<h2><?php print $block->subject ?></h2>
<?php endif;?>
<div class="content">
<?php print $block->content ?>
</div>
</div>
5) nel file template.php non ci sono riferimenti a quanto pare a tutto questo (ho capito che si dovevano mettere per drupal5 e non per drupal6)
Adesso io ho fatto i seguenti passaggi:
1) nel file tema.info ho messo le tre regioni dei miei tre blocchi
2) nel css ho messo la classe header con dentro gli id dei miei tre blocchi configurati per grandezza, bordi e cose così
3) nel page.tpl ho usato più codici che potessero funzionare ecco alcuni esempi:
Esempio1
<?php echo art-Header($block-block-15, $block-block-16, $block-block-17); ?>
Esempio2
<div class="art-Header">
<?php print $block-block-15 ; ?>
<?php print $block-block-16 ; ?>
<?php print $block-block-17 ; ?></div>
Esempio3
<div class="art-Header"><div id="block-block-15"></div><div id="block-block-16"></div><div id="block-block-17"></div></div>
per tutti e tre non ho riscontrato problemi, a quanto pare li legge tranquillamente
arrivati a questo punto io ho nell'amministrazione dei blocchi di drupal le tre regioni block-block-15, block-block-16 e block-block-17 dove posso creare e aggiungerci i miei blocchetti
il problema è che anche se logicamente i tre blocchetti ci sono non riesco a visualizzare il contenuto quindi immagino che dovrei creare 4 file di questo tipo
Header.tpl.php
Header.block-block-15.tpl.php e così via
ma non ne sono proprio sicura se è l'approccio giusto o meno... però quello che mi serve è che sti tre blocchi si comportino esattamente come i banner cioè senza temizzazione perchè in realtà saranno 2 banner e un blocco per la scelta delle lingue.
So solo che non riesco a proseguire, mi potete aiutare per favore?
Se poi esiste un modulo che mi fa tutto sto popò di roba va anche bene anche se preferirei capire dove sta il problema.
Grazie mille per la pazienza e per l'aiuto.
Se li vuoi affiancati devi impostare un float:left, ad occhio dovrebbe andare bene in #banner1, #banner2 ecc...
Probabilmente dovrai anche impostare larghezza e padding sempre da li.
Se per caso ottieni "l'effetto collaterale" di far salire o spostare anche la regione sottostante devi aggiungere, negli attributi della regione sottostante, un clear:left negli attributi CSS.
il problema è che i blocchi ci sono ma non si vede il contenuto che carico nei blocchi. :(
Ho riletto quanto hai scritto ed ho visto che c'è un errore in page.tpl.php
Se nel file info hai messo banner1 il codice corretto per quella regione in page.tpl.php è:
<?php if ($banner1): ?>
<div class="banner1"><?php print $banner1 ?></div>
<?php endif; ?>
lo stesso per banner2 ecc.
no non è il banner i problema, funzionano correttamente ma block-block15, 16 e 17 T_T
Ma da dove spuntano quei blocchi?
Se voi posizionare dei blocchi puoi farlo andando in tuosito.it//admin/build/block e puoi posizionarli solamente nelle regioni indicate nel file info e nel page.tpl.php come ti ho descritto sopra.
Krima leggi bene per favore
Devo creare delle regioni, so come funzionano i blocchi -.- ma io devo creare le regioni nell'header... leggi meglio cosa ho scritto ^^
E le regioni si creano come ti ho descritto...
eccomi qua
allora scusami ma avevo capito male io ^^ grazie per la risposta
dunque facendo così
<div class="art-Header">
<?php if ($header1): ?>
<div class="header1"><?php print $header1 ?></div>
<?php endif; ?>
<?php if ($header2): ?>
<div class="header2"><?php print $header2 ?></div>
<?php endif; ?>
<?php if ($header3): ?>
<div class="header3"><?php print $header3 ?></div>
<?php endif; ?></div>
i tre blocchi si vedono finalmente, nel css ho messo float:left ma non me li mette uno affianco all'altro
Se lo hai messo in
#banner1, #banner2, #banner3, #banner4, #banner5, #banner6
{
margin: 5px;
}
Non può funzionare perché le classi le hai chiamate .header1, .header2 ecc.
Se (controlla anche cancelletto e punto) è tutto giusto allora probabilmente devi aggiungere anche una larghezza per ogni blocco.
no allora i blocchi vanno nell'header quelil erano esempi
nel file .info c'è
regions[header1] = header1
regions[header2] = header2
regions[header3] = header3
in page.tpl quello che ti ho detto
nel css c'è:
.art-Header
{
margin: 0 auto;
position: relative;
width: 990px;
height: 100px;
}
#header1 {
display:block;
float:left;
margin-left: 5;
margin-top: 6;
width: 300px;
height: 100px;
}
#header2 {
display:block;
float:left;
margin-left: 305;
margin-top: 6;
width: 300px;
width: 468px;
height: 100px;
}
#header3 {
display:block;
float:left;
margin-left: 788px;
margin-top: 6;
width: 197px;
height: 100px;
background-color:#FFF;
}
sono nell'header, banner 1 e così via erano esempi, i blocchi vanno nell'header
Prova cosi:
.art-Header
{margin: 0 auto;
position: relative;
width: 990px;
}
.header1 {
display:block;
float:left;
margin-left: 5px;
margin-top: 6px;
width: 300px;
height: 100px;
}
.header2 {
display:block;
float:left;
margin-top: 6px;
width: 468px;
height: 100px;
}
.header3 {
display:block;
float:left;
margin-top: 6px;
width: 197px;
height: 100px;
background-color:#FFF;
}
Anche se per avere un CSS più piccolo sarebbe meglio:
.art-Header {margin: 0 auto;position: relative;width: 990px;}
.header1,.header2,.header3 {display:block;float:left;margin-top: 6px;height: 100px;}
.header1 {margin-left: 5px;width: 300px;}
.header2 {width: 468px;}
.header3 {width: 197px;background-color:#FFF;}
oh grazieeeeeeeeeeee *_* direi che ci sono quasi
adesso però l'unico mio problema è la temizzazione, cioè fare in modo che si veda solo il contenuto e non, nel mio caso, lo sfondo grigino del blocco.
Qui devo per forza temizzare oppure c'è un'alternativa? O_O
Devi sempre lavorare di CSS. Ci sono varie vie per raggiungere lo scopo, dipende sempre da quello che vuoi ottenere.
Una strada che permette di personalizzare ogni blocco in modo diverso dall'altro, è quella di scoprire l'ID di ogni singolo blocco che inizia con id="block- e dal css modificarlo come meglio credi.
Allora son riuscita a sistemare più o meno tutto, ma non ne vuol sapere di temizzarmi il blocco:
#block-block-21 { background: transparent; border: 0px; }
il blocco 21 è uno dei 3 blocchi inseriti nell'header, quindi mi son trovata il nome e ci ho messo questo codice, dovrei metterlo anche il page.tpl?
EDIT:
Mi è bastato semplicemente creare un file block-header1.tpl.php con il seguente codice :)
<div id="<?php print $block->region .'-'. $block->module .'-'. $block->delta; ?>">
<?php if (!empty($block->subject)): ?>
<h2><?php print $block->subject ?></h2>
<?php endif;?>
<div class="content">
<?php print $block->content ?>
</div>
</div>