Devi usare un "pattern" , in questo caso l'MVC dovrebbe andar bene al caso tuo.
Cosa è un pattern MVC ? Il pattern non è nient'altro che una suddivisione logica e successivamente anche fisica dell'applicativo web (o sito) , come funziona:
Il sito viene richiamato sempre da un'unica pagina (detto dispatcher), genericamente la pagina index.php. Dentro la pagina index.php dovrai richiamare tramite require o include le parti di sito che tu vuoi tramite passaggio dei parametri e quindi "assemblare" il sito al volo per ogni parametro differente.
Mi spiego meglio. Supponiamo di avere una index strutturata banalmente in questo modo:
cosa fa questa pagina :Codice PHP:<?
require_once('connessione.php'); //esempio includi un file che esegue la connessione
/**********************************************
* dispatch della vista
***********************************************/
if (!isset($_REQUEST['mod']))
$_REQUEST['mod'] = 'homepage'; //assegnamo un modulo di default ne caso dovessimo richiamare la index.php senza parametri
$inc_file = 'moduli/'.$_REQUEST['mod']'.inc';
//suppongo che i moduli siano salvati nella cartella moduli con estenzioni ".inc" (opzionale)
if (file_exists($inc_file))
require_once($inc_file);
else
die("redirect pagina errore");
?>
1) include il file per la connessione al database
2)controlla se è stato richiesto un modulo specifico, in caso contrario assegnamo un modulo di default
3)controlliamo se il modulo esiste e lo includiamo
nel file "moduli/homepage.inc" metterai il codice che svolge le operazioni per quella determinata pagina (esempio prendere le prime 4 news dal database)
Adesso per quanto riguarda la modifica del template, io uso generalmente un template engine chiamato smarty che ti permette di usare html e codice php in maniera più trasparente.Però questo è un discorso più approfondito.
Se tu non volessi usare un template engine semplicemente devi includere nell'index.php una pagina html di base aggiungendo, per esempio , al codice precedente :
e in base.php creare la struttura principale del sito, esempio:Codice PHP:require_once('base.php');
Codice PHP:<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link href="css/style.css" rel="text/stylesheet"/>
<title>Insert title here</title>
</head>
<body>
<div id='container'>
<div id='menu'> /*qui metti il codice del menu*/ </div>
<div id='contenuto'>
<?php require_once($template_da_includere); ?>
</div>
</div>
</body>
</html>
come puoi vedere nel div#contenuto eseguo una require_once da una variabile che settiamo nel modulo.
Nel modulo , quindi, da qualche parte definiremo il percorso del template del file da inlcudere , esempio:
come puoi vedere suppongo che nella cartella templates (dove inseriremo tutti i template dei moduli) ci sia il file homepage.php che conterrà il codice htmle della visualizzazione della homepage.Codice PHP:<?php
//file moduli/homepage.inc
//esegue operazioni varie
$template_da_includere = "templates/homepage.php"
?>
per chiamare un'altro modulo potrai farlo tramite passaggio parametri nel browser, quindi un link. Esempio : 'index.php?mod=prodotti', che ti richiamerà il modulo prodotti.inc .
Ovviamente il discorso è un pò più complesso e ho cercato di spiegarlo a linee grossolane il tutto. Ti consiglio di iniziare con qualche framework php per comprendere meglio il funzionamento come cakephp o codeigniter.
Spero di non averti complicato la vita![]()

Rispondi quotando