Colonne collassabili PDF Stampa E-mail
(0 - voti utente)
Sabato 31 Gennaio 2009 14:10

Colonne collassabili

Come per i moduli collassabili anche in questo caso vedremo quali sono i principi con i quali possiamo
far collassare, in un template a tre colonne, una o ambedue le colonne di destra e sinistra.

Le colonne di destra e sinistra altro non sono che due zone blocchi modulo. In genere sono indicate
con i nomi left e right.

Vediamo come realizzare il codice php del template.

L'articolo è la traduzione di quello riportato su You Joomla

Il principio che il codice php che andremo a scrivere segue questa logica:

"Se il modulo destro e il modulo sinistro sono pubblicati imposta la larghezza dei container al valore X,
altrimenti se solo il modulo destro è pubblicato imposta la larghezza del contenitore al valore Y,
altrimenti se nessuno dei moduli destro e sinistro sono pubblicati allarga la dimensione del contenitore
per i contenuti alla larghezza massima."

Inseriamo nel file index.php, prima di definire la struttura della pagina, il seguente codice:

//Inizio moduli collassabili 

$left = mosCountModules( 'left' ); //Modulo di sinistra

$right = mosCountModules( 'right' );// Modulo di destra

  if ( $left && $right ) { // se tutti e due i moduli sono pubblicati

     $maincontent = 'main-body'; // usa il div main-body

     $content = 'content'; // e usa il div content per i contenuti

  } elseif ( $left ) { // altrimenti se solo il modulo sinistro è pubblicato

     $maincontent = 'main-body-left'; // usa il div main-body-left

     $content = 'content-left'; // e usa il div content-left per i contenuti

  } elseif ( $right ) { //altrimenti se solo il modulo destro è pubblicato

     $maincontent = 'main-body-right'; // usa il div main-body-right

     $content = 'content-right'; // e usa il div content-right per i contenuti

  } else { // altrimenti (non è pubblicato nessun modulo

     $maincontent = 'main-body-full'; // usa il div main-body-full

     $content = 'content-full'; // e usa il div content-full

}// Fine Moduli Collassabili

Abbiamo così creato due variabili: la variabile $maincontent che conterrà il nome della classe del foglio di stile da utilizzare per dimensionare e formattare graficamente il container div usato per il main-body e la variabile $content che conterrà il nome della classe del foglio di stile che verrà utilizzata per il container div per i contenuti.

Adesso vediamo in che modo utilizzare queste due variabili

Il codice che segue è un esempio di come definire i container div utilizzando le due variabili create dal codice precedente all'interno del template di joomla

<!--START MAIN BODY-->

<div id="">

<div id="">

      <div id="modleft">
          <div class="inside">


      <div id="modright">
        <div class="inside">

              <?php mosLoadModules('right',-2);?>
       
</div>
      </div>

   <?php } ?>

</div> <!--END CONTAINER-->

Come vedete al posto di scrivere


<div id="nome_classe">

Abbiamo usato la variabile $maincontent per sostituire il nome della classe. Tale nome viene devinito nel codice php che abbiamo messo sopra

<div id="">

 

Definiamo adesso il foglio di stile del template

/*------------------------------------------------------------------------ 

# COLLAPSE MODULES TUTORIAL BY YOUJOOMLA.COM

# ------------------------------------------------------------------------

#Copyright (C) 2006-2007 Youjoomla.com, All Rights Reserved.
-------------------------------------------------------------------------*/
body {

text-align:center;

background:#999;

}

#topmenu{

margin:0 auto;

width:80%;

text-align: left;

}

#wrap{

text-align: left;

background:#CCCCCC;/*like already said,just to add some color*/

float:left;

padding: 20px 5px 20px 5px;

}

#container {

width:100%; /*center hack*//*THIS IS THE MAIN CONTAINER FOR ALL DIVS*/

margin:0 auto; /*center hack*/

text-align:left;

background: #cccccc;

}

#modright { /*THIS IS MODULE RIGHT*/

background:#800040;

color:#fff;

float:right;

width:17%;

overflow:hidden;

margin-left:-3px;

}

#modleft { /*THIS IS MODULE LEFT*/

background:#0099FF;

color:#fff;

float:left;

width:19%;

overflow:hidden;

margin-right:-3px;

}

.inside { /*THIS IS CLASS TO PUSH THE MODULE TABLE OF THE EDGES A BIT*/

padding:7px;

}

/*COLAPSE MODULES FUNCTIONS */


/*LEFT AND RIGHT MODULES VISIBLE */

#main-body { /*THIS IS MAIN DIV HOLDS THE CONTENT DIV*/

float:left;

width:83%;

}

#content { /*THIS IS CONTENT DIV AND YOUR MAINBODY IS INSIDE OF IT*/

text-align:left;

float:right;

width:80%;

}

/*COLAPSE LEFT MODULE ONLY*/

#main-body-right {

float:left;

width:80%;

}

#content-right {

text-align:left;

float:left;

width:100%;

}

/*COLAPSE RIGHT MODULE ONLY*/

#main-body-left {

float:left;

width:100%;

padding-right:10px;

}

#content-left {

text-align:left;

float:right;

width:80%;

overflow:hidden;
}


/*COLAPSE RIGHT AND LEFT MODULE */

#main-body-full {

float:left;

width:100%;

}

#content-full {

margin:0 auto;

text-align:left;

width:90%;

}

/*END COLAPSE MODULES FUNCTIONS */

E questo è tutto

Commenti

B
i
u
Quote
Code
List
List item
URL
Nome *
Email (per verifiche & Rrisposte)
URL
Codice   
ChronoComments by Joomla Professional Solutions
Invia Commento