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.