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

: [risolto] float moduli larghezza variabile
: 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
: Re:float moduli larghezza variabile
: conti1 04 Aug 2011, 12:29:42
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 == ) {  $top1width '32.8%'; }
if ( 
$nmod == ) {  $top1width '49.2%'; }
else if (
$nmod == 1) {  $top1width '94%'; }
?>

poi fai il css atuo gradimento  x la grafica e aggiustamenti vari.
buon divertimento
: Re:float moduli larghezza variabile
: eddydesigner 04 Aug 2011, 12:53:43
Sintetico, preciso ed efficace... in una parola:  GRANDE!!


hai capito al volo e mi hai dato la soluzione migliore :) :) :)

Grazie 1000!!