Nei file HTML che generano l'output finale ci metti del codice di smarty, no?
Ecco, invece del codice smarty ci metti quello PHP.
Codice PHP:
// file script.php - elaborazione dati
<?php
$title = .....
$data = ... array di record estratti da database
// .....
include 'template.php';
?>
// file template.php - visualizzazione
header HTML vari
<title><?php echo $title; ?></title>
altro markup
<table>
<?php foreach ( $data as $line ): ?>
<tr>
<td><?php echo $line['id']; ?></td>
<td><?php echo $line['descrizione']; ?></td>
<td><?php echo $line['prezzo']; ?></td>
</tr>
<?php endforeach; ?>
</table>
Le variabili $title e $data sono definite nel primo file, puoi modificare il modo in cui vengono valorizzate senza toccare il file in cui viene mostrato l'output (fintanto che - ovviamente - mantieni lo stesso formato). Il grafico puo' lavorare solo su template.php senza curarsi di cosa fai tu per calcolare i dati. Unica differenza con smarty o altri sistemi e' la sintassi, il concetto e' identico.