waLibs 4.x
Aggiungere un waMenu
Ogni applicazione gestionale, web-based o meno, ha almeno un menu che permetta di passare da una funzionalità all'altra del programma.
Lo strumento per generare menu all'interno delle waLibs si chiama waMenu, è molto semplice e ha una propria UI di default che come sempre può essere stravolta a piacere. Una volta preparato l'oggetto da istanziare lo si aggiunge come elemento alla waApplication e lo si manda in output.
Potremmo generare il menu all'interno della singola pagina, ma, tipicamente, un menu è un oggetto condiviso da più pagine, ossia che più pagine (se non tutte) desiderano esporre. Quindi il menu appartiene all'applicazione, più che alla singola pagina. Per questo motivo creeremo un nuovo metodo dell'applicazione che istanzierà l'oggetto di classe waMenu e lasceremo alla singola pagina la decisione se mandarlo in output o meno:
<?php
//****************** testwalibs.inc.php ***************************************
include __DIR__ . "/walibs4/waapplication/waapplication.class.php";

class testwalibs extends waLibs\waApplication
	{

	function __construct()
		{			
		$this->name = "testwalibs";
		$this->title = "Voglio testare le waLibs";

		include_once  "ui/view/testwalibs.php";
		$this->view = new testwalibs\waApplicationView();

		$this->init();
		}
	
	function getMenu()
		{
		$m = new waLibs\waMenu();
		$m->open();
		
		$m->openSection("Pagina 1", "pagina1.php");
		$m->closeSection();
		$m->openSection("Pagina 2", "pagina2.php.php");
		$m->closeSection();
		$m->openSection("Pagina N", "paginaN.php.php");
		$m->closeSection();

		$m->close();
		return $m;
		}
	
	}

			
<?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");
		$this->show();
		}

	}

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

			
Ok, il rendering non è da award, ma voi già sapete che potete modificare ciò che vi pare applicando stili CSS al vostro nuovo menu, oppure cambiandone completamente la funzionalità tramite il view-object.
Si noti che alla chiamata addItem di waApplication non viene in questo caso passato il nome dell'elemento che si intende mandare in output. waApplication, infatti, riconosce gli oggetti di classe waMenu, waForm e waTable, sa come recuperare da loro la proprietà name e sa come estrarre da questi oggetti ciò che va mandato in output.