Back to top

Autore Topic: Domanda per codice pulito  (Letto 1562 volte)

Offline mattyfog

  • Appassionato
  • ***
  • Post: 346
    • Mostra profilo
Domanda per codice pulito
« il: 13 Ago 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?

Offline conti1

  • Global Moderator
  • Instancabile
  • *****
  • Post: 9075
  • Sesso: Maschio
    • Mostra profilo
Re:Domanda per codice pulito
« Risposta #1 il: 13 Ago 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 ?
 
se possibile postare il link  x risolvere al meglio il problema grazie
evitare nomi commerciali grazie

Offline mattyfog

  • Appassionato
  • ***
  • Post: 346
    • Mostra profilo
Re:Domanda per codice pulito
« Risposta #2 il: 13 Ago 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:
Codice: [Seleziona]
<div
<?php 
if($this->countModules('topmenu')) 
{ echo
'class="topmenu"';}
else
{ echo
'class="no_topmenu"}
codice css
Codice: [Seleziona]
.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
Codice: [Seleziona]
if($this->countModules('topmenu')
{
echo'
<div class="topmenu" >
        <jdoc:include type="modules" name="topmenu"/>
    </div>';
}
else
{
/*non c'è bisogno di stampare nulla*/
}
codice css
Codice: [Seleziona]
.topmenu
{
height: 100px;
width: 100px;
}

Offline conti1

  • Global Moderator
  • Instancabile
  • *****
  • Post: 9075
  • Sesso: Maschio
    • Mostra profilo
Re:Domanda per codice pulito
« Risposta #3 il: 13 Ago 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.
Codice: [Seleziona]
<?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

Codice: [Seleziona]
<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 .

se possibile postare il link  x risolvere al meglio il problema grazie
evitare nomi commerciali grazie

Offline mattyfog

  • Appassionato
  • ***
  • Post: 346
    • Mostra profilo
Re:Domanda per codice pulito
« Risposta #4 il: 13 Ago 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?

Offline conti1

  • Global Moderator
  • Instancabile
  • *****
  • Post: 9075
  • Sesso: Maschio
    • Mostra profilo
Re:Domanda per codice pulito
« Risposta #5 il: 13 Ago 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 .
se possibile postare il link  x risolvere al meglio il problema grazie
evitare nomi commerciali grazie

Offline mattyfog

  • Appassionato
  • ***
  • Post: 346
    • Mostra profilo
Re:Domanda per codice pulito
« Risposta #6 il: 13 Ago 2010, 23:04:25 »
Niente chiedevo quale delle 2 soluzioni adotteresti tu.

Offline conti1

  • Global Moderator
  • Instancabile
  • *****
  • Post: 9075
  • Sesso: Maschio
    • Mostra profilo
Re:Domanda per codice pulito
« Risposta #7 il: 13 Ago 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.
« Ultima modifica: 14 Ago 2010, 00:48:37 da conti1 »
se possibile postare il link  x risolvere al meglio il problema grazie
evitare nomi commerciali grazie

 



Web Design Bolzano Kreatif