Joomla.it Forum

Joomla! 1.5.x (versione con supporto terminato) => Joomla! 1.5 => I Template di Joomla 1.5.x => : mattyfog 13 Aug 2010, 12:49:16

: Domanda per codice pulito
: mattyfog 13 Aug 2010, 12:49:16
Mi sto creando un template di base che contanga una struttura che abbia diverse posizioni modulo che collassino senza problemi se sono vuote. Tale template però contiene solo una struttura e quindi deve potersi adattare a diversi scopi e quindi deve avere codice pulito.

Dunque, mi trovo di fronte a una scelta stilistica perchè dal punto del risultato grafico non dovrebbe cambiare nulla.
Per far collassare tutte le posizioni modulo non utilizzate, mi consigliate di:
- usare del codice php per controllare se ogni posizione modulo è presente (e di conseguenza stampare il codice per visualizzarla) e controllare anche con del codice php se sono presenti tutte e 2 le sidebar o solo una o nessuna e di conseguenza creare un div (padre dell'intera pagina) che appartenga ad una classe tale da consentirmi di usare regole css e riadattare colonne e content
- non utilizzare il medoto precedente ma creare un div (padre di tutta la pagina) che appartenga a diverse classi. Tali classi permetteranno di visualizzare o meno le varie posizioni per i moduli ma il codice del modulo verrà stampato ugualmente.
Esempio:
<div
<?php
if($this->countModules('topmenu'))
{ echo'class="topmenu"';}
else
{ echo'class="no_topmenu"}

L'opzione più pulita a livello di codice mi pare la seconda: voi che ne pensate?
: Re:Domanda per codice pulito
: conti1 13 Aug 2010, 16:06:43
ciao
non so tu cosa stia tentando di inventare di nuovo , ti basta guardare un qualsiasi template fatto bene , e vedi come s stato fatto.
in questo modo hai la risposta alla tua domanda.
in qualunque modo tu decida fare il codice dovrai sempre far capire alla posizione che rimane di adattarsi   allo spazio  della posizione  mancante , altrimenti che serve  avere  una colonna colassabile se poi il main non usa lo spazio vuoto.

ci fai un esempio di codice sporco , tanto x capire cosa intendi ?
 
: Re:Domanda per codice pulito
: mattyfog 13 Aug 2010, 19:48:34
Si in pratica forse posso risolvere con una domanda più semplice:
è meglio che nel codice compaiano tutte le posizioni modulo (anche quelle vuote) ma riadattate con regole css (in modo che non vengano visualizzate) o è meglio che le posizioni nel codice se sono vuote non compaiano proprio?
esempio, qui le posizioni compaiono ma vengono riadattate con i css:
codice php:
:
<div
<?php 
if($this->countModules('topmenu')) 
{ echo
'class="topmenu"';}
else
{ echo
'class="no_topmenu"}
codice css
:
.top_menu
{
width: 100px;
height: 100px;
}
.no_topmenu
{
width: 0;
height: 0;
border: 0;
}

qui invece non c'è bisogno di ricorrere a css perchè le posizioni scompaiono direttamente
codice php
:
if($this->countModules('topmenu')
{
echo'
<div class="topmenu" >
        <jdoc:include type="modules" name="topmenu"/>
    </div>';
}
else
{
/*non c'è bisogno di stampare nulla*/
}
codice css
:
.topmenu
{
height: 100px;
width: 100px;
}
: Re:Domanda per codice pulito
: conti1 13 Aug 2010, 20:00:19
allora
vediamo di capire che cosa vuoi fare.
questa se hai delle immagini nella posizione , e se non pubblichi nulla la posizione non la vedi.
:
<?php if ($this->countModules('menutop')) : ?>
<div id="nav">
<jdoc:include type="modules" name="menutop" style="xhtml"/>

</div>
     
<?php endif; ?>



questa e una posizione che non fa sparire le immagini anche se non pubblichi nulla

:
<div id="banner">
  <jdoc:include type="modules" name="banner" style="xhtml" />
</div>
x far sparire la posizione questo e tutto, ma non basta far collassare la posizione se poi lo spazio che resta non lo fai occupare.
esempio fai sparire la colonna right  ti resta left e main il main deve occupare la colonna right .

: Re:Domanda per codice pulito
: mattyfog 13 Aug 2010, 20:41:47
Io pensavo di usare la seconda opzione creando nel codice php delle classi generali che facessero in modo che il codice css occupasse la posizione vuota.
Ma forse è meglio la prima soluzione, anche la prima richiede l'intervendo dello stesso metodo che ho appena citato con le classi mentre la seconda si basa solo su tale metodo.
Insomma, tu che faresti?
: Re:Domanda per codice pulito
: conti1 13 Aug 2010, 22:48:02
ma  una domanda
il problema tuo dové?
se e solo una posizione  che hai  con un if la grafica sparisce.
se invece vuoi anche usare lo spazio  che occupa ad un'altra posizione devi intervenire in entrambi le posizioni oltre al if dovrai    aggiungere codice che fa il controllo di posizione se c'è occupa xx  se vede che non c'è occuperà xxxx.
a dirti la verità non ho ben capito che vorresti fare .
: Re:Domanda per codice pulito
: mattyfog 13 Aug 2010, 23:04:25
Niente chiedevo quale delle 2 soluzioni adotteresti tu.
: Re:Domanda per codice pulito
: conti1 13 Aug 2010, 23:25:42
io uso il code che ho postato
con aggiunta il codice x far occupare  lo spazio se uno o più  posizioni viene a mancare.