it-swarm-eu.dev

Come distribuire la larghezza in base al conteggio dei moduli?

Sto cercando di creare un modello joomla. Sto anche usando bootstrap v2.3.2. Voglio fare una distribuzione di design 3/12-6/12-3/12. Sto verificando se ci sono moduli posizionati a sinistra e a destra colonne

$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; ?>

Ho assegnato un mod_articles_category modulo nella posizione sinistra ma è vuoto. Quindi il modulo non è mostrato. Ma Joomla pensa che ci sia un modulo in quella posizione e deve ridurne i contenuti.

Come posso usare lo spazio se il modulo non è mostrato in una pagina?

1
zkanoca

Se ti ho capito bene, questo frammento dovrebbe aiutare (nota, non ho eseguito il codice)

<?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