Salve a tutti, seguendo un tutorial trovato in rete, ho costruito un template (per Joomla 2.5) in cui si trova una sezione (in pratica un "div" contenitore largo 1000px) che presenta 5 colonne.
Vedi immagine allegata.
Ognuna delle 5 colonne ha le seguenti caratteristiche:
- Ha assegnato un modulo (es. user1 per la prima colonna, user2 per la seconda colonna, e così via...).
- E' larga 200px.
Vorrei fare in modo che se un modulo (ad esempio quello in posizione user5) non è pubblicato, le altre 4 colonne si auto-ridimensionano fino ad occupare tutto lo spazio del div contenitore di 1000px.
In pratica si allargano da 200px a 250px.
Per fare questo ho utilizzato la proprietà "countModules" nel seguente modo:
Prima della dichiarazione del Template ho inserito la funzione che conta i moduli e ri-assegna la larghezza in base a quanti sono pubblicati:
<?php
$nmod = 0;
if ($this->countModules("user1")) $shelf++;
if ($this->countModules("user2")) $shelf++;
if ($this->countModules("user3")) $shelf++;
if ($this->countModules("user4")) $shelf++;
if ($this->countModules("user5")) $shelf++;
// se sono pubblicati 5 moduli
if ( $nmod == 5 ) {
$modwidth = "200px"; // ogni modulo sarà largo il 20%
// se sono pubblicati 4 moduli
}if ( $nmod == 4 ) {
$modwidth = "250px"; // ogni modulo sarà largo il 25%%
// se sono pubblicati 3 moduli
}if ( $nmod == 3 ) {
$modwidth = "333px"; // ogni modulo sarà largo il 33.3%
// se sono pubblicati 2 moduli
}if ( $nmod == 2 ) {
$modwidth = "500px"; // ogni modulo sarà largo il 50%
} else if ($nmod == 1) { // se è pubblicato 1 modulo
$modwidth = "1000px"; // il modulo sarà largo il 100%
}
?>
Poi nel corpo del Template ho inserito questo codice:
<?php if ($this->countModules("user1")||
$this->countModules("user2")||
$this->countModules("user3")||
$this->countModules("user4")||
$this->countModules("user5")) ?>
<div id="myshelf">
<!-- Inizio Contenitore principale-->
<?php if ($this->countModules("user1")) {?>
<div id="mod1" style="width:<?php echo $modwidth ?>;" >
<jdoc:include type="modules" name="user1" style="xtml" /><><?php } ?>
<?php if ($this->countModules("user2")) {?>
<div id="mod2" style="width:<?php echo $modwidth ?>;" >
<jdoc:include type="modules" name="user2" style="xtml" /><><?php } ?>
<?php if ($this->countModules("user3")) {?>
<div id="mod3" style="width:<?php echo $modwidth ?>;" >
<jdoc:include type="modules" name="user3" style="xtml" /><><?php } ?>
<?php if ($this->countModules("user4")) {?>
<div id="mod4" style="width:<?php echo $modwidth ?>;" >
<jdoc:include type="modules" name="user4" style="xtml" /><><?php } ?>
<?php if ($this->countModules("user5")) {?>
<div id="mod4" style="width:<?php echo $modwidth ?>;" >
<jdoc:include type="modules" name="user5" style="xtml" /><><?php } ?>
<><!-- Fine Contenitore principale-->
Nel foglio di stile, definisco i parametri delle varie colonne (ma questo non è un problema...):
#myshelf{
width:980px;
height:455px;
margin:auto;
padding:15px 0 0 0;
background-color:#339999;
position:relative;
}
#mod1,#mod2,
#mod3,#mod4{
text-align:left;
width:176px;
float:left;
}
#mod1 .moduletable,#mod2 .moduletable,
#mod3 .moduletable,#mod4 .moduletable{
text-align:left;
padding:5px;
color:#000;
font-size:1.1em;
}
#mod1 .moduletable h3,#mod2 .moduletable h3,
#mod3 .moduletable h3,#mod4 .moduletable h3{
text-align:left;
padding-left:5px;
color:#ff6600;
font-size:1.3em;
}
Il problema è questo:
La funzione che definisce la larghezza dei div ($modwidth) non funziona.
Se apro il sorgente della pagina vedo:
<div id="mod1" style="width:;" >
Dove width non ha nessun valore...
Dove è l'errore che non permette al div di allargarsi?
Grazie in anticipo per il vostro aiuto!
d-force
[allegato eliminato da un amministratore essendo vecchio più di un anno]