waLibs 4.x
Aggiungere una waTable
Allo stesso modo di waMenu, un oggetto di classe waTable può essere un elemento da dare in pasto a waApplication per essere mandato in output. Continuando col nostro esempio, creiamo un oggetto di classe waTable all'interno della nostra pagina, ne valorizziamo le proprietà di comportamento e lo mandiamo in output:
<?php
//****************** pagina1.php ***************************************
include __DIR__ . "/testwalibs.inc.php";

class page extends testwalibs
	{
	function doSomething()
		{			
		$this->addItem($this->getMenu());
		
		$corpo = "Lorem Ipsum è un testo segnaposto utilizzato nel settore della 
			tipografia e della stampa. Lorem Ipsum è considerato il testo segnaposto standard 
			sin dal sedicesimo secolo, quando un anonimo tipografo prese una cassetta di 
			caratteri e li assemblò per preparare un testo campione. È sopravvissuto non solo 
			a più di cinque secoli, ma anche al passaggio alla videoimpaginazione, pervenendoci 
			sostanzialmente inalterato. Fu reso popolare, negli anni ’60, con la diffusione 
			dei fogli di caratteri trasferibili “Letraset”, che contenevano passaggi del 
			Lorem Ipsum, e più recentemente da software di impaginazione come Aldus PageMaker, 
			che includeva versioni del Lorem Ipsum.";
		$this->addItem($corpo, "corpo");
		$this->addItem("ciao mondo", "titolo");
		
		$table = new waLibs\waTable("SELECT * FROM amministrazioni", $this->fileConfigDB);
		$table->addColumn("id_amministrazione", "ID");
		$table->addColumn("sigla", "Sigla");
		$table->addColumn("nome", "Nome");
		
		// lettura dal database delle righe che andranno a popolare la tabella
		if (!$table->loadRows())
			{
			$this->showDBError($table->recordset->dbConnection);
			}
		$this->addItem($table);		
		
		$this->show();
		}

	}

$page = new page();
$page->doSomething();

			
Inizia ad assomigliare ad una pagina di una applicazione, vero? E abbiamo scritto si e no 50 righe di codice...
Come waMenu e waApplication, la UI di ogni waTable può essere personalizzata secondo il solito schema, e come per tutti gli altri oggetti troverete la documentazione della classe all'interno della documentazione specifica del package.
Consiglio non richiesto: non seguite l'esempio di questa pagina, nel quale viene creato direttamente un oggetto di classe waTable; lasciate che sia la vostra applicazione a decidere di che classe saranno gli oggetti tabella: create un metodo della classe testwalibs (la vostra applicazione) che crea la tabella e la restituisce, e all'interno della pagina richiamate il metodo della classe testwalibs quando volete creare una nuova tabella. In questo modo, qualora sia necessario impostare delle proprietà di default della tabella, oppure decidiate di estendere la classe e utilizzare la classe estesa, oppure a un certo punto vi accorgiate che avete bisogno di generare un nuovo view-object (che è una proprietà della classe), avrete un solo unico punto centralizzato da modificare, e l'applicazione, come per incanto, cambierà per intero il suo comportamento.
P.S.: waTable possiede al suo interno un meccanismo per esportare le righe in formato CSV, XLS e PDF. Le librerie PHPExcel e FPDF necessarie per la funzionalità sono importate mediante Composer.