1
Gestione sito multilingua / Re: Grafica (Template) che cambia con la lingua
« il: 01 Gen 2007, 14:29:16 »
Ciao, mi dispiace per il ritardo con cui rispondo... Cerco di spiegare meglio il codice che ho scritto sopra, almeno può essere comunque utile per altre cose.
Allora... prendendo in riferimento il codice:
<?php
global $mosConfig_lang;
switch ( $mosConfig_lang ) {
case 'italian':
echo " codice html ";
echo " codice html ";
echo " codice html ";
echo " codice html ";
echo " codice html ";
break;
case 'english':
echo " codice html ";
echo " codice html ";
echo " codice html ";
echo " codice html ";
echo " codice html ";
break;
}
?>
in qualsiasi punto di una pagina php, se voglio far eseguire del codice, basta che utilizzo il tag
<?php
lasciandolo perto, cioè senza il simbolo ">". Lo chiuderò solo quando il codice php sarà finito con la chiusura "?>"
Successivamente uso i comandi di php, che in questo caso,
global $mosConfig_lang;
mi dice si usare una variabile globale $mosConfig_lang; introdotta nella struttura di Joomla! dal modulo Joomfish.
Dopo uso una struttura decisionale che in base al valore che ha questa variabile esegue pezzi di codice diversi.
switch ( $mosConfig_lang ) {
case ... :
break;
case... :
break;
}
In questo caso ho una decisione in base alla varibile che è uguale a "italian" o "english".
Ovviamente questi 2 valori vengono impostati da Joomfish quando clicco sulla bandiera italiana piuttosto che quella inglese.
Quindi, se la variabile è "italilan" esegue il codice che dopo i 2 punti va a finire al prossimo case. Avendo messo break esce dalla struttura decisionale perchè ormai soddisfatta per eseguire il resto della pagina.
All'interno di questa porzione di codice possiamo far fare a php quello che vogliamo, ma in questo caso vogliamo che sia php a "disegnare" una parte di pagina.
Da qui l'idea di usare il comando
echo "";
che non fa altro che scrivere testo nella pagina... ovviamente se il testo sono dei tag html, allora potrò creare porzioni di pagina html, altrimenti potrò far scrivere soltanto delle semplici scritte.
Usando quindi
echo "<table><tr><td></td></tr></table> ";
gli faremo creare una tabella vuota (non importa se faccio una riga per ogni tag o tutto di seguito, l'HTML vede il risultato finale).
Allora ecco che noi possiamo farci delle pagine html diverse in base a delle decisioni che prenderà php. Da li copio il codice html e lo scrivo nello spazio delimitato dalle virgolette del comando echo.
Ovviamente è una soluzione laboriosa se il codice html che vcolete inserire è molto lungo, ma per piccole cose come nel mio caso l'intestazione del sito andava benissimo.
Spero di essere stato di aiuto.
Ciao.
Allora... prendendo in riferimento il codice:
<?php
global $mosConfig_lang;
switch ( $mosConfig_lang ) {
case 'italian':
echo " codice html ";
echo " codice html ";
echo " codice html ";
echo " codice html ";
echo " codice html ";
break;
case 'english':
echo " codice html ";
echo " codice html ";
echo " codice html ";
echo " codice html ";
echo " codice html ";
break;
}
?>
in qualsiasi punto di una pagina php, se voglio far eseguire del codice, basta che utilizzo il tag
<?php
lasciandolo perto, cioè senza il simbolo ">". Lo chiuderò solo quando il codice php sarà finito con la chiusura "?>"
Successivamente uso i comandi di php, che in questo caso,
global $mosConfig_lang;
mi dice si usare una variabile globale $mosConfig_lang; introdotta nella struttura di Joomla! dal modulo Joomfish.
Dopo uso una struttura decisionale che in base al valore che ha questa variabile esegue pezzi di codice diversi.
switch ( $mosConfig_lang ) {
case ... :
break;
case... :
break;
}
In questo caso ho una decisione in base alla varibile che è uguale a "italian" o "english".
Ovviamente questi 2 valori vengono impostati da Joomfish quando clicco sulla bandiera italiana piuttosto che quella inglese.
Quindi, se la variabile è "italilan" esegue il codice che dopo i 2 punti va a finire al prossimo case. Avendo messo break esce dalla struttura decisionale perchè ormai soddisfatta per eseguire il resto della pagina.
All'interno di questa porzione di codice possiamo far fare a php quello che vogliamo, ma in questo caso vogliamo che sia php a "disegnare" una parte di pagina.
Da qui l'idea di usare il comando
echo "";
che non fa altro che scrivere testo nella pagina... ovviamente se il testo sono dei tag html, allora potrò creare porzioni di pagina html, altrimenti potrò far scrivere soltanto delle semplici scritte.
Usando quindi
echo "<table><tr><td></td></tr></table> ";
gli faremo creare una tabella vuota (non importa se faccio una riga per ogni tag o tutto di seguito, l'HTML vede il risultato finale).
Allora ecco che noi possiamo farci delle pagine html diverse in base a delle decisioni che prenderà php. Da li copio il codice html e lo scrivo nello spazio delimitato dalle virgolette del comando echo.
Ovviamente è una soluzione laboriosa se il codice html che vcolete inserire è molto lungo, ma per piccole cose come nel mio caso l'intestazione del sito andava benissimo.
Spero di essere stato di aiuto.
Ciao.