ti-enxame.com

Como distribuir a largura de acordo com a contagem de módulos?

Estou tentando criar um modelo de joomla. Também estou usando bootstrap v2.3.2. Quero fazer uma distribuição de design 3/12-6/12-3/12. Eu estou verificando se algum módulo está posicionado à esquerda e à direita colunas

$span = 12;

if ($this->countModules('right')) $span -= 3;
if ($this->countModules('left'))  $span -= 3;

<?php if ($this->countModules('left')): ?>
    <div id="sidebarleft" class="span3">
        <jdoc:include type="modules" name="left" style="well" />
    </div>
<?php endif; ?>

<div id="content" class="<?php echo $span; ?>">
    <jdoc:include type="message" />
    <jdoc:include type="component" />
</div>

<?php if ($this->countModules('right')) : ?>
    <div id="sidebarright" class="span3">
        <jdoc:include type="modules" name="right" style="none" />
    </div>
<?php endif; ?>

Eu atribuí um mod_articles_category módulo para a posição esquerda, mas está vazio. Portanto, o módulo não é mostrado. Mas o joomla acha que existe um módulo nessa posição e que ele deve diminuir o conteúdo.

Como posso usar o espaço se o módulo não for mostrado em uma página?

1
zkanoca

Se entendi bem, esse trecho deve ajudar (observe, não executei o código)

<?php
if ($this->countModules('left')) {
   $modules = JModuleHelper::getModules('left');
   $modulesContent  = array();
   foreach ($modules as $module) {
      $content = JModuleHelper::renderModule($module, array('style' => 'well'));
      if(!empty($content)) {
         $modulesContent[] = $content;
      }
   }
}
?>
<?php if(!empty($modulesContent)) : ?>
   <div id="sidebarleft" class="span3">
      <?php foreach ($modulesContent as $content) : ?>
        <?php echo $content; ?>
      <?php endforeach; ?>
   </div>
<?php endif; ?>
1
Marko D