Salve ragazzi,
è vero si che BASTA CHE FUNZIONI, l'occhio vuole anche la sua parte quando si guarda il codice.
Il codice è tutto, è come il motore di un auto, non si vede, ma è fondamentale, e se fatto/scritto male porta anche a dei malfunzionamenti.
Dopo la filosofia, la pratica
Nel mio CMS per esempio, devo decidere dinamicamente se aggiungere o no un elemento javascript come un effetto slideshow.
Per mia necessità, devo anche poter settare le proprietà come altezza e larghezza in qualsiasi momento, quindi l'unica soluzione che mi è venuta in mente è quella di fare un write perima del CSS scritto a mano e poi del codice per effettuare il javascript.
In poche parole, guardate che razza di scarabocchio viene!!
Codice PHP:
public string prendiSlideShowFull(string id)
{
string immagini = "";
string codice = "";
string height = "";
string intero = "1";
OleDbConnection Accesdb = new OleDbConnection();
Accesdb.ConnectionString = myConnectionString;
OleDbCommand comando = new OleDbCommand();
comando.Connection = Accesdb;
comando.CommandText = "SELECT * FROM SIS_SLIDESHOWFULL_LISTA WHERE ID=@id";
comando.Parameters.Add(new OleDbParameter("id", id));
try
{
Accesdb.Open();
OleDbDataReader esecuzione = comando.ExecuteReader();
while (esecuzione.Read())
{ intero = esecuzione["Id"].ToString();
immagini += "<li class=\"slider" + intero + "Image\"> " +
"<a href=\"\"><img src=\"" + esecuzione["url"].ToString() + "\" alt=\"1\" /></a> " +
"<span class=\"top\">[b]" + esecuzione["Titolo"].ToString() + "[/b]
" + esecuzione["Descrizione"].ToString() + "</span> ";
height = esecuzione["height"].ToString();
}
codice = "<style type=\"text/css\" media=\"screen\"> #slider" + intero + " { height: " + height + "; position: relative; " +
"overflow: hidden; } #slider" + intero + "Content { width: 1024px; top: 0; margin-left: 0; } .slider" + intero + "Image{ " +
" float: left; position: relative; display: none; } .slider" + intero + "Image span { position: absolute; font: 10px/15px Arial," +
"Helvetica, sans-serif; padding: 10px 13px; width: 1024px; background-color: #000; filter: alpha(opacity=70); -moz-opacity: 0.7; " +
"-khtml-opacity: 0.7; opacity: 0.7; color: #fff; display: none; } .clear { clear: both; } .slider" + intero + "Image span strong { " +
"font-size: 14px; } .top { top: 0; left: 0; } .bottom { bottom: 0; left: 0; } .left { top: 0; left: 0; width: 110px !important; " +
"height: 280px; } .right { right: 0; bottom: 0; width: 90px !important; height: 290px; } ul { list-style-type: none;} </style> " +
"<script type=\"text/javascript\"> function initSlider" + intero + "() {jQuery(\"#slider" + intero + "\").s3Slider({timeOut: 3000});}</script>";
codice += " <div id=\"slider" + intero + "\" > <ul id=\"slider" + intero + "Content\"><div style=\"position :absolute; top: 0px; left: 0px\"> " +
immagini + "</div> <div class=\"clear slider" + intero + "Image\"></div>[/list]</div>" +
"<script type=\"text/javascript\">initSlider" + intero + "();</script>";
}
catch
{
}
finally
{
Accesdb.Close();
}
return codice;
}
Cosi funziona alla grande, il file CSS che stampa legge i valori dalla query e va bene.
Ma lo sapete meglio di me che NON SI DOVREBBE FARE COSI.
Chiedo quandi a voi, qual'è la soluzione milgiore, pulita e sbrigativa per fare ciò?
Grazie in anticipo