Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 29 di 56
  • livello intermedio
Indice lezioni

La pagina news del CMS

Implementiamo il nostro CMS basato su PHP, PDO e MySQL sviluppando le funzionalità per la visualizzazione delle news.
Implementiamo il nostro CMS basato su PHP, PDO e MySQL sviluppando le funzionalità per la visualizzazione delle news.
Link copiato negli appunti

Creiamo la pagina news.php per iniziare a testare la nostra classe all'opera. Includiamo quindi la connessione al database che sarà contenuta in un file esterno e la definizione della nostra classe:

require_once('include/mysql.pdo.php');
require_once('lib/myCms.class.php');

La connessione al database non conterrà i dati di accesso, questi invece saranno salvati in un apposito file di configurazione:

include("config.php");
$connectionDb = "mysql:host=$host;dbname=$db_name";
try {
    $db = new PDO($connectionDb , "$db_user", "$db_psw");
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e) {
    echo 'Attenzione errore: '.$e->getMessage().' - '.$e->errorInfo.' - '.$e->getCode().' '.$e->getTraceAsString();
}

Il file di configurazione sarà sarà scritto in questo modo con le classiche quattro variabili di connessione:

$host = "localhost";
$db_user = "root";
$db_psw = "";
$db_name = "guida";

Procediamo con la lettura delle variabili che arrivano via querystring:

$id = 0;
if(isset($_REQUEST['id'])){$id=$_REQUEST['id'];}
$azione='';
if(isset($_GET['azione'])){$azione=$_GET['azione'];}

La variabile $id sarà presente nei link al dettaglio, alla modifica e all'eliminazione, mentre l'azione sarà ciò che permetterà di stabilire cosa fare. Instanziamo la classe e settiamo le due proprietà dell'oggetto:

$myCms = new myCms();
$myCms->id=$id;
$myCms->tipo = 'news';

Non sarebbe una cattiva idea aver definito come public il metodo per sanificare i numeri interi in modo da poterlo usare prima dell'assegnazione:

$id = $myCms->sanitize_int($id);

Predisponiamo uno switch per richiamare il metodo crea_lista() in base al valore della variabile $azione:

switch($azione){
	case 'lista':
		$contenuto=$myCms->crea_lista();
		break;
	default:
		$contenuto=$myCms->crea_lista();
		break;
	}

Nel nostro caso la stringa HTML verrà memorizzata in una variabile $contenuto che stamperemo nella pagina:

<html>
<head>
	<meta charset="utf-8" />
	<title>CMS: News</title>
	<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"/>
</head>
<body>
	<div id="contenitore" class="container">
		<div id="header"><?php include('include/header.php');?></div>
		<div id="menu"><?php include('include/menu.php');?></div>
		<div id="contenuto"><?php echo $contenuto; ?></div>
		<div id="footer"><?php include('include/footer.php');?></div>
	</div>
	<script type="text/javascript" src="js/jquery-2.2.0.min.js"></script>
	<script type="text/javascript" src="js/bootstrap.min.js"></script>
</body>
</html>

L'HTML è estremamente sintetico, contiene solo i riferimenti a Bootstrap. Una buona idea potrebbe essere quella di condividere le componenti HTML fra le varie pagine tramite inclusioni esterni in modo da facilitare la manutenzione.

A questo punto caricando la pagina news.php verrà visualizzata la tabella con l'elenco delle news presenti, per il momento la pulsantiera non è ancora attiva e sarà la prossima funzionalità che verrà sviluppata.

Ti consigliamo anche