Joomla.it Forum
Joomla! 2.5 (versione con supporto terminato) => Joomla! 1.6/1.7/2.5 => I Template di Joomla 1.6/1.7/2.5 => : eddydesigner 04 Aug 2011, 10:00:55
-
Buongiorno a tutti,
premesso che ho creato un template joomla 1.7 partendo da zero e funziona tutto perfettamente, voglio però alleggerire il codice e trovare un sistema alternativo per disporre 3 o 4 posizioni modulo affinacate tra loro e con la stessa larghezza senza dover ricorrere a numerose condizioni nella index.php.. e troppe righe nel css
mi spiego meglio..
ho 3 blocchi modulo (posizioni) che ho chiamato: "focusprimo" focussecondo" e "focusterzo" questi tre blocchi sono come dicevo pocanzi affiancati tra loro e hanno una larghezza espressa in % del 30% nel caso in cui li ho tutti e tre, del 49% nel caso in cui ne ho soltanto due, al 100% nel caso in cui ne ho soltanto uno.
posto qui ilo codice che ho nella index.php
<?php if ($this->countModules('focusprimo or focussecondo or focusterzo')){ ?>
<div id="barrafocus">
<div id="focusutili">
<?php if ($this->countModules('focusprimo and focussecondo and focusterzo')){ ?>
<div id="focusprimo"><jdoc:include type="modules" name="focusprimo" style="focus" /></div>
<div id="focussecondo"><jdoc:include type="modules" name="focussecondo" style="focus" /></div>
<div id="focusterzo"><jdoc:include type="modules" name="focusterzo" style="focus" /></div>
<?php } else if ($this->countModules('focusprimo and focussecondo')){ ?>
<div id="duefocusprimo"><jdoc:include type="modules" name="focusprimo" style="focus" /></div>
<div id="duefocussecondo"><jdoc:include type="modules" name="focussecondo" style="focus" /></div>
<?php } else if ($this->countModules('focusprimo')){ ?>
<div id="unofocusprimo"><jdoc:include type="modules" name="focusprimo" style="focus" /></div>
<?php } ?>
</div>
</div>
<?php } ?>
così facendo tanto per cominciare devo sempre pubblicare il modulo "focusprimo", perchè se non lo attivo gli altri due non si vedono..
Inoltre se ad esempio volessi pubblicare "focussecondo" e "focusterzo"? oppure "focusprimo" e "focusterzo"? cos' come ho scritto il codice non li vedrei, magari con qualche altro if li vedrei pure.. ma a mio parere è troppo prolisso.. e macchinoso.. sia per quel che riguarda la index sia per quel che riguarda il css..
che posto qui sotto:
#barrafocus{
height:136px;
background:#f3f3f3;
border-bottom:1px solid #e6e6e6;
}
#focusutili{
width:980px;
height:136px;
overflow:hidden;
margin:0 auto;
}
#focusprimo, #focussecondo, #focusterzo{
float:left;
width:30%;
margin:5px 0;
padding:0 10px;
}
#focusprimo, #focussecondo{
background:url(../img/separatore_focus.jpg) no-repeat right;
height:136px;
}
#duefocusprimo, #duefocussecondo{
float:left;
width:470px;
margin:5px 0;
padding:0 10px;
height:136px;
}
#duefocusprimo{
background:url(../img/separatore_focus.jpg) no-repeat right;
}
#unofocusprimo{
width:980px;
height:136px;
margin:5px 0;
}
da considerare che ora ho soltanto tre moduli affiancati.. e se ne avessi 5 quante condizioni dovrei fare? Io le faccio pure ma non mi sembra questo il metodo più giusto.. ho provato ad andarmi a studiare qualche template commerciale e sinceramente non è che ci abbia capito un granchè.. forse c'è bisogno di javascript?
Grazie anticipatemente a quanti vorranno intervenire
-
ciao
non so che metodo tu stia inventando , ma quello che devi vare e molto piu semplice di quello descritto da te.
e un esempio di 3 user affiancati e in qualunque caso tu pubblichi uno dei 3 funziona in maniera indipendente.
questo e nel php
<div id="user-6-7-8">
<?php if ($this->countModules('top6')) {?>
<div id="top6" style="width:<?php echo $top1width ?>;" >
<jdoc:include type="modules" name="top6" style="contiweb" /> </div><?php } ?>
<?php if ($this->countModules('top7')) {?>
<div id="top7" style="width:<?php echo $top1width ?>;" >
<jdoc:include type="modules" name="top7" style="contiweb" /></div><?php } ?>
<?php if ($this->countModules('top8')) {?>
<div id="top8" style="width:<?php echo $top1width ?>;" >
<jdoc:include type="modules" name="top8" style="contiweb" /></div><?php } ?>
</div>
poi ci metti questo abbinato alle posizioni come noterai sono le stesse
sempre nel php,
<?php
$nmod = 0;
if ($this->countModules('top6')) $nmod++; if ($this->countModules('top7')) $nmod++;
if ($this->countModules('top8')) $nmod++;
if ( $nmod == 3 ) { $top1width = '32.8%'; }
if ( $nmod == 2 ) { $top1width = '49.2%'; }
else if ($nmod == 1) { $top1width = '94%'; }
?>
poi fai il css atuo gradimento x la grafica e aggiustamenti vari.
buon divertimento
-
Sintetico, preciso ed efficace... in una parola: GRANDE!!
hai capito al volo e mi hai dato la soluzione migliore :) :) :)
Grazie 1000!!