[RESOLVIDO] problema com 4 colunas

  • lapis2006
  • Avatar de lapis2006 Autor do Tópico
  • Offline
  • JCB! Iniciante
  • JCB! Iniciante
Mais
13 anos 1 mês atrás #45234 por lapis2006
lapis2006 created the topic: [RESOLVIDO] problema com 4 colunas
Olá, fiz um template normal para o joomla, mas abaixo das colunas esquerda, central e direita eu coloquei um código php/joomla que achei na internet para fazer 4 módulos um ao lado do outro, no caso o que aconterceria...

Estando 1 módulo ativo, ele ficará com 100%
Estando 2 módulos ativos, eles ficaram com 50% cada
Estando 3 módulos ativos, eles ficarão com 33% cada
e Finalmente estando os 4 módulos ativos, eles ficarão com 25% cada..

Tudo funciona perfeitamente, o problema é:

Quando está com 3 módulos ativos, o css aparece como se tivesse somente 2, mas os 3 módulos aparecem...

2 em cima e o terceiro abaixo.... o código fica com 50% para cada, que no total dá 150%...

O código está abaixo.. se alguem puder me ajudar pra ver se tem algum erro nesse código eu agradeço!!! =)


Código Joomla:
<?php
if ($this->countModules('rodape-1 and rodape-2 and rodape-3 and rodape-4') == 1){
	$rodape_1_ao_4_ = "25";      // se rodape-1, rodape-2, rodape-3 e rodape-4 estiverem ativos = 25% para cada 1
} elseif($this->countModules('rodape-1 and rodape-2') == 1) {
	$rodape_1_ao_4_ = "50";                 // se rodape-1 e rodape-2 estiver ativo os dois estarão com 50% cada
} elseif($this->countModules('rodape-1 and rodape-3') == 1) {
	$rodape_1_ao_4_ = "50";                 // se rodape-1 e rodape-3 estiver ativo os dois estarão com 50% cada
} elseif($this->countModules('rodape-1 and rodape-4') == 1) {
	$rodape_1_ao_4_ = "50";                 // se rodape-1 e rodape-4 estiver ativo os dois estarão com 50% cada
} elseif($this->countModules('rodape-2 and rodape-3') == 1) {
	$rodape_1_ao_4_ = "50";                 // se rodape-2 e rodape-3 estiver ativo os dois estarão com 50% cada
} elseif($this->countModules('rodape-2 and rodape-4') == 1) {
	$rodape_1_ao_4_ = "50";                 // se rodape-2 e rodape-4 estiver ativo os dois estarão com 50% cada
} elseif($this->countModules('rodape-3 and rodape-4') == 1) {
	$rodape_1_ao_4_ = "50";                 // se rodape-3 e rodape-4 estiver ativo os dois estarão com 50% cada
} elseif($this->countModules('rodape-1 and rodape-2 and rodape-3') == 1) {
    $rodape_1_ao_4_ = "33";                // se rodape-1 e rodape-3 e rodape-3 estiver ativo os dois estarão com 50% cada
} elseif($this->countModules('rodape-1 and rodape-2 and rodape-4') == 1) {
	$rodape_1_ao_4_ = "33";                // se rodape-1 e rodape-2 e rodape-4 estiver ativo os dois estarão com 50% cada
} elseif($this->countModules('rodape-1 and rodape-3 and rodape-4') == 1) {
	$rodape_1_ao_4_ = "33";                // se rodape-1 e rodape-3 e rodape-4 estiver ativo os dois estarão com 50% cada
} elseif($this->countModules('rodape-2 and rodape-3 and rodape-4') == 1) {
	$rodape_1_ao_4_ = "33";                // se rodape-2 ou rodape-3 estiver ativo os dois estarão com 50% cada
} else {
	$rodape_1_ao_4_ = "100";       // se rodape-1 ou rodape-2 ou rodape-3 estiverem ativos = 100% para o que estiver ativo
}
?>




Código PHP/HTML:
<?php if($this->countModules('rodape-1 or rodape-2 or rodape-3 or rodape-4')) : ?>
              <div class="vapt-all"> 
                <div class="FBG">  
                    <?php if($this->countModules('rodape-1')) : ?>
                        <div id="rodape_1_ao_4_<?php echo $rodape_1_ao_4_; ?>">    
                            <jdoc:include type="modules" name="rodape-1" style="xhtml" />
                        </div>  
                    <?php endif; ?>
                    
                    <?php if($this->countModules('rodape-2')) : ?> 
                        <div id="rodape_1_ao_4_<?php echo $rodape_1_ao_4_; ?>">   
                            <jdoc:include type="modules" name="rodape-2" style="xhtml" />
                        </div> 
                    <?php endif; ?>
                    
                    <?php if($this->countModules('rodape-3')) : ?>
                        <div id="rodape_1_ao_4_<?php echo $rodape_1_ao_4_; ?>">  
                            <jdoc:include type="modules" name="rodape-3" style="xhtml" />
                        </div> 
                    <?php endif; ?>
                    
                    <?php if($this->countModules('rodape-4')) : ?>
                        <div id="rodape_1_ao_4_<?php echo $rodape_1_ao_4_; ?>">   
                            <jdoc:include type="modules" name="rodape-4" style="xhtml" />
                        </div>  
                    <?php endif; ?>




Código CSS:

