creare una classe per rendere dinamico l'inserimento

simonetta619

Utente Attivo
22 Apr 2013
47
0
0
31
palermo
ciao a tutti! potreste darmi qualche consiglio per creare una classe generica per inserire dei dati html? vi spiego in breve: ho creato un cms che mi permette di realizzare pagine web in modo semplice e veloce. Ho creato un DB in cui sono registrate delle scelte, ovvero i tipi di "box" da inserire nella pagina (ad esempio un'immagine o un form o un menu) e le posizioni all'interno del layout in cui inserire il box. Quando voglio realizzare una pagina web, scelgo nelle select che ho creato ciò che voglio inserire, invio e nel DB viene salvata la mia scelta e visualizzata una tabella a video in cui vengono mostrati tutte le mie scelte fatte, ovvero tutti i "box" che voglio inserire all'interno del layout nelle posizioni scelte(header, sidebar, main, footer..). Con un pulsante visualizzo così la mia anteprima, ovvero il layout completo e funzionante. Bene, fin qui sono riuscita a realizzare un modello statico... In quanto, se modifico l'html del box che voglio inserire ad esempio dentro all'header, poi se lo inserisco un'altra volta, inserisce il box con lo stesso contenuto.. Mentre ovviamente deve essere dinamico cambiare ogni volta che inserisco contenuti nuovi. Ho pensato che forse potrei ovviare creando una classe generica con tutti i "box" e dentro un html generico da poter cambiare al momento dell'inserimento ma nn so se si può fare... Avete qualche consiglio da darmi su come procedere? per fare in modo che l'inserimento del html diventi dinamico? vi mostro il codice solo del header con tutti i box creati, ho utilizzato twitter bootstrap per la grafica... Spero che riusciate a darmi una mano perchè mi sono bloccata!

PHP:
<!-- <h1 class="text-center">Header</h1> -->
				<?php 
					$header="SELECT box.nome_box, layout.nome_lay, sum.sum_id
							FROM box
							INNER JOIN sum
							ON box.id_box = sum.sum_id_box
							INNER JOIN layout
							ON layout.id_lay = sum.sum_id_layout
							WHERE sum_id_layout = 1";
					$res=mysql_query($header);
					
					while($sol=mysql_fetch_assoc($res)){
						switch($sol['nome_box']){
							case 'Mappa':
							print('<div style="float:left;height:30px;width:50px;background:#fce300;">mappa</div>');
							break;
							case 'Contatti':
							print('<div style="float:right;"><address>
	        								<strong>Test, Inc.</strong><br>
	        										795 Folsom Ave, Suite 600<br>
	        										San Francisco, CA 94107<br>
	        								<abbr title="Phone">P:</abbr> (123) 456-7890
      									</address>
      									<address>
        									<strong>Full Name</strong><br>
        									<a href="mailto:#">first.last@gmail.com</a>
      								</address></div>');
							break;
							case 'Articoli':
							print('<br /><br /><div style="height:200px;width:700px;">
										<h1>The Last Dreamers</h1>The Last Dreamers e&grave; un gruppo rock composto da ...</small></p>
      								</div>');
							break;
							case 'Ricerca':
							print('<div><form style="float:left;" class="form-search">
        									<input type="text" class="input-medium search-query">
        									<button type="submit" class="btn">Search</button>
      								</form></div>');
							break;
							case 'Menu':
							print('<br /><br /><div class="subnav">
    									<ul class="nav nav-pills">
      										<li><a href="#">link1</a></li>
      										<li><a href="#">link2</a></li>
      										<li><a href="#">link3</a></li>
      										<li><a href="#">link4</a></li>
      										<li><a href="#">link5</a></li>
      										<li><a href="#">link6</a></li>
    									</ul>
  									</div>');
							break;
							case 'NavFixedTop':
							print('<div class="bs-docs-example bs-navbar-top-example">
            						<div class="navbar navbar-fixed-top" style="position: absolute;">
             							 <div class="navbar-inner">
                							<div class="container" style="width: auto; padding: 0 20px;">
                  								<ul class="nav nav-pills">
		      										<li><a href="#">Chi Siamo</a></li>
		      										<li><a href="#">I Nostri Video</a></li>
		      										<li><a href="#">link</a></li>
		      										<li><a href="#">link</a></li>
		      										<li><a href="#">RockProject</a></li>
		      										<li><a href="#">Contattaci</a></li>
		      										<li><a href="#"><img style="height:20px; width:75px;" src="immagini/facebook.png"/></a></li>
		      										<li><a href="#"><img style="height:20px; width:75px;" src="immagini/twitter.png"/></a></li>
		      										<li><a href="#"><img style="height:20px; width:75px;" src="immagini/youtube.jpg"/></a></li>
    											</ul>
                							</div>
              							</div>
            						</div>
         						</div>');
							break;
							case 'TextArea':
							print('<div style="float:left;" class="control-group">
            							<label class="control-label" for="textarea">Textarea</label>
            							<div class="controls">
              							<textarea class="input-xlarge" id="textarea" rows="3"></textarea>
            							</div>
          						</div>');
							break;
							case 'Button':
							print('<a style="float:left;" class="btn btn-primary" href="#">bottone</a>');
							break;
							case 'Form':
							print('<div><form class="form-inline">
  											<input type="text" class="input-small" placeholder="Email">
  											<input type="password" class="input-small" placeholder="Password">
  											<label class="checkbox">
    											<input type="checkbox"> Remember me
  											</label>
  											<button type="submit" class="btn">Sign in</button>
									</form></div>');
							break;
							case 'Image':
							print('<div><a target="_blank" title="ImageShack - Image And Video Hosting" href="http://imageshack.us/photo/my-images/444/rscn8806.jpg/"><img class="img-rounded" src="http://img444.imageshack.us/img444/3370/rscn8806.jpg" border="0"/></a></div>');
							break;
							case 'Breadcrumbs':
							print('<div><ul class="breadcrumb">
										  <li><a href="#">Home</a> <span class="divider">/</span></li>
										  <li><a href="#">Pagina uno</a> <span class="divider">/</span></li>
										  <li class="active">Pagina corrente</li>
										</ul></div>');
							break;
								}
							}
					
				?>
			</header>