/** * Restiuisce un singleton per creare ordini * @return \DipartimentoFactory */ public static function instance() { if (!isset(self::$singleton)) { self::$singleton = new OrdineFactory(); } return self::$singleton; }
public function handle_input(&$request) { $vd = new ViewDescriptor(); $vd->setPagina($request['page']); // $this->setImpToken($vd, $request); //utente non autentificato if (!$this->loggedIn()) { $this->showLoginPage($vd); } else { $user = UserFactory::instance()->cercaUtentePerId($_SESSION[BaseController::user], $_SESSION[BaseController::role]); if (isset($request["subpage"])) { switch ($request["subpage"]) { case 'gestione_ordini': $ordini = OrdineFactory::instance()->getListaOrdiniAttivi(); $vd->setSottoPagina('gestione_ordini'); break; default: $vd->setSottoPagina('home'); break; } } if (isset($request["cmd"])) { switch ($request["cmd"]) { case 'logout': $this->logout($vd); break; case 'invia': $msg = array(); $ordini = OrdineFactory::instance()->getListaOrdiniAttivi(); if (isset($request['id'])) { if (OrdineFactory::instance()->chiudiOrdinePerId($request['id']) != 1) { $msg[] = '<li>L\'ordine #' . $request['id'] . ' non è valido</li>'; } } $this->creaFeedbackUtente($msg, $vd, 'Ordine #' . $request['id'] . ' inviato'); $vd->setSottoPagina('gestione_ordini'); $this->showHomeAdmin($vd); /* Non mostra il msg di errore/conferma */ header('Location: ' . Settings::getApplicationPath() . 'php/admin/gestione_ordini'); exit; /* ************************************ */ break; default: $this->showHomeAdmin($vd); } } else { // nessun comando $user = UserFactory::instance()->cercaUtentePerId($_SESSION[BaseController::user], $_SESSION[BaseController::role]); $this->showHomeUser($vd); } } require basename(__DIR__) . '/../view/master.php'; }
public function aggiornaOrdine($user, $ordine, $domicilio) { $query = "UPDATE `ordini` SET \n `domicilio`= ?,\n `prezzo`= ?,\n `stato`= ?,\n `data`= ?, \n `cliente_id`= ?,\n `admin_id`= ?,\n WHERE id = ?"; $mysqli = Db::getInstance()->connectDb(); if (!isset($mysqli)) { error_log("[aggiornaOrdine] impossibile inizializzare il database"); return false; } $stmt = $mysqli->stmt_init(); $stmt->prepare($query); if (!$stmt) { error_log("[aggiornaOrdine] impossibile" . " inizializzare il prepared statement"); $mysqli->close(); return false; } $prezzo = OrdineFactory::instance()->getPrezzoTotale($ordine); $data = date('Y-m-d'); $cliente_id = $user->getId(); $admin_id = 1; $stato = "non pagato"; if (!$stmt->bind_param('sdssiiii', $domicilio, $prezzo, $stato, $data, $cliente_id, $admin_id, $ordine->getId())) { error_log("[aggiornaOrdine] impossibile" . " effettuare il binding in input"); $mysqli->close(); return false; } // inizio la transazione $mysqli->autocommit(false); if (!$stmt->execute()) { error_log("[aggiornaOrdine] impossibile" . " eseguire lo statement"); $mysqli->close(); $mysqli->rollback(); $mysqli->close(); return false; } //la transazione è andata a buon fine $mysqli->commit(); $mysqli->autocommit(true); $mysqli->close(); return true; }
</td> <td class="col-large"><?php echo $cliente->getVia(); ?> <?php echo $cliente->getCivico(); ?> <?php echo $cliente->getCap(); ?> <?php echo $cliente->getCitta(); ?> </td> <td class="col-small"><?php echo OrdineFactory::instance()->getPrezzoTotale($ordine) . "€ "; ?> </td> <td class="col-small"><a href="admin/ordini?cmd=paga&ordine=<?php echo $ordine->getId(); ?> " title="paga"> <img src="../images/paga.png" alt="paga"></a></td> <td class="col-small"><a href="admin/ordini?cmd=dettaglio&ordine=<?php echo $ordine->getId(); ?> " title="dettaglio_ordine"> </tr> <? } ?>
/** * Metodo per gestire l'input dell'utente. * @param type $request la richiesta da gestire */ public function handleInput(&$request) { // creo il descrittore della vista $vd = new ViewDescriptor(); // imposto la pagina $vd->setPagina($request['page']); // gestion dei comandi // tutte le variabili che vengono create senza essere utilizzate // direttamente in questo switch, sono quelle che vengono poi lette // dalla vista, ed utilizzano le classi del modello if (!$this->loggedIn()) { // utente non autenticato, rimando alla home $this->showLoginPage($vd); } else { // utente autenticato $user = UserFactory::instance()->cercaUtentePerId($_SESSION[BaseController::user], $_SESSION[BaseController::role]); // verifico quale sia la sottopagina della categoria // Docente da servire ed imposto il descrittore // della vista per caricare i "pezzi" delle pagine corretti // tutte le variabili che vengono create senza essere utilizzate // direttamente in questo switch, sono quelle che vengono poi lette // dalla vista, ed utilizzano le classi del modello if (isset($request["subpage"])) { switch ($request["subpage"]) { //ad ogni pagina viene associato un valore nella variabile $_SESSION['pagina'] per fare in modo che nel menu //a sinistra appaiano informazioni guida differenti a seconda della pagina che si sta visualizzando // modifica dei dati anagrafici per le consegne a domicilio case 'anagrafica': $_SESSION['pagina'] = 'anagrafica.php'; $vd->setSottoPagina('anagrafica'); break; // Ordinazione delle Album con scelta dei quantità e dimensioni // Ordinazione delle Album con scelta dei quantità e dimensioni case 'ordina': $_SESSION['pagina'] = 'ordina.php'; $album = AlbumFactory::instance()->getAlbum(); $orari = OrarioFactory::instance()->getOrari(); $vd->setSottoPagina('ordina'); break; // visualizzazione degli ordini effettuati precedentemente // visualizzazione degli ordini effettuati precedentemente case 'elenco_ordini': $_SESSION['pagina'] = 'elenco_ordini.php'; $ordini = OrdineFactory::instance()->getOrdiniPerIdCliente($user); $vd->setSottoPagina('elenco_ordini'); break; // visualizzaza come raggiungere e i vari contatti della Albumria // visualizzaza come raggiungere e i vari contatti della Albumria case 'contatti': $_SESSION['pagina'] = 'contatti.php'; $vd->setSottoPagina('contatti'); break; default: $_SESSION['pagina'] = 'home.php'; $vd->setSottoPagina('home'); break; } } // gestione dei comandi inviati dall'utente if (isset($request["cmd"])) { // abbiamo ricevuto un comando switch ($request["cmd"]) { // logout case 'logout': $this->logout($vd); break; case 'procedi_ordine': //si verifica che i dati inseriti dall'utente relativamente a quantità e dimensione Album siano nel formato //corretto e in numero accettabile. Successivamente ad ogni tipologia di prodotto viene associato un //nuovo record nella tabella Album_ordini in cui viene indicato, oltre al numero ordine relativo, anche //la quantità di Album di quel determinato tipo che si vogliono ordinare. $vd->setSottoPagina('conferma_ordine'); $msg = array(); //carico un array con tutti gli id delle Album ordinabili $idAlbum = AlbumFactory::instance()->getIdAlbum(); //verifico se i valori inseriti dall'utente sono corretti e conto quante Album sono state ordinate in totale $nAlbum = $this->validaForm($idAlbum, $request); $flagOrario = false; //creo un nuovo ordine attualmente formato solo dall'id (che è anche l'ulitmo disponibile) $ordine = new Ordine(); $ordine->setId(OrdineFactory::instance()->getLastId()); $ordineId = $ordine->getId(); //se il numero di Album ordinate è accettabile (>0) verifico se la fascia oraria richiesta è a sua volta disponibile //per quel quantitativo di Album. se non lo è assegno quella disponibile piu vicina if ($nAlbum) { $orari = OrarioFactory::instance()->getOrariSuccessivi($request['orario']); foreach ($orari as $orario) { if (Album_ordineFactory::instance()->getNAlbumPerOrario($orario->getId()) + $nAlbum <= $orario->getOrdiniDisponibili()) { //var_dump("Album per orario ".Album_ordineFactory::instance()->getNAlbumPerOrario($orario->getId())); $ordine->setOrario($orario->getId()); $flagOrario = true; break; } else { $ordine->setOrario(NULL); } } } else { $msg[] = '<li>I valori inseriti non sono validi. Ordine annullato</li>'; $vd->setSottoPagina('ordina'); $this->creaFeedbackUtente($msg, $vd, ""); $this->showHomeUtente($vd); break; } case 'dettaglio': //mi permette di vedere i dettagli relativi a un ordine : elenco Album, quantità, prezzi singoli e totali //e richieste di consegne $_SESSION['pagina'] = 'dettaglio_ordine.php'; $ordineId = filter_var($request['ordine'], FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE); $ordine = OrdineFactory::instance()->getOrdine($ordineId); $POs = Album_ordineFactory::instance()->getPOPerIdOrdine($ordine); $vd->setSottoPagina('dettaglio_ordine'); $this->showHomeUtente($vd); break; case 'conferma_ordine': //dopo il riepilogo dell'ordine il ciente puo' decidere se confermarlo o... $msg = array(); $ordineId = $request['ordineId']; $this->creaFeedbackUtente($msg, $vd, "Ordine " . $ordineId . " creato con successo."); $vd->setSottoPagina('home'); $this->showHomeUtente($vd); break; case 'cancella_ordine': //...cancella PO e ordine $msg = array(); $ordineId = $request['ordineId']; $p = Album_ordineFactory::instance()->cancellaPO($ordineId); $o = OrdineFactory::instance()->cancellaOrdine($ordineId); if ($p && $o) { $this->creaFeedbackUtente($msg, $vd, "Ordine " . $ordineId . " cancellato."); } else { $this->creaFeedbackUtente('<li>Errore cancellazione</li>', $vd, ""); } $vd->setSottoPagina('home'); $this->showHomeUtente($vd); break; case 'indirizzo': //aggiornamento indirizzo - l'indirizzo viene utilizzato per le consegne a domicilio $msg = array(); $this->aggiornaIndirizzo($user, $request, $msg); $this->creaFeedbackUtente($msg, $vd, "Indirizzo aggiornato"); $this->showHomeCliente($vd); break; case 'password': // cambio password $msg = array(); $this->aggiornaPassword($user, $request, $msg); $this->creaFeedbackUtente($msg, $vd, "Password aggiornata"); $this->showHomeCliente($vd); break; default: $this->showHomeUtente($vd); } } else { // nessun comando $user = UserFactory::instance()->cercaUtentePerId($_SESSION[BaseController::user], $_SESSION[BaseController::role]); $this->showHomeUtente($vd); } } // includo la vista require basename(__DIR__) . '/../view/master.php'; }
/** * Metodo per gestire l'input dell'utente. * @param type $request la richiesta da gestire */ public function handleInput(&$request) { // creo il descrittore della vista $vd = new ViewDescriptor(); // imposto la pagina $vd->setPagina($request['page']); if (!$this->loggedIn()) { // utente non autenticato, rimando alla home $this->showLoginPage($vd); } else { // utente autenticato $user = UserFactory::instance()->cercaUtentePerId($_SESSION[BaseController::user], $_SESSION[BaseController::role]); // verifico quale sia la sottopagina della categoria // Docente da servire ed imposto il descrittore // della vista per caricare i "pezzi" delle pagine corretti // tutte le variabili che vengono create senza essere utilizzate // direttamente in questo switch, sono quelle che vengono poi lette // dalla vista, ed utilizzano le classi del modello if (isset($request["subpage"])) { switch ($request["subpage"]) { // visualizza i dati anagrafici case 'anagrafica': $_SESSION['pagina'] = 'anagrafica.php'; $vd->setSottoPagina('anagrafica'); break; // gestione degli ordini eseguiti oggi // gestione degli ordini eseguiti oggi case 'gestione_ordini': $_SESSION['pagina'] = 'gestione_ordini.php'; $ordini = OrdineFactory::instance()->getOrdiniNonPagati(); $vd->setSottoPagina('gestione_ordini'); break; // ricerca di tutti gli ordini che sono stati eseguiti tramite il sito // ricerca di tutti gli ordini che sono stati eseguiti tramite il sito case 'ricerca_ordini': $_SESSION['pagina'] = 'ricerca_ordini.php'; $date = OrdineFactory::instance()->getDate(); $vd->setSottoPagina('ricerca_ordini'); $vd->addScript("../js/jquery-2.1.1.min.js"); $vd->addScript("../js/ricercaOrdini.js"); break; // utilizzo la funzione js e il json per ricercare e stampare i risultati della ricerca_ordini // utilizzo la funzione js e il json per ricercare e stampare i risultati della ricerca_ordini case 'filtra_ordini': $vd->toggleJson(); $vd->setSottoPagina('ricerca_ordini_json'); $errori = array(); if (isset($request['myData']) && $request['myData'] != '') { $data = $request['myData']; } else { $data = null; } if (isset($request['myOra']) && $request['myOra'] != '') { $ora = $request['myOra']; } else { $ora = null; } //var_dump("data ".$data." Ora " .$ora); $ordini = OrdineFactory::instance()->getOrdiniPerDataOra($data, $ora); //i dati si vedono nel js ma non nel controller ne nel json break; default: $_SESSION['pagina'] = 'home.php'; $vd->setSottoPagina('home'); break; } } // gestione dei comandi inviati dall'utente if (isset($request["cmd"])) { switch ($request["cmd"]) { // logout case 'logout': $this->logout($vd); break; case 'dettaglio': //mi permette di vedere i dettagli relativi a un ordine : elenco pizze, quantità, prezzi singoli e totali //e richieste di consegne a domicilio $_SESSION['pagina'] = 'dettaglio_ordine.php'; $ordineId = filter_var($request['ordine'], FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE); $ordine = OrdineFactory::instance()->getOrdine($ordineId); $POs = Album_ordineFactory::instance()->getPOPerIdOrdine($ordine); $cliente = UserFactory::instance()->getClientePerId($ordine->getCliente()); $vd->setSottoPagina('dettaglio_ordine'); $this->showHomeUtente($vd); break; case 'paga': //permette al dipendente di segnalare un ordine come pagato e quindi non farlo piu apparire //nell'elenco degli ordini da gestire $msg = array(); $ordineId = filter_var($request['ordine'], FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE); if (OrdineFactory::instance()->setPagato($ordineId, $user)) { $this->creaFeedbackUtente($msg, $vd, "Ordine " . $ordineId . " pagato."); } else { $this->creaFeedbackUtente($msg, $vd, "Errore cancellazione"); } $vd->setSottoPagina('gestione_ordini'); $ordini = OrdineFactory::instance()->getOrdiniNonPagati(); $this->showHomeUtente($vd); break; // default // default default: $this->showHomeUtente($vd); break; } } else { // nessun comando, dobbiamo semplicemente visualizzare la vista $user = UserFactory::instance()->cercaUtentePerId($_SESSION[BaseController::user], $_SESSION[BaseController::role]); $this->showHomeUtente($vd); } } // richiamo la vista require basename(__DIR__) . '/../view/master.php'; }
public function handle_input(&$request) { $vd = new ViewDescriptor(); $vd->setPagina($request['page']); $this->setImpToken($vd, $request); //untente non autentificato if (!$this->loggedIn()) { $this->showLoginPage($vd); } else { $user = UserFactory::instance()->cercaUtentePerId($_SESSION[BaseController::user], $_SESSION[BaseController::role]); //carica le pizze da visualizzare sulla galleria $listaPizzeConImg = PizzaFactory::instance()->getListaPizze(true); reset($listaPizzeConImg); $pizza = current($listaPizzeConImg); $index = 0; // var_dump($listaPizzeConImg); $vd->setAjaxFile(basename(__DIR__) . '/../view/ajax.php'); if (isset($request["subpage"])) { switch ($request["subpage"]) { case 'base': $vd->setSottoPagina('base'); $vd->setBreadcrumb("Modifica username o e-mail"); break; case 'password': $vd->setSottoPagina('password'); $vd->setBreadcrumb("Modifica password"); break; case 'pagamento': $pagamenti = PagamentoFactory::instance()->getListaPagamentiPerCliente($user); $vd->setSottoPagina('pagamento'); $vd->setBreadcrumb("Visualizza i tuoi metodi di pagamento"); break; case 'visualizza_pagamento': $pagamenti = PagamentoFactory::instance()->getListaPagamentiPerCliente($user); $vd->setSottoPagina('visualizza_pagamento'); $vd->setBreadcrumb("Visualizza i tuoi metodi di pagamento"); break; case 'indirizzo': $vd->setSottoPagina('indirizzo'); $vd->setBreadcrumb("Modifica indirizzo di consegna"); break; case 'account': $msg = array(); if (!isset($_SESSION[self::elenco_articoli])) { $_SESSION[self::elenco_articoli] = array(); } $vd->setSottoPagina('account'); break; case 'conferma_ordine_step1': $vd->setSottoPagina('conferma_ordine_step1'); $vd->setTitoloStep('Passo 1: seleziona indirizzo di consegna'); break; case 'conferma_ordine_step2': $vd->setSottoPagina('conferma_ordine_step2'); $vd->setTitoloStep('Passo 2: riepilogo articoli'); break; case 'conferma_ordine_step3': $vd->setSottoPagina('conferma_ordine_step3'); $vd->setTitoloStep('Passo 3: seleziona metodo di pagamento'); $pagamenti = PagamentoFactory::instance()->getListaPagamentiPerCliente($user); break; case 'cronologia_ordini': $ordini = OrdineFactory::instance()->getListaOrdiniPerCliente($user); $vd->setSottoPagina('cronologia_ordini'); $vd->setBreadcrumb("Visualizza cronologia ordini"); break; case 'ordini_attivi': $ordini = OrdineFactory::instance()->getListaOrdiniPerCliente($user, true); $vd->setSottoPagina('cronologia_ordini'); $vd->setBreadcrumb("Visualizza ordini in corso"); break; default: if (!isset($_SESSION[self::elenco_articoli])) { $_SESSION[self::elenco_articoli] = array(); } $vd->setSottoPagina('home'); break; } } if (isset($request["cmd"])) { switch ($request["cmd"]) { //salvataggio permanente elenco articoli case 'ordina': $msg = array(); if (!empty($_SESSION[self::elenco_articoli])) { if (isset($request['carta'])) { $carta = intval($request['carta']); $pagamento = PagamentoFactory::instance()->cercaPagamentoPerId($carta); if (!isset($pagamento)) { $msg[] = 'Il metodo di pagamento inserito non è valido'; $vd->setTitoloStep('Passo 3: seleziona metodo di pagamento'); $vd->setSottoPagina('conferma_ordine_step3'); } else { if (!OrdineFactory::instance()->salvaOrdine($_SESSION[self::elenco_articoli], $user->getId(), $pagamento, $this->getSubTotale(true))) { $msg[] = '<li>Spiacente. Impossibile terminare la transazione</li>'; $vd->setTitoloStep('Passo 3: seleziona metodo di pagamento'); $vd->setSottoPagina('conferma_ordine_step3'); } else { $_SESSION[self::elenco_articoli] = array(); $vd->setSottoPagina('home'); } } } $this->creaFeedbackUtente($msg, $vd, 'Ordine inviato'); } $this->showHomeCliente($vd); $pagamenti = PagamentoFactory::instance()->getListaPagamentiPerCliente($user); break; //rimuove un articolo dal carrello //rimuove un articolo dal carrello case 'remove': if (isset($request['key'])) { $key = intval($request['key']); if (array_key_exists($key, $_SESSION[self::elenco_articoli])) { $this->rimuoviArticolo($_SESSION[self::elenco_articoli][$key]); } } $subpage = $_REQUEST['subpage']; if (empty($_SESSION[self::elenco_articoli])) { $subpage = 'home'; $vd->setSottoPagina('home'); } $this->showHomeCliente($vd); header('Location: ' . Settings::getApplicationPath() . "php/cliente/{$subpage}"); exit; break; /** * è stato aggiunto un "articolo" al carrello, * ovvero una quantità di pizze di un determinato tipo e di una certa dimensione */ /** * è stato aggiunto un "articolo" al carrello, * ovvero una quantità di pizze di un determinato tipo e di una certa dimensione */ case 'add': //controlla la provenienza della richiesta: selectmenu form ... if (isset($request['pizza-selection']) && isset($request['size']) && isset($request['quantity'])) { if (PizzaFactory::instance()->cercaPizzaPerId(intval($request['pizza-selection']))) { $articolo = new ArticoloSession(PizzaFactory::instance()->cercaPizzaPerId(intval($request['pizza-selection'])), $request['size'], intval($request['quantity'])); $this->aggiungiArticolo($articolo); } } //... altrimenti gallery form if (isset($request['pizza-gallery']) && isset($request['size']) && isset($request['quantity'])) { $key = intval($request['pizza-gallery']); if (array_key_exists($key, $listaPizzeConImg)) { $articolo = new ArticoloSession(PizzaFactory::instance()->cercaPizzaPerId($listaPizzeConImg[$key]->getId()), $request['size'], intval($request['quantity'])); $this->aggiungiArticolo($articolo); } } // file_put_contents('php/text.txt', $_SERVER['REQUEST_URI'], FILE_APPEND); $vd->setSottoPagina('home'); $this->showHomeCliente($vd); /** * Evita l'auto-submit del form in seguito alla ricarica della pagina nel browser. * Problema presente anche nel progetto d'esempio: * http://spano.sc.unica.it/amm2014/davide/esami14/php/docente/reg_esami_step1?cmd=r_nuovo */ header('Location: ' . Settings::getApplicationPath() . 'php/cliente/home'); exit; break; //visualizza i dettagli di un metodo di pagamento selezionato //visualizza i dettagli di un metodo di pagamento selezionato case 'v_pagamento': $msg = array(); // var_dump($request); $p = 0; if (isset($request['carta'])) { $p = filter_var($request['carta'], FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE); if (!array_key_exists($p, $pagamenti)) { $msg[] = '<li>Il metodo di pagamento specificato non è valido</li>'; $vd->setSottoPagina('pagamento'); $this->creaFeedbackUtente($msg, $vd, ''); } else { $carta = $pagamenti[$p]; $vd->setSottoPagina('visualizza_pagamento'); } } else { $vd->setSottoPagina('pagamento'); } $this->showHomeUser($vd); break; case 'aggiorna_indirizzo': $msg = array(); $this->aggiornaIndirizzo($user, $request, $msg); $this->creaFeedbackUtente($msg, $vd, "Indirizzo di consegna aggiornato"); $this->showHomeUser($vd); break; case 'aggiorna_password': $msg = array(); $this->aggiornaPassword($user, $request, $msg); $this->creaFeedbackUtente($msg, $vd, 'Password aggiornata'); $vd->setSottoPagina('password'); $vd->setBreadcrumb("Modifica password"); $this->showHomeUser($vd); break; // aggiorna username, e-mail // aggiorna username, e-mail case 'aggiorna_info_base': $msg = array(); $vd->setSottoPagina('base'); $vd->setBreadcrumb("Modifica username o e-mail"); $this->aggiornaInfoBase($user, $request, $msg); $this->creaFeedbackUtente($msg, $vd, 'Username/e-mail sono stati aggiornati'); $this->showHomeUser($vd); break; case 'logout': $this->logout($vd); break; // ajax: click di un bullet: cambia pizza visualizzata sulla gallery // ajax: click di un bullet: cambia pizza visualizzata sulla gallery case 'go': $vd->toggleJson(); $index = filter_var($request["id"], FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE); if (!array_key_exists($index, $listaPizzeConImg)) { $index = 0; } $pizza = $listaPizzeConImg[$index]; break; // ajax: click next arrow: visualizza la pizza successiva // ajax: click next arrow: visualizza la pizza successiva case 'next': $vd->toggleJson(); $index = filter_var($request["id"], FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE); if (!isset($index)) { $intVal = 0; } $index++; if ($index > count($listaPizzeConImg) - 1) { $index = 0; } $pizza = $listaPizzeConImg[$index]; break; // ajax: click previous arrow: visualizza la pizza precedente // ajax: click previous arrow: visualizza la pizza precedente case 'prev': $vd->toggleJson(); $index = filter_var($request["id"], FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE); if (!isset($index)) { $index = 0; } $index--; if ($index < 0) { $index = count($listaPizzeConImg) - 1; } $pizza = $listaPizzeConImg[$index]; break; default: $this->showHomeCliente($vd); } } else { // nessun comando $user = UserFactory::instance()->cercaUtentePerId($_SESSION[BaseController::user], $_SESSION[BaseController::role]); $this->showHomeUser($vd); } } require basename(__DIR__) . '/../view/master.php'; }