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 => : daduzzo 01 Feb 2013, 09:12:59
-
Ciao,
sto cercando di implementare del codice php per visualizzare, in un mio template, le colonne left e right dei miei moduli in base alla pubblicazione dei moduli stessi.
In pratica se nella colonna di sinistra non è pubblicato nessun modulo, questa scompare e la colonna dei contenuti si allarga su tutta la pagina.
Con il codice postato qui sotto, funziona solo se imposto il template su due colonne(left+contenuti),
A me serve che funzioni con (left+contenuti+right).
Sicuramente sbaglio qualcosa sul codice php.
Il template:
// prima della chiusura </head> inserisco questo codice:
<?php
if ($this->countModules('left') == 0):?>
<?php $leftcolgrid = "0";?>
<?php endif; ?>
<?php
if ($this->countModules('right') == 0):?>
<?php $rightcolgrid = "0";?>
<?php endif; ?>
<?php if ($this->params->get('template-width') == 1):?>
<?php $template_width = "-fluid" ;?>
<?php else :?>
<?php $template_width = "" ;?>
<?php endif; ?>
// all'interno di body questo:
<div class="container-fluid<?php echo $template_width; ?>">
<div class="row-fluid<?php echo $template_width; ?>">
<?php if($this->countModules('left')) : ?>
<div class="span3">
<div class="left">
<jdoc:include type="modules" name="left" style="xhtml" />
</div><!--/.left-->
</div><!--/span-->
<?php endif; ?>
<div class="span9<?php if ($this->countModules('right') == 0):?><?php $rightcolgrid = "0";?><?php echo (12-$leftcolgrid-$rightcolgrid);?><?php endif; ?>">
<jdoc:include type="component" />
</div><!--/span9-->
<?php if($this->countModules('right')) : ?>
<div class="span3">
<jdoc:include type="modules" name="right" style="xhtml" />
</div><!--/span-->
<?php endif; ?>
</div><!--/row-->
</div><!--/container-->
Dove sbaglio?
grazie
-
ciao, credo che stai usando twitter bootstrap: in questo caso il controllo lo devi fare sulla larghezza della griglia. Poiché la dimensione di ogni cella è data dalla classe span# dove # è il numero di colonne da occupare, tu devi impostare 3 diverse variabili. La logica è questa:
$largSx = 0;
$largDx = 0;
//se ci sono moduli a sinistra (lo calcoli con il countmodules)
$largSx = 3; // (ad esempio)
// se ci sono moduli a destra,
$largDx = 3; // (ad esempio)
$largCentro = 12 - $larghDx - $largSx;
poi quando vai a stampare i tuoi div semplicemente stamperai dx e sx solo se $larghSx/dx > 0.
Nell'intestazione di ogni div scriverai quindi:
<?php if ($larghSx>0): ?>
<div class="left span<?php echo $larghSx; ?>">bla bla bla</div>
<?php endif; ?>
-
si utilizzo bootstrap,
ho fatto delle prove, ma non ci riesco, saresti cosi cortese da fornirmi ulteriori informazioni.
seguendo le tue direttive se non ci sono moduli di destra la colonna di centro scende giu
grazie x la pazienza
-
puoi postare un link al sito? altrimenti mi è difficile capire il problema