Pergunta feita pelo Uziel Almeida no Facebook!
Gostaria de criar larguras variaveis para posições quando módulos não estiverem presentes. Exemplo: 4 posições no rodapé - se eu habilitar somente tres modulos quero que o rodapé assuma que o novo valor para largura é 33% e não mais 25%.....
Nota: o Artisteer tem isso e funciona com maestria:
<?php echo $view->positions(array('rodape1' => 33, 'rodape2' => 33, 'rodape3' => 34), 'pm-block'); ?>
Resposta encontrada pelo Marcos Canova e Uziel Almeida
<?
Consegui melhorar esta solução. Agora está 100%, e é possível escolher qualquer posição livremente. Como imaginava era preciso um pouco de matemática. Segue abaixo a solução testada e aprovada:
<?
//para as posições, cole isso no cabeçalho do template
$rodape1 = $rodape2 = $rodape3 = $rodape4 = 0;
if ($this->countModules( 'rodape1' )) $rodape1 = 1;
if ($this->countModules( 'rodape2' )) $rodape2 = 1;
if ($this->countModules( 'rodape3' )) $rodape3 = 1;
if ($this->countModules( 'rodape4' )) $rodape4 = 1;
$columns = $this->countModules( 'rodape1 + rodape2 + rodape3 + rodape4', true );
?>
<!-- Aqui começa o código de um exemplo de rodapé com 4 colunas auto ajustáveis -->
<div class="footer">
<div class="column1" style="width:<?php echo 100/$columns . '%';?>">
<jdoc:include type="modules" name="rodape1" style="xhtml" />
</div>
<div class="column2" style="width:<?php echo 100/$columns . '%';?>">
<jdoc:include type="modules" name="rodape2" style="xhtml" />
</div>
<div class="column3" style="width:<?php echo 100/$columns . '%';?>">
<jdoc:include type="modules" name="rodape3" style="xhtml" />
</div>
<div class="column4" style="width:<?php echo 100/$columns . '%';?>">
<jdoc:include type="modules" name="rodape4" style="xhtml" />
</div>
</div>
<!-- Fim do exemplo, formatações adicionais podem ser conseguidas colocando ajustes no css ou trocando o código mátemático da div com estilo inline por uma classe css -->
Obs: Fica mais funcional usando classes e não CSS inline .
abraço