J'ai 4 positions de module, qui en fonction du nombre de modules, j'aimerais redimensionner la largeur de la colonne. J'ai écrit ce qui suit, mais il ne fait que les régler tous à col-md-12. Des idées où je vais mal?
<?php
if($this->countModules('bottom-a'))
{
$bottom-col-width == "col-md-12";
}
elseif($this->countModules('bottom-a') && $this->countModules('bottom-b'))
{
$bottom-col-width == "col-md-6";
}
elseif($this->countModules('bottom-a') && $this->countModules('bottom-b') && $this->countModules('bottom-c'))
{
$bottom-col-width == "col-md-4";
}
elseif($this->countModules('bottom-a') && $this->countModules('bottom-b') && $this->countModules('bottom-c') && $this->countModules('bottom-d'))
{
$bottom-col-width == "col-md-3";
}
?>
Ces instructions if
ne fonctionneront pas. Imaginez s'il y a un module en position bottom-b
et bottom-c
. Même si vous inversiez les instructions if
, aucune de celles-ci ne correspondra.
Pour réaliser ce que vous voulez, les instructions if
seraient trop compliquées.
Fais-le plutôt comme ça:
<?php
// Default width - for one column
// This gets new value, if there is more than one active position
$bottomColWidth = "col-md-12";
// Number of positions, which have modules
$countOfActivePositions = 0;
// Positions to search modules in
$positions = array('bottom-a', 'bottom-b', 'bottom-c', 'bottom-d');
// Loop over every position
foreach ($positions as $position) {
// If position has modules
if($this->countModules($position)){
// Increase active positions count
$countOfActivePositions++;
}
}
if($countOfActivePositions > 1){
$bottomColWidth = "col-md-".(12 / $countOfActivePositions);
}
?>
Cela fonctionnerait dans toutes les combinaisons possibles.