#rodape_1_ao_4_25
					{
						width:22%;
						float:left; 
						padding:10px; 
						margin:10px 0;
						border-left:#333333 1px dotted;
						border-right:#333333 1px dotted;
						padding-left:15px;		
					}

#rodape_1_ao_4_33
					{
						width:31%; 
						float:left; 
						padding:10px; 
						margin:10px 0;			
					}
					
#rodape_1_ao_4_50
					{
						float:left;  
						margin: 0 5px 0 0;
						overflow:hidden;			
						padding:10px 5px;
						text-align:justify; 
						width:46%;
					
					}
#rodape_1_ao_4_100
					{
						float:left;  
						margin: 0 5px 0 0;
						overflow:hidden;			
						padding:10px 5px;
						text-align:justify;
						width:100%;
					
					}


Se alguem puder ajudar, desde já agradeço! <!-- s:P --><img src="{SMILIES_PATH}/icon_razz.gif" alt=":P" title="Legal" /><!-- s:P -->

Please Entrar ou Registrar to join the conversation.


Mais
13 anos 1 mês atrás #45238 por renpv
renpv replied the topic: Re: problema com 4 colunas
Eu acho que o problema é o seguinte:
Quando você ativa 3 colunas (ex: 1, 2 e 3) o 1º elseif se torna verdadeiro, atribui o valor 50 a todas as colunas e fim de papo.
Eu acho inclusive que, ao invés de usar comandos if, seria melhor que você usasse o switch, ou melhor ainda, faz a somatória de quantos módulos estão ativos e, com base na soma, você define a largura das colunas. Tipo assim:
$largura = (this->countModules('rodape-1')) + (this->countModules('rodape-2')) + (this->countModules('rodape-3')) + (this->countModules('rodape-4'));
switch($largura){
case 1: $rodape_1_ao_4_ = "100";
break;
case 2: $rodape_1_ao_4_ = "50";
break;
case 3: $rodape_1_ao_4_ = "33";
break;
case 4: $rodape_1_ao_4_ = "25";
}
A lógica é mais ou menos essa.
<!-- s:ugeek: --><img src="{SMILIES_PATH}/icon_e_ugeek.gif" alt=":ugeek:" title="Uber Geek" /><!-- s:ugeek: -->

[color=#808080:2ig2voll]"Feliz aquele que transfere o que sabe e aprende o que ensina."(Cora Coralina)
"A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original."(Albert Einstein)[/color:2ig2voll]
[url=http&#58;//twitter&#46;com/renatopaivabv:2ig2voll]@renatopaivabv[/url:2ig2voll]

Please Entrar ou Registrar to join the conversation.

  • lapis2006
  • Avatar de lapis2006 Autor do Tópico
  • Offline
  • JCB! Iniciante
  • JCB! Iniciante
Mais
13 anos 1 mês atrás #45246 por lapis2006
lapis2006 replied the topic: Re: problema com 4 colunas
Brother, eu substitui por esse código que você colocou e fiz upload.. mas quando eu entro no site ele fica todo em branco e não tem nada no código fonte..

O que será? <!-- s:( --><img src="{SMILIES_PATH}/icon_e_sad.gif" alt=":(" title="Triste" /><!-- s:( -->

Please Entrar ou Registrar to join the conversation.

Mais
13 anos 1 mês atrás #45251 por renpv
renpv replied the topic: Re: problema com 4 colunas
Eu não testei. Eu pensei que você fosse testar antes de upar. Se você mandar o template pra mim, eu posso testar pra você.
<!-- s:ugeek: --><img src="{SMILIES_PATH}/icon_e_ugeek.gif" alt=":ugeek:" title="Uber Geek" /><!-- s:ugeek: -->

[color=#808080:2ig2voll]"Feliz aquele que transfere o que sabe e aprende o que ensina."(Cora Coralina)
"A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original."(Albert Einstein)[/color:2ig2voll]
[url=http&#58;//twitter&#46;com/renatopaivabv:2ig2voll]@renatopaivabv[/url:2ig2voll]

Please Entrar ou Registrar to join the conversation.

Mais
13 anos 1 mês atrás #45293 por renpv
renpv replied the topic: Re: problema com 4 colunas
Código mais enxuto.
No lugar do código Joomla coloca esse:
<?php
$a = ($this->countModules('rodape-1') > 0 ? 1 : 0);
$b = ($this->countModules('rodape-2') > 0 ? 1 : 0);
$c = ($this->countModules('rodape-3') > 0 ? 1 : 0);
$d = ($this->countModules('rodape-4') > 0 ? 1 : 0);
switch($a + $b + $c + $d){
  case 1: $rodape_1_ao_4_ = "100"; break;
  case 2: $rodape_1_ao_4_ = "50"; break;
  case 3: $rodape_1_ao_4_ = "33"; break;
  case 4: $rodape_1_ao_4_ = "25"; break;
}
?>
Esse vai funcionar.
<!-- s:ugeek: --><img src="{SMILIES_PATH}/icon_e_ugeek.gif" alt=":ugeek:" title="Uber Geek" /><!-- s:ugeek: -->

[color=#808080:2ig2voll]"Feliz aquele que transfere o que sabe e aprende o que ensina."(Cora Coralina)
"A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original."(Albert Einstein)[/color:2ig2voll]
[url=http&#58;//twitter&#46;com/renatopaivabv:2ig2voll]@renatopaivabv[/url:2ig2voll]

Please Entrar ou Registrar to join the conversation.